From d9c7665aca216720a04d299d49a674e7dda761d5 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 11 Sep 2019 12:37:58 -0400 Subject: [PATCH] Events --- core/src/io/anuke/mindustry/core/Logic.java | 30 +++++------ .../io/anuke/mindustry/core/NetClient.java | 52 +++++++++---------- .../anuke/mindustry/entities/type/Player.java | 1 + .../io/anuke/mindustry/game/EventType.java | 9 ---- .../mindustry/ui/dialogs/GameOverDialog.java | 6 +++ .../mindustry/ui/dialogs/MapsDialog.java | 2 + .../mindustry/desktop/steam/SWorkshop.java | 2 + 7 files changed, 48 insertions(+), 54 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/Logic.java b/core/src/io/anuke/mindustry/core/Logic.java index 70cd86c9de..eaa60fe80a 100644 --- a/core/src/io/anuke/mindustry/core/Logic.java +++ b/core/src/io/anuke/mindustry/core/Logic.java @@ -1,28 +1,21 @@ package io.anuke.mindustry.core; -import io.anuke.annotations.Annotations.Loc; -import io.anuke.annotations.Annotations.Remote; -import io.anuke.arc.ApplicationListener; -import io.anuke.arc.Events; -import io.anuke.arc.collection.ObjectSet.ObjectSetIterator; +import io.anuke.annotations.Annotations.*; +import io.anuke.arc.*; +import io.anuke.arc.collection.ObjectSet.*; import io.anuke.arc.util.*; import io.anuke.mindustry.content.*; -import io.anuke.mindustry.core.GameState.State; +import io.anuke.mindustry.core.GameState.*; import io.anuke.mindustry.entities.*; -import io.anuke.mindustry.entities.type.Player; -import io.anuke.mindustry.entities.type.TileEntity; +import io.anuke.mindustry.entities.type.*; import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.game.*; -import io.anuke.mindustry.game.Teams.TeamData; -import io.anuke.mindustry.gen.BrokenBlock; -import io.anuke.mindustry.gen.Call; -import io.anuke.mindustry.net.Net; -import io.anuke.mindustry.type.Item; -import io.anuke.mindustry.type.ItemStack; -import io.anuke.mindustry.world.Block; -import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.blocks.BuildBlock; -import io.anuke.mindustry.world.blocks.BuildBlock.BuildEntity; +import io.anuke.mindustry.game.Teams.*; +import io.anuke.mindustry.gen.*; +import io.anuke.mindustry.type.*; +import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.blocks.*; +import io.anuke.mindustry.world.blocks.BuildBlock.*; import static io.anuke.mindustry.Vars.*; @@ -164,6 +157,7 @@ public class Logic implements ApplicationListener{ } state.launched = true; state.gameOver = true; + Events.fire(new LaunchEvent()); //manually fire game over event now Events.fire(new GameOverEvent(defaultTeam)); }); diff --git a/core/src/io/anuke/mindustry/core/NetClient.java b/core/src/io/anuke/mindustry/core/NetClient.java index 747d2ab2f4..57aa94fdcd 100644 --- a/core/src/io/anuke/mindustry/core/NetClient.java +++ b/core/src/io/anuke/mindustry/core/NetClient.java @@ -1,37 +1,33 @@ package io.anuke.mindustry.core; import io.anuke.annotations.Annotations.*; -import io.anuke.arc.ApplicationListener; -import io.anuke.arc.Core; -import io.anuke.arc.collection.IntSet; -import io.anuke.arc.graphics.Color; -import io.anuke.arc.math.RandomXS128; -import io.anuke.arc.util.*; +import io.anuke.arc.*; +import io.anuke.arc.collection.*; +import io.anuke.arc.graphics.*; +import io.anuke.arc.math.*; import io.anuke.arc.util.CommandHandler.*; -import io.anuke.arc.util.io.ReusableByteInStream; -import io.anuke.arc.util.serialization.Base64Coder; -import io.anuke.mindustry.Vars; -import io.anuke.mindustry.core.GameState.State; -import io.anuke.mindustry.entities.EntityGroup; -import io.anuke.mindustry.entities.traits.BuilderTrait.BuildRequest; -import io.anuke.mindustry.entities.traits.SyncTrait; -import io.anuke.mindustry.entities.type.Player; -import io.anuke.mindustry.entities.type.Unit; -import io.anuke.mindustry.game.TypeID; -import io.anuke.mindustry.game.Version; -import io.anuke.mindustry.gen.Call; -import io.anuke.mindustry.gen.RemoteReadClient; -import io.anuke.mindustry.net.Administration.TraceInfo; +import io.anuke.arc.util.*; +import io.anuke.arc.util.io.*; +import io.anuke.arc.util.serialization.*; +import io.anuke.mindustry.*; +import io.anuke.mindustry.core.GameState.*; +import io.anuke.mindustry.entities.*; +import io.anuke.mindustry.entities.traits.BuilderTrait.*; +import io.anuke.mindustry.entities.traits.*; +import io.anuke.mindustry.entities.type.*; +import io.anuke.mindustry.game.EventType.*; +import io.anuke.mindustry.game.*; +import io.anuke.mindustry.gen.*; +import io.anuke.mindustry.net.Administration.*; +import io.anuke.mindustry.net.Net.*; import io.anuke.mindustry.net.*; -import io.anuke.mindustry.net.Net.SendMode; import io.anuke.mindustry.net.Packets.*; -import io.anuke.mindustry.type.ContentType; -import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.modules.ItemModule; +import io.anuke.mindustry.type.*; +import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.modules.*; -import java.io.DataInputStream; -import java.io.IOException; -import java.util.zip.InflaterInputStream; +import java.io.*; +import java.util.zip.*; import static io.anuke.mindustry.Vars.*; @@ -191,6 +187,8 @@ public class NetClient implements ApplicationListener{ player.sendMessage(text); } } + + Events.fire(new PlayerChatEvent(player, message)); } public static String colorizeName(int id, String name){ diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index 3f1fd7fde7..e1f44187fa 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -15,6 +15,7 @@ import io.anuke.mindustry.content.*; import io.anuke.mindustry.core.*; import io.anuke.mindustry.entities.*; import io.anuke.mindustry.entities.traits.*; +import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.game.*; import io.anuke.mindustry.gen.*; import io.anuke.mindustry.graphics.*; diff --git a/core/src/io/anuke/mindustry/game/EventType.java b/core/src/io/anuke/mindustry/game/EventType.java index ad1456f15f..ab89e146be 100644 --- a/core/src/io/anuke/mindustry/game/EventType.java +++ b/core/src/io/anuke/mindustry/game/EventType.java @@ -19,25 +19,16 @@ public class EventType{ fireExtinguish } - //TODO public static class WinEvent{} - //TODO public static class LoseEvent{} - //TODO public static class LaunchEvent{} - //TODO - public static class PlayerDeathEvent{} - - //TODO public static class MapMakeEvent{} - //TODO public static class MapPublishEvent{} - //TODO public static class PlayerChatEvent{ public final Player player; public final String message; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/GameOverDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/GameOverDialog.java index 3078c01d56..02d967ac26 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/GameOverDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/GameOverDialog.java @@ -2,6 +2,7 @@ package io.anuke.mindustry.ui.dialogs; import io.anuke.arc.*; import io.anuke.mindustry.core.GameState.*; +import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.game.Stats.*; import io.anuke.mindustry.game.*; import io.anuke.mindustry.type.*; @@ -21,6 +22,11 @@ public class GameOverDialog extends FloatingDialog{ public void show(Team winner){ this.winner = winner; show(); + if(winner == player.getTeam()){ + Events.fire(new WinEvent()); + }else{ + Events.fire(new LoseEvent()); + } } void rebuild(){ diff --git a/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java index 87ee2ac5b8..956c76bbd5 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java @@ -9,6 +9,7 @@ import io.anuke.arc.scene.ui.*; import io.anuke.arc.scene.ui.layout.*; import io.anuke.arc.util.*; import io.anuke.mindustry.*; +import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.gen.*; import io.anuke.mindustry.graphics.*; import io.anuke.mindustry.io.*; @@ -56,6 +57,7 @@ public class MapsDialog extends FloatingDialog{ hide(); ui.editor.show(); ui.editor.editor.getTags().put("name", text); + Events.fire(new MapMakeEvent()); }); }); }).size(210f, 64f); diff --git a/desktop/src/io/anuke/mindustry/desktop/steam/SWorkshop.java b/desktop/src/io/anuke/mindustry/desktop/steam/SWorkshop.java index 4277bcaefa..eda2b902af 100644 --- a/desktop/src/io/anuke/mindustry/desktop/steam/SWorkshop.java +++ b/desktop/src/io/anuke/mindustry/desktop/steam/SWorkshop.java @@ -6,6 +6,7 @@ import com.codedisaster.steamworks.SteamUGC.*; import io.anuke.arc.*; import io.anuke.arc.files.*; import io.anuke.arc.util.*; +import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.game.*; import io.anuke.mindustry.maps.*; @@ -101,6 +102,7 @@ public class SWorkshop implements SteamUGCCallback{ if(result == SteamResult.OK){ //redirect user to page for further updates SVars.net.friends.activateGameOverlayToWebPage("steam://url/CommunityFilePage/" + SteamNativeHandle.getNativeHandle(publishedFileID)); + Events.fire(new MapPublishEvent()); }else{ ui.showErrorMessage(Core.bundle.format("map.publish.error ", result.name())); }