Very unstable improved machine searching part7
This commit is contained in:
		| @@ -90,7 +90,7 @@ public abstract class BlockBase extends Block { | |||||||
|  |  | ||||||
|             ((TileBase) tile).setDirection(EnumFacing.getFront(newDir)); |             ((TileBase) tile).setDirection(EnumFacing.getFront(newDir)); | ||||||
|  |  | ||||||
|             world.notifyBlockUpdate(pos, world.getBlockState(pos), world.getBlockState(pos), 2 | 4); |             RefinedStorageUtils.reRenderBlock(world, pos); | ||||||
|  |  | ||||||
|             return true; |             return true; | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -1,17 +1,19 @@ | |||||||
| package refinedstorage.block; | package refinedstorage.block; | ||||||
|  |  | ||||||
| import net.minecraft.block.Block; |  | ||||||
| import net.minecraft.block.properties.IProperty; | import net.minecraft.block.properties.IProperty; | ||||||
| import net.minecraft.block.properties.PropertyBool; | import net.minecraft.block.properties.PropertyBool; | ||||||
| import net.minecraft.block.state.BlockStateContainer; | import net.minecraft.block.state.BlockStateContainer; | ||||||
| import net.minecraft.block.state.IBlockState; | import net.minecraft.block.state.IBlockState; | ||||||
|  | import net.minecraft.tileentity.TileEntity; | ||||||
| import net.minecraft.util.math.AxisAlignedBB; | import net.minecraft.util.math.AxisAlignedBB; | ||||||
| import net.minecraft.util.math.BlockPos; | import net.minecraft.util.math.BlockPos; | ||||||
| import net.minecraft.world.IBlockAccess; | import net.minecraft.world.IBlockAccess; | ||||||
|  | import net.minecraft.world.World; | ||||||
| import refinedstorage.RefinedStorageBlocks; | import refinedstorage.RefinedStorageBlocks; | ||||||
|  | import refinedstorage.tile.TileCable; | ||||||
| import refinedstorage.tile.TileMachine; | import refinedstorage.tile.TileMachine; | ||||||
|  |  | ||||||
| public class BlockCable extends BlockBase { | public class BlockCable extends BlockMachine { | ||||||
|     public static final AxisAlignedBB CABLE_AABB = new AxisAlignedBB(4 * (1F / 16F), 4 * (1F / 16F), 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F)); |     public static final AxisAlignedBB CABLE_AABB = new AxisAlignedBB(4 * (1F / 16F), 4 * (1F / 16F), 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F)); | ||||||
|  |  | ||||||
|     public static final PropertyBool NORTH = PropertyBool.create("north"); |     public static final PropertyBool NORTH = PropertyBool.create("north"); | ||||||
| @@ -27,10 +29,16 @@ public class BlockCable extends BlockBase { | |||||||
|         setHardness(0.6F); |         setHardness(0.6F); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public TileEntity createTileEntity(World world, IBlockState state) { | ||||||
|  |         return new TileCable(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected BlockStateContainer createBlockState() { |     protected BlockStateContainer createBlockState() { | ||||||
|         return new BlockStateContainer(this, new IProperty[]{ |         return new BlockStateContainer(this, new IProperty[]{ | ||||||
|             DIRECTION, |             DIRECTION, | ||||||
|  |             CONNECTED, | ||||||
|             NORTH, |             NORTH, | ||||||
|             EAST, |             EAST, | ||||||
|             SOUTH, |             SOUTH, | ||||||
| @@ -52,9 +60,7 @@ public class BlockCable extends BlockBase { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public static boolean hasConnectionWith(IBlockAccess world, BlockPos pos) { |     public static boolean hasConnectionWith(IBlockAccess world, BlockPos pos) { | ||||||
|         Block block = world.getBlockState(pos).getBlock(); |         return world.getBlockState(pos).getBlock() == RefinedStorageBlocks.CONTROLLER || world.getTileEntity(pos) instanceof TileMachine; | ||||||
|  |  | ||||||
|         return (block == RefinedStorageBlocks.CABLE || block == RefinedStorageBlocks.CONTROLLER) || world.getTileEntity(pos) instanceof TileMachine; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -86,13 +86,6 @@ public class BlockController extends BlockBase { | |||||||
|         return true; |         return true; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public void breakBlock(World world, BlockPos pos, IBlockState state) { |  | ||||||
|         ((TileController) world.getTileEntity(pos)).onDestroyed(); |  | ||||||
|  |  | ||||||
|         super.breakBlock(world, pos, state); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemStack) { |     public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemStack) { | ||||||
|         super.onBlockPlacedBy(world, pos, state, player, itemStack); |         super.onBlockPlacedBy(world, pos, state, player, itemStack); | ||||||
|   | |||||||
| @@ -79,6 +79,7 @@ public class CommonProxy { | |||||||
|         GameRegistry.registerTileEntity(TileWirelessTransmitter.class, ID + ":wireless_transmitter"); |         GameRegistry.registerTileEntity(TileWirelessTransmitter.class, ID + ":wireless_transmitter"); | ||||||
|         GameRegistry.registerTileEntity(TileCrafter.class, ID + ":crafter"); |         GameRegistry.registerTileEntity(TileCrafter.class, ID + ":crafter"); | ||||||
|         GameRegistry.registerTileEntity(TileProcessingPatternEncoder.class, ID + ":processing_pattern_encoder"); |         GameRegistry.registerTileEntity(TileProcessingPatternEncoder.class, ID + ":processing_pattern_encoder"); | ||||||
|  |         GameRegistry.registerTileEntity(TileCable.class, ID + ":cable"); | ||||||
|  |  | ||||||
|         registerBlock(RefinedStorageBlocks.CONTROLLER); |         registerBlock(RefinedStorageBlocks.CONTROLLER); | ||||||
|         registerBlock(RefinedStorageBlocks.GRID); |         registerBlock(RefinedStorageBlocks.GRID); | ||||||
|   | |||||||
| @@ -1,11 +1,9 @@ | |||||||
| package refinedstorage.tile; | package refinedstorage.tile; | ||||||
|  |  | ||||||
| import net.minecraft.block.Block; |  | ||||||
| import net.minecraft.tileentity.TileEntity; | import net.minecraft.tileentity.TileEntity; | ||||||
| import net.minecraft.util.EnumFacing; | import net.minecraft.util.EnumFacing; | ||||||
| import net.minecraft.util.math.BlockPos; | import net.minecraft.util.math.BlockPos; | ||||||
| import net.minecraft.world.World; | import net.minecraft.world.World; | ||||||
| import refinedstorage.RefinedStorageBlocks; |  | ||||||
|  |  | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
|  |  | ||||||
| @@ -21,11 +19,7 @@ public class ControllerSearcher { | |||||||
|  |  | ||||||
|         if (tile instanceof TileController) { |         if (tile instanceof TileController) { | ||||||
|             return (TileController) tile; |             return (TileController) tile; | ||||||
|         } |         } else if (tile instanceof TileMachine) { | ||||||
|  |  | ||||||
|         Block block = world.getBlockState(current).getBlock(); |  | ||||||
|  |  | ||||||
|         if (tile instanceof TileMachine || block == RefinedStorageBlocks.CABLE) { |  | ||||||
|             // We need to have visited more than 1 tile so that the relay can find a controller for itself |             // We need to have visited more than 1 tile so that the relay can find a controller for itself | ||||||
|             if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).isConnected()) { |             if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).isConnected()) { | ||||||
|                 return null; |                 return null; | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								src/main/java/refinedstorage/tile/TileCable.java
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								src/main/java/refinedstorage/tile/TileCable.java
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | package refinedstorage.tile; | ||||||
|  |  | ||||||
|  | import net.minecraft.inventory.Container; | ||||||
|  |  | ||||||
|  | public class TileCable extends TileMachine { | ||||||
|  |     @Override | ||||||
|  |     public int getEnergyUsage() { | ||||||
|  |         return 0; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void updateMachine() { | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Class<? extends Container> getContainer() { | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -211,11 +211,13 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr | |||||||
|             if (lastEnergy != energy.getEnergyStored()) { |             if (lastEnergy != energy.getEnergyStored()) { | ||||||
|                 worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER); |                 worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER); | ||||||
|  |  | ||||||
|                 if (System.currentTimeMillis() - lastEnergyUpdate > 3000) { |                 if (System.currentTimeMillis() - lastEnergyUpdate > 3000L) { | ||||||
|                     RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageControllerEnergyUpdate(this)); |                     RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageControllerEnergyUpdate(this)); | ||||||
|  |  | ||||||
|                     lastEnergyUpdate = System.currentTimeMillis(); |                     lastEnergyUpdate = System.currentTimeMillis(); | ||||||
|                 } |                 } | ||||||
|  |             } else if (ticks < 10) { | ||||||
|  |                 RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageControllerEnergyUpdate(this)); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -232,10 +234,6 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr | |||||||
|         return wirelessGridRange; |         return wirelessGridRange; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void onDestroyed() { |  | ||||||
|         disconnectAll(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private void disconnectAll() { |     private void disconnectAll() { | ||||||
|         for (TileMachine machine : machines) { |         for (TileMachine machine : machines) { | ||||||
|             machine.onDisconnected(); |             machine.onDisconnected(); | ||||||
| @@ -474,6 +472,8 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr | |||||||
|     public void readFromNBT(NBTTagCompound nbt) { |     public void readFromNBT(NBTTagCompound nbt) { | ||||||
|         super.readFromNBT(nbt); |         super.readFromNBT(nbt); | ||||||
|  |  | ||||||
|  |         energy.readFromNBT(nbt); | ||||||
|  |  | ||||||
|         if (nbt.hasKey(RedstoneMode.NBT)) { |         if (nbt.hasKey(RedstoneMode.NBT)) { | ||||||
|             redstoneMode = RedstoneMode.getById(nbt.getInteger(RedstoneMode.NBT)); |             redstoneMode = RedstoneMode.getById(nbt.getInteger(RedstoneMode.NBT)); | ||||||
|         } |         } | ||||||
| @@ -500,6 +500,8 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr | |||||||
|     public void writeToNBT(NBTTagCompound nbt) { |     public void writeToNBT(NBTTagCompound nbt) { | ||||||
|         super.writeToNBT(nbt); |         super.writeToNBT(nbt); | ||||||
|  |  | ||||||
|  |         energy.writeToNBT(nbt); | ||||||
|  |  | ||||||
|         nbt.setInteger(RedstoneMode.NBT, redstoneMode.id); |         nbt.setInteger(RedstoneMode.NBT, redstoneMode.id); | ||||||
|  |  | ||||||
|         NBTTagList list = new NBTTagList(); |         NBTTagList list = new NBTTagList(); | ||||||
|   | |||||||
| @@ -70,6 +70,12 @@ | |||||||
|       }, |       }, | ||||||
|       "down": { |       "down": { | ||||||
|       } |       } | ||||||
|  |     }, | ||||||
|  |     "connected": { | ||||||
|  |       "true": { | ||||||
|  |       }, | ||||||
|  |       "false": { | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
		Reference in New Issue
	
	Block a user
	 Raoul Van den Berge
					Raoul Van den Berge