From 340ccd1e87f4ad4da5a20cb5c820c83812cdfb65 Mon Sep 17 00:00:00 2001 From: Aidan Brady Date: Sun, 27 Oct 2013 00:08:39 -0400 Subject: [PATCH] Slightly better packet management, removed Control Panel --- common/mekanism/client/ClientProxy.java | 4 +- .../mekanism/client/gui/GuiControlPanel.java | 191 ------------------ common/mekanism/common/Mekanism.java | 4 +- common/mekanism/common/block/BlockBasic.java | 17 +- .../mekanism/common/item/ItemBlockBasic.java | 4 +- .../tileentity/TileEntityBasicBlock.java | 5 +- .../tileentity/TileEntityControlPanel.java | 80 -------- .../TileEntityLogisticalSorter.java | 6 +- resources/assets/mekanism/lang/de_DE.lang | 1 - resources/assets/mekanism/lang/en_US.lang | 1 - resources/assets/mekanism/lang/pl_PL.lang | 1 - 11 files changed, 16 insertions(+), 298 deletions(-) delete mode 100644 common/mekanism/client/gui/GuiControlPanel.java delete mode 100644 common/mekanism/common/tileentity/TileEntityControlPanel.java diff --git a/common/mekanism/client/ClientProxy.java b/common/mekanism/client/ClientProxy.java index c98191d08..68f755646 100644 --- a/common/mekanism/client/ClientProxy.java +++ b/common/mekanism/client/ClientProxy.java @@ -6,7 +6,6 @@ import java.util.HashMap; import mekanism.api.gas.EnumGas; import mekanism.client.gui.GuiCombiner; -import mekanism.client.gui.GuiControlPanel; import mekanism.client.gui.GuiCredits; import mekanism.client.gui.GuiCrusher; import mekanism.client.gui.GuiDynamicTank; @@ -67,7 +66,6 @@ import mekanism.common.tileentity.TileEntityAdvancedElectricMachine; import mekanism.common.tileentity.TileEntityAdvancedFactory; import mekanism.common.tileentity.TileEntityChargepad; import mekanism.common.tileentity.TileEntityCombiner; -import mekanism.common.tileentity.TileEntityControlPanel; import mekanism.common.tileentity.TileEntityCrusher; import mekanism.common.tileentity.TileEntityDynamicTank; import mekanism.common.tileentity.TileEntityDynamicValve; @@ -303,7 +301,7 @@ public class ClientProxy extends CommonProxy case 8: return new GuiEnergyCube(player.inventory, (TileEntityEnergyCube)tileEntity); case 9: - return new GuiControlPanel((TileEntityControlPanel)tileEntity, player, world); + //OPEN case 10: return new GuiGasTank(player.inventory, (TileEntityGasTank)tileEntity); case 11: diff --git a/common/mekanism/client/gui/GuiControlPanel.java b/common/mekanism/client/gui/GuiControlPanel.java deleted file mode 100644 index 559b54fac..000000000 --- a/common/mekanism/client/gui/GuiControlPanel.java +++ /dev/null @@ -1,191 +0,0 @@ -package mekanism.client.gui; - -import mekanism.api.EnumColor; -import mekanism.api.IAccessibleGui; -import mekanism.api.Object3D; -import mekanism.common.PacketHandler; -import mekanism.common.PacketHandler.Transmission; -import mekanism.common.network.PacketControlPanel; -import mekanism.common.tileentity.TileEntityControlPanel; -import mekanism.common.util.MekanismUtils; -import mekanism.common.util.MekanismUtils.ResourceType; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.GuiTextField; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class GuiControlPanel extends GuiScreen -{ - public TileEntityControlPanel tileEntity; - public EntityPlayer usingPlayer; - public World worldObj; - public String displayText = ""; - public int ticker = 0; - - private GuiTextField xField; - private GuiTextField yField; - private GuiTextField zField; - - public GuiControlPanel(TileEntityControlPanel tentity, EntityPlayer player, World world) - { - tileEntity = tentity; - usingPlayer = player; - worldObj = world; - } - - @Override - public void initGui() - { - super.initGui(); - buttonList.clear(); - buttonList.add(new GuiButton(0, width / 2 - 80, height / 4 + 72 + 12, 60, 20, "Access")); - - xField = new GuiTextField(fontRenderer, width / 2 - 80, 53, 35, 12); - xField.setMaxStringLength(4); - xField.setText(Integer.toString(tileEntity.xCached)); - xField.setFocused(true); - - yField = new GuiTextField(fontRenderer, width / 2 - 80, 70, 35, 12); - yField.setMaxStringLength(4); - yField.setText(Integer.toString(tileEntity.yCached)); - - zField = new GuiTextField(fontRenderer, width / 2 - 80, 87, 35, 12); - zField.setMaxStringLength(4); - zField.setText(Integer.toString(tileEntity.zCached)); - } - - @Override - public void drawScreen(int i, int j, float f) - { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiControlPanel.png")); - drawTexturedModalRect(width / 2 - 100, height / 2 - 100, 0, 0, 176, 166); - xField.drawTextBox(); - yField.drawTextBox(); - zField.drawTextBox(); - super.drawScreen(i, j, f); - fontRenderer.drawString("Control Panel", 165, 40, 0x404040); - fontRenderer.drawString(displayText, 133, 120, 0x404040); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_DEPTH_TEST); - } - - @Override - public void keyTyped(char c, int i) - { - super.keyTyped(c, i); - - xField.textboxKeyTyped(c, i); - yField.textboxKeyTyped(c, i); - zField.textboxKeyTyped(c, i); - - try { - tileEntity.xCached = Integer.parseInt(xField.getText()); - } catch(NumberFormatException e) { tileEntity.xCached = 0; } - try { - tileEntity.yCached = Integer.parseInt(yField.getText()); - } catch(NumberFormatException e) { tileEntity.yCached = 0; } - try { - tileEntity.zCached = Integer.parseInt(zField.getText()); - } catch(NumberFormatException e) { tileEntity.zCached = 0; } - } - - @Override - public boolean doesGuiPauseGame() - { - return false; - } - - @Override - public void updateScreen() - { - xField.updateCursorCounter(); - yField.updateCursorCounter(); - zField.updateCursorCounter(); - - if(ticker > 0) - { - ticker--; - } - else { - displayText = ""; - } - } - - @Override - public void mouseClicked(int x, int y, int z) - { - super.mouseClicked(x, y, z); - xField.mouseClicked(x, y, z); - yField.mouseClicked(x, y, z); - zField.mouseClicked(x, y, z); - } - - @Override - public void actionPerformed(GuiButton guibutton) - { - if(!guibutton.enabled) - { - return; - } - - if(guibutton.id == 0) - { - try { - if(worldObj.getBlockTileEntity(Integer.parseInt(xField.getText()), Integer.parseInt(yField.getText()), Integer.parseInt(zField.getText())) != null) - { - if(worldObj.getBlockTileEntity(Integer.parseInt(xField.getText()), Integer.parseInt(yField.getText()), Integer.parseInt(zField.getText())) instanceof IAccessibleGui) - { - IAccessibleGui gui = (IAccessibleGui)worldObj.getBlockTileEntity(Integer.parseInt(xField.getText()), Integer.parseInt(yField.getText()), Integer.parseInt(zField.getText())); - - try { - Class mod = Class.forName(gui.getClassPath()); - - if(mod == null) - { - System.err.println("[Mekanism] Incorrectly implemented IAccessibleGui -- ignoring handler packet."); - System.err.println(" ~ Unable to locate class '" + gui.getClassPath() + ".'"); - return; - } - - Object instance = mod.getField(gui.getInstanceName()).get(null); - - if(instance == null) - { - System.err.println("[Mekanism] Incorrectly implemented IAccessibleGui -- ignoring handler packet."); - System.err.println(" ~ Unable to locate instance object '" + gui.getInstanceName() + ".'"); - return; - } - - PacketHandler.sendPacket(Transmission.SERVER, new PacketControlPanel().setParams(gui.getClassPath(), gui.getInstanceName(), new Object3D(Integer.parseInt(xField.getText()), Integer.parseInt(yField.getText()), Integer.parseInt(zField.getText())), gui.getGuiID())); - usingPlayer.openGui(instance, gui.getGuiID(), worldObj, Integer.parseInt(xField.getText()), Integer.parseInt(yField.getText()), Integer.parseInt(zField.getText())); - } catch(Exception e) { - System.err.println("[Mekanism] Error while handling Control Panel GUI request."); - e.printStackTrace(); - } - } - else { - displayText = EnumColor.DARK_RED + "Tile entity isn't available."; - ticker = 40; - } - } - else { - displayText = EnumColor.DARK_RED + "Tile entity doesn't exist."; - ticker = 40; - } - } catch(NumberFormatException e) { - displayText = EnumColor.DARK_RED + "Invalid characters."; - ticker = 40; - } - } - } -} diff --git a/common/mekanism/common/Mekanism.java b/common/mekanism/common/Mekanism.java index 023bc81ab..9357b080b 100644 --- a/common/mekanism/common/Mekanism.java +++ b/common/mekanism/common/Mekanism.java @@ -59,8 +59,8 @@ import mekanism.common.network.PacketDataRequest; import mekanism.common.network.PacketDigitUpdate; import mekanism.common.network.PacketElectricBowState; import mekanism.common.network.PacketElectricChest; -import mekanism.common.network.PacketNewFilter; import mekanism.common.network.PacketLogisticalSorterGui; +import mekanism.common.network.PacketNewFilter; import mekanism.common.network.PacketPortableTeleport; import mekanism.common.network.PacketPortalFX; import mekanism.common.network.PacketRedstoneControl; @@ -74,7 +74,6 @@ import mekanism.common.network.PacketTransmitterTransferUpdate.TransmitterTransf import mekanism.common.network.PacketWalkieTalkieState; import mekanism.common.network.PacketWeather; import mekanism.common.tileentity.TileEntityBoundingBlock; -import mekanism.common.tileentity.TileEntityControlPanel; import mekanism.common.tileentity.TileEntityEnergyCube; import mekanism.common.tileentity.TileEntityGasTank; import mekanism.common.tileentity.TileEntityLogisticalSorter; @@ -1028,7 +1027,6 @@ public class Mekanism //Tile entities GameRegistry.registerTileEntity(TileEntityEnergyCube.class, "EnergyCube"); GameRegistry.registerTileEntity(TileEntityBoundingBlock.class, "BoundingBlock"); - GameRegistry.registerTileEntity(TileEntityControlPanel.class, "ControlPanel"); GameRegistry.registerTileEntity(TileEntityGasTank.class, "GasTank"); GameRegistry.registerTileEntity(TileEntityTeleporter.class, "MekanismTeleporter"); GameRegistry.registerTileEntity(TileEntityLogisticalSorter.class, "LogisticalSorter"); diff --git a/common/mekanism/common/block/BlockBasic.java b/common/mekanism/common/block/BlockBasic.java index a53165e4f..f064566bc 100644 --- a/common/mekanism/common/block/BlockBasic.java +++ b/common/mekanism/common/block/BlockBasic.java @@ -9,7 +9,6 @@ import mekanism.common.Mekanism; import mekanism.common.PacketHandler; import mekanism.common.PacketHandler.Transmission; import mekanism.common.network.PacketTileEntity; -import mekanism.common.tileentity.TileEntityControlPanel; import mekanism.common.tileentity.TileEntityDynamicTank; import mekanism.common.tileentity.TileEntityDynamicValve; import net.minecraft.block.Block; @@ -39,7 +38,7 @@ import cpw.mods.fml.relauncher.SideOnly; * 3: Coal Block * 4: Refined Glowstone * 5: Steel Block - * 6: Control Panel + * 6: OPEN * 7: Teleporter Frame * 8: Steel Casing * 9: Dynamic Tank @@ -115,7 +114,7 @@ public class BlockBasic extends Block list.add(new ItemStack(i, 1, 3)); list.add(new ItemStack(i, 1, 4)); list.add(new ItemStack(i, 1, 5)); - //list.add(new ItemStack(i, 1, 6)); + //OPEN list.add(new ItemStack(i, 1, 7)); list.add(new ItemStack(i, 1, 8)); list.add(new ItemStack(i, 1, 9)); @@ -166,14 +165,6 @@ public class BlockBasic extends Block return true; } } - else if(metadata == 6) - { - if(!entityplayer.isSneaking()) - { - entityplayer.openGui(Mekanism.instance, 9, world, x, y, z); - return true; - } - } if(world.isRemote) { @@ -354,7 +345,7 @@ public class BlockBasic extends Block @Override public boolean hasTileEntity(int metadata) { - return metadata == 6 || metadata == 9 || metadata == 10 || metadata == 11; + return metadata == 9 || metadata == 10 || metadata == 11; } @Override @@ -362,8 +353,6 @@ public class BlockBasic extends Block { switch(metadata) { - case 6: - return new TileEntityControlPanel(); case 9: return new TileEntityDynamicTank(); case 10: diff --git a/common/mekanism/common/item/ItemBlockBasic.java b/common/mekanism/common/item/ItemBlockBasic.java index 327efe785..481b64f4a 100644 --- a/common/mekanism/common/item/ItemBlockBasic.java +++ b/common/mekanism/common/item/ItemBlockBasic.java @@ -13,7 +13,7 @@ import net.minecraft.util.Icon; * 3: Coal Block * 4: Refined Glowstone * 5: Steel Block - * 6: Control Panel + * 6: OPEN * 7: Teleporter Frame * 8: Steel Casing * 9: Dynamic Tank @@ -70,7 +70,7 @@ public class ItemBlockBasic extends ItemBlock name = "SteelBlock"; break; case 6: - name = "ControlPanel"; + name = "empty";//OPEN break; case 7: name = "TeleporterFrame"; diff --git a/common/mekanism/common/tileentity/TileEntityBasicBlock.java b/common/mekanism/common/tileentity/TileEntityBasicBlock.java index 3be9cbb63..7f993d9fb 100644 --- a/common/mekanism/common/tileentity/TileEntityBasicBlock.java +++ b/common/mekanism/common/tileentity/TileEntityBasicBlock.java @@ -49,7 +49,10 @@ public abstract class TileEntityBasicBlock extends TileEntity implements IWrench { if(doAutoSync && playersUsing.size() > 0) { - PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity().setParams(Object3D.get(this), getNetworkedData(new ArrayList())), Object3D.get(this), 50D); + for(EntityPlayer player : playersUsing) + { + PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketTileEntity().setParams(Object3D.get(this), getNetworkedData(new ArrayList())), player); + } } packetTick++; diff --git a/common/mekanism/common/tileentity/TileEntityControlPanel.java b/common/mekanism/common/tileentity/TileEntityControlPanel.java deleted file mode 100644 index c57b25f5f..000000000 --- a/common/mekanism/common/tileentity/TileEntityControlPanel.java +++ /dev/null @@ -1,80 +0,0 @@ -package mekanism.common.tileentity; - -import java.util.ArrayList; - -import mekanism.api.Object3D; -import mekanism.common.ITileNetwork; -import mekanism.common.PacketHandler; -import mekanism.common.PacketHandler.Transmission; -import mekanism.common.network.PacketTileEntity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; - -import com.google.common.io.ByteArrayDataInput; - -public class TileEntityControlPanel extends TileEntity implements ITileNetwork -{ - /** A counter to send packets at defined intervals. */ - public int packetTick = 0; - - /** x value stored in the GUI */ - public int xCached; - - /** y value stored in the GUI */ - public int yCached; - - /** z value stored in the GUI */ - public int zCached; - - @Override - public void updateEntity() - { - packetTick++; - - if(packetTick == 5 && !worldObj.isRemote) - { - PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity().setParams(Object3D.get(this), getNetworkedData(new ArrayList()))); - } - if(packetTick % 20 == 0 && worldObj.isRemote) - { - PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(this), getNetworkedData(new ArrayList()))); - } - } - - @Override - public void readFromNBT(NBTTagCompound nbtTags) - { - super.readFromNBT(nbtTags); - - xCached = nbtTags.getInteger("xCached"); - yCached = nbtTags.getInteger("yCached"); - zCached = nbtTags.getInteger("zCached"); - } - - @Override - public void writeToNBT(NBTTagCompound nbtTags) - { - super.writeToNBT(nbtTags); - - nbtTags.setInteger("xCached", xCached); - nbtTags.setInteger("yCached", yCached); - nbtTags.setInteger("zCached", zCached); - } - - @Override - public void handlePacketData(ByteArrayDataInput dataStream) - { - xCached = dataStream.readInt(); - yCached = dataStream.readInt(); - zCached = dataStream.readInt(); - } - - @Override - public ArrayList getNetworkedData(ArrayList data) - { - data.add(xCached); - data.add(yCached); - data.add(zCached); - return data; - } -} diff --git a/common/mekanism/common/tileentity/TileEntityLogisticalSorter.java b/common/mekanism/common/tileentity/TileEntityLogisticalSorter.java index b1b6fd9e5..87a377ce7 100644 --- a/common/mekanism/common/tileentity/TileEntityLogisticalSorter.java +++ b/common/mekanism/common/tileentity/TileEntityLogisticalSorter.java @@ -15,6 +15,7 @@ import mekanism.common.transporter.SlotInfo; import mekanism.common.transporter.TransporterFilter; import mekanism.common.util.MekanismUtils; import mekanism.common.util.TransporterUtils; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -100,7 +101,10 @@ public class TileEntityLogisticalSorter extends TileEntityElectricBlock implemen if(playersUsing.size() > 0) { - PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity().setParams(Object3D.get(this), getGenericPacket(new ArrayList())), Object3D.get(this), 50D); + for(EntityPlayer player : playersUsing) + { + PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketTileEntity().setParams(Object3D.get(this), getGenericPacket(new ArrayList())), player); + } } } } diff --git a/resources/assets/mekanism/lang/de_DE.lang b/resources/assets/mekanism/lang/de_DE.lang index aee4c2530..1d32ca2ac 100644 --- a/resources/assets/mekanism/lang/de_DE.lang +++ b/resources/assets/mekanism/lang/de_DE.lang @@ -35,7 +35,6 @@ tile.BasicBlock.RefinedObsidian.name=Raffiniertes Obsidian tile.BasicBlock.CoalBlock.name=Kohleblock tile.BasicBlock.RefinedGlowstone.name=Raffiniertes Glowstone tile.BasicBlock.SteelBlock.name=Stahlblock -tile.BasicBlock.ControlPanel.name=Kontrollpaneel tile.BasicBlock.TeleporterFrame.name=Teleporter-Rahmen tile.BasicBlock.SteelCasing.name=Stahlhülle tile.BasicBlock.DynamicTank.name=Dynamischer Tank diff --git a/resources/assets/mekanism/lang/en_US.lang b/resources/assets/mekanism/lang/en_US.lang index ea6dff815..52dc30598 100644 --- a/resources/assets/mekanism/lang/en_US.lang +++ b/resources/assets/mekanism/lang/en_US.lang @@ -35,7 +35,6 @@ tile.BasicBlock.RefinedObsidian.name=Refined Obsidian tile.BasicBlock.CoalBlock.name=Coal Block tile.BasicBlock.RefinedGlowstone.name=Refined Glowstone tile.BasicBlock.SteelBlock.name=Steel Block -tile.BasicBlock.ControlPanel.name=Control Panel tile.BasicBlock.TeleporterFrame.name=Teleporter Frame tile.BasicBlock.SteelCasing.name=Steel Casing tile.BasicBlock.DynamicTank.name=Dynamic Tank diff --git a/resources/assets/mekanism/lang/pl_PL.lang b/resources/assets/mekanism/lang/pl_PL.lang index 40aae7370..0fc651603 100644 --- a/resources/assets/mekanism/lang/pl_PL.lang +++ b/resources/assets/mekanism/lang/pl_PL.lang @@ -35,7 +35,6 @@ tile.BasicBlock.RefinedObsidian.name=Rafinowany Obsydian tile.BasicBlock.CoalBlock.name=Blok Węgla tile.BasicBlock.RefinedGlowstone.name=Rafinowany Jasnogłaz tile.BasicBlock.SteelBlock.name=Blok Stali -tile.BasicBlock.ControlPanel.name=Panel Kontrolny tile.BasicBlock.TeleporterFrame.name=Ramka Teleportera tile.BasicBlock.SteelCasing.name=Stalowa Obudowa tile.BasicBlock.DynamicTank.name=Dynamiczny Zbiornik