Add better block info system.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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<Integer[]> 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
|
||||
|
||||
@@ -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<Integer[]> 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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<String> tooltip, ITooltipFlag flag) {
|
||||
super.addInformation(stack, world, tooltip, flag);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
package com.raoulvdberge.refinedstorage.block.enums;
|
||||
|
||||
import net.minecraft.util.IStringSerializable;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
package com.raoulvdberge.refinedstorage.block.enums;
|
||||
|
||||
import net.minecraft.util.IStringSerializable;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
package com.raoulvdberge.refinedstorage.block.enums;
|
||||
|
||||
import net.minecraft.util.IStringSerializable;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
package com.raoulvdberge.refinedstorage.block.enums;
|
||||
|
||||
import net.minecraft.util.IStringSerializable;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
package com.raoulvdberge.refinedstorage.block.enums;
|
||||
|
||||
import net.minecraft.util.IStringSerializable;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
package com.raoulvdberge.refinedstorage.block.enums;
|
||||
|
||||
import net.minecraft.util.IStringSerializable;
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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<TileBase> tileSupplier;
|
||||
|
||||
public BlockInfo(Material material, SoundType soundType, float hardness, String id, String modId, Object modObject, Supplier<TileBase> 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;
|
||||
}
|
||||
}
|
||||
@@ -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<TileBase> 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<TileBase> tileSupplier) {
|
||||
this.tileSupplier = tileSupplier;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public BlockInfo create() {
|
||||
return new BlockInfo(material, soundType, hardness, id, modId, modObject, tileSupplier);
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
package com.raoulvdberge.refinedstorage.block.property;
|
||||
|
||||
import net.minecraftforge.common.property.IUnlistedProperty;
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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<? extends TileBase> tile, String id) {
|
||||
GameRegistry.registerTileEntity(tile, new ResourceLocation(RS.ID, id));
|
||||
private void registerTile(IBlockInfo info) {
|
||||
Class<? extends TileBase> 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) -> {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user