From 0e0a7ea562d90345c24fe6770103ca0279526f91 Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Fri, 28 Sep 2018 12:13:07 +0900 Subject: [PATCH] Move client Battle to ClientProxy --- .../TurnBasedMinecraft/client/BattleGui.java | 27 ++++++++++--------- .../client/ClientProxy.java | 21 ++++++++++++--- .../common/CommonProxy.java | 7 +++++ .../common/TurnBasedMinecraftMod.java | 3 --- .../common/networking/PacketBattleInfo.java | 8 +++--- .../networking/PacketBattleMessage.java | 14 +++++----- 6 files changed, 51 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/client/BattleGui.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/client/BattleGui.java index 1b32161..b8c5c8e 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/client/BattleGui.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/client/BattleGui.java @@ -119,15 +119,18 @@ public class BattleGui extends GuiScreen public void turnBegin() { - TurnBasedMinecraftMod.currentBattle.setState(Battle.State.ACTION); + if(TurnBasedMinecraftMod.commonProxy.getLocalBattle() != null) + { + TurnBasedMinecraftMod.commonProxy.getLocalBattle().setState(Battle.State.ACTION); + } setState(MenuState.WAITING); } public void turnEnd() { - if(TurnBasedMinecraftMod.currentBattle != null) + if(TurnBasedMinecraftMod.commonProxy.getLocalBattle() != null) { - TurnBasedMinecraftMod.currentBattle.setState(Battle.State.DECISION); + TurnBasedMinecraftMod.commonProxy.getLocalBattle().setState(Battle.State.DECISION); } timeRemaining.set(TurnBasedMinecraftMod.getBattleDurationSeconds()); elapsedTime = 0; @@ -161,7 +164,7 @@ public class BattleGui extends GuiScreen case ATTACK_TARGET: info = "Who will you attack?"; int y = 30; - for(Map.Entry e : TurnBasedMinecraftMod.currentBattle.getSideAEntrySet()) + for(Map.Entry e : TurnBasedMinecraftMod.commonProxy.getLocalBattle().getSideAEntrySet()) { if(e.getValue().entity != null) { @@ -174,7 +177,7 @@ public class BattleGui extends GuiScreen y += 20; } y = 30; - for(Map.Entry e : TurnBasedMinecraftMod.currentBattle.getSideBEntrySet()) + for(Map.Entry e : TurnBasedMinecraftMod.commonProxy.getLocalBattle().getSideBEntrySet()) { if(e.getValue().entity != null) { @@ -219,12 +222,12 @@ public class BattleGui extends GuiScreen @Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { - if(TurnBasedMinecraftMod.currentBattle == null) + if(TurnBasedMinecraftMod.commonProxy.getLocalBattle() == null) { drawHoveringText("Waiting...", width / 2 - 50, height / 2); return; } - if(TurnBasedMinecraftMod.currentBattle.getState() == Battle.State.DECISION && timeRemaining.get() > 0) + if(TurnBasedMinecraftMod.commonProxy.getLocalBattle().getState() == Battle.State.DECISION && timeRemaining.get() > 0) { long nextInstant = System.nanoTime(); elapsedTime += nextInstant - lastInstant; @@ -270,20 +273,20 @@ public class BattleGui extends GuiScreen setState(MenuState.ATTACK_TARGET); break; case DEFEND: - TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.currentBattle.getId(), Battle.Decision.DEFEND, 0)); + TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.commonProxy.getLocalBattle().getId(), Battle.Decision.DEFEND, 0)); setState(MenuState.WAITING); break; case ITEM: setState(MenuState.ITEM_ACTION); break; case FLEE: - TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.currentBattle.getId(), Battle.Decision.FLEE, 0)); + TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.commonProxy.getLocalBattle().getId(), Battle.Decision.FLEE, 0)); setState(MenuState.WAITING); break; case ATTACK_TARGET: if(button instanceof EntitySelectionButton) { - TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.currentBattle.getId(), Battle.Decision.ATTACK, ((EntitySelectionButton)button).entityID)); + TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.commonProxy.getLocalBattle().getId(), Battle.Decision.ATTACK, ((EntitySelectionButton)button).entityID)); setState(MenuState.WAITING); } else @@ -303,7 +306,7 @@ public class BattleGui extends GuiScreen case DO_ITEM_SWITCH: if(button instanceof ItemSelectionButton) { - TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.currentBattle.getId(), Battle.Decision.SWITCH_ITEM, ((ItemSelectionButton)button).itemStackID)); + TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.commonProxy.getLocalBattle().getId(), Battle.Decision.SWITCH_ITEM, ((ItemSelectionButton)button).itemStackID)); if(((ItemSelectionButton)button).itemStackID >= 0 && ((ItemSelectionButton)button).itemStackID < 9) { Minecraft.getMinecraft().player.inventory.currentItem = ((ItemSelectionButton)button).itemStackID; @@ -318,7 +321,7 @@ public class BattleGui extends GuiScreen case DO_USE_ITEM: if(button instanceof ItemSelectionButton) { - TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.currentBattle.getId(), Battle.Decision.USE_ITEM, ((ItemSelectionButton)button).itemStackID)); + TurnBasedMinecraftMod.NWINSTANCE.sendToServer(new PacketBattleDecision(TurnBasedMinecraftMod.commonProxy.getLocalBattle().getId(), Battle.Decision.USE_ITEM, ((ItemSelectionButton)button).itemStackID)); setState(MenuState.WAITING); } else diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/client/ClientProxy.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/client/ClientProxy.java index dd9c7ba..acb817f 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/client/ClientProxy.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/client/ClientProxy.java @@ -2,6 +2,7 @@ package com.seodisparate.TurnBasedMinecraft.client; import org.apache.logging.log4j.Logger; +import com.seodisparate.TurnBasedMinecraft.common.Battle; import com.seodisparate.TurnBasedMinecraft.common.CommonProxy; import com.seodisparate.TurnBasedMinecraft.common.Config; import com.seodisparate.TurnBasedMinecraft.common.TurnBasedMinecraftMod; @@ -19,6 +20,7 @@ public class ClientProxy extends CommonProxy private Config config; private int battleMusicCount; private int sillyMusicCount; + private Battle localBattle; @Override public void initialize() @@ -27,6 +29,7 @@ public class ClientProxy extends CommonProxy battleMusic = null; // will be initialized in postInit() battleMusicCount = 0; sillyMusicCount = 0; + localBattle = null; } @Override @@ -74,7 +77,7 @@ public class ClientProxy extends CommonProxy @Override public void battleEnded() { - TurnBasedMinecraftMod.currentBattle = null; + localBattle = null; Minecraft.getMinecraft().addScheduledTask(() -> { Minecraft.getMinecraft().displayGuiScreen(null); Minecraft.getMinecraft().setIngameFocus(); @@ -120,7 +123,7 @@ public class ClientProxy extends CommonProxy @Override public void typeEnteredBattle(String type) { - if(TurnBasedMinecraftMod.currentBattle == null) + if(localBattle == null) { return; } @@ -142,7 +145,7 @@ public class ClientProxy extends CommonProxy @Override public void typeLeftBattle(String type) { - if(TurnBasedMinecraftMod.currentBattle == null) + if(localBattle == null) { return; } @@ -226,4 +229,16 @@ public class ClientProxy extends CommonProxy } } } + + @Override + public Battle getLocalBattle() + { + return localBattle; + } + + @Override + public void createLocalBattle(int id) + { + localBattle = new Battle(id, null, null, false); + } } diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommonProxy.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommonProxy.java index 259693e..55cc066 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommonProxy.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommonProxy.java @@ -71,4 +71,11 @@ public class CommonProxy { return TurnBasedMinecraftMod.battleManager != null; } + + public Battle getLocalBattle() + { + return null; + } + + public void createLocalBattle(int id) {} } diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java index b23cb86..6f67eba 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java @@ -54,8 +54,6 @@ public class TurnBasedMinecraftMod public static final long BATTLE_DECISION_DURATION_NANO_DEFAULT = 15000000000L; private static long BATTLE_DECISION_DURATION_NANOSECONDS = BATTLE_DECISION_DURATION_NANO_DEFAULT; - public static Battle currentBattle = null; - @SidedProxy(modId=MODID, serverSide="com.seodisparate.TurnBasedMinecraft.common.CommonProxy", clientSide="com.seodisparate.TurnBasedMinecraft.client.ClientProxy") public static CommonProxy commonProxy; @@ -69,7 +67,6 @@ public class TurnBasedMinecraftMod public void init(FMLInitializationEvent event) { commonProxy.initialize(); - currentBattle = null; battleManager = null; attackerViaBow = new HashSet(); commonProxy.setLogger(logger); diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleInfo.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleInfo.java index 0cc1527..794936c 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleInfo.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleInfo.java @@ -68,18 +68,18 @@ public class PacketBattleInfo implements IMessage @Override public IMessage onMessage(PacketBattleInfo message, MessageContext ctx) { - if(TurnBasedMinecraftMod.currentBattle == null) + if(TurnBasedMinecraftMod.commonProxy.getLocalBattle() == null) { return null; } - TurnBasedMinecraftMod.currentBattle.clearCombatants(); + TurnBasedMinecraftMod.commonProxy.getLocalBattle().clearCombatants(); for(Integer id : message.sideA) { - TurnBasedMinecraftMod.currentBattle.addCombatantToSideA(Minecraft.getMinecraft().world.getEntityByID(id)); + TurnBasedMinecraftMod.commonProxy.getLocalBattle().addCombatantToSideA(Minecraft.getMinecraft().world.getEntityByID(id)); } for(Integer id : message.sideB) { - TurnBasedMinecraftMod.currentBattle.addCombatantToSideB(Minecraft.getMinecraft().world.getEntityByID(id)); + TurnBasedMinecraftMod.commonProxy.getLocalBattle().addCombatantToSideB(Minecraft.getMinecraft().world.getEntityByID(id)); } TurnBasedMinecraftMod.commonProxy.setBattleGuiTime((int)(message.decisionNanos / 1000000000L)); TurnBasedMinecraftMod.commonProxy.setBattleGuiBattleChanged(); diff --git a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleMessage.java b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleMessage.java index 2114ac5..37bfa83 100644 --- a/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleMessage.java +++ b/src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleMessage.java @@ -168,9 +168,9 @@ public class PacketBattleMessage implements IMessage from = fromEntity.getName(); } } - else if(TurnBasedMinecraftMod.currentBattle != null) + else if(TurnBasedMinecraftMod.commonProxy.getLocalBattle() != null) { - fromEntity = TurnBasedMinecraftMod.currentBattle.getCombatantEntity(message.entityIDFrom); + fromEntity = TurnBasedMinecraftMod.commonProxy.getLocalBattle().getCombatantEntity(message.entityIDFrom); if(fromEntity != null) { if(fromEntity.hasCustomName()) @@ -204,9 +204,9 @@ public class PacketBattleMessage implements IMessage to = toEntity.getName(); } } - else if(TurnBasedMinecraftMod.currentBattle != null) + else if(TurnBasedMinecraftMod.commonProxy.getLocalBattle() != null) { - toEntity = TurnBasedMinecraftMod.currentBattle.getCombatantEntity(message.entityIDTo); + toEntity = TurnBasedMinecraftMod.commonProxy.getLocalBattle().getCombatantEntity(message.entityIDTo); if(toEntity != null) { if(toEntity.hasCustomName()) @@ -228,9 +228,9 @@ public class PacketBattleMessage implements IMessage { case ENTERED: TurnBasedMinecraftMod.commonProxy.displayString(from + " entered battle!"); - if(TurnBasedMinecraftMod.currentBattle == null || TurnBasedMinecraftMod.currentBattle.getId() != message.amount) + if(TurnBasedMinecraftMod.commonProxy.getLocalBattle() == null || TurnBasedMinecraftMod.commonProxy.getLocalBattle().getId() != message.amount) { - TurnBasedMinecraftMod.currentBattle = new Battle(message.amount, null, null, false); + TurnBasedMinecraftMod.commonProxy.createLocalBattle(message.amount); } TurnBasedMinecraftMod.commonProxy.battleStarted(); TurnBasedMinecraftMod.commonProxy.typeEnteredBattle(message.custom); @@ -301,7 +301,7 @@ public class PacketBattleMessage implements IMessage TurnBasedMinecraftMod.commonProxy.battleGuiTurnBegin(); break; case TURN_END: - if(TurnBasedMinecraftMod.currentBattle != null) + if(TurnBasedMinecraftMod.commonProxy.getLocalBattle() != null) { TurnBasedMinecraftMod.commonProxy.displayString("The turn ended!"); }