Very unstable improved machine searching part3
This commit is contained in:
@@ -5,8 +5,6 @@ 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.entity.EntityLivingBase;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
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 net.minecraft.world.World;
|
||||||
@@ -51,15 +49,6 @@ public abstract class BlockMachine extends BlockBase {
|
|||||||
super.breakBlock(world, pos, state);
|
super.breakBlock(world, pos, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) {
|
|
||||||
super.onBlockPlacedBy(world, pos, state, player, stack);
|
|
||||||
|
|
||||||
if (!world.isRemote) {
|
|
||||||
((TileMachine) world.getTileEntity(pos)).searchController();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNeighborBlockChange(World world, BlockPos pos, IBlockState state, Block neighborBlock) {
|
public void onNeighborBlockChange(World world, BlockPos pos, IBlockState state, Block neighborBlock) {
|
||||||
super.onNeighborBlockChange(world, pos, state, neighborBlock);
|
super.onNeighborBlockChange(world, pos, state, neighborBlock);
|
||||||
|
|||||||
@@ -382,7 +382,7 @@ public class CommonProxy {
|
|||||||
|
|
||||||
GameRegistry.addShapelessRecipe(disk,
|
GameRegistry.addShapelessRecipe(disk,
|
||||||
new ItemStack(RefinedStorageItems.STORAGE_HOUSING),
|
new ItemStack(RefinedStorageItems.STORAGE_HOUSING),
|
||||||
new ItemStack(RefinedStorageItems.STORAGE_PART, type, type)
|
new ItemStack(RefinedStorageItems.STORAGE_PART, 1, type)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void removeMachine(TileMachine machine) {
|
public void removeMachine(TileMachine machine) {
|
||||||
|
System.out.println("Added for removal!");
|
||||||
machinesToRemove.add(machine.getPos());
|
machinesToRemove.add(machine.getPos());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,8 +93,11 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
machinesToAdd.clear();
|
machinesToAdd.clear();
|
||||||
|
|
||||||
for (BlockPos pos : machinesToRemove) {
|
for (BlockPos pos : machinesToRemove) {
|
||||||
|
System.out.println("ToRemove:" + pos.getX() + "," + pos.getY() + "," + pos.getZ());
|
||||||
for (TileMachine machine : machines) {
|
for (TileMachine machine : machines) {
|
||||||
if (machine.getPos().getX() == pos.getX() && machine.getPos().getY() == pos.getY() && machine.getPos().getZ() == pos.getZ()) {
|
System.out.println("Machine:" + machine.getPos().getX() + "," + machine.getPos().getY() + "," + machine.getPos().getZ());
|
||||||
|
if (machine.getPos().equals(pos)) {
|
||||||
|
System.out.println("Found! Removing");
|
||||||
machines.remove(machine);
|
machines.remove(machine);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package refinedstorage.tile;
|
package refinedstorage.tile;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import refinedstorage.block.BlockMachine;
|
import refinedstorage.block.BlockMachine;
|
||||||
@@ -14,6 +15,7 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed
|
|||||||
protected boolean connected = false;
|
protected boolean connected = false;
|
||||||
protected RedstoneMode redstoneMode = RedstoneMode.IGNORE;
|
protected RedstoneMode redstoneMode = RedstoneMode.IGNORE;
|
||||||
protected TileController controller;
|
protected TileController controller;
|
||||||
|
private Block block;
|
||||||
|
|
||||||
private Set<String> visited = new HashSet<String>();
|
private Set<String> visited = new HashSet<String>();
|
||||||
|
|
||||||
@@ -41,7 +43,9 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed
|
|||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
super.onLoad();
|
super.onLoad();
|
||||||
|
|
||||||
if (!worldObj.isRemote && !connected) {
|
if (!worldObj.isRemote) {
|
||||||
|
block = worldObj.getBlockState(pos).getBlock();
|
||||||
|
|
||||||
searchController();
|
searchController();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -49,7 +53,9 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed
|
|||||||
public void onConnected() {
|
public void onConnected() {
|
||||||
connected = true;
|
connected = true;
|
||||||
|
|
||||||
worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, true));
|
if (worldObj.getBlockState(pos).getBlock() == block) {
|
||||||
|
worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, true));
|
||||||
|
}
|
||||||
|
|
||||||
controller.addMachine(this);
|
controller.addMachine(this);
|
||||||
}
|
}
|
||||||
@@ -57,7 +63,9 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed
|
|||||||
public void onDisconnected() {
|
public void onDisconnected() {
|
||||||
connected = false;
|
connected = false;
|
||||||
|
|
||||||
worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, false));
|
if (worldObj.getBlockState(pos).getBlock() == block) {
|
||||||
|
worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, false));
|
||||||
|
}
|
||||||
|
|
||||||
controller.removeMachine(this);
|
controller.removeMachine(this);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user