Added fullscreen, player outlines, better weapon display

This commit is contained in:
Anuken
2018-01-29 15:24:10 -05:00
parent 5b25d94a3e
commit aaa9f85206
26 changed files with 320 additions and 189 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

View File

@@ -215,6 +215,7 @@ setting.effects.name=Display Effects
setting.sensitivity.name=Controller Sensitivity setting.sensitivity.name=Controller Sensitivity
setting.saveinterval.name=Autosave Interval setting.saveinterval.name=Autosave Interval
setting.seconds={0} Seconds setting.seconds={0} Seconds
setting.fullscreen.name=Fullscreen
setting.fps.name=Show FPS setting.fps.name=Show FPS
setting.vsync.name=VSync setting.vsync.name=VSync
setting.lasers.name=Show Power Lasers setting.lasers.name=Show Power Lasers
@@ -329,6 +330,7 @@ liquid.plasma.name=plasma
liquid.lava.name=lava liquid.lava.name=lava
liquid.oil.name=oil liquid.oil.name=oil
block.weaponfactory.name=weapon factory block.weaponfactory.name=weapon factory
block.weaponfactory.fulldescription=Used to create weapons for the player mech. Click to use. Automatically takes resources from the core.
block.air.name=air block.air.name=air
block.blockpart.name=blockpart block.blockpart.name=blockpart
block.deepwater.name=deepwater block.deepwater.name=deepwater

View File

@@ -12,6 +12,10 @@ uniform float u_lighten;
varying vec4 v_color; varying vec4 v_color;
varying vec2 v_texCoord; varying vec2 v_texCoord;
bool id(vec4 v){
return v.a > 0.1 && !(v.r < 0.01 && v.g < 0.01 && v.b < 0.01);
}
void main() { void main() {
vec2 T = v_texCoord.xy; vec2 T = v_texCoord.xy;
@@ -20,18 +24,21 @@ void main() {
bool any = false; bool any = false;
float thickness = 1.0;
float step = 1.0; float step = 1.0;
vec4 c = texture2D(u_texture, T);
if(texture2D(u_texture, T).a < 0.1 && if(texture2D(u_texture, T).a < 0.1 &&
(texture2D(u_texture, T + vec2(0, step) * v).a > 0.1 || texture2D(u_texture, T + vec2(0, -step) * v).a > 0.1 || (id(texture2D(u_texture, T + vec2(0, step) * v)) || id(texture2D(u_texture, T + vec2(0, -step) * v)) ||
texture2D(u_texture, T + vec2(step, 0) * v).a > 0.1 || texture2D(u_texture, T + vec2(-step, 0) * v).a > 0.1)) id(texture2D(u_texture, T + vec2(step, 0) * v)) || id(texture2D(u_texture, T + vec2(-step, 0) * v))))
any = true; any = true;
if(any){ if(any){
gl_FragColor = u_color; gl_FragColor = u_color;
}else{ }else{
vec4 c = texture2D(u_texture, T); if((c.r < 0.01 && c.g < 0.01 && c.b < 0.01)){
c = vec4(0.0);
}
gl_FragColor = mix(c, vec4(1.0, 1.0, 1.0, c.a), u_lighten) * v_color; gl_FragColor = mix(c, vec4(1.0, 1.0, 1.0, c.a), u_lighten) * v_color;
} }
} }

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View File

@@ -3,6 +3,7 @@ package io.anuke.mindustry;
import io.anuke.mindustry.core.*; import io.anuke.mindustry.core.*;
import io.anuke.mindustry.io.BlockLoader; import io.anuke.mindustry.io.BlockLoader;
import io.anuke.mindustry.io.BundleLoader; import io.anuke.mindustry.io.BundleLoader;
import io.anuke.mindustry.io.Platform;
import io.anuke.ucore.modules.ModuleCore; import io.anuke.ucore.modules.ModuleCore;
import io.anuke.ucore.util.Log; import io.anuke.ucore.util.Log;
@@ -12,6 +13,8 @@ public class Mindustry extends ModuleCore {
@Override @Override
public void init(){ public void init(){
debug = Platform.instance.isDebug();
Log.setUseColors(false); Log.setUseColors(false);
BundleLoader.load(); BundleLoader.load();
BlockLoader.load(); BlockLoader.load();

View File

@@ -146,6 +146,7 @@ public class Control extends Module{
}); });
Events.on(ResetEvent.class, () -> { Events.on(ResetEvent.class, () -> {
upgrades.reset();
player.weaponLeft = player.weaponRight = Weapon.blaster; player.weaponLeft = player.weaponRight = Weapon.blaster;
player.add(); player.add();

View File

@@ -304,6 +304,20 @@ public class NetClient extends Module {
} }
} }
//TODO remove.
public void test(){
gotData = false;
connecting = true;
}
public boolean hasData(){
return gotData;
}
public boolean isConnecting(){
return connecting;
}
private void finishConnecting(){ private void finishConnecting(){
Net.send(new ConnectConfirmPacket(), SendMode.tcp); Net.send(new ConnectConfirmPacket(), SendMode.tcp);
state.set(State.playing); state.set(State.playing);

View File

@@ -68,7 +68,7 @@ public class NetServer extends Module{
data.stream = new ByteArrayInputStream(stream.toByteArray()); data.stream = new ByteArrayInputStream(stream.toByteArray());
Net.sendStream(id, data); Net.sendStream(id, data);
Log.info("Sending custom map: Packed {0}uncompressed bytes of MAP data.", stream.size()); Log.info("Sending custom map: Packed {0} uncompressed bytes of MAP data.", stream.size());
}else{ }else{
//hack-- simulate the map ack packet recieved to send the world data to the client. //hack-- simulate the map ack packet recieved to send the world data to the client.
Net.handleServerReceived(id, new MapAckPacket()); Net.handleServerReceived(id, new MapAckPacket());

View File

@@ -177,14 +177,17 @@ public class Renderer extends RendererModule{
Graphics.shader(Shaders.outline, false); Graphics.shader(Shaders.outline, false);
Entities.draw(enemyGroup); Entities.draw(enemyGroup);
Entities.draw(playerGroup, p -> !p.isAndroid);
Graphics.shader(); Graphics.shader();
Entities.draw(playerGroup, p -> !p.isAndroid);
Entities.draw(Entities.defaultGroup()); Entities.draw(Entities.defaultGroup());
blocks.drawBlocks(true); blocks.drawBlocks(true);
Graphics.shader(Shaders.outline, false);
Entities.draw(playerGroup, p -> p.isAndroid); Entities.draw(playerGroup, p -> p.isAndroid);
Graphics.shader();
Entities.draw(bulletGroup); Entities.draw(bulletGroup);
drawShield(); drawShield();
@@ -208,6 +211,10 @@ public class Renderer extends RendererModule{
super.resize(width, height); super.resize(width, height);
control.input().resetCursor(); control.input().resetCursor();
camera.position.set(player.x, player.y, 0); camera.position.set(player.x, player.y, 0);
int scale = Settings.getBool("pixelate") ? Core.cameraScale : 1;
Graphics.getEffects1().setScale(scale);
Graphics.getEffects2().setScale(scale);
} }
public void clearTiles(){ public void clearTiles(){
@@ -224,7 +231,7 @@ public class Renderer extends RendererModule{
Draw.color(0f, 0f, 0f, 0.3f); Draw.color(0f, 0f, 0f, 0.3f);
Draw.rect("blank", player.x, player.y + 8 - layout.height/2, layout.width + 2, layout.height + 2); Draw.rect("blank", player.x, player.y + 8 - layout.height/2, layout.width + 2, layout.height + 2);
Draw.color(); Draw.color();
Draw.tcolor(NetCommon.colorArray[player.id % NetCommon.colorArray.length]); Draw.tcolor(player.getColor());
Draw.text(player.name, player.x, player.y + 8); Draw.text(player.name, player.x, player.y + 8);
Draw.tcolor(); Draw.tcolor();
} }

View File

@@ -1,16 +1,16 @@
package io.anuke.mindustry.entities; package io.anuke.mindustry.entities;
import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.core.NetCommon;
import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.graphics.Fx;
import io.anuke.mindustry.graphics.Shaders;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.NetEvents; import io.anuke.mindustry.net.NetEvents;
import io.anuke.mindustry.resource.Mech; import io.anuke.mindustry.resource.Mech;
import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.resource.Weapon;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.mindustry.world.blocks.Blocks;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.*;
import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.SolidEntity; import io.anuke.ucore.entities.SolidEntity;
import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Angles;
@@ -109,24 +109,32 @@ public class Player extends SyncEntity{
String part = isAndroid ? "ship" : "mech"; String part = isAndroid ? "ship" : "mech";
Shaders.outline.color.set(getColor());
Shaders.outline.lighten = 0f;
Shaders.outline.region = Draw.region(part + "-" + mech.name);
Shaders.outline.apply();
if(!isAndroid) {
for (int i : Mathf.signs) {
Weapon weapon = i < 0 ? weaponLeft : weaponRight;
Angles.vector.set(3 * i, 2).rotate(angle - 90);
float w = i > 0 ? -8 : 8;
if(snap){
Draw.rect(weapon.name + "-equip", (int)x + Angles.x(), (int)y + Angles.y(), w, 8, angle - 90);
}else{
Draw.rect(weapon.name + "-equip", x + Angles.x(), y + Angles.y(), w, 8, angle - 90);
}
}
}
if(snap){ if(snap){
Draw.rect(part + "-" + mech.name, (int)x, (int)y, angle-90); Draw.rect(part + "-" + mech.name, (int)x, (int)y, angle-90);
}else{ }else{
Draw.rect(part + "-" + mech.name, x, y, angle-90); Draw.rect(part + "-" + mech.name, x, y, angle-90);
} }
if(!isAndroid) { Graphics.flush();
for (boolean b : new boolean[]{true, false}) {
Weapon weapon = b ? weaponLeft : weaponRight;
Angles.translation(angle + Mathf.sign(b) * -50f, 3.5f);
float s = 5f;
if(snap){
Draw.rect(weapon.name, (int)x + Angles.x(), (int)y + Angles.y(), s, s, angle- 90);
}else{
Draw.rect(weapon.name, x + Angles.x(), y + Angles.y(), s, s, angle - 90);
}
}
}
} }
@Override @Override
@@ -250,4 +258,8 @@ public class Player extends SyncEntity{
y = Mathf.lerpDelta(y, i.target.y, 0.4f); y = Mathf.lerpDelta(y, i.target.y, 0.4f);
angle = Mathf.lerpAngDelta(angle, i.targetrot, 0.6f); angle = Mathf.lerpAngDelta(angle, i.targetrot, 0.6f);
} }
public Color getColor(){
return NetCommon.colorArray[id % NetCommon.colorArray.length];
}
} }

View File

@@ -26,4 +26,5 @@ public abstract class Platform {
public boolean canJoinGame(){ public boolean canJoinGame(){
return true; return true;
} }
public boolean isDebug(){return false;}
} }

View File

@@ -5,11 +5,13 @@ import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.IntMap; import com.badlogic.gdx.utils.IntMap;
import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.ObjectMap;
import com.badlogic.gdx.utils.reflect.ClassReflection; import com.badlogic.gdx.utils.reflect.ClassReflection;
import io.anuke.mindustry.io.Platform;
import io.anuke.mindustry.net.Packet.ImportantPacket; import io.anuke.mindustry.net.Packet.ImportantPacket;
import io.anuke.mindustry.net.Packets.KickReason; import io.anuke.mindustry.net.Packets.KickReason;
import io.anuke.mindustry.net.Streamable.StreamBegin; import io.anuke.mindustry.net.Streamable.StreamBegin;
import io.anuke.mindustry.net.Streamable.StreamBuilder; import io.anuke.mindustry.net.Streamable.StreamBuilder;
import io.anuke.mindustry.net.Streamable.StreamChunk; import io.anuke.mindustry.net.Streamable.StreamChunk;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.function.BiConsumer; import io.anuke.ucore.function.BiConsumer;
import io.anuke.ucore.function.Consumer; import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.util.Log; import io.anuke.ucore.util.Log;
@@ -51,6 +53,8 @@ public class Net{
clientProvider.connect(ip, port); clientProvider.connect(ip, port);
active = true; active = true;
server = false; server = false;
Timers.runTask(60f, Platform.instance::updateRPC);
} }
/**Host a server at an address*/ /**Host a server at an address*/
@@ -58,6 +62,8 @@ public class Net{
serverProvider.host(port); serverProvider.host(port);
active = true; active = true;
server = true; server = true;
Timers.runTask(60f, Platform.instance::updateRPC);
} }
/**Closes the server.*/ /**Closes the server.*/

View File

@@ -22,6 +22,7 @@ public class NetworkIO {
public static void writeMap(Map map, OutputStream os){ public static void writeMap(Map map, OutputStream os){
try(DataOutputStream stream = new DataOutputStream(os)){ try(DataOutputStream stream = new DataOutputStream(os)){
stream.writeUTF(map.name);
stream.writeBoolean(map.oreGen); stream.writeBoolean(map.oreGen);
stream.writeShort(map.getWidth()); stream.writeShort(map.getWidth());
@@ -65,6 +66,7 @@ public class NetworkIO {
public static Map loadMap(InputStream is){ public static Map loadMap(InputStream is){
try(DataInputStream stream = new DataInputStream(is)){ try(DataInputStream stream = new DataInputStream(is)){
String name = stream.readUTF();
boolean ores = stream.readBoolean(); boolean ores = stream.readBoolean();
short width = stream.readShort(); short width = stream.readShort();
@@ -85,11 +87,11 @@ public class NetworkIO {
} }
Map map = new Map(); Map map = new Map();
map.name = name;
map.oreGen = ores; map.oreGen = ores;
map.custom = true; map.custom = true;
map.pixmap = pixmap; map.pixmap = pixmap;
map.visible = false; map.visible = false;
map.name = "network map";
map.id = -1; map.id = -1;
return map; return map;

View File

@@ -20,6 +20,7 @@ public class Weapon extends Upgrade{
blaster = new Weapon("blaster", 12, BulletType.shot){ blaster = new Weapon("blaster", 12, BulletType.shot){
{ {
effect = Fx.laserShoot; effect = Fx.laserShoot;
length = 2f;
} }
}, },
triblaster = new Weapon("triblaster", 16, BulletType.spread){ triblaster = new Weapon("triblaster", 16, BulletType.spread){
@@ -63,6 +64,7 @@ public class Weapon extends Upgrade{
roundrobin = true; roundrobin = true;
shots = 7; shots = 7;
inaccuracy = 15f; inaccuracy = 15f;
length = 3.5f;
} }
}; };
/**weapon reload in frames*/ /**weapon reload in frames*/
@@ -81,6 +83,8 @@ public class Weapon extends Upgrade{
float shake = 0f; float shake = 0f;
/**effect displayed when shooting*/ /**effect displayed when shooting*/
Effect effect; Effect effect;
/**shoot barrel length*/
float length = 3f;
/**whether to shoot the weapons in different arms one after another, rather an all at once*/ /**whether to shoot the weapons in different arms one after another, rather an all at once*/
boolean roundrobin = false; boolean roundrobin = false;
@@ -96,7 +100,7 @@ public class Weapon extends Upgrade{
Timers.reset(p, "reload" + !left, reload/2f); Timers.reset(p, "reload" + !left, reload/2f);
} }
float ang = Angles.mouseAngle(p.x, p.y); float ang = Angles.mouseAngle(p.x, p.y);
Angles.translation(ang + Mathf.sign(left) * -60f, 3f); Angles.vector.set(3f * Mathf.sign(left), length).rotate(ang - 90);
shoot(p, p.x + Angles.x(), p.y + Angles.y(), Angles.mouseAngle(p.x + Angles.x(), p.y + Angles.y())); shoot(p, p.x + Angles.x(), p.y + Angles.y(), Angles.mouseAngle(p.x + Angles.x(), p.y + Angles.y()));
} }
} }

View File

@@ -8,6 +8,7 @@ import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Settings; import io.anuke.ucore.core.Settings;
import io.anuke.ucore.function.Consumer; import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.scene.ui.Image; import io.anuke.ucore.scene.ui.Image;
@@ -114,6 +115,13 @@ public class SettingsMenuDialog extends SettingsDialog{
graphics.checkPref("fps", false); graphics.checkPref("fps", false);
graphics.checkPref("vsync", true, b -> Gdx.graphics.setVSync(b)); graphics.checkPref("vsync", true, b -> Gdx.graphics.setVSync(b));
graphics.checkPref("fullscreen", false, b -> {
if(b){
Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
}else{
Gdx.graphics.setWindowedMode(600, 480);
}
});
graphics.checkPref("lasers", true); graphics.checkPref("lasers", true);
graphics.checkPref("indicators", true); graphics.checkPref("indicators", true);
graphics.checkPref("healthbars", true); graphics.checkPref("healthbars", true);
@@ -122,14 +130,21 @@ public class SettingsMenuDialog extends SettingsDialog{
renderer.pixelSurface.setScale(Core.cameraScale); renderer.pixelSurface.setScale(Core.cameraScale);
renderer.shadowSurface.setScale(Core.cameraScale); renderer.shadowSurface.setScale(Core.cameraScale);
renderer.shieldSurface.setScale(Core.cameraScale); renderer.shieldSurface.setScale(Core.cameraScale);
Graphics.getEffects1().setScale(Core.cameraScale);
Graphics.getEffects2().setScale(Core.cameraScale);
}else{ }else{
renderer.shadowSurface.setScale(1); renderer.shadowSurface.setScale(1);
renderer.shieldSurface.setScale(1); renderer.shieldSurface.setScale(1);
Graphics.getEffects1().setScale(1);
Graphics.getEffects2().setScale(1);
} }
renderer.setPixelate(b); renderer.setPixelate(b);
}); });
Gdx.graphics.setVSync(Settings.getBool("vsync")); Gdx.graphics.setVSync(Settings.getBool("vsync"));
if(!gwt && Settings.getBool("fullscreen")){
Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
}
} }
private void back(){ private void back(){

View File

@@ -57,6 +57,8 @@ public class DebugFragment implements Fragment {
row(); row();
new button("spawn", () -> new Enemy(EnemyTypes.standard).set(player.x, player.y).add()); new button("spawn", () -> new Enemy(EnemyTypes.standard).set(player.x, player.y).add());
row(); row();
new button("stuff", () -> netClient.test());
row();
}}.end(); }}.end();
row(); row();
@@ -102,16 +104,23 @@ public class DebugFragment implements Fragment {
}}.end(); }}.end();
} }
public static void printDebugInfo(){
Gdx.app.error("Minudstry Info Dump", debugInfo());
}
public static String debugInfo(){ public static String debugInfo(){
return join( return join(
"net.active: " + Net.active(), "net.active: " + Net.active(),
"net.server: " + Net.server(), "net.server: " + Net.server(),
Net.client() ? "chat.open: " + ui.chatfrag.chatOpen() : "", Net.client() ?
Net.client() ? "chat.messages: " + ui.chatfrag.getMessagesSize() : "", "chat.open: " + ui.chatfrag.chatOpen() + "\n" +
"chat.messages: " + ui.chatfrag.getMessagesSize() + "\n" +
"client.connecting: " + netClient.isConnecting() + "\n" +
"client.hasdata: " + netClient.hasData() : "",
"players: " + playerGroup.size(), "players: " + playerGroup.size(),
"enemies: " + enemyGroup.size(), "enemies: " + enemyGroup.size(),
"tiles: " + tileGroup.size(), "tiles: " + tileGroup.size(),
world.getCore() != null ? "core.health: " + world.getCore().entity.health : "", world.getCore() != null && world.getCore().entity != null ? "core.health: " + world.getCore().entity.health : "",
"", "",
!Net.server() ? clientDebug.getOut() : serverDebug.getOut() !Net.server() ? clientDebug.getOut() : serverDebug.getOut()
); );

View File

@@ -63,6 +63,7 @@ public class HudFragment implements Fragment{
}).get(); }).get();
new imagebutton("icon-pause", isize, () -> { new imagebutton("icon-pause", isize, () -> {
if(android) DebugFragment.printDebugInfo();
if (Net.active() && android) { if (Net.active() && android) {
ui.listfrag.visible = !ui.listfrag.visible; ui.listfrag.visible = !ui.listfrag.visible;
} else { } else {

View File

@@ -18,7 +18,7 @@ public class DesktopLauncher {
config.setWindowedMode(960, 540); config.setWindowedMode(960, 540);
config.setWindowIcon("sprites/icon.png"); config.setWindowIcon("sprites/icon.png");
Platform.instance = new DesktopPlatform(); Platform.instance = new DesktopPlatform(arg);
Net.setClientProvider(new KryoClient()); Net.setClientProvider(new KryoClient());
Net.setServerProvider(new KryoServer()); Net.setServerProvider(new KryoServer());

View File

@@ -3,7 +3,6 @@ package io.anuke.mindustry.desktop;
import club.minnced.discord.rpc.DiscordEventHandlers; import club.minnced.discord.rpc.DiscordEventHandlers;
import club.minnced.discord.rpc.DiscordRPC; import club.minnced.discord.rpc.DiscordRPC;
import club.minnced.discord.rpc.DiscordRichPresence; import club.minnced.discord.rpc.DiscordRichPresence;
import static io.anuke.mindustry.Vars.*;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.io.Platform; import io.anuke.mindustry.io.Platform;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
@@ -16,14 +15,15 @@ import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
import static io.anuke.mindustry.Vars.state; import static io.anuke.mindustry.Vars.*;
import static io.anuke.mindustry.Vars.world;
public class DesktopPlatform extends Platform { public class DesktopPlatform extends Platform {
DateFormat format = SimpleDateFormat.getDateTimeInstance(); DateFormat format = SimpleDateFormat.getDateTimeInstance();
DiscordRPC lib = DiscordRPC.INSTANCE; DiscordRPC lib = DiscordRPC.INSTANCE;
String[] args;
public DesktopPlatform(){ public DesktopPlatform(String[] args){
this.args = args;
String applicationId = "398246104468291591"; String applicationId = "398246104468291591";
DiscordEventHandlers handlers = new DiscordEventHandlers(); DiscordEventHandlers handlers = new DiscordEventHandlers();
@@ -80,4 +80,9 @@ public class DesktopPlatform extends Platform {
public void onGameExit() { public void onGameExit() {
lib.Discord_Shutdown(); lib.Discord_Shutdown();
} }
@Override
public boolean isDebug() {
return args.length > 0 && args[0].equalsIgnoreCase("-debug");
}
} }