From 6fa0d26afc9f3ec0de823123aca8f34e14d5f8ff Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Mon, 9 Jul 2018 10:00:34 +0200 Subject: [PATCH] Add better block info system. --- .../node/storage/NetworkNodeFluidStorage.java | 2 +- .../node/storage/NetworkNodeStorage.java | 2 +- .../apiimpl/util/OneSixMigrationHelper.java | 4 +- .../refinedstorage/block/BlockBase.java | 103 +++++------------- .../refinedstorage/block/BlockCable.java | 25 ++--- .../block/BlockConstructor.java | 26 ++--- .../refinedstorage/block/BlockController.java | 36 ++---- .../refinedstorage/block/BlockCrafter.java | 30 ++--- .../block/BlockCrafterManager.java | 14 ++- .../block/BlockCraftingMonitor.java | 18 +-- .../refinedstorage/block/BlockDestructor.java | 20 +--- .../refinedstorage/block/BlockDetector.java | 26 +---- .../refinedstorage/block/BlockDiskDrive.java | 22 ++-- .../block/BlockDiskManipulator.java | 22 ++-- .../refinedstorage/block/BlockExporter.java | 26 ++--- .../block/BlockExternalStorage.java | 26 ++--- .../block/BlockFluidInterface.java | 23 +--- .../block/BlockFluidStorage.java | 30 +---- .../refinedstorage/block/BlockGrid.java | 20 ++-- .../refinedstorage/block/BlockImporter.java | 26 ++--- .../refinedstorage/block/BlockInterface.java | 23 +--- .../block/BlockMachineCasing.java | 10 +- .../block/BlockNetworkReceiver.java | 19 +--- .../block/BlockNetworkTransmitter.java | 23 +--- .../refinedstorage/block/BlockNode.java | 18 ++- .../refinedstorage/block/BlockNodeProxy.java | 86 +++++++++++++++ .../block/BlockPortableGrid.java | 33 +++--- .../block/BlockQuartzEnrichedIron.java | 10 +- .../refinedstorage/block/BlockReader.java | 22 ++-- .../refinedstorage/block/BlockRelay.java | 23 +--- .../block/BlockSecurityManager.java | 14 ++- .../refinedstorage/block/BlockStorage.java | 30 +---- .../block/BlockStorageMonitor.java | 19 ++-- .../block/BlockWirelessTransmitter.java | 21 +--- .../refinedstorage/block/BlockWriter.java | 22 ++-- .../{ => enums}/ControllerEnergyType.java | 2 +- .../block/{ => enums}/ControllerType.java | 2 +- .../block/{ => enums}/FluidStorageType.java | 2 +- .../block/{ => enums}/ItemStorageType.java | 2 +- .../{ => enums}/PortableGridDiskState.java | 2 +- .../block/{ => enums}/PortableGridType.java | 2 +- .../BlockDirection.java} | 6 +- .../refinedstorage/block/info/BlockInfo.java | 70 ++++++++++++ .../block/info/BlockInfoBuilder.java | 63 +++++++++++ .../refinedstorage/block/info/IBlockInfo.java | 26 +++++ .../block/{ => property}/PropertyObject.java | 2 +- .../refinedstorage/item/ItemBlockBase.java | 6 +- .../item/ItemBlockController.java | 9 +- .../item/ItemBlockEnergyItem.java | 4 +- .../item/ItemBlockFluidStorage.java | 6 +- .../item/ItemBlockPortableGrid.java | 7 +- .../refinedstorage/item/ItemBlockStorage.java | 6 +- .../item/ItemFluidStorageDisk.java | 2 +- .../refinedstorage/item/ItemStorageDisk.java | 2 +- .../refinedstorage/proxy/ProxyClient.java | 68 ++---------- .../refinedstorage/proxy/ProxyCommon.java | 47 ++------ .../ItemMeshDefinitionPortableGrid.java | 71 ++++++++++++ .../refinedstorage/tile/TileController.java | 4 +- .../tile/grid/portable/TilePortableGrid.java | 4 +- 59 files changed, 623 insertions(+), 666 deletions(-) create mode 100644 src/main/java/com/raoulvdberge/refinedstorage/block/BlockNodeProxy.java rename src/main/java/com/raoulvdberge/refinedstorage/block/{ => enums}/ControllerEnergyType.java (93%) rename src/main/java/com/raoulvdberge/refinedstorage/block/{ => enums}/ControllerType.java (90%) rename src/main/java/com/raoulvdberge/refinedstorage/block/{ => enums}/FluidStorageType.java (95%) rename src/main/java/com/raoulvdberge/refinedstorage/block/{ => enums}/ItemStorageType.java (94%) rename src/main/java/com/raoulvdberge/refinedstorage/block/{ => enums}/PortableGridDiskState.java (94%) rename src/main/java/com/raoulvdberge/refinedstorage/block/{ => enums}/PortableGridType.java (90%) rename src/main/java/com/raoulvdberge/refinedstorage/block/{Direction.java => info/BlockDirection.java} (92%) create mode 100644 src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockInfo.java create mode 100644 src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockInfoBuilder.java create mode 100644 src/main/java/com/raoulvdberge/refinedstorage/block/info/IBlockInfo.java rename src/main/java/com/raoulvdberge/refinedstorage/block/{ => property}/PropertyObject.java (95%) create mode 100644 src/main/java/com/raoulvdberge/refinedstorage/render/meshdefinition/ItemMeshDefinitionPortableGrid.java diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeFluidStorage.java index 5e381de8e..65b15996c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeFluidStorage.java @@ -15,7 +15,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheFluid; import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; import com.raoulvdberge.refinedstorage.block.BlockFluidStorage; -import com.raoulvdberge.refinedstorage.block.FluidStorageType; +import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.tile.TileFluidStorage; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeStorage.java index 4e778478b..e108c168a 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeStorage.java @@ -15,7 +15,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItem; import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; import com.raoulvdberge.refinedstorage.block.BlockStorage; -import com.raoulvdberge.refinedstorage.block.ItemStorageType; +import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.tile.TileStorage; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OneSixMigrationHelper.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OneSixMigrationHelper.java index 8783668f2..f28d01fb2 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OneSixMigrationHelper.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OneSixMigrationHelper.java @@ -8,8 +8,8 @@ import com.raoulvdberge.refinedstorage.api.util.IOneSixMigrationHelper; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeFluidStorage; import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeStorage; -import com.raoulvdberge.refinedstorage.block.FluidStorageType; -import com.raoulvdberge.refinedstorage.block.ItemStorageType; +import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType; +import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType; import com.raoulvdberge.refinedstorage.item.ItemPattern; import com.raoulvdberge.refinedstorage.tile.config.IFilterable; import net.minecraft.item.Item; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java index 50f3e68e8..cdae4fcf4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java @@ -1,21 +1,14 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode; -import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; -import com.raoulvdberge.refinedstorage.api.network.security.Permission; -import com.raoulvdberge.refinedstorage.apiimpl.network.node.ICoverable; -import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; -import com.raoulvdberge.refinedstorage.container.ContainerBase; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.IBlockInfo; import com.raoulvdberge.refinedstorage.item.ItemBlockBase; import com.raoulvdberge.refinedstorage.tile.TileBase; -import com.raoulvdberge.refinedstorage.tile.TileNode; import com.raoulvdberge.refinedstorage.util.WorldUtils; import net.minecraft.block.Block; -import net.minecraft.block.material.Material; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.InventoryHelper; import net.minecraft.item.Item; @@ -30,32 +23,25 @@ import net.minecraftforge.items.IItemHandler; import javax.annotation.Nullable; public abstract class BlockBase extends Block { - private final String name; + protected final IBlockInfo info; - public BlockBase(String name) { - super(Material.ROCK); + public BlockBase(IBlockInfo info) { + super(info.getMaterial()); - this.name = name; + this.info = info; - setHardness(1.9F); - setRegistryName(getDomain(), name); + setHardness(info.getHardness()); + setRegistryName(info.getModId(), info.getId()); setCreativeTab(RS.INSTANCE.tab); - } - - protected String getDomain() { - return RS.ID; - } - - protected Object getModObject() { - return RS.INSTANCE; + setSoundType(info.getSoundType()); } @Override public String getUnlocalizedName() { - return "block." + getDomain() + ":" + name; + return "block." + info.getModId() + ":" + info.getId(); } - protected BlockStateContainer.Builder createBlockStateBuilder() { + protected BlockStateContainer.Builder createStateBuilder() { BlockStateContainer.Builder builder = new BlockStateContainer.Builder(this); if (getDirection() != null) { @@ -67,7 +53,7 @@ public abstract class BlockBase extends Block { @Override protected BlockStateContainer createBlockState() { - return createBlockStateBuilder().build(); + return createStateBuilder().build(); } public Item createItem() { @@ -111,10 +97,6 @@ public abstract class BlockBase extends Block { EnumFacing newDirection = getDirection().cycle(tile.getDirection()); - if (tile instanceof TileNode && ((TileNode) tile).getNode() instanceof ICoverable && ((ICoverable) ((TileNode) tile).getNode()).getCoverManager().hasCover(newDirection)) { - return false; - } - tile.setDirection(newDirection); WorldUtils.updateBlock(world, pos); @@ -129,21 +111,15 @@ public abstract class BlockBase extends Block { public void breakBlock(World world, BlockPos pos, IBlockState state) { dropContents(world, pos); removeTile(world, pos, state); - - for (EntityPlayer player : world.playerEntities) { - if (player.openContainer instanceof ContainerBase && ((ContainerBase) player.openContainer).getTile() != null && ((ContainerBase) player.openContainer).getTile().getPos().equals(pos)) { - player.closeScreen(); - } - } } - protected void removeTile(World world, BlockPos pos, IBlockState state) { + void removeTile(World world, BlockPos pos, IBlockState state) { if (hasTileEntity(state)) { world.removeTileEntity(pos); } } - protected void dropContents(World world, BlockPos pos) { + void dropContents(World world, BlockPos pos) { TileEntity tile = world.getTileEntity(pos); if (tile instanceof TileBase && ((TileBase) tile).getDrops() != null) { @@ -169,51 +145,22 @@ public abstract class BlockBase extends Block { world.setBlockToAir(pos); } - protected boolean tryOpenNetworkGui(int guiId, EntityPlayer player, World world, BlockPos pos, EnumFacing facing) { - return tryOpenNetworkGui(guiId, player, world, pos, facing, Permission.MODIFY); - } - - protected boolean tryOpenNetworkGui(int guiId, EntityPlayer player, World world, BlockPos pos, EnumFacing facing, Permission... permissions) { - TileEntity tile = world.getTileEntity(pos); - - if (tile != null && tile.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, facing)) { - INetworkNodeProxy nodeProxy = CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY.cast(tile.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, facing)); - INetworkNode node = nodeProxy.getNode(); - - if (node.getNetwork() != null) { - for (Permission permission : permissions) { - if (!node.getNetwork().getSecurityManager().hasPermission(permission, player)) { - WorldUtils.sendNoPermissionMessage(player); - - return false; - } - } - } - } - - player.openGui(getModObject(), guiId, world, pos.getX(), pos.getY(), pos.getZ()); - - return true; + @Override + public final boolean hasTileEntity(IBlockState state) { + return info.hasTileEntity(); } @Override - public boolean canEntityDestroy(IBlockState state, IBlockAccess world, BlockPos pos, Entity entity) { - TileEntity tile = world.getTileEntity(pos); - - if (tile != null && tile.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, null)) { - INetworkNodeProxy nodeProxy = tile.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, null); - INetworkNode node = nodeProxy.getNode(); - - if (node.getNetwork() != null) { - return entity instanceof EntityPlayer && node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, (EntityPlayer) entity); - } - } - - return super.canEntityDestroy(state, world, pos, entity); + public final TileEntity createTileEntity(World world, IBlockState state) { + return info.createTileEntity(); } @Nullable - public Direction getDirection() { - return Direction.HORIZONTAL; + public BlockDirection getDirection() { + return null; + } + + public final IBlockInfo getInfo() { + return info; } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java index 50d660078..36cfba31e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCable.java @@ -4,6 +4,9 @@ import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.network.node.ICoverable; import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.Cover; import com.raoulvdberge.refinedstorage.apiimpl.network.node.cover.CoverManager; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; +import com.raoulvdberge.refinedstorage.block.info.IBlockInfo; +import com.raoulvdberge.refinedstorage.block.property.PropertyObject; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.render.collision.AdvancedRayTraceResult; import com.raoulvdberge.refinedstorage.render.collision.AdvancedRayTracer; @@ -13,6 +16,8 @@ import com.raoulvdberge.refinedstorage.tile.TileBase; import com.raoulvdberge.refinedstorage.tile.TileCable; import com.raoulvdberge.refinedstorage.tile.TileNode; import com.raoulvdberge.refinedstorage.util.RenderUtils; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockFaceShape; import net.minecraft.block.state.BlockStateContainer; @@ -30,7 +35,6 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.property.IExtendedBlockState; -import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; @@ -49,17 +53,16 @@ public class BlockCable extends BlockNode { private static final PropertyBool UP = PropertyBool.create("up"); private static final PropertyBool DOWN = PropertyBool.create("down"); - public BlockCable(String name) { - super(name); + public BlockCable(IBlockInfo info) { + super(info); } public BlockCable() { - this("cable"); + super(createBuilder("cable").tileEntity(TileCable::new).create()); } - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileCable(); + static BlockInfoBuilder createBuilder(String id) { + return BlockInfoBuilder.forId(id).material(Material.GLASS).soundType(SoundType.GLASS).hardness(0.35F); } public boolean hasConnectivityState() { @@ -68,7 +71,7 @@ public class BlockCable extends BlockNode { @Override protected BlockStateContainer createBlockState() { - return super.createBlockStateBuilder() + return super.createStateBuilder() .add(NORTH) .add(EAST) .add(SOUTH) @@ -339,10 +342,4 @@ public class BlockCable extends BlockNode { public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) { return BlockFaceShape.UNDEFINED; } - - @Override - @Nullable - public Direction getDirection() { - return null; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockConstructor.java index b91f86cda..41be61ed8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockConstructor.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.render.collision.CollisionGroup; import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsCable; import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsConstructor; @@ -18,7 +19,13 @@ import java.util.List; public class BlockConstructor extends BlockCable { public BlockConstructor() { - super("constructor"); + super(createBuilder("constructor").tileEntity(TileConstructor::new).create()); + } + + @Override + @Nullable + public BlockDirection getDirection() { + return BlockDirection.ANY; } @Override @@ -55,32 +62,17 @@ public class BlockConstructor extends BlockCable { return groups; } - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileConstructor(); - } - @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!canAccessGui(state, world, pos, hitX, hitY, hitZ)) { return false; } - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.CONSTRUCTOR, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.CONSTRUCTOR, player, world, pos, side); } @Override public boolean hasConnectivityState() { return true; } - - @Override - @Nullable - public Direction getDirection() { - return Direction.ANY; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java index a20d2070b..dc827d031 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockController.java @@ -2,6 +2,9 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.enums.ControllerEnergyType; +import com.raoulvdberge.refinedstorage.block.enums.ControllerType; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.item.ItemBlockController; import com.raoulvdberge.refinedstorage.tile.TileController; import net.minecraft.block.properties.PropertyEnum; @@ -13,7 +16,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.NonNullList; @@ -21,14 +23,12 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import javax.annotation.Nullable; - -public class BlockController extends BlockBase { +public class BlockController extends BlockNodeProxy { public static final PropertyEnum TYPE = PropertyEnum.create("type", ControllerType.class); public static final PropertyEnum ENERGY_TYPE = PropertyEnum.create("energy_type", ControllerEnergyType.class); public BlockController() { - super("controller"); + super(BlockInfoBuilder.forId("controller").tileEntity(TileController::new).create()); } @Override @@ -40,7 +40,7 @@ public class BlockController extends BlockBase { @Override protected BlockStateContainer createBlockState() { - return createBlockStateBuilder() + return createStateBuilder() .add(TYPE) .add(ENERGY_TYPE) .build(); @@ -62,23 +62,9 @@ public class BlockController extends BlockBase { .withProperty(ENERGY_TYPE, ((TileController) world.getTileEntity(pos)).getEnergyType()); } - @Override - public boolean hasTileEntity(IBlockState state) { - return true; - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileController(); - } - @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.CONTROLLER, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.CONTROLLER, player, world, pos, side); } @Override @@ -108,12 +94,6 @@ public class BlockController extends BlockBase { @Override public Item createItem() { - return new ItemBlockController(); - } - - @Nullable - @Override - public Direction getDirection() { - return null; + return new ItemBlockController(this, getDirection()); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafter.java index ecc81d379..22f3c1d31 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafter.java @@ -2,6 +2,8 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.TileCrafter; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; @@ -20,12 +22,13 @@ import javax.annotation.Nullable; public class BlockCrafter extends BlockNode { public BlockCrafter() { - super("crafter"); + super(BlockInfoBuilder.forId("crafter").tileEntity(TileCrafter::new).create()); } @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileCrafter(); + @Nullable + public BlockDirection getDirection() { + return BlockDirection.ANY_FACE_PLAYER; } @Override @@ -44,21 +47,7 @@ public class BlockCrafter extends BlockNode { @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.CRAFTER, player, world, pos, side); - } - - return true; - } - - @Override - @Nullable - public Direction getDirection() { - return Direction.ANY_FACE_PLAYER; - } - - public boolean hasConnectivityState() { - return true; + return openNetworkGui(RSGui.CRAFTER, player, world, pos, side); } @Override @@ -75,4 +64,9 @@ public class BlockCrafter extends BlockNode { } } } + + @Override + public boolean hasConnectivityState() { + return true; + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafterManager.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafterManager.java index cffe14e07..682e8d3d9 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafterManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCrafterManager.java @@ -2,29 +2,33 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.security.Permission; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.TileCrafterManager; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import javax.annotation.Nullable; + public class BlockCrafterManager extends BlockNode { public BlockCrafterManager() { - super("crafter_manager"); + super(BlockInfoBuilder.forId("crafter_manager").tileEntity(TileCrafterManager::new).create()); } @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileCrafterManager(); + @Nullable + public BlockDirection getDirection() { + return BlockDirection.HORIZONTAL; } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote && tryOpenNetworkGui(RSGui.CRAFTER_MANAGER, player, world, pos, side, Permission.MODIFY, Permission.AUTOCRAFTING)) { + if (!world.isRemote && openNetworkGui(RSGui.CRAFTER_MANAGER, player, world, pos, side, Permission.MODIFY, Permission.AUTOCRAFTING)) { ((TileCrafterManager) world.getTileEntity(pos)).getNode().sendTo((EntityPlayerMP) player); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java index 15b1ef950..f73891408 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockCraftingMonitor.java @@ -2,32 +2,32 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.security.Permission; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import javax.annotation.Nullable; + public class BlockCraftingMonitor extends BlockNode { public BlockCraftingMonitor() { - super("crafting_monitor"); + super(BlockInfoBuilder.forId("crafting_monitor").tileEntity(TileCraftingMonitor::new).create()); } @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileCraftingMonitor(); + @Nullable + public BlockDirection getDirection() { + return BlockDirection.HORIZONTAL; } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.CRAFTING_MONITOR, player, world, pos, side, Permission.MODIFY, Permission.AUTOCRAFTING); - } - - return true; + return openNetworkGui(RSGui.CRAFTING_MONITOR, player, world, pos, side, Permission.MODIFY, Permission.AUTOCRAFTING); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDestructor.java index 2c1cdbac0..0da46a405 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDestructor.java @@ -2,6 +2,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.render.collision.CollisionGroup; import com.raoulvdberge.refinedstorage.tile.TileDestructor; import net.minecraft.block.state.IBlockState; @@ -17,12 +18,13 @@ import java.util.List; public class BlockDestructor extends BlockCable { public BlockDestructor() { - super("destructor"); + super(createBuilder("destructor").tileEntity(TileDestructor::new).create()); } @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileDestructor(); + @Nullable + public BlockDirection getDirection() { + return BlockDirection.ANY; } @Override @@ -36,21 +38,11 @@ public class BlockDestructor extends BlockCable { return false; } - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.DESTRUCTOR, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.DESTRUCTOR, player, world, pos, side); } @Override public boolean hasConnectivityState() { return true; } - - @Override - @Nullable - public Direction getDirection() { - return Direction.ANY; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDetector.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDetector.java index a9afd8cd0..0f7537d5f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDetector.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDetector.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsDetector; import com.raoulvdberge.refinedstorage.tile.TileDetector; import net.minecraft.block.properties.PropertyBool; @@ -17,18 +18,16 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import javax.annotation.Nullable; - public class BlockDetector extends BlockNode { private static final PropertyBool POWERED = PropertyBool.create("powered"); public BlockDetector() { - super("detector"); + super(BlockInfoBuilder.forId("detector").tileEntity(TileDetector::new).create()); } @Override protected BlockStateContainer createBlockState() { - return createBlockStateBuilder() + return createStateBuilder() .add(POWERED) .build(); } @@ -46,8 +45,8 @@ public class BlockDetector extends BlockNode { } @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileDetector(); + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { + return openNetworkGui(RSGui.DETECTOR, player, world, pos, side); } @Override @@ -64,15 +63,6 @@ public class BlockDetector extends BlockNode { return true; } - @Override - public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.DETECTOR, player, world, pos, side); - } - - return true; - } - @Override @SuppressWarnings("deprecation") public boolean isOpaqueCube(IBlockState state) { @@ -90,12 +80,6 @@ public class BlockDetector extends BlockNode { return BlockRenderLayer.CUTOUT; } - @Override - @Nullable - public Direction getDirection() { - return null; - } - @Override @SuppressWarnings("deprecation") public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskDrive.java index 938bf1b56..deb859e7d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskDrive.java @@ -1,6 +1,9 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; +import com.raoulvdberge.refinedstorage.block.property.PropertyObject; import com.raoulvdberge.refinedstorage.tile.TileDiskDrive; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; @@ -13,30 +16,29 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.property.IExtendedBlockState; +import javax.annotation.Nullable; + public class BlockDiskDrive extends BlockNode { public static final PropertyObject DISK_STATE = new PropertyObject<>("disk_state", Integer[].class); public BlockDiskDrive() { - super("disk_drive"); + super(BlockInfoBuilder.forId("disk_drive").tileEntity(TileDiskDrive::new).create()); } @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileDiskDrive(); + @Nullable + public BlockDirection getDirection() { + return BlockDirection.HORIZONTAL; } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.DISK_DRIVE, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.DISK_DRIVE, player, world, pos, side); } @Override - protected BlockStateContainer.Builder createBlockStateBuilder() { - return super.createBlockStateBuilder().add(DISK_STATE); + protected BlockStateContainer.Builder createStateBuilder() { + return super.createStateBuilder().add(DISK_STATE); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskManipulator.java index 42c31f09e..a5d1218f3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockDiskManipulator.java @@ -1,6 +1,9 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; +import com.raoulvdberge.refinedstorage.block.property.PropertyObject; import com.raoulvdberge.refinedstorage.tile.TileDiskManipulator; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; @@ -13,30 +16,29 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.property.IExtendedBlockState; +import javax.annotation.Nullable; + public class BlockDiskManipulator extends BlockNode { public static final PropertyObject DISK_STATE = new PropertyObject<>("disk_state", Integer[].class); public BlockDiskManipulator() { - super("disk_manipulator"); + super(BlockInfoBuilder.forId("disk_manipulator").tileEntity(TileDiskManipulator::new).create()); } @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileDiskManipulator(); + @Nullable + public BlockDirection getDirection() { + return BlockDirection.HORIZONTAL; } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.DISK_MANIPULATOR, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.DISK_MANIPULATOR, player, world, pos, side); } @Override - protected BlockStateContainer.Builder createBlockStateBuilder() { - return super.createBlockStateBuilder().add(DISK_STATE); + protected BlockStateContainer.Builder createStateBuilder() { + return super.createStateBuilder().add(DISK_STATE); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExporter.java index 99cc7d1d1..d19e65818 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExporter.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.render.collision.CollisionGroup; import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsExporter; import com.raoulvdberge.refinedstorage.tile.TileExporter; @@ -17,7 +18,13 @@ import java.util.List; public class BlockExporter extends BlockCable { public BlockExporter() { - super("exporter"); + super(createBuilder("exporter").tileEntity(TileExporter::new).create()); + } + + @Override + @Nullable + public BlockDirection getDirection() { + return BlockDirection.ANY; } @Override @@ -48,27 +55,12 @@ public class BlockExporter extends BlockCable { return groups; } - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileExporter(); - } - @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!canAccessGui(state, world, pos, hitX, hitY, hitZ)) { return false; } - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.EXPORTER, player, world, pos, side); - } - - return true; - } - - @Override - @Nullable - public Direction getDirection() { - return Direction.ANY; + return openNetworkGui(RSGui.EXPORTER, player, world, pos, side); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExternalStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExternalStorage.java index 5db6c927a..7fa9c9b97 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExternalStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockExternalStorage.java @@ -2,6 +2,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeExternalStorage; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.render.collision.CollisionGroup; import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsCable; import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsExternalStorage; @@ -20,7 +21,13 @@ import java.util.List; public class BlockExternalStorage extends BlockCable { public BlockExternalStorage() { - super("external_storage"); + super(createBuilder("external_storage").tileEntity(TileExternalStorage::new).create()); + } + + @Override + @Nullable + public BlockDirection getDirection() { + return BlockDirection.ANY; } @Override @@ -57,22 +64,13 @@ public class BlockExternalStorage extends BlockCable { return groups; } - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileExternalStorage(); - } - @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!canAccessGui(state, world, pos, hitX, hitY, hitZ)) { return false; } - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.EXTERNAL_STORAGE, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.EXTERNAL_STORAGE, player, world, pos, side); } @Override @@ -92,10 +90,4 @@ public class BlockExternalStorage extends BlockCable { } } } - - @Override - @Nullable - public Direction getDirection() { - return Direction.ANY; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidInterface.java index 0889c1560..7c10db898 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidInterface.java @@ -2,44 +2,27 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.security.Permission; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.TileFluidInterface; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import javax.annotation.Nullable; - public class BlockFluidInterface extends BlockNode { public BlockFluidInterface() { - super("fluid_interface"); - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileFluidInterface(); + super(BlockInfoBuilder.forId("fluid_interface").tileEntity(TileFluidInterface::new).create()); } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.FLUID_INTERFACE, player, world, pos, side, Permission.MODIFY, Permission.INSERT, Permission.EXTRACT); - } - - return true; + return openNetworkGui(RSGui.FLUID_INTERFACE, player, world, pos, side, Permission.MODIFY, Permission.INSERT, Permission.EXTRACT); } @Override public boolean hasConnectivityState() { return true; } - - @Override - @Nullable - public Direction getDirection() { - return null; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java index 67937d543..68f0cf30b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java @@ -3,6 +3,8 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeFluidStorage; +import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.item.ItemBlockFluidStorage; import com.raoulvdberge.refinedstorage.tile.TileFluidStorage; import net.minecraft.block.properties.PropertyEnum; @@ -14,7 +16,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.NonNullList; @@ -22,15 +23,11 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import javax.annotation.Nullable; - public class BlockFluidStorage extends BlockNode { public static final PropertyEnum TYPE = PropertyEnum.create("type", FluidStorageType.class); public BlockFluidStorage() { - super("fluid_storage"); - - setHardness(5.8F); + super(BlockInfoBuilder.forId("fluid_storage").hardness(5.8F).tileEntity(TileFluidStorage::new).create()); } @Override @@ -42,7 +39,7 @@ public class BlockFluidStorage extends BlockNode { @Override protected BlockStateContainer createBlockState() { - return createBlockStateBuilder() + return createStateBuilder() .add(TYPE) .build(); } @@ -57,29 +54,14 @@ public class BlockFluidStorage extends BlockNode { return ((FluidStorageType) state.getValue(TYPE)).getId(); } - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileFluidStorage(); - } - @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.FLUID_STORAGE, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.FLUID_STORAGE, player, world, pos, side); } @Override public Item createItem() { - return new ItemBlockFluidStorage(); - } - - @Override - @Nullable - public Direction getDirection() { - return null; + return new ItemBlockFluidStorage(this, getDirection()); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java index 1982b21ce..ce63bc494 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java @@ -2,6 +2,8 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.grid.GridType; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.item.ItemBlockBase; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import net.minecraft.block.properties.PropertyEnum; @@ -11,23 +13,25 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import javax.annotation.Nullable; + public class BlockGrid extends BlockNode { public static final PropertyEnum TYPE = PropertyEnum.create("type", GridType.class); public BlockGrid() { - super("grid"); + super(BlockInfoBuilder.forId("grid").tileEntity(TileGrid::new).create()); } @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileGrid(); + @Nullable + public BlockDirection getDirection() { + return BlockDirection.HORIZONTAL; } @Override @@ -39,7 +43,7 @@ public class BlockGrid extends BlockNode { @Override protected BlockStateContainer createBlockState() { - return createBlockStateBuilder() + return createStateBuilder() .add(TYPE) .build(); } @@ -56,11 +60,7 @@ public class BlockGrid extends BlockNode { @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.GRID, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.GRID, player, world, pos, side); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockImporter.java index 6150bfb17..946006d7d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockImporter.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.render.collision.CollisionGroup; import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsImporter; import com.raoulvdberge.refinedstorage.tile.TileImporter; @@ -17,7 +18,13 @@ import java.util.List; public class BlockImporter extends BlockCable { public BlockImporter() { - super("importer"); + super(createBuilder("importer").tileEntity(TileImporter::new).create()); + } + + @Override + @Nullable + public BlockDirection getDirection() { + return BlockDirection.ANY; } @Override @@ -48,27 +55,12 @@ public class BlockImporter extends BlockCable { return groups; } - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileImporter(); - } - @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (!canAccessGui(state, world, pos, hitX, hitY, hitZ)) { return false; } - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.IMPORTER, player, world, pos, side); - } - - return true; - } - - @Override - @Nullable - public Direction getDirection() { - return Direction.ANY; + return openNetworkGui(RSGui.IMPORTER, player, world, pos, side); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockInterface.java index b1f692dd5..d4dd3850c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockInterface.java @@ -2,44 +2,27 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.security.Permission; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.TileInterface; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import javax.annotation.Nullable; - public class BlockInterface extends BlockNode { public BlockInterface() { - super("interface"); - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileInterface(); + super(BlockInfoBuilder.forId("interface").tileEntity(TileInterface::new).create()); } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.INTERFACE, player, world, pos, side, Permission.MODIFY, Permission.INSERT, Permission.EXTRACT); - } - - return true; + return openNetworkGui(RSGui.INTERFACE, player, world, pos, side, Permission.MODIFY, Permission.INSERT, Permission.EXTRACT); } @Override public boolean hasConnectivityState() { return true; } - - @Override - @Nullable - public Direction getDirection() { - return null; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockMachineCasing.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockMachineCasing.java index 206bd0306..2990d87c1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockMachineCasing.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockMachineCasing.java @@ -1,15 +1,9 @@ package com.raoulvdberge.refinedstorage.block; -import javax.annotation.Nullable; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; public class BlockMachineCasing extends BlockBase { public BlockMachineCasing() { - super("machine_casing"); - } - - @Override - @Nullable - public Direction getDirection() { - return null; + super(BlockInfoBuilder.forId("machine_casing").create()); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkReceiver.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkReceiver.java index 4a4afa215..e126cce3c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkReceiver.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkReceiver.java @@ -1,26 +1,11 @@ package com.raoulvdberge.refinedstorage.block; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.TileNetworkReceiver; -import net.minecraft.block.state.IBlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -import javax.annotation.Nullable; public class BlockNetworkReceiver extends BlockNode { public BlockNetworkReceiver() { - super("network_receiver"); - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileNetworkReceiver(); - } - - @Override - @Nullable - public Direction getDirection() { - return null; + super(BlockInfoBuilder.forId("network_receiver").tileEntity(TileNetworkReceiver::new).create()); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkTransmitter.java index 0faeabe43..b463bc7b3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNetworkTransmitter.java @@ -1,40 +1,23 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.TileNetworkTransmitter; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import javax.annotation.Nullable; - public class BlockNetworkTransmitter extends BlockNode { public BlockNetworkTransmitter() { - super("network_transmitter"); + super(BlockInfoBuilder.forId("network_transmitter").tileEntity(TileNetworkTransmitter::new).create()); } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.NETWORK_TRANSMITTER, player, world, pos, side); - } - - return true; - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileNetworkTransmitter(); - } - - @Override - @Nullable - public Direction getDirection() { - return null; + return openNetworkGui(RSGui.NETWORK_TRANSMITTER, player, world, pos, side); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java index ffddab7bd..e2d087ca0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java @@ -3,6 +3,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager; import com.raoulvdberge.refinedstorage.apiimpl.API; +import com.raoulvdberge.refinedstorage.block.info.IBlockInfo; import com.raoulvdberge.refinedstorage.tile.TileNode; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockStateContainer; @@ -15,16 +16,11 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public abstract class BlockNode extends BlockBase { +public abstract class BlockNode extends BlockNodeProxy { public static final PropertyBool CONNECTED = PropertyBool.create("connected"); - public BlockNode(String name) { - super(name); - } - - @Override - public boolean hasTileEntity(IBlockState state) { - return true; + public BlockNode(IBlockInfo info) { + super(info); } @Override @@ -61,8 +57,8 @@ public abstract class BlockNode extends BlockBase { } @Override - protected BlockStateContainer.Builder createBlockStateBuilder() { - BlockStateContainer.Builder builder = super.createBlockStateBuilder(); + protected BlockStateContainer.Builder createStateBuilder() { + BlockStateContainer.Builder builder = super.createStateBuilder(); if (hasConnectivityState()) { builder.add(CONNECTED); @@ -73,7 +69,7 @@ public abstract class BlockNode extends BlockBase { @Override protected BlockStateContainer createBlockState() { - return createBlockStateBuilder().build(); + return createStateBuilder().build(); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNodeProxy.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNodeProxy.java new file mode 100644 index 000000000..7cc80794c --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNodeProxy.java @@ -0,0 +1,86 @@ +package com.raoulvdberge.refinedstorage.block; + +import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode; +import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; +import com.raoulvdberge.refinedstorage.api.network.security.Permission; +import com.raoulvdberge.refinedstorage.apiimpl.network.node.ICoverable; +import com.raoulvdberge.refinedstorage.block.info.IBlockInfo; +import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; +import com.raoulvdberge.refinedstorage.tile.TileBase; +import com.raoulvdberge.refinedstorage.tile.TileNode; +import com.raoulvdberge.refinedstorage.util.WorldUtils; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public abstract class BlockNodeProxy extends BlockBase { + public BlockNodeProxy(IBlockInfo info) { + super(info); + } + + @Override + public boolean canEntityDestroy(IBlockState state, IBlockAccess world, BlockPos pos, Entity entity) { + TileEntity tile = world.getTileEntity(pos); + + if (tile != null && tile.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, null)) { + INetworkNode node = tile.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, null).getNode(); + + if (node.getNetwork() != null) { + return entity instanceof EntityPlayer && node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, (EntityPlayer) entity); + } + } + + return super.canEntityDestroy(state, world, pos, entity); + } + + @Override + public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis) { + if (!world.isRemote && getDirection() != null) { + TileBase tile = (TileBase) world.getTileEntity(pos); + + EnumFacing newDirection = getDirection().cycle(tile.getDirection()); + + if (tile instanceof TileNode && ((TileNode) tile).getNode() instanceof ICoverable && ((ICoverable) ((TileNode) tile).getNode()).getCoverManager().hasCover(newDirection)) { + return false; + } + } + + return super.rotateBlock(world, pos, axis); + } + + protected boolean openNetworkGui(int guiId, EntityPlayer player, World world, BlockPos pos, EnumFacing facing) { + return openNetworkGui(guiId, player, world, pos, facing, Permission.MODIFY); + } + + protected boolean openNetworkGui(int guiId, EntityPlayer player, World world, BlockPos pos, EnumFacing facing, Permission... permissions) { + if (world.isRemote) { + return true; + } + + TileEntity tile = world.getTileEntity(pos); + + if (tile != null && tile.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, facing)) { + INetworkNodeProxy nodeProxy = CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY.cast(tile.getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, facing)); + INetworkNode node = nodeProxy.getNode(); + + if (node.getNetwork() != null) { + for (Permission permission : permissions) { + if (!node.getNetwork().getSecurityManager().hasPermission(permission, player)) { + WorldUtils.sendNoPermissionMessage(player); + + return false; + } + } + } + } + + player.openGui(info.getModObject(), guiId, world, pos.getX(), pos.getY(), pos.getZ()); + + return true; + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockPortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockPortableGrid.java index 08038905a..92938b9b6 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockPortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockPortableGrid.java @@ -2,6 +2,10 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.enums.PortableGridDiskState; +import com.raoulvdberge.refinedstorage.block.enums.PortableGridType; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid; import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsPortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid; @@ -14,7 +18,6 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.NonNullList; @@ -31,28 +34,18 @@ public class BlockPortableGrid extends BlockBase { public static final PropertyBool CONNECTED = PropertyBool.create("connected"); public BlockPortableGrid() { - super("portable_grid"); - } - - @Override - public boolean hasTileEntity(IBlockState state) { - return true; - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TilePortableGrid(); - } - - @Override - public Item createItem() { - return new ItemBlockPortableGrid(); + super(BlockInfoBuilder.forId("portable_grid").tileEntity(TilePortableGrid::new).create()); } @Override @Nullable - public Direction getDirection() { - return Direction.HORIZONTAL; + public BlockDirection getDirection() { + return BlockDirection.HORIZONTAL; + } + + @Override + public Item createItem() { + return new ItemBlockPortableGrid(this, getDirection()); } @Override @@ -98,7 +91,7 @@ public class BlockPortableGrid extends BlockBase { @Override protected BlockStateContainer createBlockState() { - return createBlockStateBuilder() + return createStateBuilder() .add(TYPE) .add(DISK_STATE) .add(CONNECTED) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockQuartzEnrichedIron.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockQuartzEnrichedIron.java index b75a60fc2..cde66c1df 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockQuartzEnrichedIron.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockQuartzEnrichedIron.java @@ -1,15 +1,9 @@ package com.raoulvdberge.refinedstorage.block; -import javax.annotation.Nullable; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; public class BlockQuartzEnrichedIron extends BlockBase { public BlockQuartzEnrichedIron() { - super("quartz_enriched_iron_block"); - } - - @Override - @Nullable - public Direction getDirection() { - return null; + super(BlockInfoBuilder.forId("quartz_enriched_iron_block").create()); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java index 6e0429fd0..4d2e5ab6d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java @@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeReader; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.render.collision.CollisionGroup; import com.raoulvdberge.refinedstorage.tile.TileReader; import net.minecraft.block.state.IBlockState; @@ -20,7 +21,13 @@ import java.util.List; public class BlockReader extends BlockCable { public BlockReader() { - super("reader"); + super(createBuilder("reader").tileEntity(TileReader::new).create()); + } + + @Override + @Nullable + public BlockDirection getDirection() { + return BlockDirection.ANY; } @Override @@ -46,7 +53,7 @@ public class BlockReader extends BlockCable { } } } else { - tryOpenNetworkGui(RSGui.READER_WRITER, player, world, pos, side); + openNetworkGui(RSGui.READER_WRITER, player, world, pos, side); } } @@ -60,19 +67,8 @@ public class BlockReader extends BlockCable { return tile instanceof TileReader && side == ((TileReader) tile).getDirection().getOpposite(); } - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileReader(); - } - @Override public boolean hasConnectivityState() { return true; } - - @Override - @Nullable - public Direction getDirection() { - return Direction.ANY; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockRelay.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockRelay.java index 562d2cb85..db33c43e7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockRelay.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockRelay.java @@ -1,40 +1,23 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.TileRelay; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import javax.annotation.Nullable; - public class BlockRelay extends BlockNode { public BlockRelay() { - super("relay"); - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileRelay(); + super(BlockInfoBuilder.forId("relay").tileEntity(TileRelay::new).create()); } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.RELAY, player, world, pos, side); - } - - return true; - } - - @Override - @Nullable - public Direction getDirection() { - return null; + return openNetworkGui(RSGui.RELAY, player, world, pos, side); } public boolean hasConnectivityState() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSecurityManager.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSecurityManager.java index 3bdf6fac2..859c105a9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSecurityManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSecurityManager.java @@ -3,23 +3,27 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.security.Permission; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.TileSecurityManager; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import javax.annotation.Nullable; + public class BlockSecurityManager extends BlockNode { public BlockSecurityManager() { - super("security_manager"); + super(BlockInfoBuilder.forId("security_manager").tileEntity(TileSecurityManager::new).create()); } @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileSecurityManager(); + @Nullable + public BlockDirection getDirection() { + return BlockDirection.HORIZONTAL; } @Override @@ -28,7 +32,7 @@ public class BlockSecurityManager extends BlockNode { if (player.getGameProfile().getId().equals(((TileSecurityManager) world.getTileEntity(pos)).getNode().getOwner())) { player.openGui(RS.INSTANCE, RSGui.SECURITY_MANAGER, world, pos.getX(), pos.getY(), pos.getZ()); } else { - tryOpenNetworkGui(RSGui.SECURITY_MANAGER, player, world, pos, side, Permission.MODIFY, Permission.SECURITY); + openNetworkGui(RSGui.SECURITY_MANAGER, player, world, pos, side, Permission.MODIFY, Permission.SECURITY); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java index 7f854274e..8fdbc56e8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java @@ -3,6 +3,8 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeStorage; +import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.item.ItemBlockStorage; import com.raoulvdberge.refinedstorage.tile.TileStorage; import net.minecraft.block.properties.PropertyEnum; @@ -14,7 +16,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.NonNullList; @@ -22,15 +23,11 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import javax.annotation.Nullable; - public class BlockStorage extends BlockNode { public static final PropertyEnum TYPE = PropertyEnum.create("type", ItemStorageType.class); public BlockStorage() { - super("storage"); - - setHardness(5.8F); + super(BlockInfoBuilder.forId("storage").tileEntity(TileStorage::new).hardness(5.8F).create()); } @Override @@ -42,7 +39,7 @@ public class BlockStorage extends BlockNode { @Override protected BlockStateContainer createBlockState() { - return createBlockStateBuilder() + return createStateBuilder() .add(TYPE) .build(); } @@ -57,29 +54,14 @@ public class BlockStorage extends BlockNode { return ((ItemStorageType) state.getValue(TYPE)).getId(); } - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileStorage(); - } - @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.STORAGE, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.STORAGE, player, world, pos, side); } @Override public Item createItem() { - return new ItemBlockStorage(); - } - - @Override - @Nullable - public Direction getDirection() { - return null; + return new ItemBlockStorage(this, getDirection()); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorageMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorageMonitor.java index 1edda0a15..072852b29 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorageMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorageMonitor.java @@ -2,11 +2,12 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeStorageMonitor; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; @@ -18,7 +19,13 @@ import javax.annotation.Nullable; public class BlockStorageMonitor extends BlockNode { public BlockStorageMonitor() { - super("storage_monitor"); + super(BlockInfoBuilder.forId("storage_monitor").tileEntity(TileStorageMonitor::new).create()); + } + + @Override + @Nullable + public BlockDirection getDirection() { + return BlockDirection.HORIZONTAL; } @Override @@ -27,7 +34,7 @@ public class BlockStorageMonitor extends BlockNode { ItemStack held = player.inventory.getCurrentItem(); if (player.isSneaking()) { - tryOpenNetworkGui(RSGui.STORAGE_MONITOR, player, world, pos, side); + openNetworkGui(RSGui.STORAGE_MONITOR, player, world, pos, side); } else { NetworkNodeStorageMonitor storageMonitor = ((TileStorageMonitor) world.getTileEntity(pos)).getNode(); @@ -57,12 +64,6 @@ public class BlockStorageMonitor extends BlockNode { } } - @Nullable - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileStorageMonitor(); - } - @Override public boolean hasConnectivityState() { return true; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java index 79dbdeb37..291081d70 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWirelessTransmitter.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder; import com.raoulvdberge.refinedstorage.render.collision.constants.ConstantsWirelessTransmitter; import com.raoulvdberge.refinedstorage.tile.TileWirelessTransmitter; import net.minecraft.block.Block; @@ -10,7 +11,6 @@ import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -25,21 +25,12 @@ import java.util.List; public class BlockWirelessTransmitter extends BlockNode { public BlockWirelessTransmitter() { - super("wireless_transmitter"); - } - - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileWirelessTransmitter(); + super(BlockInfoBuilder.forId("wireless_transmitter").tileEntity(TileWirelessTransmitter::new).create()); } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - tryOpenNetworkGui(RSGui.WIRELESS_TRANSMITTER, player, world, pos, side); - } - - return true; + return openNetworkGui(RSGui.WIRELESS_TRANSMITTER, player, world, pos, side); } @Override @@ -85,12 +76,6 @@ public class BlockWirelessTransmitter extends BlockNode { return true; } - @Override - @Nullable - public Direction getDirection() { - return null; - } - @Override public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { super.addInformation(stack, world, tooltip, flag); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java index 728269864..b9a58b25c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java @@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeWriter; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.render.collision.CollisionGroup; import com.raoulvdberge.refinedstorage.tile.TileWriter; import net.minecraft.block.state.IBlockState; @@ -21,7 +22,13 @@ import java.util.List; public class BlockWriter extends BlockCable { public BlockWriter() { - super("writer"); + super(createBuilder("writer").tileEntity(TileWriter::new).create()); + } + + @Override + @Nullable + public BlockDirection getDirection() { + return BlockDirection.ANY; } @Override @@ -47,18 +54,13 @@ public class BlockWriter extends BlockCable { } } } else { - tryOpenNetworkGui(RSGui.READER_WRITER, player, world, pos, side); + openNetworkGui(RSGui.READER_WRITER, player, world, pos, side); } } return true; } - @Override - public TileEntity createTileEntity(World world, IBlockState state) { - return new TileWriter(); - } - @Override @SuppressWarnings("deprecation") public int getWeakPower(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { @@ -90,10 +92,4 @@ public class BlockWriter extends BlockCable { public boolean hasConnectivityState() { return true; } - - @Override - @Nullable - public Direction getDirection() { - return Direction.ANY; - } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/ControllerEnergyType.java b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/ControllerEnergyType.java similarity index 93% rename from src/main/java/com/raoulvdberge/refinedstorage/block/ControllerEnergyType.java rename to src/main/java/com/raoulvdberge/refinedstorage/block/enums/ControllerEnergyType.java index 20372a327..3aed60ea6 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/ControllerEnergyType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/ControllerEnergyType.java @@ -1,4 +1,4 @@ -package com.raoulvdberge.refinedstorage.block; +package com.raoulvdberge.refinedstorage.block.enums; import net.minecraft.util.IStringSerializable; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/ControllerType.java b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/ControllerType.java similarity index 90% rename from src/main/java/com/raoulvdberge/refinedstorage/block/ControllerType.java rename to src/main/java/com/raoulvdberge/refinedstorage/block/enums/ControllerType.java index a28137042..2abbb6112 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/ControllerType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/ControllerType.java @@ -1,4 +1,4 @@ -package com.raoulvdberge.refinedstorage.block; +package com.raoulvdberge.refinedstorage.block.enums; import net.minecraft.util.IStringSerializable; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/FluidStorageType.java b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/FluidStorageType.java similarity index 95% rename from src/main/java/com/raoulvdberge/refinedstorage/block/FluidStorageType.java rename to src/main/java/com/raoulvdberge/refinedstorage/block/enums/FluidStorageType.java index 23c9bcfdc..ef2533d8c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/FluidStorageType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/FluidStorageType.java @@ -1,4 +1,4 @@ -package com.raoulvdberge.refinedstorage.block; +package com.raoulvdberge.refinedstorage.block.enums; import net.minecraft.util.IStringSerializable; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/ItemStorageType.java b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/ItemStorageType.java similarity index 94% rename from src/main/java/com/raoulvdberge/refinedstorage/block/ItemStorageType.java rename to src/main/java/com/raoulvdberge/refinedstorage/block/enums/ItemStorageType.java index a45275a66..b4d90d8ac 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/ItemStorageType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/ItemStorageType.java @@ -1,4 +1,4 @@ -package com.raoulvdberge.refinedstorage.block; +package com.raoulvdberge.refinedstorage.block.enums; import net.minecraft.util.IStringSerializable; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/PortableGridDiskState.java b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/PortableGridDiskState.java similarity index 94% rename from src/main/java/com/raoulvdberge/refinedstorage/block/PortableGridDiskState.java rename to src/main/java/com/raoulvdberge/refinedstorage/block/enums/PortableGridDiskState.java index 0c3b81e1a..68e3296ae 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/PortableGridDiskState.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/PortableGridDiskState.java @@ -1,4 +1,4 @@ -package com.raoulvdberge.refinedstorage.block; +package com.raoulvdberge.refinedstorage.block.enums; import net.minecraft.util.IStringSerializable; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/PortableGridType.java b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/PortableGridType.java similarity index 90% rename from src/main/java/com/raoulvdberge/refinedstorage/block/PortableGridType.java rename to src/main/java/com/raoulvdberge/refinedstorage/block/enums/PortableGridType.java index d2c55a7f5..0c1cc2941 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/PortableGridType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/enums/PortableGridType.java @@ -1,4 +1,4 @@ -package com.raoulvdberge.refinedstorage.block; +package com.raoulvdberge.refinedstorage.block.enums; import net.minecraft.util.IStringSerializable; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/Direction.java b/src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockDirection.java similarity index 92% rename from src/main/java/com/raoulvdberge/refinedstorage/block/Direction.java rename to src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockDirection.java index 654e05991..aee45cc08 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/Direction.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockDirection.java @@ -1,4 +1,4 @@ -package com.raoulvdberge.refinedstorage.block; +package com.raoulvdberge.refinedstorage.block.info; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.entity.EntityLivingBase; @@ -7,14 +7,14 @@ import net.minecraft.util.math.BlockPos; import java.util.Arrays; -public enum Direction { +public enum BlockDirection { ANY(EnumFacing.VALUES), ANY_FACE_PLAYER(EnumFacing.VALUES), HORIZONTAL(EnumFacing.NORTH, EnumFacing.EAST, EnumFacing.SOUTH, EnumFacing.WEST); private final PropertyDirection property; - Direction(EnumFacing... allowed) { + BlockDirection(EnumFacing... allowed) { this.property = PropertyDirection.create("direction", Arrays.asList(allowed)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockInfo.java b/src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockInfo.java new file mode 100644 index 000000000..4c147a556 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockInfo.java @@ -0,0 +1,70 @@ +package com.raoulvdberge.refinedstorage.block.info; + +import com.raoulvdberge.refinedstorage.tile.TileBase; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; + +import javax.annotation.Nullable; +import java.util.function.Supplier; + +public class BlockInfo implements IBlockInfo { + private final Material material; + private final SoundType soundType; + private final float hardness; + private final String id; + private final String modId; + private final Object modObject; + @Nullable + private final Supplier tileSupplier; + + public BlockInfo(Material material, SoundType soundType, float hardness, String id, String modId, Object modObject, Supplier tileSupplier) { + this.material = material; + this.soundType = soundType; + this.hardness = hardness; + this.id = id; + this.modId = modId; + this.modObject = modObject; + this.tileSupplier = tileSupplier; + } + + @Override + public Material getMaterial() { + return material; + } + + @Override + public SoundType getSoundType() { + return soundType; + } + + @Override + public String getId() { + return id; + } + + @Override + public String getModId() { + return modId; + } + + @Override + public Object getModObject() { + return modObject; + } + + @Override + public float getHardness() { + return hardness; + } + + @Nullable + @Override + public TileBase createTileEntity() { + return tileSupplier.get(); + } + + @Override + public boolean hasTileEntity() { + return tileSupplier != null; + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockInfoBuilder.java b/src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockInfoBuilder.java new file mode 100644 index 000000000..e419b78e3 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/info/BlockInfoBuilder.java @@ -0,0 +1,63 @@ +package com.raoulvdberge.refinedstorage.block.info; + +import com.raoulvdberge.refinedstorage.RS; +import com.raoulvdberge.refinedstorage.tile.TileBase; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; + +import java.util.function.Supplier; + +public final class BlockInfoBuilder { + private Material material = Material.ROCK; + private String id; + private String modId; + private Object modObject; + private float hardness = 1.9F; + private SoundType soundType = SoundType.STONE; + private Supplier tileSupplier; + + private BlockInfoBuilder() { + } + + public static BlockInfoBuilder forMod(Object modObject, String modId, String id) { + BlockInfoBuilder builder = new BlockInfoBuilder(); + + builder.modObject = modObject; + builder.modId = modId; + builder.id = id; + + return builder; + } + + public static BlockInfoBuilder forId(String id) { + return forMod(RS.INSTANCE, RS.ID, id); + } + + public BlockInfoBuilder material(Material material) { + this.material = material; + + return this; + } + + public BlockInfoBuilder soundType(SoundType soundType) { + this.soundType = soundType; + + return this; + } + + public BlockInfoBuilder hardness(float hardness) { + this.hardness = hardness; + + return this; + } + + public BlockInfoBuilder tileEntity(Supplier tileSupplier) { + this.tileSupplier = tileSupplier; + + return this; + } + + public BlockInfo create() { + return new BlockInfo(material, soundType, hardness, id, modId, modObject, tileSupplier); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/info/IBlockInfo.java b/src/main/java/com/raoulvdberge/refinedstorage/block/info/IBlockInfo.java new file mode 100644 index 000000000..96d4018f9 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/info/IBlockInfo.java @@ -0,0 +1,26 @@ +package com.raoulvdberge.refinedstorage.block.info; + +import com.raoulvdberge.refinedstorage.tile.TileBase; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; + +import javax.annotation.Nullable; + +public interface IBlockInfo { + Material getMaterial(); + + SoundType getSoundType(); + + String getId(); + + String getModId(); + + Object getModObject(); + + float getHardness(); + + @Nullable + TileBase createTileEntity(); + + boolean hasTileEntity(); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/PropertyObject.java b/src/main/java/com/raoulvdberge/refinedstorage/block/property/PropertyObject.java similarity index 95% rename from src/main/java/com/raoulvdberge/refinedstorage/block/PropertyObject.java rename to src/main/java/com/raoulvdberge/refinedstorage/block/property/PropertyObject.java index 61f398553..4d006d841 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/PropertyObject.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/property/PropertyObject.java @@ -1,4 +1,4 @@ -package com.raoulvdberge.refinedstorage.block; +package com.raoulvdberge.refinedstorage.block.property; import net.minecraftforge.common.property.IUnlistedProperty; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockBase.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockBase.java index f6478b4ec..9b7f6f6c5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockBase.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.item; -import com.raoulvdberge.refinedstorage.block.Direction; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.tile.TileBase; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; @@ -13,9 +13,9 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; public class ItemBlockBase extends ItemBlock { - private Direction direction; + private BlockDirection direction; - public ItemBlockBase(Block block, Direction direction, boolean subtypes) { + public ItemBlockBase(Block block, BlockDirection direction, boolean subtypes) { super(block); setRegistryName(block.getRegistryName()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockController.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockController.java index 412bfa2b2..30dd85951 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockController.java @@ -1,9 +1,10 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.RSBlocks; -import com.raoulvdberge.refinedstorage.block.ControllerType; +import com.raoulvdberge.refinedstorage.block.enums.ControllerType; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.tile.TileController; +import net.minecraft.block.Block; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; @@ -15,8 +16,8 @@ import javax.annotation.Nullable; import java.util.List; public class ItemBlockController extends ItemBlockBase { - public ItemBlockController() { - super(RSBlocks.CONTROLLER, RSBlocks.CONTROLLER.getDirection(), true); + public ItemBlockController(Block block, BlockDirection direction) { + super(block, direction, true); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockEnergyItem.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockEnergyItem.java index 9b440c7f6..3f2224f20 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockEnergyItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockEnergyItem.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.item; -import com.raoulvdberge.refinedstorage.block.Direction; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import net.minecraft.block.Block; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; @@ -23,7 +23,7 @@ public abstract class ItemBlockEnergyItem extends ItemBlockBase { private int energyCapacity; - public ItemBlockEnergyItem(Block block, Direction direction, int energyCapacity) { + public ItemBlockEnergyItem(Block block, BlockDirection direction, int energyCapacity) { super(block, direction, true); this.energyCapacity = energyCapacity; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java index 2ecedd072..475eb67d8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockFluidStorage.java @@ -7,6 +7,8 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeFluidStorage; import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import net.minecraft.block.Block; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; @@ -23,8 +25,8 @@ import java.util.List; import java.util.UUID; public class ItemBlockFluidStorage extends ItemBlockBase { - public ItemBlockFluidStorage() { - super(RSBlocks.FLUID_STORAGE, RSBlocks.FLUID_STORAGE.getDirection(), true); + public ItemBlockFluidStorage(Block block, BlockDirection direction) { + super(block, direction, true); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockPortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockPortableGrid.java index b958baaed..9c2b113da 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockPortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockPortableGrid.java @@ -1,9 +1,10 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.apiimpl.API; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid; +import net.minecraft.block.Block; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; @@ -19,8 +20,8 @@ import javax.annotation.Nullable; import java.util.List; public class ItemBlockPortableGrid extends ItemBlockEnergyItem { - public ItemBlockPortableGrid() { - super(RSBlocks.PORTABLE_GRID, RSBlocks.PORTABLE_GRID.getDirection(), RS.INSTANCE.config.portableGridCapacity); + public ItemBlockPortableGrid(Block block, BlockDirection direction) { + super(block, direction, RS.INSTANCE.config.portableGridCapacity); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java index 7c7a66c82..557b47648 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockStorage.java @@ -7,6 +7,8 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.storage.NetworkNodeStorage; import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; +import com.raoulvdberge.refinedstorage.block.info.BlockDirection; +import net.minecraft.block.Block; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; @@ -23,8 +25,8 @@ import java.util.List; import java.util.UUID; public class ItemBlockStorage extends ItemBlockBase { - public ItemBlockStorage() { - super(RSBlocks.STORAGE, RSBlocks.STORAGE.getDirection(), true); + public ItemBlockStorage(Block block, BlockDirection direction) { + super(block, direction, true); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java index cbfe8bb39..f23ec56fd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFluidStorageDisk.java @@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData; import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.block.FluidStorageType; +import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java index 7a6a2a032..e3578c7aa 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemStorageDisk.java @@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDisk; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider; import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData; import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.block.ItemStorageType; +import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType; import net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java index 1ffadb01d..d7268f4d9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java @@ -5,17 +5,19 @@ import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSKeyBindings; import com.raoulvdberge.refinedstorage.api.network.grid.GridType; -import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider; -import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData; -import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern; -import com.raoulvdberge.refinedstorage.block.*; +import com.raoulvdberge.refinedstorage.block.BlockController; +import com.raoulvdberge.refinedstorage.block.BlockPortableGrid; +import com.raoulvdberge.refinedstorage.block.enums.ControllerEnergyType; +import com.raoulvdberge.refinedstorage.block.enums.ControllerType; +import com.raoulvdberge.refinedstorage.block.enums.FluidStorageType; +import com.raoulvdberge.refinedstorage.block.enums.ItemStorageType; import com.raoulvdberge.refinedstorage.gui.GuiCraftingPreview; import com.raoulvdberge.refinedstorage.gui.grid.GuiCraftingStart; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.item.*; import com.raoulvdberge.refinedstorage.network.MessageGridCraftingPreviewResponse; import com.raoulvdberge.refinedstorage.render.collision.BlockHighlightListener; +import com.raoulvdberge.refinedstorage.render.meshdefinition.ItemMeshDefinitionPortableGrid; import com.raoulvdberge.refinedstorage.render.model.ModelDiskDrive; import com.raoulvdberge.refinedstorage.render.model.ModelDiskManipulator; import com.raoulvdberge.refinedstorage.render.model.baked.BakedModelCableCover; @@ -26,9 +28,6 @@ import com.raoulvdberge.refinedstorage.render.statemapper.StateMapperCTM; import com.raoulvdberge.refinedstorage.render.tesr.TileEntitySpecialRendererStorageMonitor; import com.raoulvdberge.refinedstorage.tile.TileController; import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor; -import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; -import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid; -import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; @@ -44,7 +43,6 @@ import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.client.model.ModelLoaderRegistry; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Loader; @@ -52,8 +50,6 @@ import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import java.util.UUID; - public class ProxyClient extends ProxyCommon { @Override public void preInit(FMLPreInitializationEvent e) { @@ -289,55 +285,7 @@ public class ProxyClient extends ProxyCommon { ModelLoaderRegistry.registerLoader(new CustomModelLoaderCover()); ModelLoader.setCustomStateMapper(RSBlocks.PORTABLE_GRID, new StateMap.Builder().ignore(BlockPortableGrid.TYPE).build()); - ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(RSBlocks.PORTABLE_GRID), stack -> { - ItemHandlerBase disk = new ItemHandlerBase(1); - - if (stack.hasTagCompound()) { - StackUtils.readItems(disk, 4, stack.getTagCompound()); - } - - UUID diskId = disk.getStackInSlot(0).isEmpty() ? null : ((IStorageDiskProvider) disk.getStackInSlot(0).getItem()).getId(disk.getStackInSlot(0)); - - IPortableGrid.IPortableGridRenderInfo renderInfo = new IPortableGrid.IPortableGridRenderInfo() { - @Override - public int getStored() { - if (diskId == null) { - return 0; - } - - API.instance().getStorageDiskSync().sendRequest(diskId); - - IStorageDiskSyncData data = API.instance().getStorageDiskSync().getData(diskId); - - return data == null ? 0 : data.getStored(); - } - - @Override - public int getCapacity() { - if (diskId == null) { - return 0; - } - - API.instance().getStorageDiskSync().sendRequest(diskId); - - IStorageDiskSyncData data = API.instance().getStorageDiskSync().getData(diskId); - - return data == null ? 0 : data.getCapacity(); - } - - @Override - public boolean hasStorage() { - return diskId != null; - } - - @Override - public boolean isActive() { - return (stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() > 0 || stack.getMetadata() == ItemBlockPortableGrid.TYPE_CREATIVE) && hasStorage(); - } - }; - - return new ModelResourceLocation("refinedstorage:portable_grid", "connected=" + Boolean.toString(renderInfo.isActive()) + ",direction=north,disk_state=" + TilePortableGrid.getDiskState(renderInfo)); - }); + ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(RSBlocks.PORTABLE_GRID), new ItemMeshDefinitionPortableGrid()); } public static void onReceiveCraftingPreviewResponse(MessageGridCraftingPreviewResponse message) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java index bdb1ff36f..1d5dbf138 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java @@ -27,6 +27,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.externalstorage.ExternalS import com.raoulvdberge.refinedstorage.apiimpl.storage.externalstorage.ExternalStorageProviderItem; import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; import com.raoulvdberge.refinedstorage.block.BlockBase; +import com.raoulvdberge.refinedstorage.block.info.IBlockInfo; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.container.ContainerCrafter; import com.raoulvdberge.refinedstorage.container.ContainerCrafterManager; @@ -45,14 +46,12 @@ import com.raoulvdberge.refinedstorage.network.*; import com.raoulvdberge.refinedstorage.recipe.RecipeCover; import com.raoulvdberge.refinedstorage.recipe.RecipeHollowCover; import com.raoulvdberge.refinedstorage.recipe.RecipeHollowWideCover; -import com.raoulvdberge.refinedstorage.tile.*; -import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; +import com.raoulvdberge.refinedstorage.tile.TileBase; +import com.raoulvdberge.refinedstorage.tile.TileNode; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; -import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid; -import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; @@ -188,34 +187,6 @@ public class ProxyCommon { MinecraftForge.EVENT_BUS.register(new NetworkNodeListener()); - registerTile(TileController.class, "controller"); - registerTile(TileGrid.class, "grid"); - registerTile(TileDiskDrive.class, "disk_drive"); - registerTile(TileExternalStorage.class, "external_storage"); - registerTile(TileImporter.class, "importer"); - registerTile(TileExporter.class, "exporter"); - registerTile(TileDetector.class, "detector"); - registerTile(TileDestructor.class, "destructor"); - registerTile(TileConstructor.class, "constructor"); - registerTile(TileStorage.class, "storage"); - registerTile(TileRelay.class, "relay"); - registerTile(TileInterface.class, "interface"); - registerTile(TileCraftingMonitor.class, "crafting_monitor"); - registerTile(TileWirelessTransmitter.class, "wireless_transmitter"); - registerTile(TileCrafter.class, "crafter"); - registerTile(TileCable.class, "cable"); - registerTile(TileNetworkReceiver.class, "network_receiver"); - registerTile(TileNetworkTransmitter.class, "network_transmitter"); - registerTile(TileFluidInterface.class, "fluid_interface"); - registerTile(TileFluidStorage.class, "fluid_storage"); - registerTile(TileDiskManipulator.class, "disk_manipulator"); - registerTile(TileSecurityManager.class, "security_manager"); - registerTile(TileReader.class, "reader"); - registerTile(TileWriter.class, "writer"); - registerTile(TileStorageMonitor.class, "storage_monitor"); - registerTile(TilePortableGrid.class, "portable_grid"); - registerTile(TileCrafterManager.class, "crafter_manager"); - registerBlock(RSBlocks.CONTROLLER); registerBlock(RSBlocks.GRID); registerBlock(RSBlocks.PORTABLE_GRID); @@ -365,17 +336,23 @@ public class ProxyCommon { blocksToRegister.add(block); registerItem(block.createItem()); + + if (block.getInfo().hasTileEntity()) { + registerTile(block.getInfo()); + } } private void registerItem(Item item) { itemsToRegister.add(item); } - private void registerTile(Class tile, String id) { - GameRegistry.registerTileEntity(tile, new ResourceLocation(RS.ID, id)); + private void registerTile(IBlockInfo info) { + Class clazz = info.createTileEntity().getClass(); + + GameRegistry.registerTileEntity(clazz, new ResourceLocation(RS.ID, info.getId())); try { - TileBase tileInstance = tile.newInstance(); + TileBase tileInstance = clazz.newInstance(); if (tileInstance instanceof TileNode) { API.instance().getNetworkNodeRegistry().add(((TileNode) tileInstance).getNodeId(), (tag, world, pos) -> { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/render/meshdefinition/ItemMeshDefinitionPortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/render/meshdefinition/ItemMeshDefinitionPortableGrid.java new file mode 100644 index 000000000..c45a38a6a --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/render/meshdefinition/ItemMeshDefinitionPortableGrid.java @@ -0,0 +1,71 @@ +package com.raoulvdberge.refinedstorage.render.meshdefinition; + +import com.raoulvdberge.refinedstorage.RS; +import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskProvider; +import com.raoulvdberge.refinedstorage.api.storage.disk.IStorageDiskSyncData; +import com.raoulvdberge.refinedstorage.apiimpl.API; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; +import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid; +import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; +import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid; +import com.raoulvdberge.refinedstorage.util.StackUtils; +import net.minecraft.client.renderer.ItemMeshDefinition; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.item.ItemStack; +import net.minecraftforge.energy.CapabilityEnergy; + +import java.util.UUID; + +public class ItemMeshDefinitionPortableGrid implements ItemMeshDefinition { + // TODO: Optimize + @Override + public ModelResourceLocation getModelLocation(ItemStack stack) { + ItemHandlerBase disk = new ItemHandlerBase(1); + + if (stack.hasTagCompound()) { + StackUtils.readItems(disk, 4, stack.getTagCompound()); + } + + UUID diskId = disk.getStackInSlot(0).isEmpty() ? null : ((IStorageDiskProvider) disk.getStackInSlot(0).getItem()).getId(disk.getStackInSlot(0)); + + IPortableGrid.IPortableGridRenderInfo renderInfo = new IPortableGrid.IPortableGridRenderInfo() { + @Override + public int getStored() { + if (diskId == null) { + return 0; + } + + API.instance().getStorageDiskSync().sendRequest(diskId); + + IStorageDiskSyncData data = API.instance().getStorageDiskSync().getData(diskId); + + return data == null ? 0 : data.getStored(); + } + + @Override + public int getCapacity() { + if (diskId == null) { + return 0; + } + + API.instance().getStorageDiskSync().sendRequest(diskId); + + IStorageDiskSyncData data = API.instance().getStorageDiskSync().getData(diskId); + + return data == null ? 0 : data.getCapacity(); + } + + @Override + public boolean hasStorage() { + return diskId != null; + } + + @Override + public boolean isActive() { + return (stack.getCapability(CapabilityEnergy.ENERGY, null).getEnergyStored() > 0 || stack.getMetadata() == ItemBlockPortableGrid.TYPE_CREATIVE) && hasStorage(); + } + }; + + return new ModelResourceLocation(RS.ID + ":portable_grid", "connected=" + Boolean.toString(renderInfo.isActive()) + ",direction=north,disk_state=" + TilePortableGrid.getDiskState(renderInfo)); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index 8c5adcf72..594639578 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -34,8 +34,8 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItem; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageTrackerFluid; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageTrackerItem; import com.raoulvdberge.refinedstorage.block.BlockController; -import com.raoulvdberge.refinedstorage.block.ControllerEnergyType; -import com.raoulvdberge.refinedstorage.block.ControllerType; +import com.raoulvdberge.refinedstorage.block.enums.ControllerEnergyType; +import com.raoulvdberge.refinedstorage.block.enums.ControllerType; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.integration.forgeenergy.EnergyProxy; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java index 1872fcca9..dc623069e 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java @@ -24,8 +24,8 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheListenerGridP import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageTrackerItem; import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskItemPortable; import com.raoulvdberge.refinedstorage.block.BlockPortableGrid; -import com.raoulvdberge.refinedstorage.block.PortableGridDiskState; -import com.raoulvdberge.refinedstorage.block.PortableGridType; +import com.raoulvdberge.refinedstorage.block.enums.PortableGridDiskState; +import com.raoulvdberge.refinedstorage.block.enums.PortableGridType; import com.raoulvdberge.refinedstorage.gui.GuiBase; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;