diff --git a/core/sync/AppEngClientPacketHandler.java b/core/sync/AppEngClientPacketHandler.java index a4911f0c..800b6cd3 100644 --- a/core/sync/AppEngClientPacketHandler.java +++ b/core/sync/AppEngClientPacketHandler.java @@ -5,6 +5,7 @@ import java.io.DataInputStream; import java.io.IOException; import java.lang.reflect.InvocationTargetException; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetworkManager; import net.minecraft.network.packet.Packet250CustomPayload; import cpw.mods.fml.common.network.IPacketHandler; @@ -24,20 +25,25 @@ public class AppEngClientPacketHandler extends AppEngPacketHandlerBase implement { packetType = stream.readInt(); AppEngPacket pack = PacketTypes.getPacket( packetType ).parsePacket( stream ); - pack.clientPacketData( network, pack, player ); - } catch (IOException e) + pack.clientPacketData( network, pack, (EntityPlayer) player ); + } + catch (IOException e) { e.printStackTrace(); - } catch (InstantiationException e) + } + catch (InstantiationException e) { e.printStackTrace(); - } catch (IllegalAccessException e) + } + catch (IllegalAccessException e) { e.printStackTrace(); - } catch (IllegalArgumentException e) + } + catch (IllegalArgumentException e) { e.printStackTrace(); - } catch (InvocationTargetException e) + } + catch (InvocationTargetException e) { e.printStackTrace(); } diff --git a/core/sync/AppEngPacket.java b/core/sync/AppEngPacket.java index 47fbd67a..d8d1bf6a 100644 --- a/core/sync/AppEngPacket.java +++ b/core/sync/AppEngPacket.java @@ -1,9 +1,9 @@ package appeng.core.sync; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetworkManager; import net.minecraft.network.packet.Packet250CustomPayload; import appeng.core.Configuration; -import cpw.mods.fml.common.network.Player; public abstract class AppEngPacket { @@ -18,12 +18,12 @@ public abstract class AppEngPacket return AppEngPacketHandlerBase.PacketTypes.getID( this.getClass() ).ordinal(); } - public void serverPacketData(INetworkManager manager, AppEngPacket packet, Player player) + public void serverPacketData(INetworkManager manager, AppEngPacket packet, EntityPlayer player) { throw new RuntimeException( "This packet ( " + getPacketID() + " does not implement a server side handler." ); } - public void clientPacketData(INetworkManager network, AppEngPacket packet, Player player) + public void clientPacketData(INetworkManager network, AppEngPacket packet, EntityPlayer player) { throw new RuntimeException( "This packet ( " + getPacketID() + " does not implement a client side handler." ); } diff --git a/core/sync/AppEngPacketHandlerBase.java b/core/sync/AppEngPacketHandlerBase.java index 4b62b9a5..138bed2b 100644 --- a/core/sync/AppEngPacketHandlerBase.java +++ b/core/sync/AppEngPacketHandlerBase.java @@ -15,6 +15,7 @@ import appeng.core.sync.packets.PacketMatterCannon; import appeng.core.sync.packets.PacketMockExplosion; import appeng.core.sync.packets.PacketMultiPart; import appeng.core.sync.packets.PacketPartPlacement; +import appeng.core.sync.packets.PacketValueConfig; public class AppEngPacketHandlerBase { @@ -39,7 +40,9 @@ public class AppEngPacketHandlerBase PACKET_MOCKEXPLOSION(PacketMockExplosion.class), - PACKET_LOCALIZED_CHATMSG(PacketLocalizedChatMsg.class); + PACKET_LOCALIZED_CHATMSG(PacketLocalizedChatMsg.class), + + PACKET_VALUE_CONFIG(PacketValueConfig.class); final public Class pc; final public Constructor con; diff --git a/core/sync/AppEngServerPacketHandler.java b/core/sync/AppEngServerPacketHandler.java index 83a40612..f4b56f88 100644 --- a/core/sync/AppEngServerPacketHandler.java +++ b/core/sync/AppEngServerPacketHandler.java @@ -5,6 +5,7 @@ import java.io.DataInputStream; import java.io.IOException; import java.lang.reflect.InvocationTargetException; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetworkManager; import net.minecraft.network.packet.Packet250CustomPayload; import cpw.mods.fml.common.network.IPacketHandler; @@ -24,20 +25,25 @@ public final class AppEngServerPacketHandler extends AppEngPacketHandlerBase imp { packetType = stream.readInt(); AppEngPacket pack = PacketTypes.getPacket( packetType ).parsePacket( stream ); - pack.serverPacketData( manager, pack, player ); - } catch (IOException e) + pack.serverPacketData( manager, pack, (EntityPlayer) player ); + } + catch (IOException e) { e.printStackTrace(); - } catch (InstantiationException e) + } + catch (InstantiationException e) { e.printStackTrace(); - } catch (IllegalAccessException e) + } + catch (IllegalAccessException e) { e.printStackTrace(); - } catch (IllegalArgumentException e) + } + catch (IllegalArgumentException e) { e.printStackTrace(); - } catch (InvocationTargetException e) + } + catch (InvocationTargetException e) { e.printStackTrace(); } diff --git a/core/sync/GuiBridge.java b/core/sync/GuiBridge.java index b6f2cc63..dfb49b34 100644 --- a/core/sync/GuiBridge.java +++ b/core/sync/GuiBridge.java @@ -9,9 +9,9 @@ import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; import appeng.api.exceptions.AppEngException; import appeng.api.implementations.IBusCommon; -import appeng.api.implementations.IStorageMonitorable; import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; +import appeng.api.storage.IStorageMonitorable; import appeng.client.gui.GuiNull; import appeng.container.ContainerNull; import appeng.container.implementations.ContainerBus; @@ -20,11 +20,13 @@ import appeng.container.implementations.ContainerCondenser; import appeng.container.implementations.ContainerDrive; import appeng.container.implementations.ContainerGrinder; import appeng.container.implementations.ContainerInterface; +import appeng.container.implementations.ContainerLevelEmitter; import appeng.container.implementations.ContainerMEMonitorable; import appeng.container.implementations.ContainerVibrationChamber; +import appeng.helpers.IInterfaceHost; +import appeng.parts.automation.PartLevelEmitter; import appeng.tile.grindstone.TileGrinder; import appeng.tile.misc.TileCondenser; -import appeng.tile.misc.TileInterface; import appeng.tile.misc.TileVibrationChamber; import appeng.tile.storage.TileChest; import appeng.tile.storage.TileDrive; @@ -48,9 +50,12 @@ public enum GuiBridge implements IGuiHandler GUI_CONDENSER(ContainerCondenser.class, TileCondenser.class), - GUI_INTERFACE(ContainerInterface.class, TileInterface.class), + GUI_INTERFACE(ContainerInterface.class, IInterfaceHost.class), - GUI_BUS(ContainerBus.class, IBusCommon.class); + GUI_BUS(ContainerBus.class, IBusCommon.class), + + // extends (Container/Gui) + Bus + GUI_LEVELEMITTER(ContainerLevelEmitter.class, PartLevelEmitter.class); private Class Tile; private Class Gui; diff --git a/core/sync/packets/PacketConfigButton.java b/core/sync/packets/PacketConfigButton.java index 88d488d2..a6193ea3 100644 --- a/core/sync/packets/PacketConfigButton.java +++ b/core/sync/packets/PacketConfigButton.java @@ -5,6 +5,7 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.INetworkManager; import appeng.api.config.Settings; @@ -13,43 +14,45 @@ import appeng.api.util.IConfigureableObject; import appeng.container.AEBaseContainer; import appeng.core.sync.AppEngPacket; import appeng.util.Platform; -import cpw.mods.fml.common.network.Player; public class PacketConfigButton extends AppEngPacket { final public Settings option; + final public boolean rotationDirection; // automatic. public PacketConfigButton(DataInputStream stream) throws IOException { option = Settings.values()[stream.readInt()]; + rotationDirection = stream.readBoolean(); } @Override - public void serverPacketData(INetworkManager manager, AppEngPacket packet, Player player) + public void serverPacketData(INetworkManager manager, AppEngPacket packet, EntityPlayer player) { EntityPlayerMP sender = (EntityPlayerMP) player; AEBaseContainer aebc = (AEBaseContainer) sender.openContainer; if ( aebc.getTarget() instanceof IConfigureableObject ) { IConfigManager cm = ((IConfigureableObject) aebc.getTarget()).getConfigManager(); - Enum newState = Platform.nextEnum( cm.getSetting( option ) ); + Enum newState = Platform.rotateEnum( cm.getSetting( option ), rotationDirection, option.getPossibleValues() ); cm.putSetting( option, newState ); } } // api - public PacketConfigButton(Settings option) throws IOException { + public PacketConfigButton(Settings option, boolean rotationDirection) throws IOException { this.option = option; + this.rotationDirection = rotationDirection; ByteArrayOutputStream bytes = new ByteArrayOutputStream(); DataOutputStream data = new DataOutputStream( bytes ); data.writeInt( getPacketID() ); data.writeInt( option.ordinal() ); + data.writeBoolean( rotationDirection ); isChunkDataPacket = false; configureWrite( bytes.toByteArray() ); } - } diff --git a/core/sync/packets/PacketInventoryAction.java b/core/sync/packets/PacketInventoryAction.java index 98edd8ae..cd8cd9ac 100644 --- a/core/sync/packets/PacketInventoryAction.java +++ b/core/sync/packets/PacketInventoryAction.java @@ -5,6 +5,7 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.INetworkManager; import appeng.api.storage.data.IAEItemStack; @@ -12,7 +13,6 @@ import appeng.container.AEBaseContainer; import appeng.core.sync.AppEngPacket; import appeng.helpers.InventoryAction; import appeng.util.item.AEItemStack; -import cpw.mods.fml.common.network.Player; public class PacketInventoryAction extends AppEngPacket { @@ -33,7 +33,7 @@ public class PacketInventoryAction extends AppEngPacket } @Override - public void serverPacketData(INetworkManager manager, AppEngPacket packet, Player player) + public void serverPacketData(INetworkManager manager, AppEngPacket packet, EntityPlayer player) { EntityPlayerMP sender = (EntityPlayerMP) player; AEBaseContainer aebc = (AEBaseContainer) sender.openContainer; diff --git a/core/sync/packets/PacketLightning.java b/core/sync/packets/PacketLightning.java index 844b693c..e061610f 100644 --- a/core/sync/packets/PacketLightning.java +++ b/core/sync/packets/PacketLightning.java @@ -7,13 +7,13 @@ import java.io.IOException; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetworkManager; import appeng.client.ClientHelper; import appeng.client.render.effects.LightningEffect; import appeng.core.Configuration; import appeng.core.sync.AppEngPacket; import appeng.util.Platform; -import cpw.mods.fml.common.network.Player; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -33,7 +33,7 @@ public class PacketLightning extends AppEngPacket @Override @SideOnly(Side.CLIENT) - public void clientPacketData(INetworkManager network, AppEngPacket packet, Player player) + public void clientPacketData(INetworkManager network, AppEngPacket packet, EntityPlayer player) { try { diff --git a/core/sync/packets/PacketLocalizedChatMsg.java b/core/sync/packets/PacketLocalizedChatMsg.java index e918f394..a55ca87a 100644 --- a/core/sync/packets/PacketLocalizedChatMsg.java +++ b/core/sync/packets/PacketLocalizedChatMsg.java @@ -9,7 +9,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetworkManager; import net.minecraft.util.ChatMessageComponent; import appeng.core.sync.AppEngPacket; -import cpw.mods.fml.common.network.Player; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -25,7 +24,7 @@ public class PacketLocalizedChatMsg extends AppEngPacket @Override @SideOnly(Side.CLIENT) - public void clientPacketData(INetworkManager network, AppEngPacket packet, Player player) + public void clientPacketData(INetworkManager network, AppEngPacket packet, EntityPlayer player) { ((EntityPlayer) player).sendChatToPlayer( ChatMessageComponent.createFromTranslationWithSubstitutions( msg ) ); } diff --git a/core/sync/packets/PacketMEInventoryUpdate.java b/core/sync/packets/PacketMEInventoryUpdate.java index f10df02f..273d8a88 100644 --- a/core/sync/packets/PacketMEInventoryUpdate.java +++ b/core/sync/packets/PacketMEInventoryUpdate.java @@ -9,13 +9,13 @@ import java.util.List; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetworkManager; import net.minecraft.network.packet.Packet250CustomPayload; import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.implementations.GuiMEMonitorable; import appeng.core.sync.AppEngPacket; import appeng.util.item.AEItemStack; -import cpw.mods.fml.common.network.Player; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -42,7 +42,7 @@ public class PacketMEInventoryUpdate extends AppEngPacket @Override @SideOnly(Side.CLIENT) - public void clientPacketData(INetworkManager network, AppEngPacket packet, Player player) + public void clientPacketData(INetworkManager network, AppEngPacket packet, EntityPlayer player) { GuiScreen gs = Minecraft.getMinecraft().currentScreen; if ( gs instanceof GuiMEMonitorable ) diff --git a/core/sync/packets/PacketMatterCannon.java b/core/sync/packets/PacketMatterCannon.java index 7fbb0854..136079aa 100644 --- a/core/sync/packets/PacketMatterCannon.java +++ b/core/sync/packets/PacketMatterCannon.java @@ -7,13 +7,13 @@ import java.io.IOException; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.network.INetworkManager; import net.minecraft.world.World; import appeng.client.render.effects.MatterCannonEffect; import appeng.core.sync.AppEngPacket; import cpw.mods.fml.client.FMLClientHandler; -import cpw.mods.fml.common.network.Player; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -41,7 +41,7 @@ public class PacketMatterCannon extends AppEngPacket @Override @SideOnly(Side.CLIENT) - public void clientPacketData(INetworkManager network, AppEngPacket packet, Player player) + public void clientPacketData(INetworkManager network, AppEngPacket packet, EntityPlayer player) { try { @@ -53,7 +53,8 @@ public class PacketMatterCannon extends AppEngPacket Minecraft.getMinecraft().effectRenderer.addEffect( (EntityFX) fx ); } - } catch (Exception err) + } + catch (Exception err) { } } diff --git a/core/sync/packets/PacketMockExplosion.java b/core/sync/packets/PacketMockExplosion.java index 9ecd537f..72481139 100644 --- a/core/sync/packets/PacketMockExplosion.java +++ b/core/sync/packets/PacketMockExplosion.java @@ -5,11 +5,11 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetworkManager; import net.minecraft.world.World; import appeng.core.CommonHelper; import appeng.core.sync.AppEngPacket; -import cpw.mods.fml.common.network.Player; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -22,7 +22,7 @@ public class PacketMockExplosion extends AppEngPacket @Override @SideOnly(Side.CLIENT) - public void clientPacketData(INetworkManager network, AppEngPacket packet, Player player) + public void clientPacketData(INetworkManager network, AppEngPacket packet, EntityPlayer player) { World world = CommonHelper.proxy.getWorld(); world.spawnParticle( "largeexplode", this.x, this.y, this.z, 1.0D, 0.0D, 0.0D ); diff --git a/core/sync/packets/PacketMultiPart.java b/core/sync/packets/PacketMultiPart.java index 069f2471..81b5727e 100644 --- a/core/sync/packets/PacketMultiPart.java +++ b/core/sync/packets/PacketMultiPart.java @@ -5,12 +5,12 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.INetworkManager; import net.minecraftforge.common.MinecraftForge; import appeng.core.sync.AppEngPacket; import appeng.integration.modules.helpers.FMPPacketEvent; -import cpw.mods.fml.common.network.Player; public class PacketMultiPart extends AppEngPacket { @@ -21,7 +21,7 @@ public class PacketMultiPart extends AppEngPacket } @Override - public void serverPacketData(INetworkManager manager, AppEngPacket packet, Player player) + public void serverPacketData(INetworkManager manager, AppEngPacket packet, EntityPlayer player) { EntityPlayerMP sender = (EntityPlayerMP) player; MinecraftForge.EVENT_BUS.post( new FMPPacketEvent( sender ) ); diff --git a/core/sync/packets/PacketPartPlacement.java b/core/sync/packets/PacketPartPlacement.java index b57b0e3b..50e8f21f 100644 --- a/core/sync/packets/PacketPartPlacement.java +++ b/core/sync/packets/PacketPartPlacement.java @@ -5,11 +5,11 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.INetworkManager; import appeng.core.sync.AppEngPacket; import appeng.helpers.PartPlacement; -import cpw.mods.fml.common.network.Player; public class PacketPartPlacement extends AppEngPacket { @@ -25,7 +25,7 @@ public class PacketPartPlacement extends AppEngPacket } @Override - public void serverPacketData(INetworkManager manager, AppEngPacket packet, Player player) + public void serverPacketData(INetworkManager manager, AppEngPacket packet, EntityPlayer player) { EntityPlayerMP sender = (EntityPlayerMP) player; PartPlacement.place( sender.getHeldItem(), x, y, z, face, sender, sender.worldObj, PartPlacement.PlaceType.INTERACT_FIRST_PASS, 0 ); diff --git a/core/sync/packets/PacketValueConfig.java b/core/sync/packets/PacketValueConfig.java new file mode 100644 index 00000000..0fb19603 --- /dev/null +++ b/core/sync/packets/PacketValueConfig.java @@ -0,0 +1,55 @@ +package appeng.core.sync.packets; + +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.network.INetworkManager; +import appeng.container.implementations.ContainerLevelEmitter; +import appeng.core.sync.AppEngPacket; + +public class PacketValueConfig extends AppEngPacket +{ + + final public String Name; + final public String Value; + + // automatic. + public PacketValueConfig(DataInputStream stream) throws IOException { + Name = stream.readUTF(); + Value = stream.readUTF(); + } + + @Override + public void serverPacketData(INetworkManager manager, AppEngPacket packet, EntityPlayer player) + { + Container c = player.openContainer; + + if ( Name.equals( "LevelEmitter.Value" ) && c instanceof ContainerLevelEmitter ) + { + ContainerLevelEmitter lvc = (ContainerLevelEmitter) c; + lvc.setLevel( Integer.parseInt( Value ), player ); + return; + } + + } + + // api + public PacketValueConfig(String Name, String Value) throws IOException { + this.Name = Name; + this.Value = Value; + + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream( bytes ); + + data.writeInt( getPacketID() ); + data.writeUTF( Name ); + data.writeUTF( Value ); + + isChunkDataPacket = false; + configureWrite( bytes.toByteArray() ); + } +}