Very unstable improved machine searching part2
This commit is contained in:
		| @@ -40,8 +40,6 @@ public abstract class BlockMachine extends BlockBase { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void breakBlock(World world, BlockPos pos, IBlockState state) { |     public void breakBlock(World world, BlockPos pos, IBlockState state) { | ||||||
|         super.breakBlock(world, pos, state); |  | ||||||
|  |  | ||||||
|         if (!world.isRemote) { |         if (!world.isRemote) { | ||||||
|             TileMachine machine = (TileMachine) world.getTileEntity(pos); |             TileMachine machine = (TileMachine) world.getTileEntity(pos); | ||||||
|  |  | ||||||
| @@ -49,6 +47,8 @@ public abstract class BlockMachine extends BlockBase { | |||||||
|                 machine.onDisconnected(); |                 machine.onDisconnected(); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         super.breakBlock(world, pos, state); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -98,22 +98,6 @@ public class BlockStorage extends BlockMachine { | |||||||
|         return drops; |         return drops; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) { |  | ||||||
|         if (willHarvest) { |  | ||||||
|             return true; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return super.removedByPlayer(state, world, pos, player, willHarvest); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public void harvestBlock(World world, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity tile, ItemStack stack) { |  | ||||||
|         super.harvestBlock(world, player, pos, state, tile, stack); |  | ||||||
|  |  | ||||||
|         world.setBlockToAir(pos); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public Item createItemForBlock() { |     public Item createItemForBlock() { | ||||||
|         return new ItemBlockStorage(); |         return new ItemBlockStorage(); | ||||||
|   | |||||||
| @@ -59,7 +59,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|  |  | ||||||
|     private List<TileMachine> machines = new ArrayList<TileMachine>(); |     private List<TileMachine> machines = new ArrayList<TileMachine>(); | ||||||
|     private List<TileMachine> machinesToAdd = new ArrayList<TileMachine>(); |     private List<TileMachine> machinesToAdd = new ArrayList<TileMachine>(); | ||||||
|     private List<TileMachine> machinesToRemove = new ArrayList<TileMachine>(); |     private List<BlockPos> machinesToRemove = new ArrayList<BlockPos>(); | ||||||
|  |  | ||||||
|     private List<ClientSideMachine> clientSideMachines = new ArrayList<ClientSideMachine>(); |     private List<ClientSideMachine> clientSideMachines = new ArrayList<ClientSideMachine>(); | ||||||
|  |  | ||||||
| @@ -80,7 +80,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void removeMachine(TileMachine machine) { |     public void removeMachine(TileMachine machine) { | ||||||
|         machinesToRemove.add(machine); |         machinesToRemove.add(machine.getPos()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -88,14 +88,18 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|         super.update(); |         super.update(); | ||||||
|  |  | ||||||
|         if (!worldObj.isRemote) { |         if (!worldObj.isRemote) { | ||||||
|             if (!canRun()) { |  | ||||||
|                 disconnectAll(); |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             machines.addAll(machinesToAdd); |             machines.addAll(machinesToAdd); | ||||||
|             machinesToAdd.clear(); |             machinesToAdd.clear(); | ||||||
|  |  | ||||||
|             machines.removeAll(machinesToRemove); |             for (BlockPos pos : machinesToRemove) { | ||||||
|  |                 for (TileMachine machine : machines) { | ||||||
|  |                     if (machine.getPos().getX() == pos.getX() && machine.getPos().getY() == pos.getY() && machine.getPos().getZ() == pos.getZ()) { | ||||||
|  |                         machines.remove(machine); | ||||||
|  |                         break; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |  | ||||||
|             machinesToRemove.clear(); |             machinesToRemove.clear(); | ||||||
|  |  | ||||||
|             int lastEnergy = energy.getEnergyStored(); |             int lastEnergy = energy.getEnergyStored(); | ||||||
| @@ -120,10 +124,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|                     TileCrafter crafter = (TileCrafter) machine; |                     TileCrafter crafter = (TileCrafter) machine; | ||||||
|  |  | ||||||
|                     for (int i = 0; i < TileCrafter.PATTERN_SLOTS; ++i) { |                     for (int i = 0; i < TileCrafter.PATTERN_SLOTS; ++i) { | ||||||
|                         if (crafter.getStackInSlot(i) == null) { |                         if (crafter.getStackInSlot(i) != null) { | ||||||
|                             continue; |  | ||||||
|                         } |  | ||||||
|  |  | ||||||
|                             ItemStack pattern = crafter.getStackInSlot(i); |                             ItemStack pattern = crafter.getStackInSlot(i); | ||||||
|  |  | ||||||
|                             newPatterns.add(new CraftingPattern( |                             newPatterns.add(new CraftingPattern( | ||||||
| @@ -135,6 +136,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|                                 ItemPattern.getOutputs(pattern))); |                                 ItemPattern.getOutputs(pattern))); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|  |                 } | ||||||
|  |  | ||||||
|                 newEnergyUsage += machine.getEnergyUsage(); |                 newEnergyUsage += machine.getEnergyUsage(); | ||||||
|             } |             } | ||||||
| @@ -179,16 +181,16 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             if (canRun()) { |  | ||||||
|             switch (getType()) { |             switch (getType()) { | ||||||
|                 case NORMAL: |                 case NORMAL: | ||||||
|  |                     if (canRun()) { | ||||||
|                         energy.extractEnergy(energyUsage, false); |                         energy.extractEnergy(energyUsage, false); | ||||||
|  |                     } | ||||||
|                     break; |                     break; | ||||||
|                 case CREATIVE: |                 case CREATIVE: | ||||||
|                     energy.setEnergyStored(energy.getMaxEnergyStored()); |                     energy.setEnergyStored(energy.getMaxEnergyStored()); | ||||||
|                     break; |                     break; | ||||||
|             } |             } | ||||||
|             } |  | ||||||
|  |  | ||||||
|             wirelessGridConsumers.removeAll(wirelessGridConsumersToRemove); |             wirelessGridConsumers.removeAll(wirelessGridConsumersToRemove); | ||||||
|             wirelessGridConsumersToRemove.clear(); |             wirelessGridConsumersToRemove.clear(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Raoul Van den Berge
					Raoul Van den Berge