From 5927eaca4c6ce274bcbaaacc2c089e3d2a848bad Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sun, 26 Jul 2015 16:01:27 +0100 Subject: [PATCH] Recoded idsu, closes #81 --- .../techreborn/blocks/storage/BlockIDSU.java | 8 +- .../client/container/ContainerIDSU.java | 4 - .../command/TechRebornDevCommand.java | 3 - .../java/techreborn/packets/PacketIdsu.java | 2 +- .../techreborn/packets/PacketPipeline.java | 1 - .../packets/PacketSendIDSUManager.java | 71 --------- .../powerSystem/TilePowerAcceptor.java | 16 +- .../java/techreborn/proxies/ClientProxy.java | 2 - .../tiles/idsu/ClientSideIDSUManager.java | 19 --- .../techreborn/tiles/idsu/IDSUManager.java | 21 +-- .../java/techreborn/tiles/idsu/TileIDSU.java | 145 ++++++------------ 11 files changed, 68 insertions(+), 224 deletions(-) delete mode 100644 src/main/java/techreborn/packets/PacketSendIDSUManager.java delete mode 100644 src/main/java/techreborn/tiles/idsu/ClientSideIDSUManager.java diff --git a/src/main/java/techreborn/blocks/storage/BlockIDSU.java b/src/main/java/techreborn/blocks/storage/BlockIDSU.java index 9110f634c..aa89db892 100644 --- a/src/main/java/techreborn/blocks/storage/BlockIDSU.java +++ b/src/main/java/techreborn/blocks/storage/BlockIDSU.java @@ -66,9 +66,6 @@ public class BlockIDSU extends BlockMachineBase { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER){ - Core.packetPipeline.sendTo(IDSUManager.INSTANCE.getPacket(world), (EntityPlayerMP) player); - } if (!player.isSneaking()) player.openGui(Core.INSTANCE, GuiHandler.idsuID, world, x, y, z); @@ -80,7 +77,8 @@ public class BlockIDSU extends BlockMachineBase { super.onBlockPlacedBy(world, x, y, z, player, itemstack); TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileIDSU){ - ((TileIDSU) tile).setFacing((short) world.getBlockMetadata(x, y, z)); - } + ((TileIDSU) tile).ownerUdid = player.getUniqueID().toString(); + System.out.println(((TileIDSU) tile).ownerUdid); + } } } diff --git a/src/main/java/techreborn/client/container/ContainerIDSU.java b/src/main/java/techreborn/client/container/ContainerIDSU.java index 0db262887..b8d6e0b9b 100644 --- a/src/main/java/techreborn/client/container/ContainerIDSU.java +++ b/src/main/java/techreborn/client/container/ContainerIDSU.java @@ -58,9 +58,6 @@ public class ContainerIDSU extends TechRebornContainer { if (this.euChange != tile.getEuChange() && tile.getEuChange() != -1) { icrafting.sendProgressBarUpdate(this, 2, (int) tile.getEuChange()); } - if (this.channel != tile.channelID) { - icrafting.sendProgressBarUpdate(this, 3, tile.channelID); - } } } @@ -70,7 +67,6 @@ public class ContainerIDSU extends TechRebornContainer { crafting.sendProgressBarUpdate(this, 0, tile.output); crafting.sendProgressBarUpdate(this, 1, (int) tile.getEnergy()); crafting.sendProgressBarUpdate(this, 2, (int) tile.getEuChange()); - crafting.sendProgressBarUpdate(this, 3, tile.channelID); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/techreborn/command/TechRebornDevCommand.java b/src/main/java/techreborn/command/TechRebornDevCommand.java index 9a23db48b..c7508e3a0 100644 --- a/src/main/java/techreborn/command/TechRebornDevCommand.java +++ b/src/main/java/techreborn/command/TechRebornDevCommand.java @@ -34,11 +34,8 @@ public class TechRebornDevCommand extends CommandBase { sender.addChatMessage(new ChatComponentText("You need to use arguments, see /trdev help")); } else if ("help".equals(args[0])) { sender.addChatMessage(new ChatComponentText("recipes - Shows size of the recipe array")); - sender.addChatMessage(new ChatComponentText("idsu - Resyncs the idsu server instance to the senders client")); } else if ("recipes".equals(args[0])) { sender.addChatMessage(new ChatComponentText(RecipeHandler.recipeList.size() + " recipes loaded")); - } else if ("idsu".equals(args[0])){ - Core.packetPipeline.sendTo(IDSUManager.INSTANCE.getPacket(sender.getEntityWorld()), (EntityPlayerMP) sender); } } } diff --git a/src/main/java/techreborn/packets/PacketIdsu.java b/src/main/java/techreborn/packets/PacketIdsu.java index 9442fd46c..c6012abe0 100644 --- a/src/main/java/techreborn/packets/PacketIdsu.java +++ b/src/main/java/techreborn/packets/PacketIdsu.java @@ -66,6 +66,6 @@ public class PacketIdsu extends AbstractPacket { @Override public void handleServerSide(EntityPlayer player) { idsu = (TileIDSU) player.getEntityWorld().getTileEntity(x, y, z); - idsu.handleGuiInputFromClient(buttonID, channel, player, newName); + idsu.handleGuiInputFromClient(buttonID); } } diff --git a/src/main/java/techreborn/packets/PacketPipeline.java b/src/main/java/techreborn/packets/PacketPipeline.java index 58e47cfb2..01337a15e 100644 --- a/src/main/java/techreborn/packets/PacketPipeline.java +++ b/src/main/java/techreborn/packets/PacketPipeline.java @@ -122,7 +122,6 @@ public class PacketPipeline extends MessageToMessageCodec getMaxPower()) { - this.energy = getMaxPower(); + if (this.getEnergy() > getMaxPower()) { + this.setEnergy(getMaxPower()); } else if (this.energy < 0) { - this.energy = 0; + this.setEnergy(0); } } @@ -223,7 +223,7 @@ public abstract class TilePowerAcceptor extends RFProviderTile implements double energyReceived = Math.min(getMaxPower() - energy, Math.min(this.getMaxPower(), energy)); if (!simulate) { - this.energy += energyReceived; + setEnergy(energy + energyReceived); } return energyReceived; } @@ -243,7 +243,7 @@ public abstract class TilePowerAcceptor extends RFProviderTile implements double energyExtracted = Math.min(energy, Math.min(this.getMaxOutput(), energy)); if (!simulate) { - this.energy -= energyExtracted; + setEnergy(energy - energyExtracted); } return energyExtracted; } diff --git a/src/main/java/techreborn/proxies/ClientProxy.java b/src/main/java/techreborn/proxies/ClientProxy.java index 6248cf8d1..586e268fc 100644 --- a/src/main/java/techreborn/proxies/ClientProxy.java +++ b/src/main/java/techreborn/proxies/ClientProxy.java @@ -5,7 +5,6 @@ import net.minecraftforge.common.MinecraftForge; import techreborn.client.IconSupplier; import techreborn.client.hud.ChargeHud; import techreborn.client.keybindings.KeyBindings; -import techreborn.tiles.idsu.ClientSideIDSUManager; public class ClientProxy extends CommonProxy { @@ -16,6 +15,5 @@ public class ClientProxy extends CommonProxy { MinecraftForge.EVENT_BUS.register(new IconSupplier()); MinecraftForge.EVENT_BUS.register(new ChargeHud()); ClientRegistry.registerKeyBinding(KeyBindings.config); - MinecraftForge.EVENT_BUS.register(new ClientSideIDSUManager()); } } diff --git a/src/main/java/techreborn/tiles/idsu/ClientSideIDSUManager.java b/src/main/java/techreborn/tiles/idsu/ClientSideIDSUManager.java deleted file mode 100644 index 67f7277c1..000000000 --- a/src/main/java/techreborn/tiles/idsu/ClientSideIDSUManager.java +++ /dev/null @@ -1,19 +0,0 @@ -package techreborn.tiles.idsu; - -import cpw.mods.fml.common.eventhandler.EventPriority; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraftforge.event.world.WorldEvent; - -@SideOnly(Side.CLIENT) -public class ClientSideIDSUManager { - - public static IDSUManager CLIENT = new IDSUManager(); - - @SubscribeEvent(priority = EventPriority.HIGHEST) - public void worldLoad(WorldEvent.Load event) { - CLIENT = new IDSUManager(); - } - -} diff --git a/src/main/java/techreborn/tiles/idsu/IDSUManager.java b/src/main/java/techreborn/tiles/idsu/IDSUManager.java index 655b65f0d..9281882d4 100644 --- a/src/main/java/techreborn/tiles/idsu/IDSUManager.java +++ b/src/main/java/techreborn/tiles/idsu/IDSUManager.java @@ -8,7 +8,6 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.world.World; import net.minecraft.world.storage.ISaveHandler; import net.minecraftforge.event.world.WorldEvent; -import techreborn.packets.PacketSendIDSUManager; import java.io.*; import java.lang.reflect.Type; @@ -57,7 +56,7 @@ public class IDSUManager { worldData.clear(); } - public IDSUValueSaveData getSaveDataForWorld(World world, int channel) { + public IDSUValueSaveData getSaveDataForWorld(World world, String channel) { if (worldData.containsKey(world)) { return worldData.get(world).getSaves(channel); } else { @@ -80,14 +79,6 @@ public class IDSUManager { } } - public PacketSendIDSUManager getPacket(World world) { - Gson gson = new Gson(); - String json = gson.toJson(getWorldDataFormWorld(world).idsuValues); - if (getWorldDataFormWorld(world).idsuValues.isEmpty()) { - json = "EMPTY"; - } - return new PacketSendIDSUManager(json); - } public void loadFromString(String json, World world) { if (json.equals("EMPTY")) { @@ -110,7 +101,7 @@ public class IDSUManager { public class IDSUWorldSaveData { - public TreeMap idsuValues = new TreeMap(); + public TreeMap idsuValues = new TreeMap(); public World world; @@ -127,12 +118,12 @@ public class IDSUManager { file = new File(folder, savename); } - public IDSUValueSaveData getSaves(int i) { - if (idsuValues.containsKey(i)) { - return idsuValues.get(i); + public IDSUValueSaveData getSaves(String udid) { + if (idsuValues.containsKey(udid)) { + return idsuValues.get(udid); } else { IDSUValueSaveData data = new IDSUValueSaveData(); - idsuValues.put(i, data); + idsuValues.put(udid, data); return data; } } diff --git a/src/main/java/techreborn/tiles/idsu/TileIDSU.java b/src/main/java/techreborn/tiles/idsu/TileIDSU.java index d03d9d956..9a166b34e 100644 --- a/src/main/java/techreborn/tiles/idsu/TileIDSU.java +++ b/src/main/java/techreborn/tiles/idsu/TileIDSU.java @@ -9,54 +9,56 @@ import net.minecraftforge.common.util.ForgeDirection; import techreborn.Core; import techreborn.config.ConfigTechReborn; import techreborn.init.ModBlocks; +import techreborn.lib.Functions; import techreborn.powerSystem.TilePowerAcceptor; public class TileIDSU extends TilePowerAcceptor { - public int channelID = 0; - - public void handleGuiInputFromClient(int buttonID, int channel, EntityPlayer player, String name) { - if (buttonID == 4) { - channelID = channel; - IDSUManager.INSTANCE.getSaveDataForWorld(worldObj, channel).name = name; - IDSUManager.INSTANCE.getWorldDataFormWorld(worldObj).save(); - if (worldObj.isRemote) { - Core.packetPipeline.sendTo(IDSUManager.INSTANCE.getPacket(worldObj), (EntityPlayerMP) player); - } - } - } + public String ownerUdid; + @Override public double getEnergy() { - return IDSUManager.INSTANCE.getSaveDataForWorld(worldObj, channelID).storedPower; - } - - public void setEnergy(double energy) { - IDSUManager.INSTANCE.getSaveDataForWorld(worldObj, channelID).storedPower = energy; + return IDSUManager.INSTANCE.getSaveDataForWorld(worldObj, ownerUdid).storedPower; } + @Override + public void setEnergy(double energy) { + IDSUManager.INSTANCE.getSaveDataForWorld(worldObj, ownerUdid).storedPower = energy; + } + + @Override + public void readFromNBTWithoutCoords(NBTTagCompound tag) { + + } + + @Override + public void writeToNBTWithoutCoords(NBTTagCompound tag) { + + } + @Override public double getMaxPower() { - return 0; + return 1000000000; } @Override public boolean canAcceptEnergy(ForgeDirection direction) { - return false; + return worldObj.getBlockMetadata(xCoord, yCoord, zCoord) != Functions.getIntDirFromDirection(direction); } @Override public boolean canProvideEnergy(ForgeDirection direction) { - return false; + return worldObj.getBlockMetadata(xCoord, yCoord, zCoord) == Functions.getIntDirFromDirection(direction); } @Override public double getMaxOutput() { - return 0; + return output; } @Override public double getMaxInput() { - return 0; + return maxStorage; } public int tier; @@ -88,12 +90,12 @@ public class TileIDSU extends TilePowerAcceptor { public void readFromNBT(NBTTagCompound nbttagcompound) { super.readFromNBT(nbttagcompound); - this.channelID = nbttagcompound.getInteger("channel"); + this.ownerUdid = nbttagcompound.getString("ownerUdid"); } public void writeToNBT(NBTTagCompound nbttagcompound) { super.writeToNBT(nbttagcompound); - nbttagcompound.setInteger("channel", this.channelID); + nbttagcompound.setString("ownerUdid", this.ownerUdid); } public void updateEntity() { @@ -105,13 +107,13 @@ public class TileIDSU extends TilePowerAcceptor { } else { ticks++; - euChange += getStored() - euLastTick; - if (euLastTick == getStored()) { + euChange += getEnergy() - euLastTick; + if (euLastTick == getEnergy()) { euChange = 0; } } - euLastTick = getStored(); + euLastTick = getEnergy(); boolean needsInvUpdate = false; @@ -122,50 +124,10 @@ public class TileIDSU extends TilePowerAcceptor { } - public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction) { - return false; - } - - public boolean emitsEnergyTo(TileEntity receiver, ForgeDirection direction) { - return false; - } - - public void drawEnergy(double amount) { - setEnergy(getEnergy() - amount); - } - - public double getDemandedEnergy() { - return (double) this.maxStorage - this.getEnergy(); - } - - public double injectEnergy(ForgeDirection directionFrom, double amount, double voltage) { - if (this.getEnergy() >= (double) this.maxStorage) { - return amount; - } else { - setEnergy(this.getEnergy() + amount); - return 0.0D; - } - } - - public int getSourceTier() { - return this.tier; - } - - public int getSinkTier() { - return this.tier; - } - - - public void onGuiClosed(EntityPlayer entityPlayer) { - } - public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) { return false; } - public void setFacing(short facing) { - - } public ItemStack getWrenchDrop(EntityPlayer entityPlayer) { NBTTagCompound tileEntity = new NBTTagCompound(); @@ -176,34 +138,6 @@ public class TileIDSU extends TilePowerAcceptor { return dropStack; } - public int getStored() { - return (int) this.getEnergy(); - } - - public int getCapacity() { - return (int) this.maxStorage; - } - - public int getOutput() { - return this.output; - } - - public double getOutputEnergyUnitsPerTick() { - return (double) this.output; - } - - public void setStored(int energy1) { - setEnergy(energy1); - } - - public int addEnergy(int amount) { - setEnergy(getEnergy() + amount); - return amount; - } - - public boolean isTeleporterCompatible(ForgeDirection side) { - return true; - } public double getEuChange() { if (euChange == -1) { @@ -211,4 +145,25 @@ public class TileIDSU extends TilePowerAcceptor { } return (euChange / ticks); } + + public void handleGuiInputFromClient(int id){ + if(id == 0){ + output += 256; + } + if(id == 1){ + output += 64; + } + if(id == 2){ + output -= 64; + } + if(id == 3){ + output -= 256; + } + if(output > 4096){ + output = 4096; + } + if(output <= -1){ + output = 0; + } + } }