From 8d83ada60f847e91b2efb2f832ced9460add7542 Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Fri, 20 Mar 2015 01:30:11 -0400 Subject: [PATCH] Fixed a Laser Amplifier & Laser Tractor Beam inventory crash, fixed missing sounds for Chargepad, Chemical Crystallzer, Chemical Washer & Metallurgic Infuser --- .../mekanism/client/ClientTickHandler.java | 2 +- .../mekanism/common/CommonPlayerTracker.java | 2 + .../container/ContainerLaserAmplifier.java | 53 ++++++++++++++++++- .../container/ContainerLaserTractorBeam.java | 48 +++++++++++++++-- .../common/tile/TileEntityChargepad.java | 2 +- .../tile/TileEntityChemicalCrystallizer.java | 2 +- .../common/tile/TileEntityChemicalWasher.java | 2 +- .../tile/TileEntityMetallurgicInfuser.java | 2 +- 8 files changed, 104 insertions(+), 9 deletions(-) diff --git a/src/main/java/mekanism/client/ClientTickHandler.java b/src/main/java/mekanism/client/ClientTickHandler.java index 87d239826..0f34576e6 100644 --- a/src/main/java/mekanism/client/ClientTickHandler.java +++ b/src/main/java/mekanism/client/ClientTickHandler.java @@ -210,7 +210,7 @@ public class ClientTickHandler } } - if(isFlamethrowerOn(mc.thePlayer) != Mekanism.flamethrowerActive.contains(mc.thePlayer.getCommandSenderName())) + if(Mekanism.flamethrowerActive.contains(mc.thePlayer.getCommandSenderName()) != isFlamethrowerOn(mc.thePlayer)) { if(isFlamethrowerOn(mc.thePlayer)) { diff --git a/src/main/java/mekanism/common/CommonPlayerTracker.java b/src/main/java/mekanism/common/CommonPlayerTracker.java index e8e761c3e..1e5bec166 100644 --- a/src/main/java/mekanism/common/CommonPlayerTracker.java +++ b/src/main/java/mekanism/common/CommonPlayerTracker.java @@ -47,6 +47,8 @@ public class CommonPlayerTracker public void onPlayerDimChangedEvent(PlayerChangedDimensionEvent event) { Mekanism.jetpackOn.remove(event.player); + Mekanism.gasmaskOn.remove(event.player); + Mekanism.flamethrowerActive.remove(event.player); if(!event.player.worldObj.isRemote) { diff --git a/src/main/java/mekanism/common/inventory/container/ContainerLaserAmplifier.java b/src/main/java/mekanism/common/inventory/container/ContainerLaserAmplifier.java index 970c29a74..2c7fdfd3a 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerLaserAmplifier.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerLaserAmplifier.java @@ -1,11 +1,11 @@ package mekanism.common.inventory.container; import mekanism.common.tile.TileEntityLaserAmplifier; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; public class ContainerLaserAmplifier extends Container { @@ -48,4 +48,55 @@ public class ContainerLaserAmplifier extends Container { return tileEntity.isUseableByPlayer(entityplayer); } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slotID) + { + ItemStack stack = null; + Slot currentSlot = (Slot)inventorySlots.get(slotID); + + if(currentSlot != null && currentSlot.getHasStack()) + { + ItemStack slotStack = currentSlot.getStack(); + stack = slotStack.copy(); + + if(slotID >= 0 && slotID <= 26) + { + if(!mergeItemStack(slotStack, 27, inventorySlots.size(), false)) + { + return null; + } + } + else if(slotID > 26) + { + if(!mergeItemStack(slotStack, 0, 26, false)) + { + return null; + } + } + else { + if(!mergeItemStack(slotStack, 0, inventorySlots.size(), true)) + { + return null; + } + } + + if(slotStack.stackSize == 0) + { + currentSlot.putStack((ItemStack)null); + } + else { + currentSlot.onSlotChanged(); + } + + if(slotStack.stackSize == stack.stackSize) + { + return null; + } + + currentSlot.onPickupFromSlot(player, slotStack); + } + + return stack; + } } diff --git a/src/main/java/mekanism/common/inventory/container/ContainerLaserTractorBeam.java b/src/main/java/mekanism/common/inventory/container/ContainerLaserTractorBeam.java index 868f854ba..ea012cca9 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerLaserTractorBeam.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerLaserTractorBeam.java @@ -1,11 +1,11 @@ package mekanism.common.inventory.container; import mekanism.common.tile.TileEntityLaserTractorBeam; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; public class ContainerLaserTractorBeam extends Container { @@ -16,9 +16,9 @@ public class ContainerLaserTractorBeam extends Container tileEntity = tentity; int slotX; - for (slotX = 0; slotX < 9; slotX++) + for(slotX = 0; slotX < 9; slotX++) { - for (int slotY = 0; slotY < 3; slotY++) + for(int slotY = 0; slotY < 3; slotY++) { addSlotToContainer(new Slot(tentity, slotX + slotY * 9, 8 + slotX * 18, 16 + slotY * 18)); } @@ -55,4 +55,46 @@ public class ContainerLaserTractorBeam extends Container { return tileEntity.isUseableByPlayer(entityplayer); } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slotID) + { + ItemStack stack = null; + Slot currentSlot = (Slot)inventorySlots.get(slotID); + + if(currentSlot != null && currentSlot.getHasStack()) + { + ItemStack slotStack = currentSlot.getStack(); + stack = slotStack.copy(); + + if(slotID < 27) + { + if(!mergeItemStack(slotStack, 27, inventorySlots.size(), true)) + { + return null; + } + } + else if(!mergeItemStack(slotStack, 0, 27, false)) + { + return null; + } + + if(slotStack.stackSize == 0) + { + currentSlot.putStack((ItemStack)null); + } + else { + currentSlot.onSlotChanged(); + } + + if(slotStack.stackSize == stack.stackSize) + { + return null; + } + + currentSlot.onPickupFromSlot(player, slotStack); + } + + return stack; + } } diff --git a/src/main/java/mekanism/common/tile/TileEntityChargepad.java b/src/main/java/mekanism/common/tile/TileEntityChargepad.java index d1797e9a0..d8fb06bc7 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChargepad.java +++ b/src/main/java/mekanism/common/tile/TileEntityChargepad.java @@ -42,7 +42,7 @@ public class TileEntityChargepad extends TileEntityNoisyElectricBlock public TileEntityChargepad() { - super("chargepad", "Chargepad", MachineType.CHARGEPAD.baseEnergy); + super("machine.chargepad", "Chargepad", MachineType.CHARGEPAD.baseEnergy); inventory = new ItemStack[0]; } diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java b/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java index 5c6b0a4ff..530e66dd9 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java @@ -84,7 +84,7 @@ public class TileEntityChemicalCrystallizer extends TileEntityNoisyElectricBlock public TileEntityChemicalCrystallizer() { - super("crystallizer", "ChemicalCrystallizer", MachineType.CHEMICAL_CRYSTALLIZER.baseEnergy); + super("machine.crystallizer", "ChemicalCrystallizer", MachineType.CHEMICAL_CRYSTALLIZER.baseEnergy); configComponent = new TileComponentConfig(this, TransmissionType.ITEM, TransmissionType.ENERGY, TransmissionType.GAS); diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalWasher.java b/src/main/java/mekanism/common/tile/TileEntityChemicalWasher.java index 3c4e9a5cf..3645a6d15 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalWasher.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalWasher.java @@ -83,7 +83,7 @@ public class TileEntityChemicalWasher extends TileEntityNoisyElectricBlock imple public TileEntityChemicalWasher() { - super("washer", "ChemicalWasher", MachineType.CHEMICAL_WASHER.baseEnergy); + super("machine.washer", "ChemicalWasher", MachineType.CHEMICAL_WASHER.baseEnergy); inventory = new ItemStack[5]; } diff --git a/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java b/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java index cf5c1d255..5455dbe7a 100644 --- a/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java +++ b/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java @@ -88,7 +88,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock i public TileEntityMetallurgicInfuser() { - super("metalinfuser", "MetallurgicInfuser", MachineType.METALLURGIC_INFUSER.baseEnergy); + super("machine.metalinfuser", "MetallurgicInfuser", MachineType.METALLURGIC_INFUSER.baseEnergy); configComponent = new TileComponentConfig(this, TransmissionType.ITEM, TransmissionType.ENERGY);