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));
|
||||
|
||||
world.notifyBlockUpdate(pos, world.getBlockState(pos), world.getBlockState(pos), 2 | 4);
|
||||
RefinedStorageUtils.reRenderBlock(world, pos);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
package refinedstorage.block;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.properties.IProperty;
|
||||
import net.minecraft.block.properties.PropertyBool;
|
||||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import refinedstorage.RefinedStorageBlocks;
|
||||
import refinedstorage.tile.TileCable;
|
||||
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 PropertyBool NORTH = PropertyBool.create("north");
|
||||
@@ -27,10 +29,16 @@ public class BlockCable extends BlockBase {
|
||||
setHardness(0.6F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createTileEntity(World world, IBlockState state) {
|
||||
return new TileCable();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockStateContainer createBlockState() {
|
||||
return new BlockStateContainer(this, new IProperty[]{
|
||||
DIRECTION,
|
||||
CONNECTED,
|
||||
NORTH,
|
||||
EAST,
|
||||
SOUTH,
|
||||
@@ -52,9 +60,7 @@ public class BlockCable extends BlockBase {
|
||||
}
|
||||
|
||||
public static boolean hasConnectionWith(IBlockAccess world, BlockPos pos) {
|
||||
Block block = world.getBlockState(pos).getBlock();
|
||||
|
||||
return (block == RefinedStorageBlocks.CABLE || block == RefinedStorageBlocks.CONTROLLER) || world.getTileEntity(pos) instanceof TileMachine;
|
||||
return world.getBlockState(pos).getBlock() == RefinedStorageBlocks.CONTROLLER || world.getTileEntity(pos) instanceof TileMachine;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -86,13 +86,6 @@ public class BlockController extends BlockBase {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, BlockPos pos, IBlockState state) {
|
||||
((TileController) world.getTileEntity(pos)).onDestroyed();
|
||||
|
||||
super.breakBlock(world, pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemStack) {
|
||||
super.onBlockPlacedBy(world, pos, state, player, itemStack);
|
||||
|
||||
@@ -79,6 +79,7 @@ public class CommonProxy {
|
||||
GameRegistry.registerTileEntity(TileWirelessTransmitter.class, ID + ":wireless_transmitter");
|
||||
GameRegistry.registerTileEntity(TileCrafter.class, ID + ":crafter");
|
||||
GameRegistry.registerTileEntity(TileProcessingPatternEncoder.class, ID + ":processing_pattern_encoder");
|
||||
GameRegistry.registerTileEntity(TileCable.class, ID + ":cable");
|
||||
|
||||
registerBlock(RefinedStorageBlocks.CONTROLLER);
|
||||
registerBlock(RefinedStorageBlocks.GRID);
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import refinedstorage.RefinedStorageBlocks;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@@ -21,11 +19,7 @@ public class ControllerSearcher {
|
||||
|
||||
if (tile instanceof TileController) {
|
||||
return (TileController) tile;
|
||||
}
|
||||
|
||||
Block block = world.getBlockState(current).getBlock();
|
||||
|
||||
if (tile instanceof TileMachine || block == RefinedStorageBlocks.CABLE) {
|
||||
} else if (tile instanceof TileMachine) {
|
||||
// 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()) {
|
||||
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()) {
|
||||
worldObj.updateComparatorOutputLevel(pos, RefinedStorageBlocks.CONTROLLER);
|
||||
|
||||
if (System.currentTimeMillis() - lastEnergyUpdate > 3000) {
|
||||
if (System.currentTimeMillis() - lastEnergyUpdate > 3000L) {
|
||||
RefinedStorageUtils.sendToAllAround(worldObj, pos, new MessageControllerEnergyUpdate(this));
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public void onDestroyed() {
|
||||
disconnectAll();
|
||||
}
|
||||
|
||||
private void disconnectAll() {
|
||||
for (TileMachine machine : machines) {
|
||||
machine.onDisconnected();
|
||||
@@ -474,6 +472,8 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
energy.readFromNBT(nbt);
|
||||
|
||||
if (nbt.hasKey(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) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
energy.writeToNBT(nbt);
|
||||
|
||||
nbt.setInteger(RedstoneMode.NBT, redstoneMode.id);
|
||||
|
||||
NBTTagList list = new NBTTagList();
|
||||
|
||||
@@ -70,6 +70,12 @@
|
||||
},
|
||||
"down": {
|
||||
}
|
||||
},
|
||||
"connected": {
|
||||
"true": {
|
||||
},
|
||||
"false": {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user