v5.5.6 Beta #16
*Updated to Forge 735. *Updated GalactiCraft API. *Updated IC2 API. *Re-added Electrolytic Separator particle effects. *Minor cleanups. *Completely redesigned packet system from the ground up.
This commit is contained in:
parent
3f87aa102e
commit
fd556d14b1
60 changed files with 1671 additions and 932 deletions
|
@ -8,6 +8,8 @@ import mekanism.common.ItemConfigurator;
|
|||
import mekanism.common.ItemElectricBow;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketConfiguratorState;
|
||||
import mekanism.common.network.PacketElectricBowState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
|
@ -47,7 +49,7 @@ public class ClientPlayerTickHandler implements ITickHandler
|
|||
if(!lastTickConfiguratorChange)
|
||||
{
|
||||
item.setState(stack, (byte)(item.getState(stack) < 3 ? item.getState(stack)+1 : 0));
|
||||
PacketHandler.sendPacketData(EnumPacketType.CONFIGURATOR_STATE, Transmission.SERVER, item.getState(stack));
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketConfiguratorState(item.getState(stack)));
|
||||
entityPlayer.sendChatToPlayer(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + "Configure State: " + item.getColor(item.getState(stack)) + item.getState(item.getState(stack)));
|
||||
lastTickConfiguratorChange = true;
|
||||
}
|
||||
|
@ -65,7 +67,7 @@ public class ClientPlayerTickHandler implements ITickHandler
|
|||
if(!lastTickElectricBowChange)
|
||||
{
|
||||
item.setFireState(stack, !item.getFireState(stack));
|
||||
PacketHandler.sendPacketData(EnumPacketType.ELECTRIC_BOW_STATE, Transmission.SERVER, item.getFireState(stack) ? 1 : 0);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketElectricBowState(item.getFireState(stack)));
|
||||
entityPlayer.sendChatToPlayer(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + "Fire Mode: " + (item.getFireState(stack) ? (EnumColor.DARK_GREEN + "ON") : (EnumColor.DARK_RED + "OFF")));
|
||||
lastTickElectricBowChange = true;
|
||||
}
|
||||
|
|
|
@ -2,8 +2,11 @@ package mekanism.client;
|
|||
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.IAccessibleGui;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.TileEntityControlPanel;
|
||||
import mekanism.common.network.PacketControlPanel;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
|
@ -161,7 +164,7 @@ public class GuiControlPanel extends GuiScreen
|
|||
return;
|
||||
}
|
||||
|
||||
PacketHandler.sendGuiRequest(gui.getClassPath(), gui.getInstanceName(), Integer.parseInt(xField.getText()), Integer.parseInt(yField.getText()), Integer.parseInt(zField.getText()), gui.getGuiID());
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketControlPanel(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.");
|
||||
|
|
|
@ -2,11 +2,15 @@ package mekanism.client;
|
|||
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.IEnergizedItem;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.ContainerElectricChest;
|
||||
import mekanism.common.IElectricChest;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.TileEntityElectricChest;
|
||||
import mekanism.common.network.PacketElectricChest;
|
||||
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
|
@ -105,10 +109,14 @@ public class GuiElectricChest extends GuiContainer
|
|||
if(xAxis >= 179 && xAxis <= 197 && yAxis >= 88 && yAxis <= 106)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendLockChange(tileEntity, !getLocked(), isBlock);
|
||||
|
||||
if(!isBlock)
|
||||
if(isBlock)
|
||||
{
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketElectricChest(ElectricChestPacketType.LOCK, !getLocked(), true, Object3D.get(tileEntity)));
|
||||
}
|
||||
else {
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketElectricChest(ElectricChestPacketType.LOCK, !getLocked(), false));
|
||||
|
||||
ItemStack stack = mc.thePlayer.getCurrentEquippedItem();
|
||||
((IElectricChest)stack.getItem()).setLocked(stack, !getLocked());
|
||||
}
|
||||
|
|
|
@ -3,9 +3,12 @@ package mekanism.client;
|
|||
import java.util.ArrayList;
|
||||
|
||||
import mekanism.api.InfuseType;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.ContainerMetallurgicInfuser;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.TileEntityMetallurgicInfuser;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
|
||||
|
@ -47,7 +50,7 @@ public class GuiMetallurgicInfuser extends GuiContainer
|
|||
ArrayList data = new ArrayList();
|
||||
data.add(0);
|
||||
|
||||
PacketHandler.sendTileEntityPacketToServer(tileEntity, data);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity(Object3D.get(tileEntity), data));
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,9 +2,13 @@ package mekanism.client;
|
|||
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.IEnergizedItem;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.IElectricChest;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.TileEntityElectricChest;
|
||||
import mekanism.common.network.PacketElectricChest;
|
||||
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
|
@ -128,11 +132,11 @@ public class GuiPasswordEnter extends GuiScreen
|
|||
if(isBlock)
|
||||
{
|
||||
tileEntity.setEnergy(tileEntity.getEnergy() - 100);
|
||||
PacketHandler.sendChestOpen(tileEntity, true, true);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketElectricChest(ElectricChestPacketType.SERVER_OPEN, true, true, Object3D.get(tileEntity)));
|
||||
}
|
||||
else {
|
||||
((IEnergizedItem)itemStack.getItem()).setEnergy(itemStack, ((IEnergizedItem)itemStack.getItem()).getEnergy(itemStack) - 100);
|
||||
PacketHandler.sendChestOpen(null, false, true);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketElectricChest(ElectricChestPacketType.SERVER_OPEN, true, false));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
package mekanism.client;
|
||||
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.IElectricChest;
|
||||
import mekanism.common.InventoryElectricChest;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.TileEntityElectricChest;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketElectricChest;
|
||||
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
|
@ -158,13 +162,13 @@ public class GuiPasswordModify extends GuiScreen
|
|||
else {
|
||||
if(isBlock)
|
||||
{
|
||||
PacketHandler.sendPasswordChange(tileEntity, confirmPasswordField.getText(), true);
|
||||
PacketHandler.sendChestOpen(tileEntity, true, false);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketElectricChest(ElectricChestPacketType.PASSWORD, confirmPasswordField.getText(), true, Object3D.get(tileEntity)));
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketElectricChest(ElectricChestPacketType.SERVER_OPEN, false, true, Object3D.get(tileEntity)));
|
||||
}
|
||||
else {
|
||||
((IElectricChest)itemStack.getItem()).setPassword(itemStack, confirmPasswordField.getText());
|
||||
PacketHandler.sendPasswordChange(null, confirmPasswordField.getText(), false);
|
||||
PacketHandler.sendChestOpen(null, false, false);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketElectricChest(ElectricChestPacketType.PASSWORD, confirmPasswordField.getText(), false));
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketElectricChest(ElectricChestPacketType.SERVER_OPEN, false, false));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@ import mekanism.common.EnumPacketType;
|
|||
import mekanism.common.ItemPortableTeleporter;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketDigitUpdate;
|
||||
import mekanism.common.network.PacketPortableTeleport;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -79,7 +81,7 @@ public class GuiPortableTeleporter extends GuiScreen
|
|||
{
|
||||
if(guibutton.id == 0)
|
||||
{
|
||||
PacketHandler.sendPacketData(EnumPacketType.PORTABLE_TELEPORT, Transmission.SERVER, 0);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketPortableTeleport());
|
||||
mc.setIngameFocus();
|
||||
}
|
||||
}
|
||||
|
@ -94,25 +96,25 @@ public class GuiPortableTeleporter extends GuiScreen
|
|||
|
||||
if(xAxis > 23 && xAxis < 37 && yAxis > 44 && yAxis < 58)
|
||||
{
|
||||
PacketHandler.sendDigitUpdate(0, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 0)));
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketDigitUpdate(0, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 0))));
|
||||
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 0, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 0)));
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
else if(xAxis > 62 && xAxis < 76 && yAxis > 44 && yAxis < 58)
|
||||
{
|
||||
PacketHandler.sendDigitUpdate(1, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 1)));
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketDigitUpdate(1, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 1))));
|
||||
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 1, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 1)));
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
else if(xAxis > 101 && xAxis < 115 && yAxis > 44 && yAxis < 58)
|
||||
{
|
||||
PacketHandler.sendDigitUpdate(2, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 2)));
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketDigitUpdate(2, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 2))));
|
||||
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 2, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 2)));
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
else if(xAxis > 140 && xAxis < 154 && yAxis > 44 && yAxis < 58)
|
||||
{
|
||||
PacketHandler.sendDigitUpdate(3, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 3)));
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketDigitUpdate(3, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 3))));
|
||||
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 3, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 3)));
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,9 @@ import mekanism.common.ContainerRobitCrafting;
|
|||
import mekanism.common.EnumPacketType;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketRobit;
|
||||
import mekanism.common.network.PacketRobit.RobitPacketType;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.StatCollector;
|
||||
|
@ -99,7 +102,8 @@ public class GuiRobitCrafting extends GuiContainer
|
|||
if(xAxis >= 179 && xAxis <= 197 && yAxis >= 10 && yAxis <= 28)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(0, entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 0, entityId));
|
||||
//PacketHandler.sendRobitGui(0, entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 21, mc.theWorld, entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 30 && yAxis <= 48)
|
||||
|
@ -109,19 +113,22 @@ public class GuiRobitCrafting extends GuiContainer
|
|||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 50 && yAxis <= 68)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(2, entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 2, entityId));
|
||||
//PacketHandler.sendRobitGui(2, entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 23, mc.theWorld, entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 70 && yAxis <= 88)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(3, entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 3, entityId));
|
||||
//PacketHandler.sendRobitGui(3, entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 24, mc.theWorld, entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 90 && yAxis <= 108)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(4, entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 4, entityId));
|
||||
//PacketHandler.sendRobitGui(4, entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 25, mc.theWorld, entityId, 0, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,9 @@ import mekanism.common.ContainerRobitInventory;
|
|||
import mekanism.common.EntityRobit;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketRobit;
|
||||
import mekanism.common.network.PacketRobit.RobitPacketType;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.StatCollector;
|
||||
|
@ -98,13 +101,15 @@ public class GuiRobitInventory extends GuiContainer
|
|||
if(xAxis >= 179 && xAxis <= 197 && yAxis >= 10 && yAxis <= 28)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(0, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 0, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(0, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 21, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 30 && yAxis <= 48)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(1, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 1, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(1, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 22, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 50 && yAxis <= 68)
|
||||
|
@ -114,13 +119,15 @@ public class GuiRobitInventory extends GuiContainer
|
|||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 70 && yAxis <= 88)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(3, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 3, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(3, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 24, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 90 && yAxis <= 108)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(4, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 4, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(4, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 25, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,8 +5,9 @@ import mekanism.common.EntityRobit;
|
|||
import mekanism.common.EnumPacketType;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.RobitPacket;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketRobit;
|
||||
import mekanism.common.network.PacketRobit.RobitPacketType;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
|
@ -48,7 +49,8 @@ public class GuiRobitMain extends GuiContainer
|
|||
{
|
||||
if(nameChangeField.getText() != null && !nameChangeField.getText().isEmpty())
|
||||
{
|
||||
PacketHandler.sendNameUpdate(nameChangeField.getText(), robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.NAME, nameChangeField.getText(), robit.entityId));
|
||||
//PacketHandler.sendNameUpdate(nameChangeField.getText(), robit.entityId);
|
||||
toggleNameChange();
|
||||
nameChangeField.setText("");
|
||||
}
|
||||
|
@ -260,31 +262,36 @@ public class GuiRobitMain extends GuiContainer
|
|||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 30 && yAxis <= 48)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(1, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 1, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(1, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 22, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 50 && yAxis <= 68)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(2, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 2, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(2, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 23, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 70 && yAxis <= 88)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(3, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 3, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(3, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 24, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 90 && yAxis <= 108)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(4, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 4, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(4, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 25, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 152 && xAxis <= 170 && yAxis >= 54 && yAxis <= 72)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendPacketData(EnumPacketType.ROBIT, Transmission.SERVER, RobitPacket.FOLLOW.ordinal(), robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.FOLLOW, robit.entityId));
|
||||
//PacketHandler.sendPacketData(EnumPacketType.ROBIT, Transmission.SERVER, RobitPacket.FOLLOW.ordinal(), robit.entityId);
|
||||
}
|
||||
else if(xAxis >= 6 && xAxis <= 24 && yAxis >= 54 && yAxis <= 72)
|
||||
{
|
||||
|
@ -294,12 +301,14 @@ public class GuiRobitMain extends GuiContainer
|
|||
else if(xAxis >= 6 && xAxis <= 24 && yAxis >= 16 && yAxis <= 34)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendPacketData(EnumPacketType.ROBIT, Transmission.SERVER, RobitPacket.GO_HOME.ordinal(), robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GO_HOME, robit.entityId));
|
||||
//PacketHandler.sendPacketData(EnumPacketType.ROBIT, Transmission.SERVER, RobitPacket.GO_HOME.ordinal(), robit.entityId);
|
||||
}
|
||||
else if(xAxis >= 6 && xAxis <= 24 && yAxis >= 35 && yAxis <= 53)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendPacketData(EnumPacketType.ROBIT, Transmission.SERVER, RobitPacket.DROP_PICKUP.ordinal(), robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.DROP_PICKUP, robit.entityId));
|
||||
//PacketHandler.sendPacketData(EnumPacketType.ROBIT, Transmission.SERVER, RobitPacket.DROP_PICKUP.ordinal(), robit.entityId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,9 @@ import java.util.List;
|
|||
import mekanism.common.ContainerRobitRepair;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketRobit;
|
||||
import mekanism.common.network.PacketRobit.RobitPacketType;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
|
@ -141,25 +144,29 @@ public class GuiRobitRepair extends GuiContainer implements ICrafting
|
|||
if(xAxis >= 179 && xAxis <= 197 && yAxis >= 10 && yAxis <= 28)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(0, entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 0, entityId));
|
||||
//PacketHandler.sendRobitGui(0, entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 21, mc.theWorld, entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 30 && yAxis <= 48)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(1, entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 1, entityId));
|
||||
//PacketHandler.sendRobitGui(1, entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 22, mc.theWorld, entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 50 && yAxis <= 68)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(2, entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 2, entityId));
|
||||
//PacketHandler.sendRobitGui(2, entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 23, mc.theWorld, entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 70 && yAxis <= 88)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(3, entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 3, entityId));
|
||||
//PacketHandler.sendRobitGui(3, entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 24, mc.theWorld, entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 90 && yAxis <= 108)
|
||||
|
|
|
@ -4,6 +4,9 @@ import mekanism.common.ContainerRobitSmelting;
|
|||
import mekanism.common.EntityRobit;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketRobit;
|
||||
import mekanism.common.network.PacketRobit.RobitPacketType;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
|
||||
|
@ -107,19 +110,22 @@ public class GuiRobitSmelting extends GuiContainer
|
|||
if(xAxis >= 179 && xAxis <= 197 && yAxis >= 10 && yAxis <= 28)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(0, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 0, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(0, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 21, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 30 && yAxis <= 48)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(1, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 1, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(1, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 22, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 50 && yAxis <= 68)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(2, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 2, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(2, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 23, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 70 && yAxis <= 88)
|
||||
|
@ -129,7 +135,8 @@ public class GuiRobitSmelting extends GuiContainer
|
|||
else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 90 && yAxis <= 108)
|
||||
{
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
PacketHandler.sendRobitGui(4, robit.entityId);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketRobit(RobitPacketType.GUI, 4, robit.entityId));
|
||||
//PacketHandler.sendRobitGui(4, robit.entityId);
|
||||
mc.thePlayer.openGui(Mekanism.instance, 25, mc.theWorld, robit.entityId, 0, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import mekanism.common.EnumPacketType;
|
|||
import mekanism.common.MekanismUtils;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTime;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -54,7 +55,7 @@ public class GuiStopwatch extends GuiScreen
|
|||
@Override
|
||||
public void keyTyped(char c, int i)
|
||||
{
|
||||
if (i == 1)
|
||||
if(i == 1)
|
||||
{
|
||||
mc.displayGuiScreen(null);
|
||||
}
|
||||
|
@ -72,25 +73,25 @@ public class GuiStopwatch extends GuiScreen
|
|||
if(guibutton.id == 0)
|
||||
{
|
||||
MekanismUtils.doFakeEntityExplosion(player);
|
||||
PacketHandler.sendPacketData(EnumPacketType.TIME, Transmission.SERVER, 0);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTime(0));
|
||||
mc.displayGuiScreen(null);
|
||||
}
|
||||
if(guibutton.id == 1)
|
||||
{
|
||||
MekanismUtils.doFakeEntityExplosion(player);
|
||||
PacketHandler.sendPacketData(EnumPacketType.TIME, Transmission.SERVER, 6);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTime(6));
|
||||
mc.displayGuiScreen(null);
|
||||
}
|
||||
if(guibutton.id == 2)
|
||||
{
|
||||
MekanismUtils.doFakeEntityExplosion(player);
|
||||
PacketHandler.sendPacketData(EnumPacketType.TIME, Transmission.SERVER, 12);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTime(12));
|
||||
mc.displayGuiScreen(null);
|
||||
}
|
||||
if(guibutton.id == 3)
|
||||
{
|
||||
MekanismUtils.doFakeEntityExplosion(player);
|
||||
PacketHandler.sendPacketData(EnumPacketType.TIME, Transmission.SERVER, 18);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTime(18));
|
||||
mc.displayGuiScreen(null);
|
||||
}
|
||||
if(guibutton.id == 4)
|
||||
|
|
|
@ -2,9 +2,12 @@ package mekanism.client;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.ContainerTeleporter;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.TileEntityTeleporter;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
|
||||
|
@ -58,7 +61,7 @@ public class GuiTeleporter extends GuiContainer
|
|||
data.add(0);
|
||||
data.add(getIncrementedNumber(tileEntity.code.digitOne));
|
||||
|
||||
PacketHandler.sendTileEntityPacketToServer(tileEntity, data);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity(Object3D.get(tileEntity), data));
|
||||
tileEntity.code.digitOne = getIncrementedNumber(tileEntity.code.digitOne);
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
|
@ -67,7 +70,7 @@ public class GuiTeleporter extends GuiContainer
|
|||
data.add(1);
|
||||
data.add(getIncrementedNumber(tileEntity.code.digitTwo));
|
||||
|
||||
PacketHandler.sendTileEntityPacketToServer(tileEntity, data);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity(Object3D.get(tileEntity), data));
|
||||
tileEntity.code.digitTwo = getIncrementedNumber(tileEntity.code.digitTwo);
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
|
@ -76,7 +79,7 @@ public class GuiTeleporter extends GuiContainer
|
|||
data.add(2);
|
||||
data.add(getIncrementedNumber(tileEntity.code.digitThree));
|
||||
|
||||
PacketHandler.sendTileEntityPacketToServer(tileEntity, data);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity(Object3D.get(tileEntity), data));
|
||||
tileEntity.code.digitThree = getIncrementedNumber(tileEntity.code.digitThree);
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
|
@ -85,7 +88,7 @@ public class GuiTeleporter extends GuiContainer
|
|||
data.add(3);
|
||||
data.add(getIncrementedNumber(tileEntity.code.digitFour));
|
||||
|
||||
PacketHandler.sendTileEntityPacketToServer(tileEntity, data);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity(Object3D.get(tileEntity), data));
|
||||
tileEntity.code.digitFour = getIncrementedNumber(tileEntity.code.digitFour);
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
package mekanism.client;
|
||||
|
||||
import mekanism.common.EnumPacketType;
|
||||
import mekanism.common.EnumWeatherType;
|
||||
import mekanism.common.MekanismUtils;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketWeather;
|
||||
import mekanism.common.network.PacketWeather.WeatherType;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -73,25 +74,25 @@ public class GuiWeatherOrb extends GuiScreen
|
|||
if(guibutton.id == 0)
|
||||
{
|
||||
MekanismUtils.doFakeEntityExplosion(player);
|
||||
PacketHandler.sendPacketData(EnumPacketType.WEATHER, Transmission.SERVER, EnumWeatherType.CLEAR.id);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketWeather(WeatherType.CLEAR));
|
||||
mc.displayGuiScreen(null);
|
||||
}
|
||||
if(guibutton.id == 1)
|
||||
{
|
||||
MekanismUtils.doFakeEntityExplosion(player);
|
||||
PacketHandler.sendPacketData(EnumPacketType.WEATHER, Transmission.SERVER, EnumWeatherType.STORM.id);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketWeather(WeatherType.STORM));
|
||||
mc.displayGuiScreen(null);
|
||||
}
|
||||
if(guibutton.id == 2)
|
||||
{
|
||||
MekanismUtils.doFakeEntityExplosion(player);
|
||||
PacketHandler.sendPacketData(EnumPacketType.WEATHER, Transmission.SERVER, EnumWeatherType.HAZE.id);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketWeather(WeatherType.HAZE));
|
||||
mc.displayGuiScreen(null);
|
||||
}
|
||||
if(guibutton.id == 3)
|
||||
{
|
||||
MekanismUtils.doFakeEntityExplosion(player);
|
||||
PacketHandler.sendPacketData(EnumPacketType.WEATHER, Transmission.SERVER, EnumWeatherType.RAIN.id);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketWeather(WeatherType.RAIN));
|
||||
mc.displayGuiScreen(null);
|
||||
}
|
||||
if(guibutton.id == 4)
|
||||
|
|
|
@ -7,6 +7,8 @@ import java.util.Map;
|
|||
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.client.ClientProxy;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
|
@ -182,7 +184,7 @@ public class BlockBasic extends Block
|
|||
|
||||
if(!manageInventory(entityplayer, tileEntity))
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(tileEntity, 0, tileEntity.getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(tileEntity), tileEntity.getNetworkedData(new ArrayList())));
|
||||
entityplayer.openGui(Mekanism.instance, 18, world, x, y, z);
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -5,8 +5,12 @@ import java.util.Random;
|
|||
|
||||
import mekanism.api.IEnergizedItem;
|
||||
import mekanism.api.IUpgradeManagement;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.client.ClientProxy;
|
||||
import mekanism.common.IFactory.RecipeType;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketElectricChest;
|
||||
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
|
@ -591,10 +595,10 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
|
|||
}
|
||||
else if(!electricChest.authenticated)
|
||||
{
|
||||
PacketHandler.sendChestOpenToPlayer((EntityPlayerMP)entityplayer, electricChest, 2, 0, true);
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketElectricChest(ElectricChestPacketType.CLIENT_OPEN, 2, 0, true, Object3D.get(electricChest)), entityplayer);
|
||||
}
|
||||
else {
|
||||
PacketHandler.sendChestOpenToPlayer((EntityPlayerMP)entityplayer, electricChest, 1, 0, true);
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketElectricChest(ElectricChestPacketType.CLIENT_OPEN, 1, 0, true, Object3D.get(electricChest)), entityplayer);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class ChargeUtils
|
|||
|
||||
if(item.canProvideEnergy(storer.inventory[slotID]))
|
||||
{
|
||||
double gain = ElectricItem.discharge(storer.inventory[slotID], (int)((storer.getMaxEnergy() - storer.getEnergy())*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
|
||||
double gain = ElectricItem.manager.discharge(storer.inventory[slotID], (int)((storer.getMaxEnergy() - storer.getEnergy())*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
|
||||
storer.setEnergy(storer.getEnergy() + gain);
|
||||
}
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ public final class ChargeUtils
|
|||
}
|
||||
else if(Mekanism.hooks.IC2Loaded && storer.inventory[slotID].getItem() instanceof IElectricItem)
|
||||
{
|
||||
double sent = ElectricItem.charge(storer.inventory[slotID], (int)(storer.getEnergy()*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
|
||||
double sent = ElectricItem.manager.charge(storer.inventory[slotID], (int)(storer.getEnergy()*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
|
||||
storer.setEnergy(storer.getEnergy() - sent);
|
||||
}
|
||||
else if(storer.inventory[slotID].getItem() instanceof IChargeableItem)
|
||||
|
|
|
@ -2,6 +2,8 @@ package mekanism.common;
|
|||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketStatusUpdate;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import cpw.mods.fml.common.ITickHandler;
|
||||
|
@ -39,14 +41,14 @@ public class CommonPlayerTickHandler implements ITickHandler
|
|||
if(item.getStatus(itemstack) != 2)
|
||||
{
|
||||
item.setStatus(itemstack, 2);
|
||||
PacketHandler.sendStatusUpdate(player, 2);
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketStatusUpdate(2), player);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(item.getStatus(itemstack) != 1)
|
||||
{
|
||||
item.setStatus(itemstack, 1);
|
||||
PacketHandler.sendStatusUpdate(player, 1);
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketStatusUpdate(1), player);
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
@ -56,7 +58,7 @@ public class CommonPlayerTickHandler implements ITickHandler
|
|||
if(item.getStatus(itemstack) != 3)
|
||||
{
|
||||
item.setStatus(itemstack, 3);
|
||||
PacketHandler.sendStatusUpdate(player, 3);
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketStatusUpdate(3), player);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -64,7 +66,7 @@ public class CommonPlayerTickHandler implements ITickHandler
|
|||
if(item.getStatus(itemstack) != 4)
|
||||
{
|
||||
item.setStatus(itemstack, 4);
|
||||
PacketHandler.sendStatusUpdate(player, 4);
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketStatusUpdate(4), player);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -73,7 +75,7 @@ public class CommonPlayerTickHandler implements ITickHandler
|
|||
if(item.getStatus(itemstack) != 4)
|
||||
{
|
||||
item.setStatus(itemstack, 4);
|
||||
PacketHandler.sendStatusUpdate(player, 4);
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketStatusUpdate(4), player);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
package mekanism.common;
|
||||
|
||||
import ic2.api.energy.event.EnergyTileSourceEvent;
|
||||
import ic2.api.energy.tile.IEnergySource;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import universalelectricity.core.vector.VectorHelper;
|
||||
import mekanism.api.IUniversalCable;
|
||||
import mekanism.api.Object3D;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.event.ForgeSubscribe;
|
||||
import ic2.api.energy.event.EnergyTileSourceEvent;
|
||||
import ic2.api.energy.tile.IEnergyConductor;
|
||||
import ic2.api.energy.tile.IEnergySource;
|
||||
|
||||
/**
|
||||
* This here is the core implementation of IC2 into Universal Cable. Thanks to Player's hard work at making the EnergyNet
|
||||
|
@ -22,24 +22,30 @@ public class IC2EnergyHandler
|
|||
@ForgeSubscribe
|
||||
public void handleEnergy(EnergyTileSourceEvent event)
|
||||
{
|
||||
TileEntity tileEntity = (TileEntity)event.energyTile;
|
||||
ArrayList<TileEntity> ignoredTiles = new ArrayList<TileEntity>();
|
||||
|
||||
for(ForgeDirection orientation : ForgeDirection.VALID_DIRECTIONS)
|
||||
if(!event.world.isRemote)
|
||||
{
|
||||
TileEntity tile = VectorHelper.getTileEntityFromSide(tileEntity.worldObj, new Vector3(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord), orientation);
|
||||
TileEntity tileEntity = (TileEntity)event.energyTile;
|
||||
ArrayList<TileEntity> ignoredTiles = new ArrayList<TileEntity>();
|
||||
|
||||
if(tile != null && tileEntity instanceof IEnergySource)
|
||||
for(ForgeDirection orientation : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
IEnergySource source = (IEnergySource)tileEntity;
|
||||
TileEntity tile = Object3D.get(tileEntity).getFromSide(orientation).getTileEntity(event.world);
|
||||
|
||||
if(!source.emitsEnergyTo(tile, MekanismUtils.toIC2Direction(orientation.getOpposite())))
|
||||
if(tile != null)
|
||||
{
|
||||
ignoredTiles.add(tile);
|
||||
if(tileEntity instanceof IEnergySource)
|
||||
{
|
||||
IEnergySource source = (IEnergySource)tileEntity;
|
||||
|
||||
if(!source.emitsEnergyTo(tile, MekanismUtils.toIC2Direction(orientation.getOpposite())))
|
||||
{
|
||||
ignoredTiles.add(tile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
event.amount = (int)(CableUtils.emitEnergyFromAllSidesIgnore(event.amount*Mekanism.FROM_IC2, tileEntity, ignoredTiles)*Mekanism.TO_IC2);
|
||||
}
|
||||
|
||||
event.amount = (int)(CableUtils.emitEnergyFromAllSidesIgnore(event.amount*Mekanism.FROM_IC2, tileEntity, ignoredTiles)*Mekanism.TO_IC2);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,7 +7,10 @@ import java.util.List;
|
|||
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.IEnergizedItem;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.Tier.EnergyCubeTier;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
|
@ -147,7 +150,7 @@ public class ItemBlockEnergyCube extends ItemBlock implements IEnergizedItem, II
|
|||
|
||||
if(!world.isRemote)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(tileEntity, 0, tileEntity.getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(tileEntity), tileEntity.getNetworkedData(new ArrayList())));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,9 @@ import mekanism.api.EnumColor;
|
|||
import mekanism.api.IEnergizedItem;
|
||||
import mekanism.api.IUpgradeManagement;
|
||||
import mekanism.common.BlockMachine.MachineType;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketElectricChest;
|
||||
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
|
@ -478,11 +481,11 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
|
|||
{
|
||||
if(!getAuthenticated(itemstack))
|
||||
{
|
||||
PacketHandler.sendChestOpenToPlayer((EntityPlayerMP)entityplayer, null, 2, 0, false);
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketElectricChest(ElectricChestPacketType.CLIENT_OPEN, 2, 0, false), entityplayer);
|
||||
}
|
||||
else if(getLocked(itemstack) && getJoules(itemstack) > 0)
|
||||
{
|
||||
PacketHandler.sendChestOpenToPlayer((EntityPlayerMP)entityplayer, null, 1, 0, false);
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketElectricChest(ElectricChestPacketType.CLIENT_OPEN, 1, 0, false), entityplayer);
|
||||
}
|
||||
else {
|
||||
InventoryElectricChest inventory = new InventoryElectricChest(entityplayer);
|
||||
|
|
|
@ -7,6 +7,9 @@ import java.util.Random;
|
|||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.IConfigurable;
|
||||
import mekanism.api.IUpgradeManagement;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -44,7 +47,7 @@ public class ItemConfigurator extends ItemEnergized
|
|||
{
|
||||
TileEntityMechanicalPipe tileEntity = (TileEntityMechanicalPipe)world.getBlockTileEntity(x, y, z);
|
||||
tileEntity.isActive = !tileEntity.isActive;
|
||||
PacketHandler.sendTileEntityPacketToClients(tileEntity, 0, tileEntity.getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(tileEntity), tileEntity.getNetworkedData(new ArrayList())));
|
||||
return true;
|
||||
}
|
||||
else if(world.getBlockTileEntity(x, y, z) instanceof TileEntityElectricPump)
|
||||
|
@ -79,7 +82,7 @@ public class ItemConfigurator extends ItemEnergized
|
|||
if(config instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)config;
|
||||
PacketHandler.sendTileEntityPacketToClients(tileEntity, 50, tileEntity.getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity(Object3D.get(tileEntity), tileEntity.getNetworkedData(new ArrayList())), Object3D.get(tileEntity), 50D);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -13,15 +13,31 @@ import java.util.logging.Logger;
|
|||
import mekanism.api.GasTransferProtocol.GasTransferEvent;
|
||||
import mekanism.api.InfuseObject;
|
||||
import mekanism.api.InfuseRegistry;
|
||||
import mekanism.api.InfusionInput;
|
||||
import mekanism.api.InfuseType;
|
||||
import mekanism.api.InfusionInput;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.client.SoundHandler;
|
||||
import mekanism.common.EnergyTransferProtocol.EnergyTransferEvent;
|
||||
import mekanism.common.IFactory.RecipeType;
|
||||
import mekanism.common.LiquidTransferProtocol.LiquidTransferEvent;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.Tier.EnergyCubeTier;
|
||||
import mekanism.common.Tier.FactoryTier;
|
||||
import mekanism.common.network.PacketConfiguratorState;
|
||||
import mekanism.common.network.PacketControlPanel;
|
||||
import mekanism.common.network.PacketDataRequest;
|
||||
import mekanism.common.network.PacketDigitUpdate;
|
||||
import mekanism.common.network.PacketElectricBowState;
|
||||
import mekanism.common.network.PacketElectricChest;
|
||||
import mekanism.common.network.PacketPortableTeleport;
|
||||
import mekanism.common.network.PacketPortalFX;
|
||||
import mekanism.common.network.PacketRobit;
|
||||
import mekanism.common.network.PacketStatusUpdate;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.network.PacketTime;
|
||||
import mekanism.common.network.PacketTransmitterTransferUpdate;
|
||||
import mekanism.common.network.PacketTransmitterTransferUpdate.TransmitterTransferType;
|
||||
import mekanism.common.network.PacketWeather;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -32,6 +48,8 @@ import net.minecraftforge.common.MinecraftForge;
|
|||
import net.minecraftforge.event.ForgeSubscribe;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||
import rebelkeithy.mods.metallurgy.api.IOreInfo;
|
||||
import rebelkeithy.mods.metallurgy.api.MetallurgyAPI;
|
||||
import thermalexpansion.api.crafting.CraftingManagers;
|
||||
import cpw.mods.fml.common.Mod;
|
||||
import cpw.mods.fml.common.Mod.Init;
|
||||
|
@ -54,8 +72,6 @@ import cpw.mods.fml.common.registry.LanguageRegistry;
|
|||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import rebelkeithy.mods.metallurgy.api.*;
|
||||
|
||||
/**
|
||||
* Mekanism - the mod in which no true definition fits.
|
||||
* @author AidanBrady
|
||||
|
@ -1142,6 +1158,22 @@ public class Mekanism
|
|||
addRecipes();
|
||||
addEntities();
|
||||
|
||||
//Packet registrations
|
||||
PacketHandler.registerPacket(PacketRobit.class);
|
||||
PacketHandler.registerPacket(PacketTransmitterTransferUpdate.class);
|
||||
PacketHandler.registerPacket(PacketTime.class);
|
||||
PacketHandler.registerPacket(PacketWeather.class);
|
||||
PacketHandler.registerPacket(PacketElectricChest.class);
|
||||
PacketHandler.registerPacket(PacketElectricBowState.class);
|
||||
PacketHandler.registerPacket(PacketConfiguratorState.class);
|
||||
PacketHandler.registerPacket(PacketControlPanel.class);
|
||||
PacketHandler.registerPacket(PacketTileEntity.class);
|
||||
PacketHandler.registerPacket(PacketPortalFX.class);
|
||||
PacketHandler.registerPacket(PacketDataRequest.class);
|
||||
PacketHandler.registerPacket(PacketStatusUpdate.class);
|
||||
PacketHandler.registerPacket(PacketDigitUpdate.class);
|
||||
PacketHandler.registerPacket(PacketPortableTeleport.class);
|
||||
|
||||
//Load proxy
|
||||
proxy.registerRenderInformation();
|
||||
proxy.loadUtilities();
|
||||
|
@ -1156,18 +1188,18 @@ public class Mekanism
|
|||
@ForgeSubscribe
|
||||
public void onGasTransferred(GasTransferEvent event)
|
||||
{
|
||||
PacketHandler.sendGasTransferUpdate(event.transferProtocol.pointer, event.transferProtocol.transferType);
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTransmitterTransferUpdate(TransmitterTransferType.GAS, event.transferProtocol.pointer, event.transferProtocol.transferType));
|
||||
}
|
||||
|
||||
@ForgeSubscribe
|
||||
public void onLiquidTransferred(LiquidTransferEvent event)
|
||||
{
|
||||
PacketHandler.sendLiquidTransferUpdate(event.transferProtocol.pointer, event.liquidSent);
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTransmitterTransferUpdate(TransmitterTransferType.LIQUID, event.transferProtocol.pointer, event.liquidSent));
|
||||
}
|
||||
|
||||
@ForgeSubscribe
|
||||
public void onEnergyTransferred(EnergyTransferEvent event)
|
||||
{
|
||||
PacketHandler.sendEnergyTransferUpdate(event.transferProtocol.pointer);
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTransmitterTransferUpdate(TransmitterTransferType.ENERGY, event.transferProtocol.pointer));
|
||||
}
|
||||
}
|
|
@ -16,8 +16,11 @@ import mekanism.api.IConfigurable;
|
|||
import mekanism.api.InfuseObject;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.IFactory.RecipeType;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.Tier.EnergyCubeTier;
|
||||
import mekanism.common.Tier.FactoryTier;
|
||||
import mekanism.common.network.PacketElectricChest;
|
||||
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
|
@ -734,7 +737,15 @@ public final class MekanismUtils
|
|||
player.incrementWindowID();
|
||||
player.closeInventory();
|
||||
int id = player.currentWindowId;
|
||||
PacketHandler.sendChestOpenToPlayer(player, tileEntity, 0, id, isBlock);
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketElectricChest(ElectricChestPacketType.CLIENT_OPEN, 0, id, true, Object3D.get(tileEntity)), player);
|
||||
}
|
||||
else {
|
||||
PacketHandler.sendPacket(Transmission.SINGLE_CLIENT, new PacketElectricChest(ElectricChestPacketType.CLIENT_OPEN, 0, id, false), player);
|
||||
}
|
||||
|
||||
player.openContainer = new ContainerElectricChest(player.inventory, tileEntity, inventory, isBlock);
|
||||
player.openContainer.windowId = id;
|
||||
player.openContainer.addCraftingToCrafters(player);
|
||||
|
|
|
@ -2,28 +2,19 @@ package mekanism.common;
|
|||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
import java.util.List;
|
||||
|
||||
import mekanism.api.EnumGas;
|
||||
import mekanism.api.GasTransferProtocol;
|
||||
import mekanism.api.IEnergizedItem;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.network.IMekanismPacket;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.INetworkManager;
|
||||
import net.minecraft.network.packet.Packet250CustomPayload;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.liquids.LiquidStack;
|
||||
import universalelectricity.core.electricity.ElectricityPack;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
import com.google.common.io.ByteStreams;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.network.IPacketHandler;
|
||||
import cpw.mods.fml.common.network.PacketDispatcher;
|
||||
import cpw.mods.fml.common.network.Player;
|
||||
|
@ -35,6 +26,8 @@ import cpw.mods.fml.common.network.Player;
|
|||
*/
|
||||
public class PacketHandler implements IPacketHandler
|
||||
{
|
||||
public static List<Class<? extends IMekanismPacket>> packets = new ArrayList<Class<? extends IMekanismPacket>>();
|
||||
|
||||
@Override
|
||||
public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player)
|
||||
{
|
||||
|
@ -44,510 +37,27 @@ public class PacketHandler implements IPacketHandler
|
|||
if(packet.channel.equals("Mekanism"))
|
||||
{
|
||||
try {
|
||||
int packetType = dataStream.readInt();
|
||||
int packetIndex = dataStream.readInt();
|
||||
|
||||
if(packetType == EnumPacketType.TIME.id)
|
||||
{
|
||||
System.out.println("[Mekanism] Received time update packet from " + entityplayer.username + ".");
|
||||
entityplayer.getCurrentEquippedItem().damageItem(4999, entityplayer);
|
||||
MekanismUtils.setHourForward(entityplayer.worldObj, dataStream.readInt());
|
||||
}
|
||||
else if(packetType == EnumPacketType.WEATHER.id)
|
||||
{
|
||||
System.out.println("[Mekanism] Received weather update packet from " + entityplayer.username + ".");
|
||||
entityplayer.getCurrentEquippedItem().damageItem(4999, entityplayer);
|
||||
int weatherType = dataStream.readInt();
|
||||
|
||||
if(weatherType == EnumWeatherType.CLEAR.id)
|
||||
{
|
||||
entityplayer.worldObj.getWorldInfo().setRaining(false);
|
||||
entityplayer.worldObj.getWorldInfo().setThundering(false);
|
||||
}
|
||||
if(weatherType == EnumWeatherType.HAZE.id)
|
||||
{
|
||||
entityplayer.worldObj.getWorldInfo().setRaining(true);
|
||||
entityplayer.worldObj.getWorldInfo().setThundering(true);
|
||||
}
|
||||
if(weatherType == EnumWeatherType.RAIN.id)
|
||||
{
|
||||
entityplayer.worldObj.getWorldInfo().setRaining(true);
|
||||
}
|
||||
if(weatherType == EnumWeatherType.STORM.id)
|
||||
{
|
||||
entityplayer.worldObj.getWorldInfo().setThundering(true);
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.TILE_ENTITY.id)
|
||||
{
|
||||
try {
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
World world = entityplayer.worldObj;
|
||||
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||
if(tileEntity instanceof ITileNetwork)
|
||||
{
|
||||
((ITileNetwork)tileEntity).handlePacketData(dataStream);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling tile entity packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.CONTROL_PANEL.id)
|
||||
{
|
||||
try {
|
||||
String modClass = dataStream.readUTF();
|
||||
String modInstance = dataStream.readUTF();
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
int guiId = dataStream.readInt();
|
||||
|
||||
Class mod = Class.forName(modClass);
|
||||
|
||||
if(mod == null)
|
||||
{
|
||||
System.err.println("[Mekanism] Incorrectly implemented IAccessibleGui -- ignoring handler packet.");
|
||||
System.err.println(" ~ Unable to locate class '" + modClass + ".'");
|
||||
System.err.println(" ~ GUI Container may not function correctly.");
|
||||
return;
|
||||
}
|
||||
|
||||
Object instance = mod.getField(modInstance).get(null);
|
||||
|
||||
if(instance == null)
|
||||
{
|
||||
System.err.println("[Mekanism] Incorrectly implemented IAccessibleGui -- ignoring handler packet.");
|
||||
System.err.println(" ~ Unable to locate instance object '" + modInstance + ".'");
|
||||
System.err.println(" ~ GUI Container may not function correctly.");
|
||||
return;
|
||||
}
|
||||
|
||||
entityplayer.openGui(instance, guiId, entityplayer.worldObj, x, y, z);
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling control panel packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.PORTAL_FX.id)
|
||||
{
|
||||
try {
|
||||
Random random = new Random();
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
for(int i = 0; i < 50; i++)
|
||||
{
|
||||
entityplayer.worldObj.spawnParticle("portal", x + random.nextFloat(), y + random.nextFloat(), z + random.nextFloat(), 0.0F, 0.0F, 0.0F);
|
||||
entityplayer.worldObj.spawnParticle("portal", x + random.nextFloat(), y + 1 + random.nextFloat(), z + random.nextFloat(), 0.0F, 0.0F, 0.0F);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling portal FX packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.DIGIT_UPDATE.id)
|
||||
{
|
||||
try {
|
||||
int index = dataStream.readInt();
|
||||
int digit = dataStream.readInt();
|
||||
|
||||
ItemStack currentStack = entityplayer.getCurrentEquippedItem();
|
||||
|
||||
if(currentStack != null && currentStack.getItem() instanceof ItemPortableTeleporter)
|
||||
{
|
||||
ItemPortableTeleporter item = (ItemPortableTeleporter)currentStack.getItem();
|
||||
item.setDigit(currentStack, index, digit);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling digit update packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.STATUS_UPDATE.id)
|
||||
{
|
||||
try {
|
||||
ItemStack currentStack = entityplayer.getCurrentEquippedItem();
|
||||
|
||||
if(currentStack != null && currentStack.getItem() instanceof ItemPortableTeleporter)
|
||||
{
|
||||
ItemPortableTeleporter item = (ItemPortableTeleporter)currentStack.getItem();
|
||||
item.setStatus(currentStack, dataStream.readInt());
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling status update packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.PORTABLE_TELEPORT.id)
|
||||
{
|
||||
try {
|
||||
if(entityplayer instanceof EntityPlayerMP)
|
||||
{
|
||||
EntityPlayerMP entityPlayerMP = (EntityPlayerMP)entityplayer;
|
||||
ItemStack itemstack = entityPlayerMP.getCurrentEquippedItem();
|
||||
|
||||
if(itemstack != null && itemstack.getItem() instanceof ItemPortableTeleporter)
|
||||
{
|
||||
ItemPortableTeleporter item = (ItemPortableTeleporter)itemstack.getItem();
|
||||
|
||||
if(item.getStatus(itemstack) == 1)
|
||||
{
|
||||
Object3D coords = MekanismUtils.getClosestCoords(new Teleporter.Code(item.getDigit(itemstack, 0), item.getDigit(itemstack, 1), item.getDigit(itemstack, 2), item.getDigit(itemstack, 3)), entityPlayerMP);
|
||||
|
||||
item.onProvide(new ElectricityPack(item.calculateEnergyCost(entityPlayerMP, coords)/120, 120), itemstack);
|
||||
|
||||
if(entityPlayerMP.worldObj.provider.dimensionId != coords.dimensionId)
|
||||
{
|
||||
entityPlayerMP.travelToDimension(coords.dimensionId);
|
||||
}
|
||||
|
||||
entityPlayerMP.playerNetServerHandler.setPlayerLocation(coords.xCoord+0.5, coords.yCoord+1, coords.zCoord+0.5, entityPlayerMP.rotationYaw, entityPlayerMP.rotationPitch);
|
||||
|
||||
entityplayer.worldObj.playSoundAtEntity(entityplayer, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
sendPortalFX(coords.xCoord, coords.yCoord, coords.zCoord, coords.dimensionId);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling portable teleport packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.DATA_REQUEST.id)
|
||||
{
|
||||
try {
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
int id = dataStream.readInt();
|
||||
|
||||
World world = FMLCommonHandler.instance().getMinecraftServerInstance().worldServerForDimension(id);
|
||||
|
||||
if(world != null && world.getBlockTileEntity(x, y, z) instanceof ITileNetwork)
|
||||
{
|
||||
sendTileEntityPacketToClients(world.getBlockTileEntity(x, y, z), 0, ((ITileNetwork)world.getBlockTileEntity(x, y, z)).getNetworkedData(new ArrayList()));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling data request packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.CONFIGURATOR_STATE.id)
|
||||
{
|
||||
try {
|
||||
int state = dataStream.readInt();
|
||||
|
||||
EntityPlayerMP entityPlayerMP = (EntityPlayerMP)entityplayer;
|
||||
ItemStack itemstack = entityPlayerMP.getCurrentEquippedItem();
|
||||
|
||||
if(itemstack != null && itemstack.getItem() instanceof ItemConfigurator)
|
||||
{
|
||||
((ItemConfigurator)itemstack.getItem()).setState(itemstack, (byte)state);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling configurator state packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.ELECTRIC_BOW_STATE.id)
|
||||
{
|
||||
try {
|
||||
boolean state = dataStream.readInt() == 1;
|
||||
|
||||
EntityPlayerMP entityPlayerMP = (EntityPlayerMP)entityplayer;
|
||||
ItemStack itemstack = entityPlayerMP.getCurrentEquippedItem();
|
||||
|
||||
if(itemstack != null && itemstack.getItem() instanceof ItemElectricBow)
|
||||
{
|
||||
((ItemElectricBow)itemstack.getItem()).setFireState(itemstack, state);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electric bow state packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.ELECTRIC_CHEST_SERVER_OPEN.id)
|
||||
{
|
||||
try {
|
||||
boolean isBlock = dataStream.readBoolean();
|
||||
boolean useEnergy = dataStream.readBoolean();
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntityElectricChest tileEntity = (TileEntityElectricChest)entityplayer.worldObj.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(useEnergy)
|
||||
{
|
||||
tileEntity.setEnergy(tileEntity.getEnergy() - 100);
|
||||
}
|
||||
|
||||
MekanismUtils.openElectricChestGui((EntityPlayerMP)entityplayer, tileEntity, null, true);
|
||||
}
|
||||
else {
|
||||
ItemStack stack = entityplayer.getCurrentEquippedItem();
|
||||
|
||||
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
|
||||
{
|
||||
if(useEnergy)
|
||||
{
|
||||
((IEnergizedItem)stack.getItem()).setEnergy(stack, ((IEnergizedItem)stack.getItem()).getEnergy(stack) - 100);
|
||||
}
|
||||
|
||||
InventoryElectricChest inventory = new InventoryElectricChest(entityplayer);
|
||||
MekanismUtils.openElectricChestGui((EntityPlayerMP)entityplayer, null, inventory, false);
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electric chest open packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.ELECTRIC_CHEST_CLIENT_OPEN.id)
|
||||
{
|
||||
try {
|
||||
int id = dataStream.readInt();
|
||||
int windowId = dataStream.readInt();
|
||||
boolean isBlock = dataStream.readBoolean();
|
||||
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
int z = 0;
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
x = dataStream.readInt();
|
||||
y = dataStream.readInt();
|
||||
z = dataStream.readInt();
|
||||
}
|
||||
|
||||
Mekanism.proxy.openElectricChest(entityplayer, id, windowId, isBlock, x, y, z);
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electric chest open packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.ELECTRIC_CHEST_PASSWORD.id)
|
||||
{
|
||||
try {
|
||||
boolean isBlock = dataStream.readBoolean();
|
||||
String password = dataStream.readUTF();
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntityElectricChest tileEntity = (TileEntityElectricChest)entityplayer.worldObj.getBlockTileEntity(x, y, z);
|
||||
tileEntity.password = password;
|
||||
tileEntity.authenticated = true;
|
||||
}
|
||||
else {
|
||||
ItemStack stack = entityplayer.getCurrentEquippedItem();
|
||||
|
||||
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
|
||||
{
|
||||
((IElectricChest)stack.getItem()).setPassword(stack, password);
|
||||
((IElectricChest)stack.getItem()).setAuthenticated(stack, true);
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electric chest password packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.ELECTRIC_CHEST_LOCK.id)
|
||||
{
|
||||
try {
|
||||
boolean isBlock = dataStream.readBoolean();
|
||||
boolean locked = dataStream.readBoolean();
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntityElectricChest tileEntity = (TileEntityElectricChest)entityplayer.worldObj.getBlockTileEntity(x, y, z);
|
||||
tileEntity.locked = locked;
|
||||
}
|
||||
else {
|
||||
ItemStack stack = entityplayer.getCurrentEquippedItem();
|
||||
|
||||
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
|
||||
{
|
||||
((IElectricChest)stack.getItem()).setLocked(stack, locked);
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electric chest password packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.LIQUID_TRANSFER_UPDATE.id)
|
||||
{
|
||||
try {
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntity tileEntity = entityplayer.worldObj.getBlockTileEntity(x, y, z);
|
||||
LiquidStack liquidStack = new LiquidStack(dataStream.readInt(), dataStream.readInt(), dataStream.readInt());
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
new LiquidTransferProtocol(tileEntity, null, liquidStack).clientUpdate();
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling liquid transfer update packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.ENERGY_TRANSFER_UPDATE.id)
|
||||
{
|
||||
try {
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntity tileEntity = entityplayer.worldObj.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
new EnergyTransferProtocol(tileEntity, null, new ArrayList()).clientUpdate();
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling energy transfer update packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == EnumPacketType.GAS_TRANSFER_UPDATE.id)
|
||||
{
|
||||
try {
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
EnumGas type = EnumGas.getFromName(dataStream.readUTF());
|
||||
|
||||
TileEntity tileEntity = entityplayer.worldObj.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
new GasTransferProtocol(tileEntity, null, type, 0).clientUpdate();
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling gas transfer update packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
/*else if(packetType == EnumPacketType.ELECTROLYTIC_SEPARATOR_PARTICLE.id)
|
||||
{
|
||||
try {
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntityElectrolyticSeparator tileEntity = (TileEntityElectrolyticSeparator)entityplayer.worldObj.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
tileEntity.spawnParticle();
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electrolytic separator particle packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}*/
|
||||
else if(packetType == EnumPacketType.ROBIT.id)
|
||||
{
|
||||
try {
|
||||
int subType = dataStream.readInt();
|
||||
|
||||
if(subType == 0)
|
||||
{
|
||||
int type = dataStream.readInt();
|
||||
int id = dataStream.readInt();
|
||||
|
||||
if(type == 0)
|
||||
{
|
||||
entityplayer.openGui(Mekanism.instance, 21, entityplayer.worldObj, id, 0, 0);
|
||||
}
|
||||
else if(type == 1)
|
||||
{
|
||||
entityplayer.openGui(Mekanism.instance, 22, entityplayer.worldObj, id, 0, 0);
|
||||
}
|
||||
else if(type == 2)
|
||||
{
|
||||
entityplayer.openGui(Mekanism.instance, 23, entityplayer.worldObj, id, 0, 0);
|
||||
}
|
||||
else if(type == 3)
|
||||
{
|
||||
entityplayer.openGui(Mekanism.instance, 24, entityplayer.worldObj, id, 0, 0);
|
||||
}
|
||||
else if(type == 4)
|
||||
{
|
||||
entityplayer.openGui(Mekanism.instance, 25, entityplayer.worldObj, id, 0, 0);
|
||||
}
|
||||
}
|
||||
else if(subType == 1)
|
||||
{
|
||||
int id = dataStream.readInt();
|
||||
|
||||
EntityRobit robit = (EntityRobit)entityplayer.worldObj.getEntityByID(id);
|
||||
|
||||
if(robit != null)
|
||||
{
|
||||
robit.setFollowing(!robit.getFollowing());
|
||||
}
|
||||
}
|
||||
else if(subType == 2)
|
||||
{
|
||||
String name = dataStream.readUTF();
|
||||
int id = dataStream.readInt();
|
||||
|
||||
EntityRobit robit = (EntityRobit)entityplayer.worldObj.getEntityByID(id);
|
||||
|
||||
if(robit != null)
|
||||
{
|
||||
robit.setName(name);
|
||||
}
|
||||
}
|
||||
else if(subType == 3)
|
||||
{
|
||||
int id = dataStream.readInt();
|
||||
|
||||
EntityRobit robit = (EntityRobit)entityplayer.worldObj.getEntityByID(id);
|
||||
|
||||
if(robit != null)
|
||||
{
|
||||
robit.goHome();
|
||||
}
|
||||
}
|
||||
else if(subType == 4)
|
||||
{
|
||||
int id = dataStream.readInt();
|
||||
|
||||
EntityRobit robit = (EntityRobit)entityplayer.worldObj.getEntityByID(id);
|
||||
|
||||
if(robit != null)
|
||||
{
|
||||
robit.setDropPickup(!robit.getDropPickup());
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling robit packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if(packets.get(packetIndex) == null)
|
||||
{
|
||||
System.err.println("[Mekanism] Received unknown packet identifier '" + packetIndex + ".' Ignorning!");
|
||||
return;
|
||||
}
|
||||
|
||||
IMekanismPacket packetType = packets.get(packetIndex).newInstance();
|
||||
|
||||
if(packetType == null)
|
||||
{
|
||||
System.err.println("[Mekanism] Unable to create instance of packet type '" + packetIndex + ".' Ignoring!");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
packetType.read(dataStream, entityplayer, entityplayer.worldObj);
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while reading '" + packetType.getName() + "' packet.");
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling packet.");
|
||||
e.printStackTrace();
|
||||
|
@ -555,296 +65,17 @@ public class PacketHandler implements IPacketHandler
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a packet from client to server with the TILE_ENTITY ID as well as an undefined amount of objects.
|
||||
* While it won't give you an error, you cannot send anything other than integers or booleans. This can
|
||||
* also be sent with a defined range, so players far away won't receive the packet.
|
||||
* @param sender - sending tile entity
|
||||
* @param distance - distance to send the packet, 0 if infinite range
|
||||
* @param dataValues - data to send
|
||||
*/
|
||||
public static void sendTileEntityPacketToServer(TileEntity sender, ArrayList dataValues)
|
||||
public static void registerPacket(Class<? extends IMekanismPacket> packetClass)
|
||||
{
|
||||
sendPacketData(EnumPacketType.TILE_ENTITY, Transmission.SERVER, sender.xCoord, sender.yCoord, sender.zCoord, dataValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a packet from server to client with the TILE_ENTITY ID as well as an undefined amount of objects.
|
||||
* This can also be sent with a defined range, so players far away won't receive the packet.
|
||||
* @param sender - sending tile entity
|
||||
* @param distance - distance to send the packet, 0 if infinite range
|
||||
* @param dataValues - data to send
|
||||
*/
|
||||
public static void sendTileEntityPacketToClients(TileEntity sender, double distance, ArrayList dataValues)
|
||||
{
|
||||
if(distance == 0)
|
||||
for(Class<? extends IMekanismPacket> iteration : packets)
|
||||
{
|
||||
sendPacketData(EnumPacketType.TILE_ENTITY, Transmission.ALL_CLIENTS, sender.xCoord, sender.yCoord, sender.zCoord, dataValues);
|
||||
}
|
||||
else {
|
||||
sendPacketData(EnumPacketType.TILE_ENTITY, Transmission.CLIENTS_RANGE, Object3D.get(sender), distance, sender.xCoord, sender.yCoord, sender.zCoord, dataValues);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* When the 'Access' button is clicked on the Control Panel's GUI, it both opens the client-side GUI, as well as
|
||||
* send a packet to the server with enough data to open up the server-side object, or container. This packet does
|
||||
* that function -- it sends over the data from IAccessibleGui (modClass, modInstance, guiId), and uses reflection
|
||||
* to attempt and access the declared instance object from the mod's main class, which is also accessed using
|
||||
* reflection. Upon being handled server-side, the data is put together, checked for NPEs, and then used inside
|
||||
* EntityPlayer.openGui() along with the sent-over coords.
|
||||
* @param modClass
|
||||
* @param modInstance
|
||||
* @param x
|
||||
* @param y
|
||||
* @param z
|
||||
* @param guiId
|
||||
*/
|
||||
public static void sendGuiRequest(String modClass, String modInstance, int x, int y, int z, int guiId)
|
||||
{
|
||||
sendPacketData(EnumPacketType.CONTROL_PANEL, Transmission.SERVER, modClass, modInstance, x, y, z, guiId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a portal effect packet to all clients in a radius around a teleporter.
|
||||
* @param x - x coordinate of teleporter
|
||||
* @param y - y coordinate of teleporter
|
||||
* @param z - z coordinate of teleporter
|
||||
* @param id - dimension ID of teleporter
|
||||
*/
|
||||
public static void sendPortalFX(int x, int y, int z, int id)
|
||||
{
|
||||
sendPacketData(EnumPacketType.PORTAL_FX, Transmission.CLIENTS_RANGE, new Object3D(x, y, z, id), 40D, x, y, z);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a digit update for a portable teleporter to the server as an integer.
|
||||
* @param index - digit index
|
||||
* @param digit - digit to send
|
||||
*/
|
||||
public static void sendDigitUpdate(int index, int digit)
|
||||
{
|
||||
sendPacketData(EnumPacketType.DIGIT_UPDATE, Transmission.SERVER, index, digit);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a status update for a portable teleporter to the client as a string.
|
||||
* @param entityplayer - player who is using the teleporter
|
||||
* @param status - status to send
|
||||
*/
|
||||
public static void sendStatusUpdate(EntityPlayer entityplayer, int status)
|
||||
{
|
||||
sendPacketData(EnumPacketType.STATUS_UPDATE, Transmission.SERVER, status);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a packet to a specified client requesting a certain electric chest GUI to be opened.
|
||||
* @param player - the player to send the chest-opening packet to
|
||||
* @param tileEntity - TileEntity of the chest, if it's not an item
|
||||
* @param i - GUI type: 0 if regular electric chest, 1 if password prompt, 2 if password modify
|
||||
* @param windowId - Minecraft-based container window identifier
|
||||
* @param isBlock - whether or not this electric chest is in it's block form
|
||||
*/
|
||||
public static void sendChestOpenToPlayer(EntityPlayer player, TileEntity tileEntity, int i, int windowId, boolean isBlock)
|
||||
{
|
||||
ArrayList dataValues = new ArrayList();
|
||||
|
||||
dataValues.add(player);
|
||||
|
||||
dataValues.add(i);
|
||||
dataValues.add(windowId);
|
||||
dataValues.add(isBlock);
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
dataValues.add(tileEntity.xCoord);
|
||||
dataValues.add(tileEntity.yCoord);
|
||||
dataValues.add(tileEntity.zCoord);
|
||||
if(iteration == packetClass)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
sendPacketData(EnumPacketType.ELECTRIC_CHEST_CLIENT_OPEN, Transmission.SINGLE_CLIENT, dataValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a packet to the server requesting an electric chest to be opened.
|
||||
* @param tileEntity - TileEntity of the chest, if it's not an item
|
||||
* @param isBlock - whether or not this electric chest is in it's block form
|
||||
* @param useEnergy - whether or not to use chest-opening energy (100 J)
|
||||
*/
|
||||
public static void sendChestOpen(TileEntity tileEntity, boolean isBlock, boolean useEnergy)
|
||||
{
|
||||
ArrayList dataValues = new ArrayList();
|
||||
|
||||
dataValues.add(isBlock);
|
||||
dataValues.add(useEnergy);
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
dataValues.add(tileEntity.xCoord);
|
||||
dataValues.add(tileEntity.yCoord);
|
||||
dataValues.add(tileEntity.zCoord);
|
||||
}
|
||||
|
||||
sendPacketData(EnumPacketType.ELECTRIC_CHEST_SERVER_OPEN, Transmission.SERVER, dataValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a packet to the server with a new 'password' value for an electric chest.
|
||||
* @param tileEntity - TileEntity of the chest, if it's not an item
|
||||
* @param password - new value
|
||||
* @param isBlock - whether or not this electric chest is in it's block form
|
||||
*/
|
||||
public static void sendPasswordChange(TileEntity tileEntity, String password, boolean isBlock)
|
||||
{
|
||||
ArrayList dataValues = new ArrayList();
|
||||
|
||||
dataValues.add(isBlock);
|
||||
dataValues.add(password);
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
dataValues.add(tileEntity.xCoord);
|
||||
dataValues.add(tileEntity.yCoord);
|
||||
dataValues.add(tileEntity.zCoord);
|
||||
}
|
||||
|
||||
sendPacketData(EnumPacketType.ELECTRIC_CHEST_PASSWORD, Transmission.SERVER, dataValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a packet to the server with a new 'locked' value for an electric chest.
|
||||
* @param tileEntity - TileEntity of the chest, if it's not an item
|
||||
* @param locked - new value
|
||||
* @param isBlock - whether or not this electric chest is in it's block form
|
||||
*/
|
||||
public static void sendLockChange(TileEntity tileEntity, boolean locked, boolean isBlock)
|
||||
{
|
||||
ArrayList dataValues = new ArrayList();
|
||||
|
||||
dataValues.add(isBlock);
|
||||
dataValues.add(locked);
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
dataValues.add(tileEntity.xCoord);
|
||||
dataValues.add(tileEntity.yCoord);
|
||||
dataValues.add(tileEntity.zCoord);
|
||||
}
|
||||
|
||||
sendPacketData(EnumPacketType.ELECTRIC_CHEST_LOCK, Transmission.SERVER, dataValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a packet to the client-side with a LiquidTransferProtocol's information. Used for render updates.
|
||||
* @param head - head TileEntity of the calculation
|
||||
* @param resource - the LiquidStack transferred by the server
|
||||
*/
|
||||
public static void sendLiquidTransferUpdate(TileEntity head, LiquidStack resource)
|
||||
{
|
||||
sendPacketData(EnumPacketType.LIQUID_TRANSFER_UPDATE, Transmission.ALL_CLIENTS, head.xCoord, head.yCoord, head.zCoord, resource.itemID, resource.amount, resource.itemMeta);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a packet to the client-side with an EnergyTransferProtocol's information. Used for render updates.
|
||||
* @param head - head TileEntity of the calculation
|
||||
*/
|
||||
public static void sendEnergyTransferUpdate(TileEntity head)
|
||||
{
|
||||
sendPacketData(EnumPacketType.ENERGY_TRANSFER_UPDATE, Transmission.ALL_CLIENTS, head.xCoord, head.yCoord, head.zCoord);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a packet to the client-side with a GasTransferProtocol's information. Used for render updates.
|
||||
* @param head - head TileEntity of the calculation
|
||||
*/
|
||||
public static void sendGasTransferUpdate(TileEntity head, EnumGas type)
|
||||
{
|
||||
sendPacketData(EnumPacketType.GAS_TRANSFER_UPDATE, Transmission.ALL_CLIENTS, head.xCoord, head.yCoord, head.zCoord, type.name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a request to clients near an Electrolytic Separator to emit a gas dump particle.
|
||||
* @param tileEntity - TileEntity who is emitting the particle
|
||||
*/
|
||||
/*public static void sendElectrolyticSeparatorParticle(TileEntityElectrolyticSeparator tileEntity)
|
||||
{
|
||||
sendPacketData(EnumPacketType.ELECTROLYTIC_SEPARATOR_PARTICLE, Transmission.CLIENTS_RANGE, Object3D.get(tileEntity), 40D, tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Sends a Robit GUI packet to the server.
|
||||
* @param type - GUI type to open
|
||||
* @param id - the robit's entity ID
|
||||
*/
|
||||
public static void sendRobitGui(int type, int id)
|
||||
{
|
||||
sendPacketData(EnumPacketType.ROBIT, Transmission.SERVER, 0, type, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a Robit name update packet to the server.
|
||||
* @param value - new follow value
|
||||
* @param id - the robit's entity ID
|
||||
*/
|
||||
public static void sendNameUpdate(String name, int id)
|
||||
{
|
||||
sendPacketData(EnumPacketType.ROBIT, Transmission.SERVER, 2, name, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is used to request a data update from the server in order to update a client-sided tile entity.
|
||||
* The server will receive this request, and then send a packet to the client with all the needed information.
|
||||
* @param tileEntity
|
||||
*/
|
||||
public static void sendDataRequest(TileEntity tileEntity)
|
||||
{
|
||||
sendPacketData(EnumPacketType.DATA_REQUEST, Transmission.SERVER, tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, tileEntity.worldObj.provider.dimensionId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the server the defined packet type with an undefined amount of data.
|
||||
* @param type - packet type
|
||||
* @param dataValues - data to send
|
||||
*/
|
||||
public static void sendPacketData(EnumPacketType type, Transmission trans, Object... dataValues)
|
||||
{
|
||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
||||
DataOutputStream data = new DataOutputStream(bytes);
|
||||
|
||||
try {
|
||||
data.writeInt(type.id);
|
||||
encode(dataValues, data, trans.parameters);
|
||||
} catch (IOException e) {
|
||||
System.out.println("[Mekanism] An error occured while writing packet data.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Packet250CustomPayload packet = new Packet250CustomPayload();
|
||||
packet.channel = "Mekanism";
|
||||
packet.data = bytes.toByteArray();
|
||||
packet.length = packet.data.length;
|
||||
|
||||
switch(trans)
|
||||
{
|
||||
case SERVER:
|
||||
PacketDispatcher.sendPacketToServer(packet);
|
||||
break;
|
||||
case ALL_CLIENTS:
|
||||
PacketDispatcher.sendPacketToAllPlayers(packet);
|
||||
break;
|
||||
case CLIENTS_RANGE:
|
||||
Object3D obj = (Object3D)dataValues[0];
|
||||
PacketDispatcher.sendPacketToAllAround(obj.xCoord, obj.yCoord, obj.zCoord, (Double)dataValues[1], obj.dimensionId, packet);
|
||||
break;
|
||||
case SINGLE_CLIENT:
|
||||
((EntityPlayerMP)dataValues[0]).playerNetServerHandler.sendPacketToPlayer(packet);
|
||||
break;
|
||||
}
|
||||
|
||||
if(Mekanism.logPackets)
|
||||
{
|
||||
System.out.println("[Mekanism] Sent data int packet '" + type.id + "' to server");
|
||||
}
|
||||
packets.add(packetClass);
|
||||
}
|
||||
|
||||
public static void encode(Object[] dataValues, DataOutputStream output, int ignore)
|
||||
|
@ -908,6 +139,78 @@ public class PacketHandler implements IPacketHandler
|
|||
}
|
||||
}
|
||||
|
||||
public static void sendPacket(Transmission trans, IMekanismPacket packetType, Object... transParams)
|
||||
{
|
||||
if(packetType == null)
|
||||
{
|
||||
System.err.println("[Mekanism] Attempted to send null packet, ignoring!");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!packets.contains(packetType.getClass()))
|
||||
{
|
||||
System.err.println("[Mekanism] Attempted to send unregistered packet '" + packetType.getName() + ",' ignoring!");
|
||||
return;
|
||||
}
|
||||
|
||||
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
||||
DataOutputStream data = new DataOutputStream(bytes);
|
||||
|
||||
try {
|
||||
data.writeInt(packets.indexOf(packetType.getClass()));
|
||||
packetType.write(data);
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while encoding packet data.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Packet250CustomPayload packet = new Packet250CustomPayload();
|
||||
packet.channel = "Mekanism";
|
||||
packet.data = bytes.toByteArray();
|
||||
packet.length = packet.data.length;
|
||||
|
||||
switch(trans)
|
||||
{
|
||||
case SERVER:
|
||||
PacketDispatcher.sendPacketToServer(packet);
|
||||
break;
|
||||
case ALL_CLIENTS:
|
||||
PacketDispatcher.sendPacketToAllPlayers(packet);
|
||||
break;
|
||||
case CLIENTS_RANGE:
|
||||
Object3D obj = (Object3D)transParams[0];
|
||||
PacketDispatcher.sendPacketToAllAround(obj.xCoord, obj.yCoord, obj.zCoord, (Double)transParams[1], obj.dimensionId, packet);
|
||||
break;
|
||||
case SINGLE_CLIENT:
|
||||
((EntityPlayerMP)transParams[0]).playerNetServerHandler.sendPacketToPlayer(packet);
|
||||
break;
|
||||
}
|
||||
|
||||
log(trans, packetType, transParams);
|
||||
}
|
||||
|
||||
private static void log(Transmission trans, IMekanismPacket packetType, Object[] transParams)
|
||||
{
|
||||
if(Mekanism.logPackets)
|
||||
{
|
||||
switch(trans)
|
||||
{
|
||||
case SERVER:
|
||||
System.out.println("[Mekanism] Sent '" + packetType.getName() + "' packet to server.");
|
||||
break;
|
||||
case ALL_CLIENTS:
|
||||
System.out.println("[Mekanism] Sent '" + packetType.getName() + "' packet to all clients.");
|
||||
break;
|
||||
case CLIENTS_RANGE:
|
||||
System.out.println("[Mekanism] Sent '" + packetType.getName() + "' packet to clients in a " + (Double)transParams[1] + " block range.");
|
||||
break;
|
||||
case SINGLE_CLIENT:
|
||||
System.out.println("[Mekanism] Sent '" + packetType.getName() + "' packet to " + ((EntityPlayer)transParams[0]).username);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static enum Transmission
|
||||
{
|
||||
/** No additional parameters. */
|
||||
|
@ -929,13 +232,4 @@ public class PacketHandler implements IPacketHandler
|
|||
parameters = params;
|
||||
}
|
||||
}
|
||||
|
||||
public static enum RobitPacket
|
||||
{
|
||||
GUI,
|
||||
FOLLOW,
|
||||
NAME,
|
||||
GO_HOME,
|
||||
DROP_PICKUP;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,10 @@ import java.util.ArrayList;
|
|||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketDataRequest;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -37,7 +41,7 @@ public abstract class TileEntityBasicBlock extends TileEntity implements IWrench
|
|||
{
|
||||
if(playersUsing.size() > 0)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 50, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())), Object3D.get(this), 50D);
|
||||
}
|
||||
|
||||
packetTick++;
|
||||
|
@ -64,7 +68,7 @@ public abstract class TileEntityBasicBlock extends TileEntity implements IWrench
|
|||
|
||||
if(worldObj.isRemote)
|
||||
{
|
||||
PacketHandler.sendDataRequest(this);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketDataRequest(Object3D.get(this)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -107,7 +111,7 @@ public abstract class TileEntityBasicBlock extends TileEntity implements IWrench
|
|||
facing = direction;
|
||||
}
|
||||
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -8,8 +8,11 @@ import java.util.ArrayList;
|
|||
import mekanism.api.IConfigurable;
|
||||
import mekanism.api.IStrictEnergyAcceptor;
|
||||
import mekanism.api.IUpgradeManagement;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.api.SideData;
|
||||
import mekanism.client.IHasSound;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
@ -265,7 +268,7 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
|
|||
|
||||
if(prevActive != active)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
|
||||
prevActive = active;
|
||||
|
|
|
@ -4,6 +4,10 @@ import java.util.ArrayList;
|
|||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketDataRequest;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
|
@ -21,7 +25,7 @@ public class TileEntityBoundingBlock extends TileEntity implements ITileNetwork
|
|||
mainY = y;
|
||||
mainZ = z;
|
||||
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,7 +36,7 @@ public class TileEntityBoundingBlock extends TileEntity implements ITileNetwork
|
|||
|
||||
if(worldObj.isRemote)
|
||||
{
|
||||
PacketHandler.sendDataRequest(this);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketDataRequest(Object3D.get(this)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,10 @@ import universalelectricity.core.item.IItemElectric;
|
|||
import mekanism.api.EnergizedItemManager;
|
||||
import mekanism.api.IEnergizedItem;
|
||||
import mekanism.api.IStrictEnergyAcceptor;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.client.IHasSound;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -131,7 +134,7 @@ public class TileEntityChargepad extends TileEntityElectricBlock implements IAct
|
|||
}
|
||||
else if(Mekanism.hooks.IC2Loaded && itemstack.getItem() instanceof IElectricItem)
|
||||
{
|
||||
double sent = ElectricItem.charge(itemstack, (int)(getEnergy()*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
|
||||
double sent = ElectricItem.manager.charge(itemstack, (int)(getEnergy()*Mekanism.TO_IC2), 3, false, false)*Mekanism.FROM_IC2;
|
||||
setEnergy(getEnergy() - sent);
|
||||
}
|
||||
else if(itemstack.getItem() instanceof IChargeableItem)
|
||||
|
@ -177,7 +180,7 @@ public class TileEntityChargepad extends TileEntityElectricBlock implements IAct
|
|||
|
||||
if(prevActive != active)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
|
||||
prevActive = active;
|
||||
|
|
|
@ -2,6 +2,9 @@ package mekanism.common;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
|
@ -28,11 +31,11 @@ public class TileEntityControlPanel extends TileEntity implements ITileNetwork
|
|||
|
||||
if(packetTick == 5 && !worldObj.isRemote)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
if(packetTick % 20 == 0 && worldObj.isRemote)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToServer(this, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,12 +5,13 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.SynchronizedTankData.ValveData;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
||||
|
@ -146,7 +147,7 @@ public class TileEntityDynamicTank extends TileEntityContainerBlock
|
|||
if(structure != null && isRendering && packetTick % 20 == 0)
|
||||
{
|
||||
sendStructure = true;
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())), Object3D.get(this), 50D);
|
||||
}
|
||||
|
||||
if(prevStructure != (structure != null))
|
||||
|
@ -158,7 +159,7 @@ public class TileEntityDynamicTank extends TileEntityContainerBlock
|
|||
sendStructure = true;
|
||||
}
|
||||
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
|
||||
prevStructure = structure != null;
|
||||
|
@ -225,7 +226,7 @@ public class TileEntityDynamicTank extends TileEntityContainerBlock
|
|||
structure.liquidStored = null;
|
||||
}
|
||||
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -284,7 +285,7 @@ public class TileEntityDynamicTank extends TileEntityContainerBlock
|
|||
}
|
||||
}
|
||||
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -422,7 +423,7 @@ public class TileEntityDynamicTank extends TileEntityContainerBlock
|
|||
|
||||
if(tileEntity != null && tileEntity.isRendering)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(tileEntity, 0, tileEntity.getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(tileEntity), tileEntity.getNetworkedData(new ArrayList())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,8 @@ import java.util.Set;
|
|||
|
||||
import mekanism.api.IStrictEnergyAcceptor;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
@ -98,7 +100,7 @@ public class TileEntityElectricPump extends TileEntityElectricBlock implements I
|
|||
{
|
||||
if(suck(true))
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 50, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())), Object3D.get(this), 50D);
|
||||
}
|
||||
|
||||
clean(true);
|
||||
|
|
|
@ -10,11 +10,14 @@ import mekanism.api.EnumColor;
|
|||
import mekanism.api.IConfigurable;
|
||||
import mekanism.api.IStrictEnergyAcceptor;
|
||||
import mekanism.api.IUpgradeManagement;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.api.SideData;
|
||||
import mekanism.client.IHasSound;
|
||||
import mekanism.common.BlockMachine.MachineType;
|
||||
import mekanism.common.IFactory.RecipeType;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.Tier.FactoryTier;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
@ -680,7 +683,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
|
|||
|
||||
if(prevActive != active)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
|
||||
prevActive = active;
|
||||
|
|
|
@ -4,6 +4,9 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
|
||||
import mekanism.api.IMechanicalPipe;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketDataRequest;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
@ -104,7 +107,7 @@ public class TileEntityMechanicalPipe extends TileEntity implements IMechanicalP
|
|||
|
||||
if(worldObj.isRemote)
|
||||
{
|
||||
PacketHandler.sendDataRequest(this);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketDataRequest(Object3D.get(this)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,10 +15,13 @@ import mekanism.api.InfuseRegistry;
|
|||
import mekanism.api.InfuseType;
|
||||
import mekanism.api.InfusionInput;
|
||||
import mekanism.api.InfusionOutput;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.api.SideData;
|
||||
import mekanism.client.IHasSound;
|
||||
import mekanism.common.BlockMachine.MachineType;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.RecipeHandler.Recipe;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
@ -571,7 +574,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
|
|||
|
||||
if(prevActive != active)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
|
||||
prevActive = active;
|
||||
|
|
|
@ -10,6 +10,8 @@ import java.util.List;
|
|||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.IStrictEnergyAcceptor;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketPortalFX;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
|
@ -207,7 +209,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IEn
|
|||
|
||||
for(Object3D coords : Mekanism.teleporters.get(code))
|
||||
{
|
||||
PacketHandler.sendPortalFX(coords.xCoord, coords.yCoord, coords.zCoord, coords.dimensionId);
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketPortalFX(coords), coords, 40D);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
17
src/minecraft/mekanism/common/network/IMekanismPacket.java
Normal file
17
src/minecraft/mekanism/common/network/IMekanismPacket.java
Normal file
|
@ -0,0 +1,17 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public interface IMekanismPacket
|
||||
{
|
||||
public String getName();
|
||||
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception;
|
||||
|
||||
public void write(DataOutputStream dataStream) throws Exception;
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.common.ItemConfigurator;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketConfiguratorState implements IMekanismPacket
|
||||
{
|
||||
public byte state;
|
||||
|
||||
public PacketConfiguratorState(byte b)
|
||||
{
|
||||
state = b;
|
||||
}
|
||||
|
||||
public PacketConfiguratorState() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "ConfiguratorState";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
byte state = dataStream.readByte();
|
||||
|
||||
ItemStack itemstack = player.getCurrentEquippedItem();
|
||||
|
||||
if(itemstack != null && itemstack.getItem() instanceof ItemConfigurator)
|
||||
{
|
||||
((ItemConfigurator)itemstack.getItem()).setState(itemstack, (byte)state);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeByte(state);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketControlPanel implements IMekanismPacket
|
||||
{
|
||||
public String modClass;
|
||||
public String modInstance;
|
||||
|
||||
public Object3D object3D;
|
||||
|
||||
public int guiId;
|
||||
|
||||
public PacketControlPanel(String mClass, String mInstance, Object3D obj, int id)
|
||||
{
|
||||
modClass = mClass;
|
||||
modInstance = mInstance;
|
||||
|
||||
object3D = obj;
|
||||
|
||||
guiId = id;
|
||||
}
|
||||
|
||||
public PacketControlPanel() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "ControlPanel";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
String modClass = dataStream.readUTF();
|
||||
String modInstance = dataStream.readUTF();
|
||||
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
int guiId = dataStream.readInt();
|
||||
|
||||
Class mod = Class.forName(modClass);
|
||||
|
||||
if(mod == null)
|
||||
{
|
||||
System.err.println("[Mekanism] Incorrectly implemented IAccessibleGui -- ignoring handler packet.");
|
||||
System.err.println(" ~ Unable to locate class '" + modClass + ".'");
|
||||
System.err.println(" ~ GUI Container may not function correctly.");
|
||||
return;
|
||||
}
|
||||
|
||||
Object instance = mod.getField(modInstance).get(null);
|
||||
|
||||
if(instance == null)
|
||||
{
|
||||
System.err.println("[Mekanism] Incorrectly implemented IAccessibleGui -- ignoring handler packet.");
|
||||
System.err.println(" ~ Unable to locate instance object '" + modInstance + ".'");
|
||||
System.err.println(" ~ GUI Container may not function correctly.");
|
||||
return;
|
||||
}
|
||||
|
||||
player.openGui(instance, guiId, world, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeUTF(modClass);
|
||||
dataStream.writeUTF(modInstance);
|
||||
|
||||
dataStream.writeInt(object3D.xCoord);
|
||||
dataStream.writeInt(object3D.yCoord);
|
||||
dataStream.writeInt(object3D.zCoord);
|
||||
|
||||
dataStream.writeInt(guiId);
|
||||
}
|
||||
}
|
60
src/minecraft/mekanism/common/network/PacketDataRequest.java
Normal file
60
src/minecraft/mekanism/common/network/PacketDataRequest.java
Normal file
|
@ -0,0 +1,60 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.ITileNetwork;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
|
||||
public class PacketDataRequest implements IMekanismPacket
|
||||
{
|
||||
public Object3D object3D;
|
||||
|
||||
public PacketDataRequest(Object3D obj)
|
||||
{
|
||||
object3D = obj;
|
||||
}
|
||||
|
||||
public PacketDataRequest() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "DataRequest";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
int id = dataStream.readInt();
|
||||
|
||||
World worldServer = FMLCommonHandler.instance().getMinecraftServerInstance().worldServerForDimension(id);
|
||||
|
||||
if(worldServer != null && worldServer.getBlockTileEntity(x, y, z) instanceof ITileNetwork)
|
||||
{
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(worldServer.getBlockTileEntity(x, y, z)), ((ITileNetwork)worldServer.getBlockTileEntity(x, y, z)).getNetworkedData(new ArrayList())));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(object3D.xCoord);
|
||||
dataStream.writeInt(object3D.yCoord);
|
||||
dataStream.writeInt(object3D.zCoord);
|
||||
|
||||
dataStream.writeInt(object3D.dimensionId);
|
||||
}
|
||||
}
|
52
src/minecraft/mekanism/common/network/PacketDigitUpdate.java
Normal file
52
src/minecraft/mekanism/common/network/PacketDigitUpdate.java
Normal file
|
@ -0,0 +1,52 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.common.ItemPortableTeleporter;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketDigitUpdate implements IMekanismPacket
|
||||
{
|
||||
public int index;
|
||||
public int digit;
|
||||
|
||||
public PacketDigitUpdate(int i, int j)
|
||||
{
|
||||
index = i;
|
||||
digit = j;
|
||||
}
|
||||
|
||||
public PacketDigitUpdate() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "DigitUpdate";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
int index = dataStream.readInt();
|
||||
int digit = dataStream.readInt();
|
||||
|
||||
ItemStack currentStack = player.getCurrentEquippedItem();
|
||||
|
||||
if(currentStack != null && currentStack.getItem() instanceof ItemPortableTeleporter)
|
||||
{
|
||||
ItemPortableTeleporter item = (ItemPortableTeleporter)currentStack.getItem();
|
||||
item.setDigit(currentStack, index, digit);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(index);
|
||||
dataStream.writeInt(digit);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.common.ItemElectricBow;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketElectricBowState implements IMekanismPacket
|
||||
{
|
||||
public boolean fireMode;
|
||||
|
||||
public PacketElectricBowState(boolean fire)
|
||||
{
|
||||
fireMode = fire;
|
||||
}
|
||||
|
||||
public PacketElectricBowState() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "ElectricBowState";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
boolean state = dataStream.readBoolean();
|
||||
|
||||
ItemStack itemstack = player.getCurrentEquippedItem();
|
||||
|
||||
if(itemstack != null && itemstack.getItem() instanceof ItemElectricBow)
|
||||
{
|
||||
((ItemElectricBow)itemstack.getItem()).setFireState(itemstack, state);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeBoolean(fireMode);
|
||||
}
|
||||
}
|
289
src/minecraft/mekanism/common/network/PacketElectricChest.java
Normal file
289
src/minecraft/mekanism/common/network/PacketElectricChest.java
Normal file
|
@ -0,0 +1,289 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.api.IEnergizedItem;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.IElectricChest;
|
||||
import mekanism.common.InventoryElectricChest;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.MekanismUtils;
|
||||
import mekanism.common.TileEntityElectricChest;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketElectricChest implements IMekanismPacket
|
||||
{
|
||||
public ElectricChestPacketType activeType;
|
||||
|
||||
public boolean isBlock;
|
||||
|
||||
public boolean locked;
|
||||
|
||||
public String password;
|
||||
|
||||
public int guiType;
|
||||
public int windowId;
|
||||
|
||||
public boolean useEnergy;
|
||||
|
||||
public Object3D obj;
|
||||
|
||||
public PacketElectricChest(ElectricChestPacketType type, Object... params)
|
||||
{
|
||||
activeType = type;
|
||||
|
||||
switch(activeType)
|
||||
{
|
||||
case LOCK:
|
||||
locked = (Boolean)params[0];
|
||||
isBlock = (Boolean)params[1];
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
obj = (Object3D)params[2];
|
||||
}
|
||||
|
||||
break;
|
||||
case PASSWORD:
|
||||
password = (String)params[0];
|
||||
isBlock = (Boolean)params[1];
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
obj = (Object3D)params[2];
|
||||
}
|
||||
|
||||
break;
|
||||
case CLIENT_OPEN:
|
||||
guiType = (Integer)params[0];
|
||||
windowId = (Integer)params[1];
|
||||
isBlock = (Boolean)params[2];
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
obj = (Object3D)params[3];
|
||||
}
|
||||
|
||||
break;
|
||||
case SERVER_OPEN:
|
||||
useEnergy = (Boolean)params[0];
|
||||
isBlock = (Boolean)params[1];
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
obj = (Object3D)params[2];
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public PacketElectricChest() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "ElectricChest";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
ElectricChestPacketType packetType = ElectricChestPacketType.values()[dataStream.readInt()];
|
||||
|
||||
if(packetType == ElectricChestPacketType.SERVER_OPEN)
|
||||
{
|
||||
try {
|
||||
boolean energy = dataStream.readBoolean();
|
||||
boolean block = dataStream.readBoolean();
|
||||
|
||||
if(block)
|
||||
{
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntityElectricChest tileEntity = (TileEntityElectricChest)world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(energy)
|
||||
{
|
||||
tileEntity.setEnergy(tileEntity.getEnergy() - 100);
|
||||
}
|
||||
|
||||
MekanismUtils.openElectricChestGui((EntityPlayerMP)player, tileEntity, null, true);
|
||||
}
|
||||
else {
|
||||
ItemStack stack = player.getCurrentEquippedItem();
|
||||
|
||||
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
|
||||
{
|
||||
if(energy)
|
||||
{
|
||||
((IEnergizedItem)stack.getItem()).setEnergy(stack, ((IEnergizedItem)stack.getItem()).getEnergy(stack) - 100);
|
||||
}
|
||||
|
||||
InventoryElectricChest inventory = new InventoryElectricChest(player);
|
||||
MekanismUtils.openElectricChestGui((EntityPlayerMP)player, null, inventory, false);
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electric chest open packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == ElectricChestPacketType.CLIENT_OPEN)
|
||||
{
|
||||
try {
|
||||
int type = dataStream.readInt();
|
||||
int id = dataStream.readInt();
|
||||
boolean block = dataStream.readBoolean();
|
||||
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
int z = 0;
|
||||
|
||||
if(block)
|
||||
{
|
||||
x = dataStream.readInt();
|
||||
y = dataStream.readInt();
|
||||
z = dataStream.readInt();
|
||||
}
|
||||
|
||||
Mekanism.proxy.openElectricChest(player, type, id, block, x, y, z);
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electric chest open packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == ElectricChestPacketType.PASSWORD)
|
||||
{
|
||||
try {
|
||||
String pass = dataStream.readUTF();
|
||||
boolean block = dataStream.readBoolean();
|
||||
|
||||
if(block)
|
||||
{
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntityElectricChest tileEntity = (TileEntityElectricChest)world.getBlockTileEntity(x, y, z);
|
||||
tileEntity.password = pass;
|
||||
tileEntity.authenticated = true;
|
||||
}
|
||||
else {
|
||||
ItemStack stack = player.getCurrentEquippedItem();
|
||||
|
||||
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
|
||||
{
|
||||
((IElectricChest)stack.getItem()).setPassword(stack, pass);
|
||||
((IElectricChest)stack.getItem()).setAuthenticated(stack, true);
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electric chest password packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(packetType == ElectricChestPacketType.LOCK)
|
||||
{
|
||||
try {
|
||||
boolean lock = dataStream.readBoolean();
|
||||
boolean block = dataStream.readBoolean();
|
||||
|
||||
if(block)
|
||||
{
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntityElectricChest tileEntity = (TileEntityElectricChest)world.getBlockTileEntity(x, y, z);
|
||||
tileEntity.locked = lock;
|
||||
}
|
||||
else {
|
||||
ItemStack stack = player.getCurrentEquippedItem();
|
||||
|
||||
if(stack != null && stack.getItem() instanceof IElectricChest && ((IElectricChest)stack.getItem()).isElectricChest(stack))
|
||||
{
|
||||
((IElectricChest)stack.getItem()).setLocked(stack, lock);
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
System.err.println("[Mekanism] Error while handling electric chest password packet.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(activeType.ordinal());
|
||||
|
||||
switch(activeType)
|
||||
{
|
||||
case LOCK:
|
||||
dataStream.writeBoolean(locked);
|
||||
dataStream.writeBoolean(isBlock);
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
dataStream.writeInt(obj.xCoord);
|
||||
dataStream.writeInt(obj.yCoord);
|
||||
dataStream.writeInt(obj.zCoord);
|
||||
}
|
||||
|
||||
break;
|
||||
case PASSWORD:
|
||||
dataStream.writeUTF(password);
|
||||
dataStream.writeBoolean(isBlock);
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
dataStream.writeInt(obj.xCoord);
|
||||
dataStream.writeInt(obj.yCoord);
|
||||
dataStream.writeInt(obj.zCoord);
|
||||
}
|
||||
|
||||
break;
|
||||
case CLIENT_OPEN:
|
||||
dataStream.writeInt(guiType);
|
||||
dataStream.writeInt(windowId);
|
||||
dataStream.writeBoolean(isBlock);
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
dataStream.writeInt(obj.xCoord);
|
||||
dataStream.writeInt(obj.yCoord);
|
||||
dataStream.writeInt(obj.zCoord);
|
||||
}
|
||||
|
||||
break;
|
||||
case SERVER_OPEN:
|
||||
dataStream.writeBoolean(useEnergy);
|
||||
dataStream.writeBoolean(isBlock);
|
||||
|
||||
if(isBlock)
|
||||
{
|
||||
dataStream.writeInt(obj.xCoord);
|
||||
dataStream.writeInt(obj.yCoord);
|
||||
dataStream.writeInt(obj.zCoord);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static enum ElectricChestPacketType
|
||||
{
|
||||
LOCK,
|
||||
PASSWORD,
|
||||
CLIENT_OPEN,
|
||||
SERVER_OPEN
|
||||
}
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import universalelectricity.core.electricity.ElectricityPack;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.ItemPortableTeleporter;
|
||||
import mekanism.common.MekanismUtils;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.Teleporter;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketPortableTeleport implements IMekanismPacket
|
||||
{
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "PortableTeleport";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
ItemStack itemstack = player.getCurrentEquippedItem();
|
||||
|
||||
if(itemstack != null && itemstack.getItem() instanceof ItemPortableTeleporter)
|
||||
{
|
||||
ItemPortableTeleporter item = (ItemPortableTeleporter)itemstack.getItem();
|
||||
|
||||
if(item.getStatus(itemstack) == 1)
|
||||
{
|
||||
Object3D coords = MekanismUtils.getClosestCoords(new Teleporter.Code(item.getDigit(itemstack, 0), item.getDigit(itemstack, 1), item.getDigit(itemstack, 2), item.getDigit(itemstack, 3)), player);
|
||||
|
||||
item.onProvide(new ElectricityPack(item.calculateEnergyCost(player, coords)/120, 120), itemstack);
|
||||
|
||||
if(world.provider.dimensionId != coords.dimensionId)
|
||||
{
|
||||
((EntityPlayerMP)player).travelToDimension(coords.dimensionId);
|
||||
}
|
||||
|
||||
((EntityPlayerMP)player).playerNetServerHandler.setPlayerLocation(coords.xCoord+0.5, coords.yCoord+1, coords.zCoord+0.5, player.rotationYaw, player.rotationPitch);
|
||||
|
||||
world.playSoundAtEntity(player, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketPortalFX(coords), coords, 40D);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception {}
|
||||
}
|
52
src/minecraft/mekanism/common/network/PacketPortalFX.java
Normal file
52
src/minecraft/mekanism/common/network/PacketPortalFX.java
Normal file
|
@ -0,0 +1,52 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
import java.util.Random;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketPortalFX implements IMekanismPacket
|
||||
{
|
||||
public Object3D object3D;
|
||||
|
||||
public PacketPortalFX(Object3D obj)
|
||||
{
|
||||
object3D = obj;
|
||||
}
|
||||
|
||||
public PacketPortalFX() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "PortalFX";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
Random random = new Random();
|
||||
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
for(int i = 0; i < 50; i++)
|
||||
{
|
||||
world.spawnParticle("portal", x + random.nextFloat(), y + random.nextFloat(), z + random.nextFloat(), 0.0F, 0.0F, 0.0F);
|
||||
world.spawnParticle("portal", x + random.nextFloat(), y + 1 + random.nextFloat(), z + random.nextFloat(), 0.0F, 0.0F, 0.0F);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(object3D.xCoord);
|
||||
dataStream.writeInt(object3D.yCoord);
|
||||
dataStream.writeInt(object3D.zCoord);
|
||||
}
|
||||
}
|
166
src/minecraft/mekanism/common/network/PacketRobit.java
Normal file
166
src/minecraft/mekanism/common/network/PacketRobit.java
Normal file
|
@ -0,0 +1,166 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.common.EntityRobit;
|
||||
import mekanism.common.Mekanism;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketRobit implements IMekanismPacket
|
||||
{
|
||||
public RobitPacketType activeType;
|
||||
|
||||
public int guiType;
|
||||
public int entityId;
|
||||
|
||||
public String name;
|
||||
|
||||
public PacketRobit(RobitPacketType type, Object... params)
|
||||
{
|
||||
activeType = type;
|
||||
|
||||
switch(activeType)
|
||||
{
|
||||
case GUI:
|
||||
guiType = (Integer)params[0];
|
||||
entityId = (Integer)params[1];
|
||||
break;
|
||||
case FOLLOW:
|
||||
entityId = (Integer)params[0];
|
||||
break;
|
||||
case NAME:
|
||||
name = (String)params[0];
|
||||
entityId = (Integer)params[1];
|
||||
break;
|
||||
case GO_HOME:
|
||||
entityId = (Integer)params[0];
|
||||
break;
|
||||
case DROP_PICKUP:
|
||||
entityId = (Integer)params[0];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "Robit";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
int subType = dataStream.readInt();
|
||||
|
||||
if(subType == 0)
|
||||
{
|
||||
int type = dataStream.readInt();
|
||||
int id = dataStream.readInt();
|
||||
|
||||
if(type == 0)
|
||||
{
|
||||
player.openGui(Mekanism.instance, 21, world, id, 0, 0);
|
||||
}
|
||||
else if(type == 1)
|
||||
{
|
||||
player.openGui(Mekanism.instance, 22, world, id, 0, 0);
|
||||
}
|
||||
else if(type == 2)
|
||||
{
|
||||
player.openGui(Mekanism.instance, 23, world, id, 0, 0);
|
||||
}
|
||||
else if(type == 3)
|
||||
{
|
||||
player.openGui(Mekanism.instance, 24, world, id, 0, 0);
|
||||
}
|
||||
else if(type == 4)
|
||||
{
|
||||
player.openGui(Mekanism.instance, 25, world, id, 0, 0);
|
||||
}
|
||||
}
|
||||
else if(subType == 1)
|
||||
{
|
||||
int id = dataStream.readInt();
|
||||
|
||||
EntityRobit robit = (EntityRobit)world.getEntityByID(id);
|
||||
|
||||
if(robit != null)
|
||||
{
|
||||
robit.setFollowing(!robit.getFollowing());
|
||||
}
|
||||
}
|
||||
else if(subType == 2)
|
||||
{
|
||||
String name = dataStream.readUTF();
|
||||
int id = dataStream.readInt();
|
||||
|
||||
EntityRobit robit = (EntityRobit)world.getEntityByID(id);
|
||||
|
||||
if(robit != null)
|
||||
{
|
||||
robit.setName(name);
|
||||
}
|
||||
}
|
||||
else if(subType == 3)
|
||||
{
|
||||
int id = dataStream.readInt();
|
||||
|
||||
EntityRobit robit = (EntityRobit)world.getEntityByID(id);
|
||||
|
||||
if(robit != null)
|
||||
{
|
||||
robit.goHome();
|
||||
}
|
||||
}
|
||||
else if(subType == 4)
|
||||
{
|
||||
int id = dataStream.readInt();
|
||||
|
||||
EntityRobit robit = (EntityRobit)world.getEntityByID(id);
|
||||
|
||||
if(robit != null)
|
||||
{
|
||||
robit.setDropPickup(!robit.getDropPickup());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(activeType.ordinal());
|
||||
|
||||
switch(activeType)
|
||||
{
|
||||
case GUI:
|
||||
dataStream.writeInt(guiType);
|
||||
dataStream.writeInt(entityId);
|
||||
break;
|
||||
case FOLLOW:
|
||||
dataStream.writeInt(entityId);
|
||||
break;
|
||||
case NAME:
|
||||
dataStream.writeUTF(name);
|
||||
dataStream.writeInt(entityId);
|
||||
break;
|
||||
case GO_HOME:
|
||||
dataStream.writeInt(entityId);
|
||||
break;
|
||||
case DROP_PICKUP:
|
||||
dataStream.writeInt(entityId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static enum RobitPacketType
|
||||
{
|
||||
GUI,
|
||||
FOLLOW,
|
||||
NAME,
|
||||
GO_HOME,
|
||||
DROP_PICKUP;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.common.ItemPortableTeleporter;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketStatusUpdate implements IMekanismPacket
|
||||
{
|
||||
public int status;
|
||||
|
||||
public PacketStatusUpdate(int i)
|
||||
{
|
||||
status = i;
|
||||
}
|
||||
|
||||
public PacketStatusUpdate() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "StatusUpdate";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
ItemStack currentStack = player.getCurrentEquippedItem();
|
||||
|
||||
if(currentStack != null && currentStack.getItem() instanceof ItemPortableTeleporter)
|
||||
{
|
||||
ItemPortableTeleporter item = (ItemPortableTeleporter)currentStack.getItem();
|
||||
item.setStatus(currentStack, dataStream.readInt());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(status);
|
||||
}
|
||||
}
|
58
src/minecraft/mekanism/common/network/PacketTileEntity.java
Normal file
58
src/minecraft/mekanism/common/network/PacketTileEntity.java
Normal file
|
@ -0,0 +1,58 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.ITileNetwork;
|
||||
import mekanism.common.PacketHandler;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketTileEntity implements IMekanismPacket
|
||||
{
|
||||
public Object3D object3D;
|
||||
|
||||
public Object[] parameters;
|
||||
|
||||
public PacketTileEntity(Object3D obj, Object... params)
|
||||
{
|
||||
object3D = obj;
|
||||
parameters = params;
|
||||
}
|
||||
|
||||
public PacketTileEntity() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "TileEntity";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity instanceof ITileNetwork)
|
||||
{
|
||||
((ITileNetwork)tileEntity).handlePacketData(dataStream);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(object3D.xCoord);
|
||||
dataStream.writeInt(object3D.yCoord);
|
||||
dataStream.writeInt(object3D.zCoord);
|
||||
|
||||
PacketHandler.encode(parameters, dataStream, 0);
|
||||
}
|
||||
}
|
40
src/minecraft/mekanism/common/network/PacketTime.java
Normal file
40
src/minecraft/mekanism/common/network/PacketTime.java
Normal file
|
@ -0,0 +1,40 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.common.MekanismUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketTime implements IMekanismPacket
|
||||
{
|
||||
public int hourToSet;
|
||||
|
||||
public PacketTime(int hour)
|
||||
{
|
||||
hourToSet = hour;
|
||||
}
|
||||
|
||||
public PacketTime() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "Time";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
player.getCurrentEquippedItem().damageItem(4999, player);
|
||||
MekanismUtils.setHourForward(world, dataStream.readInt());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(hourToSet);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,125 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import mekanism.api.EnumGas;
|
||||
import mekanism.api.GasTransferProtocol;
|
||||
import mekanism.common.EnergyTransferProtocol;
|
||||
import mekanism.common.LiquidTransferProtocol;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.liquids.LiquidStack;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketTransmitterTransferUpdate implements IMekanismPacket
|
||||
{
|
||||
public TransmitterTransferType activeType;
|
||||
|
||||
public TileEntity tileEntity;
|
||||
|
||||
public String gasName;
|
||||
|
||||
public LiquidStack liquidStack;
|
||||
|
||||
public PacketTransmitterTransferUpdate(TransmitterTransferType type, Object... params)
|
||||
{
|
||||
tileEntity = (TileEntity)params[0];
|
||||
|
||||
activeType = type;
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case ENERGY:
|
||||
break;
|
||||
case GAS:
|
||||
gasName = ((EnumGas)params[1]).name;
|
||||
break;
|
||||
case LIQUID:
|
||||
liquidStack = (LiquidStack)params[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public PacketTransmitterTransferUpdate() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "TransmitterTransferUpdate";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
int transmitterType = dataStream.readInt();
|
||||
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
if(transmitterType == 0)
|
||||
{
|
||||
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
new EnergyTransferProtocol(tileEntity, null, new ArrayList()).clientUpdate();
|
||||
}
|
||||
}
|
||||
else if(transmitterType == 1)
|
||||
{
|
||||
EnumGas type = EnumGas.getFromName(dataStream.readUTF());
|
||||
|
||||
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
new GasTransferProtocol(tileEntity, null, type, 0).clientUpdate();
|
||||
}
|
||||
}
|
||||
else if(transmitterType == 2)
|
||||
{
|
||||
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||
LiquidStack liquidStack = new LiquidStack(dataStream.readInt(), dataStream.readInt(), dataStream.readInt());
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
new LiquidTransferProtocol(tileEntity, null, liquidStack).clientUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(activeType.ordinal());
|
||||
|
||||
dataStream.writeInt(tileEntity.xCoord);
|
||||
dataStream.writeInt(tileEntity.yCoord);
|
||||
dataStream.writeInt(tileEntity.zCoord);
|
||||
|
||||
switch(activeType)
|
||||
{
|
||||
case ENERGY:
|
||||
break;
|
||||
case GAS:
|
||||
dataStream.writeUTF(gasName);
|
||||
break;
|
||||
case LIQUID:
|
||||
dataStream.writeInt(liquidStack.itemID);
|
||||
dataStream.writeInt(liquidStack.amount);
|
||||
dataStream.writeInt(liquidStack.itemMeta);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static enum TransmitterTransferType
|
||||
{
|
||||
ENERGY,
|
||||
GAS,
|
||||
LIQUID
|
||||
}
|
||||
}
|
69
src/minecraft/mekanism/common/network/PacketWeather.java
Normal file
69
src/minecraft/mekanism/common/network/PacketWeather.java
Normal file
|
@ -0,0 +1,69 @@
|
|||
package mekanism.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketWeather implements IMekanismPacket
|
||||
{
|
||||
public WeatherType activeType;
|
||||
|
||||
public PacketWeather(WeatherType type)
|
||||
{
|
||||
activeType = type;
|
||||
}
|
||||
|
||||
public PacketWeather() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "Weather";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
player.getCurrentEquippedItem().damageItem(4999, player);
|
||||
int weatherType = dataStream.readInt();
|
||||
|
||||
switch(weatherType)
|
||||
{
|
||||
case 0:
|
||||
world.getWorldInfo().setRaining(false);
|
||||
world.getWorldInfo().setThundering(false);
|
||||
break;
|
||||
case 1:
|
||||
world.getWorldInfo().setThundering(true);
|
||||
break;
|
||||
case 2:
|
||||
world.getWorldInfo().setRaining(true);
|
||||
world.getWorldInfo().setThundering(true);
|
||||
break;
|
||||
case 3:
|
||||
world.getWorldInfo().setRaining(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(activeType.ordinal());
|
||||
}
|
||||
|
||||
public static enum WeatherType
|
||||
{
|
||||
/** Clears the world of all weather effects, including rain, lightning, and clouds. */
|
||||
CLEAR,
|
||||
/** Sets the world's weather to thunder. This may or may not include rain. */
|
||||
STORM,
|
||||
/** Sets the world's weather to both thunder AND rain. */
|
||||
HAZE,
|
||||
/** Sets the world's weather to rain. */
|
||||
RAIN
|
||||
}
|
||||
}
|
|
@ -3,7 +3,10 @@ package mekanism.generators.client;
|
|||
import java.util.ArrayList;
|
||||
|
||||
import mekanism.api.EnumGas;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.generators.common.ContainerElectrolyticSeparator;
|
||||
import mekanism.generators.common.TileEntityElectrolyticSeparator;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
|
@ -13,7 +16,6 @@ import org.lwjgl.opengl.GL11;
|
|||
|
||||
import universalelectricity.core.electricity.ElectricityDisplay;
|
||||
import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
@ -60,7 +62,7 @@ public class GuiElectrolyticSeparator extends GuiContainer
|
|||
data.add((byte)0);
|
||||
data.add(nameToSet);
|
||||
|
||||
PacketHandler.sendTileEntityPacketToServer(tileEntity, data);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity(Object3D.get(tileEntity), data));
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
else if(xAxis > 8 && xAxis < 17 && yAxis > 73 && yAxis < 82)
|
||||
|
@ -84,7 +86,7 @@ public class GuiElectrolyticSeparator extends GuiContainer
|
|||
data.add((byte)1);
|
||||
data.add(nameToSet);
|
||||
|
||||
PacketHandler.sendTileEntityPacketToServer(tileEntity, data);
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity(Object3D.get(tileEntity), data));
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,8 +7,10 @@ import mekanism.common.IModule;
|
|||
import mekanism.common.ItemMekanism;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.MekanismRecipe;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.RecipeHandler;
|
||||
import mekanism.common.Version;
|
||||
import mekanism.generators.common.network.PacketElectrolyticSeparatorParticle;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockLeaves;
|
||||
import net.minecraft.item.Item;
|
||||
|
@ -79,6 +81,9 @@ public class MekanismGenerators implements IModule
|
|||
addRecipes();
|
||||
addEntities();
|
||||
|
||||
//Packet registrations
|
||||
PacketHandler.registerPacket(PacketElectrolyticSeparatorParticle.class);
|
||||
|
||||
//Finalization
|
||||
Mekanism.logger.info("[MekanismGenerators] Loaded module.");
|
||||
}
|
||||
|
|
|
@ -14,13 +14,16 @@ import mekanism.api.IGasStorage;
|
|||
import mekanism.api.IStorageTank;
|
||||
import mekanism.api.IStrictEnergyAcceptor;
|
||||
import mekanism.api.ITubeConnection;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.common.ChargeUtils;
|
||||
import mekanism.common.ISustainedTank;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.MekanismUtils;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.TileEntityElectricBlock;
|
||||
import mekanism.generators.common.BlockGenerator.GeneratorType;
|
||||
import mekanism.generators.common.network.PacketElectrolyticSeparatorParticle;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -207,7 +210,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
|
|||
|
||||
if(new Random().nextInt(3) == 2)
|
||||
{
|
||||
//PacketHandler.sendElectrolyticSeparatorParticle(this);
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketElectrolyticSeparatorParticle(this), Object3D.get(this), 40D);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import java.util.EnumSet;
|
|||
|
||||
import mekanism.api.ICableOutputter;
|
||||
import mekanism.api.IUniversalCable;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.client.IHasSound;
|
||||
import mekanism.common.CableUtils;
|
||||
import mekanism.common.IActiveState;
|
||||
|
@ -19,6 +20,8 @@ import mekanism.common.Mekanism;
|
|||
import mekanism.common.MekanismUtils;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.TileEntityElectricBlock;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
@ -211,7 +214,7 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
|
|||
|
||||
if(prevActive != active)
|
||||
{
|
||||
PacketHandler.sendTileEntityPacketToClients(this, 0, getNetworkedData(new ArrayList()));
|
||||
PacketHandler.sendPacket(Transmission.ALL_CLIENTS, new PacketTileEntity(Object3D.get(this), getNetworkedData(new ArrayList())));
|
||||
}
|
||||
|
||||
prevActive = active;
|
||||
|
|
|
@ -234,6 +234,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
|
|||
{
|
||||
boost = 4;
|
||||
}
|
||||
|
||||
return boost;
|
||||
}
|
||||
|
||||
|
|
|
@ -140,7 +140,7 @@ public class TileEntitySolarGenerator extends TileEntityGenerator
|
|||
@Override
|
||||
public int getEnvironmentBoost()
|
||||
{
|
||||
return seesSun ? (GENERATION_RATE*(worldObj.provider instanceof ISolarLevel ? (int)((ISolarLevel)worldObj.provider).getSolorEnergyMultiplier() : 1)) : 0;
|
||||
return seesSun ? (GENERATION_RATE*(worldObj.provider instanceof ISolarLevel ? (int)((ISolarLevel)worldObj.provider).getSolarEnergyMultiplier() : 1)) : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
package mekanism.generators.common.network;
|
||||
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import mekanism.common.network.IMekanismPacket;
|
||||
import mekanism.generators.common.TileEntityElectrolyticSeparator;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
public class PacketElectrolyticSeparatorParticle implements IMekanismPacket
|
||||
{
|
||||
public int packetId;
|
||||
|
||||
public TileEntityElectrolyticSeparator tileEntity;
|
||||
|
||||
public PacketElectrolyticSeparatorParticle(TileEntityElectrolyticSeparator tile)
|
||||
{
|
||||
tileEntity = tile;
|
||||
}
|
||||
|
||||
public PacketElectrolyticSeparatorParticle() {}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "ElectrolyticSeparatorParticle";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
|
||||
{
|
||||
int x = dataStream.readInt();
|
||||
int y = dataStream.readInt();
|
||||
int z = dataStream.readInt();
|
||||
|
||||
TileEntityElectrolyticSeparator tileEntity = (TileEntityElectrolyticSeparator)world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if(tileEntity != null)
|
||||
{
|
||||
tileEntity.spawnParticle();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutputStream dataStream) throws Exception
|
||||
{
|
||||
dataStream.writeInt(tileEntity.xCoord);
|
||||
dataStream.writeInt(tileEntity.yCoord);
|
||||
dataStream.writeInt(tileEntity.zCoord);
|
||||
}
|
||||
}
|
|
@ -2,5 +2,5 @@ package micdoodle8.mods.galacticraft.API;
|
|||
|
||||
public interface ISolarLevel
|
||||
{
|
||||
public double getSolorEnergyMultiplier();
|
||||
public double getSolarEnergyMultiplier();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue