diff --git a/src/main/java/net/slimevoid/dynamictransport/blocks/BlockTransportBase.java b/src/main/java/net/slimevoid/dynamictransport/blocks/BlockTransportBase.java index da2c6c9..0f02790 100644 --- a/src/main/java/net/slimevoid/dynamictransport/blocks/BlockTransportBase.java +++ b/src/main/java/net/slimevoid/dynamictransport/blocks/BlockTransportBase.java @@ -122,6 +122,11 @@ public IIcon[] registerSideIcons(IIconRegister iconRegister) { return null; } + @Override + public boolean canProvidePower() { + return true; + } + @Override public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int side) { @@ -129,6 +134,11 @@ public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int sid TileEntity tile = world.getTileEntity(x, y, z); + if (tile instanceof TileEntityFloorMarker) { + if (((TileEntityFloorMarker) tile).atFloor) { + return 3; + } + } if (tile instanceof TileEntityTransportBase) { ItemStack itemstack = ((TileEntityTransportBase) tile).getCamoItem(); @@ -152,6 +162,11 @@ public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int s TileEntity tile = world.getTileEntity(x, y, z); + if (tile instanceof TileEntityFloorMarker) { + if (((TileEntityFloorMarker) tile).atFloor) { + return 3; + } + } if (tile instanceof TileEntityTransportBase) { ItemStack itemstack = ((TileEntityTransportBase) tile).getCamoItem(); diff --git a/src/main/java/net/slimevoid/dynamictransport/tileentity/TileEntityElevatorComputer.java b/src/main/java/net/slimevoid/dynamictransport/tileentity/TileEntityElevatorComputer.java index 537318a..65e4165 100644 --- a/src/main/java/net/slimevoid/dynamictransport/tileentity/TileEntityElevatorComputer.java +++ b/src/main/java/net/slimevoid/dynamictransport/tileentity/TileEntityElevatorComputer.java @@ -14,6 +14,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.MathHelper; +import net.slimevoid.dynamictransport.blocks.BlockTransportBase; import net.slimevoid.dynamictransport.core.lib.BlockLib; import net.slimevoid.dynamictransport.core.lib.ConfigurationLib; import net.slimevoid.dynamictransport.entities.EntityMasterElevator; @@ -397,6 +398,14 @@ private void doCallElevator(int i, String floorname) { this.boundElevatorBlocks ); + for (ChunkCoordinates boundBlock : this.boundMarkerBlocks) { + TileEntity tile = this.worldObj.getTileEntity(boundBlock.posX, boundBlock.posY, boundBlock.posZ); + if (tile != null && tile instanceof TileEntityFloorMarker) { + TileEntityFloorMarker marker = (TileEntityFloorMarker) tile; + marker.setActive(false); + worldObj.notifyBlockChange(boundBlock.posX, boundBlock.posY, boundBlock.posZ, worldObj.getBlock(boundBlock.posX, boundBlock.posY, boundBlock.posZ)); + } + } } @@ -573,7 +582,17 @@ public void elevatorArrived(int destination) { this.floorSpool.get(nextFloor)); } } - + for (ChunkCoordinates boundBlock : this.boundMarkerBlocks) { + TileEntity tile = this.worldObj.getTileEntity(boundBlock.posX, boundBlock.posY, boundBlock.posZ); + if (tile != null && tile instanceof TileEntityFloorMarker) { + TileEntityFloorMarker marker = (TileEntityFloorMarker) tile; + int floorY = marker.getFloorY(); + if (floorY == destination) { + marker.setActive(true); + } + worldObj.notifyBlockChange(boundBlock.posX, boundBlock.posY, boundBlock.posZ, worldObj.getBlock(boundBlock.posX, boundBlock.posY, boundBlock.posZ)); + } + } } @SuppressWarnings("UnusedDeclaration") diff --git a/src/main/java/net/slimevoid/dynamictransport/tileentity/TileEntityFloorMarker.java b/src/main/java/net/slimevoid/dynamictransport/tileentity/TileEntityFloorMarker.java index edff959..0be1286 100644 --- a/src/main/java/net/slimevoid/dynamictransport/tileentity/TileEntityFloorMarker.java +++ b/src/main/java/net/slimevoid/dynamictransport/tileentity/TileEntityFloorMarker.java @@ -22,6 +22,7 @@ public class TileEntityFloorMarker extends TileEntityTransportBase { private String floorName; private boolean Powered = false; private int yOffset = -2; + public boolean atFloor = false; public ChunkCoordinates getParentChunkCoords() { return this.parentTransportBase; @@ -152,7 +153,8 @@ public void writeToNBT(NBTTagCompound nbttagcompound) { yOffset); nbttagcompound.setBoolean("Powered", this.Powered); - + nbttagcompound.setBoolean("atFloor", + this.atFloor); } @Override @@ -164,6 +166,7 @@ public void readFromNBT(NBTTagCompound nbttagcompound) { this.yOffset = nbttagcompound.getInteger("yOffset"); this.Powered = nbttagcompound.getBoolean("Powered"); + this.atFloor = nbttagcompound.getBoolean("atFloor"); } public void removeParent() { @@ -246,4 +249,8 @@ public Packet getDescriptionPacket() this.writeToNBT(nbttagcompound); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 2, nbttagcompound); } + + public void setActive(boolean flag) { + this.atFloor = flag; + } }