From af4ce9b93c29f82dafcdd933b81bcf09bd7f7082 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Tue, 28 Jan 2014 21:08:09 +0800 Subject: [PATCH] Fixed turntable messing up multipart --- .../archaic/blocks/BlockTurntable.java | 34 +++++++++++-------- .../generator/thermopile/TileThermopile.java | 4 +++ .../mechanical/network/PartMechanical.java | 6 ---- .../mechanical/network/TileMechanical.java | 17 ++++++++++ 4 files changed, 40 insertions(+), 21 deletions(-) diff --git a/src/main/java/resonantinduction/archaic/blocks/BlockTurntable.java b/src/main/java/resonantinduction/archaic/blocks/BlockTurntable.java index 91d3fd9e..1529470a 100644 --- a/src/main/java/resonantinduction/archaic/blocks/BlockTurntable.java +++ b/src/main/java/resonantinduction/archaic/blocks/BlockTurntable.java @@ -14,6 +14,7 @@ import resonantinduction.core.prefab.block.BlockRIRotatable; import universalelectricity.api.vector.Vector3; import calclavia.lib.prefab.block.IRotatableBlock; import calclavia.lib.prefab.tile.IRotatable; +import codechicken.multipart.TileMultipart; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -93,23 +94,26 @@ public class BlockTurntable extends BlockRIRotatable TileEntity tileEntity = position.getTileEntity(world); Block block = Block.blocksList[position.getBlockID(world)]; - if (tileEntity instanceof IRotatable) + if (!(tileEntity instanceof TileMultipart)) { - ForgeDirection blockRotation = ((IRotatable) tileEntity).getDirection(); - ((IRotatable) tileEntity).setDirection(blockRotation.getRotation(facing.getOpposite())); - } - else if (block instanceof IRotatableBlock) - { - ForgeDirection blockRotation = ((IRotatableBlock) block).getDirection(world, position.intX(), position.intY(), position.intZ()); - ((IRotatableBlock) block).setDirection(world, position.intX(), position.intY(), position.intZ(), blockRotation.getRotation(facing.getOpposite())); - } - else if (block != null) - { - Block.blocksList[blockID].rotateBlock(world, position.intX(), position.intY(), position.intZ(), facing.getOpposite()); - } + if (tileEntity instanceof IRotatable) + { + ForgeDirection blockRotation = ((IRotatable) tileEntity).getDirection(); + ((IRotatable) tileEntity).setDirection(blockRotation.getRotation(facing.getOpposite())); + } + else if (block instanceof IRotatableBlock) + { + ForgeDirection blockRotation = ((IRotatableBlock) block).getDirection(world, position.intX(), position.intY(), position.intZ()); + ((IRotatableBlock) block).setDirection(world, position.intX(), position.intY(), position.intZ(), blockRotation.getRotation(facing.getOpposite())); + } + else if (block != null) + { + Block.blocksList[blockID].rotateBlock(world, position.intX(), position.intY(), position.intZ(), facing.getOpposite()); + } - world.markBlockForUpdate(position.intX(), position.intY(), position.intZ()); - world.playSoundEffect(x + 0.5D, y + 0.5D, z + 0.5D, "tile.piston.in", 0.5F, world.rand.nextFloat() * 0.15F + 0.6F); + world.markBlockForUpdate(position.intX(), position.intY(), position.intZ()); + world.playSoundEffect(x + 0.5D, y + 0.5D, z + 0.5D, "tile.piston.in", 0.5F, world.rand.nextFloat() * 0.15F + 0.6F); + } } catch (Exception e) { diff --git a/src/main/java/resonantinduction/electrical/generator/thermopile/TileThermopile.java b/src/main/java/resonantinduction/electrical/generator/thermopile/TileThermopile.java index fe7264ff..66c76686 100644 --- a/src/main/java/resonantinduction/electrical/generator/thermopile/TileThermopile.java +++ b/src/main/java/resonantinduction/electrical/generator/thermopile/TileThermopile.java @@ -42,6 +42,10 @@ public class TileThermopile extends TileElectrical { coolingSources++; } + else if (blockID == Block.snow.blockID) + { + coolingSources += 2; + } else if (blockID == Block.ice.blockID) { coolingSources += 2; diff --git a/src/main/java/resonantinduction/mechanical/network/PartMechanical.java b/src/main/java/resonantinduction/mechanical/network/PartMechanical.java index af9fbae3..f6b42281 100644 --- a/src/main/java/resonantinduction/mechanical/network/PartMechanical.java +++ b/src/main/java/resonantinduction/mechanical/network/PartMechanical.java @@ -105,12 +105,6 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu refresh(); } - @Override - public void onMoved() - { - refresh(); - } - @Override public void onNeighborChanged() { diff --git a/src/main/java/resonantinduction/mechanical/network/TileMechanical.java b/src/main/java/resonantinduction/mechanical/network/TileMechanical.java index b18a0805..afe6abe4 100644 --- a/src/main/java/resonantinduction/mechanical/network/TileMechanical.java +++ b/src/main/java/resonantinduction/mechanical/network/TileMechanical.java @@ -1,6 +1,7 @@ package resonantinduction.mechanical.network; import resonantinduction.mechanical.gear.PartGearShaft; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import universalelectricity.api.vector.Vector3; @@ -146,4 +147,20 @@ public abstract class TileMechanical extends TileAdvanced implements IMechanical { return true; } + + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + torque = nbt.getLong("torque"); + angularVelocity = nbt.getFloat("angularVelocity"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setLong("torque", torque); + nbt.setFloat("angularVelocity", angularVelocity); + } }