Re-add the Interface
This commit is contained in:
@@ -122,6 +122,7 @@ public class ClientSetup {
|
|||||||
ScreenManager.registerFactory(RSContainers.RELAY, RelayScreen::new);
|
ScreenManager.registerFactory(RSContainers.RELAY, RelayScreen::new);
|
||||||
ScreenManager.registerFactory(RSContainers.DETECTOR, DetectorScreen::new);
|
ScreenManager.registerFactory(RSContainers.DETECTOR, DetectorScreen::new);
|
||||||
ScreenManager.registerFactory(RSContainers.SECURITY_MANAGER, SecurityManagerScreen::new);
|
ScreenManager.registerFactory(RSContainers.SECURITY_MANAGER, SecurityManagerScreen::new);
|
||||||
|
ScreenManager.registerFactory(RSContainers.INTERFACE, InterfaceScreen::new);
|
||||||
|
|
||||||
ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR);
|
ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR);
|
||||||
ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX);
|
ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX);
|
||||||
|
|||||||
@@ -123,6 +123,7 @@ public final class RS {
|
|||||||
API.instance().getNetworkNodeRegistry().add(RelayNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new RelayNetworkNode(world, pos)));
|
API.instance().getNetworkNodeRegistry().add(RelayNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new RelayNetworkNode(world, pos)));
|
||||||
API.instance().getNetworkNodeRegistry().add(DetectorNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new DetectorNetworkNode(world, pos)));
|
API.instance().getNetworkNodeRegistry().add(DetectorNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new DetectorNetworkNode(world, pos)));
|
||||||
API.instance().getNetworkNodeRegistry().add(SecurityManagerNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new SecurityManagerNetworkNode(world, pos)));
|
API.instance().getNetworkNodeRegistry().add(SecurityManagerNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new SecurityManagerNetworkNode(world, pos)));
|
||||||
|
API.instance().getNetworkNodeRegistry().add(InterfaceNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new InterfaceNetworkNode(world, pos)));
|
||||||
|
|
||||||
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
||||||
|
|
||||||
@@ -172,6 +173,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(new RelayBlock());
|
e.getRegistry().register(new RelayBlock());
|
||||||
e.getRegistry().register(new DetectorBlock());
|
e.getRegistry().register(new DetectorBlock());
|
||||||
e.getRegistry().register(new SecurityManagerBlock());
|
e.getRegistry().register(new SecurityManagerBlock());
|
||||||
|
e.getRegistry().register(new InterfaceBlock());
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -205,6 +207,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(RelayTile::new, RSBlocks.RELAY).build(null).setRegistryName(RS.ID, "relay")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(RelayTile::new, RSBlocks.RELAY).build(null).setRegistryName(RS.ID, "relay")));
|
||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(DetectorTile::new, RSBlocks.DETECTOR).build(null).setRegistryName(RS.ID, "detector")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(DetectorTile::new, RSBlocks.DETECTOR).build(null).setRegistryName(RS.ID, "detector")));
|
||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(SecurityManagerTile::new, RSBlocks.SECURITY_MANAGER).build(null).setRegistryName(RS.ID, "security_manager")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(SecurityManagerTile::new, RSBlocks.SECURITY_MANAGER).build(null).setRegistryName(RS.ID, "security_manager")));
|
||||||
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(InterfaceTile::new, RSBlocks.INTERFACE).build(null).setRegistryName(RS.ID, "interface")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) {
|
private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) {
|
||||||
@@ -230,6 +233,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<RelayContainer, RelayTile>((windowId, inv, tile) -> new RelayContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "relay"));
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<RelayContainer, RelayTile>((windowId, inv, tile) -> new RelayContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "relay"));
|
||||||
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<DetectorContainer, DetectorTile>((windowId, inv, tile) -> new DetectorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "detector"));
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<DetectorContainer, DetectorTile>((windowId, inv, tile) -> new DetectorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "detector"));
|
||||||
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<SecurityManagerContainer, SecurityManagerTile>((windowId, inv, tile) -> new SecurityManagerContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "security_manager"));
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<SecurityManagerContainer, SecurityManagerTile>((windowId, inv, tile) -> new SecurityManagerContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "security_manager"));
|
||||||
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<InterfaceContainer, InterfaceTile>((windowId, inv, tile) -> new InterfaceContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "interface"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -305,6 +309,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.RELAY));
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.RELAY));
|
||||||
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.DETECTOR));
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.DETECTOR));
|
||||||
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.SECURITY_MANAGER));
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.SECURITY_MANAGER));
|
||||||
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.INTERFACE));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO
|
/* TODO
|
||||||
|
|||||||
@@ -60,10 +60,11 @@ public final class RSBlocks {
|
|||||||
public static final FluidStorageBlock CREATIVE_FLUID_STORAGE_BLOCK = null;
|
public static final FluidStorageBlock CREATIVE_FLUID_STORAGE_BLOCK = null;
|
||||||
@ObjectHolder(RS.ID + ":security_manager")
|
@ObjectHolder(RS.ID + ":security_manager")
|
||||||
public static final SecurityManagerBlock SECURITY_MANAGER = null;
|
public static final SecurityManagerBlock SECURITY_MANAGER = null;
|
||||||
|
@ObjectHolder(RS.ID + ":interface")
|
||||||
|
public static final InterfaceBlock INTERFACE = null;
|
||||||
|
|
||||||
public static final BlockDestructor DESTRUCTOR = new BlockDestructor();
|
public static final BlockDestructor DESTRUCTOR = new BlockDestructor();
|
||||||
public static final BlockConstructor CONSTRUCTOR = new BlockConstructor();
|
public static final BlockConstructor CONSTRUCTOR = new BlockConstructor();
|
||||||
public static final BlockInterface INTERFACE = new BlockInterface();
|
|
||||||
public static final BlockCraftingMonitor CRAFTING_MONITOR = new BlockCraftingMonitor();
|
public static final BlockCraftingMonitor CRAFTING_MONITOR = new BlockCraftingMonitor();
|
||||||
public static final BlockWirelessTransmitter WIRELESS_TRANSMITTER = new BlockWirelessTransmitter();
|
public static final BlockWirelessTransmitter WIRELESS_TRANSMITTER = new BlockWirelessTransmitter();
|
||||||
public static final BlockCrafter CRAFTER = new BlockCrafter();
|
public static final BlockCrafter CRAFTER = new BlockCrafter();
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ public final class RSContainers {
|
|||||||
public static final ContainerType<FluidStorageContainer> FLUID_STORAGE_BLOCK = null;
|
public static final ContainerType<FluidStorageContainer> FLUID_STORAGE_BLOCK = null;
|
||||||
@ObjectHolder(RS.ID + ":security_manager")
|
@ObjectHolder(RS.ID + ":security_manager")
|
||||||
public static final ContainerType<SecurityManagerContainer> SECURITY_MANAGER = null;
|
public static final ContainerType<SecurityManagerContainer> SECURITY_MANAGER = null;
|
||||||
|
@ObjectHolder(RS.ID + ":interface")
|
||||||
|
public static final ContainerType<InterfaceContainer> INTERFACE = null;
|
||||||
|
|
||||||
//@ObjectHolder(RS.ID + ":crafter")
|
//@ObjectHolder(RS.ID + ":crafter")
|
||||||
public static final ContainerType<CrafterContainer> CRAFTER = null;
|
public static final ContainerType<CrafterContainer> CRAFTER = null;
|
||||||
@@ -46,8 +48,6 @@ public final class RSContainers {
|
|||||||
public static final ContainerType<DiskManipulatorContainer> DISK_MANIPULATOR = null;
|
public static final ContainerType<DiskManipulatorContainer> DISK_MANIPULATOR = null;
|
||||||
//@ObjectHolder(RS.ID + ":fluid_interface")
|
//@ObjectHolder(RS.ID + ":fluid_interface")
|
||||||
public static final ContainerType<FluidInterfaceContainer> FLUID_INTERFACE = null;
|
public static final ContainerType<FluidInterfaceContainer> FLUID_INTERFACE = null;
|
||||||
//@ObjectHolder(RS.ID + ":interface")
|
|
||||||
public static final ContainerType<ImporterContainer> INTERFACE = null;
|
|
||||||
//@ObjectHolder(RS.ID + ":storage_monitor")
|
//@ObjectHolder(RS.ID + ":storage_monitor")
|
||||||
public static final ContainerType<StorageMonitorContainer> STORAGE_MONITOR = null;
|
public static final ContainerType<StorageMonitorContainer> STORAGE_MONITOR = null;
|
||||||
//@ObjectHolder(RS.ID + ":wireless_transmitter")
|
//@ObjectHolder(RS.ID + ":wireless_transmitter")
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ public class RSOldConfig {
|
|||||||
public int craftingMonitorUsage;
|
public int craftingMonitorUsage;
|
||||||
public int crafterManagerUsage;
|
public int crafterManagerUsage;
|
||||||
public int destructorUsage;
|
public int destructorUsage;
|
||||||
public int interfaceUsage;
|
|
||||||
public int fluidInterfaceUsage;
|
public int fluidInterfaceUsage;
|
||||||
public int wirelessTransmitterUsage;
|
public int wirelessTransmitterUsage;
|
||||||
public int diskManipulatorUsage;
|
public int diskManipulatorUsage;
|
||||||
@@ -73,7 +72,6 @@ public class RSOldConfig {
|
|||||||
craftingMonitorUsage = config.getInt("craftingMonitor", ENERGY, 2, 0, Integer.MAX_VALUE, "The energy used by Crafting Monitors");
|
craftingMonitorUsage = config.getInt("craftingMonitor", ENERGY, 2, 0, Integer.MAX_VALUE, "The energy used by Crafting Monitors");
|
||||||
crafterManagerUsage = config.getInt("crafterManager", ENERGY, 4, 0, Integer.MAX_VALUE, "The energy used by Crafter Managers");
|
crafterManagerUsage = config.getInt("crafterManager", ENERGY, 4, 0, Integer.MAX_VALUE, "The energy used by Crafter Managers");
|
||||||
destructorUsage = config.getInt("destructor", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Destructors");
|
destructorUsage = config.getInt("destructor", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Destructors");
|
||||||
interfaceUsage = config.getInt("interface", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Interfaces");
|
|
||||||
fluidInterfaceUsage = config.getInt("fluidInterface", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Fluid Interfaces");
|
fluidInterfaceUsage = config.getInt("fluidInterface", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Fluid Interfaces");
|
||||||
wirelessTransmitterUsage = config.getInt("wirelessTransmitter", ENERGY, 8, 0, Integer.MAX_VALUE, "The energy used by Wireless Transmitters");
|
wirelessTransmitterUsage = config.getInt("wirelessTransmitter", ENERGY, 8, 0, Integer.MAX_VALUE, "The energy used by Wireless Transmitters");
|
||||||
diskManipulatorUsage = config.getInt("diskManipulator", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Disk Manipulators");
|
diskManipulatorUsage = config.getInt("diskManipulator", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Disk Manipulators");
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ public class RSTiles {
|
|||||||
public static final TileEntityType<FluidStorageTile> CREATIVE_FLUID_STORAGE_BLOCK = null;
|
public static final TileEntityType<FluidStorageTile> CREATIVE_FLUID_STORAGE_BLOCK = null;
|
||||||
@ObjectHolder(RS.ID + ":security_manager")
|
@ObjectHolder(RS.ID + ":security_manager")
|
||||||
public static final TileEntityType<SecurityManagerTile> SECURITY_MANAGER = null;
|
public static final TileEntityType<SecurityManagerTile> SECURITY_MANAGER = null;
|
||||||
|
@ObjectHolder(RS.ID + ":interface")
|
||||||
|
public static final TileEntityType<InterfaceTile> INTERFACE = null;
|
||||||
|
|
||||||
//@ObjectHolder(RS.ID + ":portable_grid")
|
//@ObjectHolder(RS.ID + ":portable_grid")
|
||||||
public static final TileEntityType<TilePortableGrid> PORTABLE_GRID = null;
|
public static final TileEntityType<TilePortableGrid> PORTABLE_GRID = null;
|
||||||
@@ -67,8 +69,6 @@ public class RSTiles {
|
|||||||
public static final TileEntityType<TileStorageMonitor> STORAGE_MONITOR = null;
|
public static final TileEntityType<TileStorageMonitor> STORAGE_MONITOR = null;
|
||||||
//@ObjectHolder(RS.ID + ":wireless_transmitter")
|
//@ObjectHolder(RS.ID + ":wireless_transmitter")
|
||||||
public static final TileEntityType<SecurityManagerTile> WIRELESS_TRANSMITTER = null;
|
public static final TileEntityType<SecurityManagerTile> WIRELESS_TRANSMITTER = null;
|
||||||
//@ObjectHolder(RS.ID + ":interface")
|
|
||||||
public static final TileEntityType<ImporterTile> INTERFACE = null;
|
|
||||||
//@ObjectHolder(RS.ID + ":fluid_interface")
|
//@ObjectHolder(RS.ID + ":fluid_interface")
|
||||||
public static final TileEntityType<TileFluidInterface> FLUID_INTERFACE = null;
|
public static final TileEntityType<TileFluidInterface> FLUID_INTERFACE = null;
|
||||||
//@ObjectHolder(RS.ID + ":disk_manipulator")
|
//@ObjectHolder(RS.ID + ":disk_manipulator")
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import net.minecraft.world.server.ServerWorld;
|
|||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||||
|
|
||||||
public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
public class InterfaceNetworkNode extends NetworkNode implements IComparable {
|
||||||
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "interface");
|
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "interface");
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
@@ -36,19 +36,20 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
|||||||
|
|
||||||
private IItemHandler items = new ProxyItemHandler(importItems, exportItems);
|
private IItemHandler items = new ProxyItemHandler(importItems, exportItems);
|
||||||
|
|
||||||
private UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4).addListener(new NetworkNodeInventoryListener(this)/* TODO, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING*/);
|
private UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.STACK, UpgradeItem.Type.CRAFTING)
|
||||||
|
.addListener(new NetworkNodeInventoryListener(this));
|
||||||
|
|
||||||
private int compare = IComparer.COMPARE_NBT;
|
private int compare = IComparer.COMPARE_NBT;
|
||||||
|
|
||||||
private int currentSlot = 0;
|
private int currentSlot = 0;
|
||||||
|
|
||||||
public NetworkNodeInterface(World world, BlockPos pos) {
|
public InterfaceNetworkNode(World world, BlockPos pos) {
|
||||||
super(world, pos);
|
super(world, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnergyUsage() {
|
public int getEnergyUsage() {
|
||||||
return RS.INSTANCE.config.interfaceUsage + upgrades.getEnergyUsage();
|
return RS.SERVER_CONFIG.getInterface().getUsage() + upgrades.getEnergyUsage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -73,8 +74,6 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
|||||||
ItemStack remainder = network.insertItemTracked(slot, size);
|
ItemStack remainder = network.insertItemTracked(slot, size);
|
||||||
|
|
||||||
importItems.extractItem(currentSlot, size - remainder.getCount(), false);
|
importItems.extractItem(currentSlot, size - remainder.getCount(), false);
|
||||||
|
|
||||||
currentSlot++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
@@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.api.storage.externalstorage.IExternalStor
|
|||||||
import com.raoulvdberge.refinedstorage.api.storage.externalstorage.IExternalStorageContext;
|
import com.raoulvdberge.refinedstorage.api.storage.externalstorage.IExternalStorageContext;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.externalstorage.IExternalStorageProvider;
|
import com.raoulvdberge.refinedstorage.api.storage.externalstorage.IExternalStorageProvider;
|
||||||
import com.raoulvdberge.refinedstorage.capability.NetworkNodeProxyCapability;
|
import com.raoulvdberge.refinedstorage.capability.NetworkNodeProxyCapability;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileInterface;
|
import com.raoulvdberge.refinedstorage.tile.InterfaceTile;
|
||||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
@@ -30,7 +30,7 @@ public class ItemExternalStorageProvider implements IExternalStorageProvider<Ite
|
|||||||
@Nonnull
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public IExternalStorage<ItemStack> provide(IExternalStorageContext context, Supplier<TileEntity> tile, Direction direction) {
|
public IExternalStorage<ItemStack> provide(IExternalStorageContext context, Supplier<TileEntity> tile, Direction direction) {
|
||||||
return new ItemExternalStorage(context, () -> WorldUtils.getItemHandler(tile.get(), direction.getOpposite()), tile.get() instanceof TileInterface);
|
return new ItemExternalStorage(context, () -> WorldUtils.getItemHandler(tile.get(), direction.getOpposite()), tile.get() instanceof InterfaceTile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.block;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileInterface;
|
|
||||||
|
|
||||||
public class BlockInterface extends BlockNode {
|
|
||||||
public BlockInterface() {
|
|
||||||
super(BlockInfoBuilder.forId("interface").tileEntity(TileInterface::new).create());
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Override
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
|
||||||
public void registerModels(IModelRegistration modelRegistration) {
|
|
||||||
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onBlockActivated(World world, BlockPos pos, BlockState state, PlayerEntity player, EnumHand hand, Direction side, float hitX, float hitY, float hitZ) {
|
|
||||||
return openNetworkGui(RSGui.INTERFACE, player, world, pos, side, Permission.MODIFY, Permission.INSERT, Permission.EXTRACT);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasConnectedState() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.block;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.InterfaceContainer;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.factory.PositionalTileContainerProvider;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.InterfaceTile;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.BlockUtils;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.NetworkUtils;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.BlockRayTraceResult;
|
||||||
|
import net.minecraft.util.text.TranslationTextComponent;
|
||||||
|
import net.minecraft.world.IBlockReader;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.network.NetworkHooks;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
public class InterfaceBlock extends NodeBlock {
|
||||||
|
public InterfaceBlock() {
|
||||||
|
super(BlockUtils.DEFAULT_ROCK_PROPERTIES);
|
||||||
|
|
||||||
|
this.setRegistryName(RS.ID, "interface");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
||||||
|
return new InterfaceTile();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) {
|
||||||
|
if (!world.isRemote) {
|
||||||
|
return NetworkUtils.attempt(world, pos, hit.getFace(), player, () -> NetworkHooks.openGui(
|
||||||
|
(ServerPlayerEntity) player,
|
||||||
|
new PositionalTileContainerProvider<InterfaceTile>(
|
||||||
|
new TranslationTextComponent("gui.refinedstorage.interface"),
|
||||||
|
(tile, windowId, inventory, p) -> new InterfaceContainer(tile, player, windowId),
|
||||||
|
pos
|
||||||
|
),
|
||||||
|
pos
|
||||||
|
), Permission.MODIFY, Permission.INSERT, Permission.EXTRACT);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasConnectedState() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,6 +20,7 @@ public class ServerConfig {
|
|||||||
private Relay relay;
|
private Relay relay;
|
||||||
private Detector detector;
|
private Detector detector;
|
||||||
private SecurityManager securityManager;
|
private SecurityManager securityManager;
|
||||||
|
private Interface _interface;
|
||||||
private Upgrades upgrades;
|
private Upgrades upgrades;
|
||||||
|
|
||||||
public ServerConfig() {
|
public ServerConfig() {
|
||||||
@@ -38,6 +39,7 @@ public class ServerConfig {
|
|||||||
detector = new Detector();
|
detector = new Detector();
|
||||||
securityManager = new SecurityManager();
|
securityManager = new SecurityManager();
|
||||||
upgrades = new Upgrades();
|
upgrades = new Upgrades();
|
||||||
|
_interface = new Interface();
|
||||||
|
|
||||||
spec = builder.build();
|
spec = builder.build();
|
||||||
}
|
}
|
||||||
@@ -102,6 +104,10 @@ public class ServerConfig {
|
|||||||
return securityManager;
|
return securityManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Interface getInterface() {
|
||||||
|
return _interface;
|
||||||
|
}
|
||||||
|
|
||||||
public ForgeConfigSpec getSpec() {
|
public ForgeConfigSpec getSpec() {
|
||||||
return spec;
|
return spec;
|
||||||
}
|
}
|
||||||
@@ -483,4 +489,20 @@ public class ServerConfig {
|
|||||||
return usagePerCard.get();
|
return usagePerCard.get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class Interface {
|
||||||
|
private final ForgeConfigSpec.IntValue usage;
|
||||||
|
|
||||||
|
public Interface() {
|
||||||
|
builder.push("interface");
|
||||||
|
|
||||||
|
usage = builder.comment("The energy used by the Interface").defineInRange("usage", 2, 0, Integer.MAX_VALUE);
|
||||||
|
|
||||||
|
builder.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUsage() {
|
||||||
|
return usage.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package com.raoulvdberge.refinedstorage.container;
|
|||||||
import com.raoulvdberge.refinedstorage.RSContainers;
|
import com.raoulvdberge.refinedstorage.RSContainers;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.OutputSlot;
|
import com.raoulvdberge.refinedstorage.container.slot.OutputSlot;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.filter.FilterSlot;
|
import com.raoulvdberge.refinedstorage.container.slot.filter.FilterSlot;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileInterface;
|
import com.raoulvdberge.refinedstorage.tile.InterfaceTile;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
import net.minecraftforge.items.SlotItemHandler;
|
||||||
|
|
||||||
public class InterfaceContainer extends BaseContainer {
|
public class InterfaceContainer extends BaseContainer {
|
||||||
public InterfaceContainer(TileInterface tile, PlayerEntity player, int windowId) {
|
public InterfaceContainer(InterfaceTile tile, PlayerEntity player, int windowId) {
|
||||||
super(RSContainers.INTERFACE, tile, player, windowId);
|
super(RSContainers.INTERFACE, tile, player, windowId);
|
||||||
|
|
||||||
for (int i = 0; i < 9; ++i) {
|
for (int i = 0; i < 9; ++i) {
|
||||||
|
|||||||
@@ -4,20 +4,21 @@ import com.raoulvdberge.refinedstorage.RS;
|
|||||||
import com.raoulvdberge.refinedstorage.container.InterfaceContainer;
|
import com.raoulvdberge.refinedstorage.container.InterfaceContainer;
|
||||||
import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton;
|
import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton;
|
||||||
import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton;
|
import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileInterface;
|
import com.raoulvdberge.refinedstorage.tile.InterfaceTile;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
|
||||||
public class GuiInterface extends BaseScreen<InterfaceContainer> {
|
public class InterfaceScreen extends BaseScreen<InterfaceContainer> {
|
||||||
public GuiInterface(InterfaceContainer container, PlayerInventory inventory) {
|
public InterfaceScreen(InterfaceContainer container, PlayerInventory inventory, ITextComponent title) {
|
||||||
super(container, 211, 217, inventory, null);
|
super(container, 211, 217, inventory, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPostInit(int x, int y) {
|
public void onPostInit(int x, int y) {
|
||||||
addSideButton(new RedstoneModeSideButton(this, TileInterface.REDSTONE_MODE));
|
addSideButton(new RedstoneModeSideButton(this, InterfaceTile.REDSTONE_MODE));
|
||||||
|
|
||||||
addSideButton(new ExactModeSideButton(this, TileInterface.COMPARE));
|
addSideButton(new ExactModeSideButton(this, InterfaceTile.COMPARE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -33,8 +34,8 @@ public class GuiInterface extends BaseScreen<InterfaceContainer> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderForeground(int mouseX, int mouseY) {
|
public void renderForeground(int mouseX, int mouseY) {
|
||||||
renderString(7, 7, I18n.format("gui.refinedstorage:interface.import"));
|
renderString(7, 7, I18n.format("gui.refinedstorage.interface.import"));
|
||||||
renderString(7, 42, I18n.format("gui.refinedstorage:interface.export"));
|
renderString(7, 42, I18n.format("gui.refinedstorage.interface.export"));
|
||||||
renderString(7, 122, I18n.format("container.inventory"));
|
renderString(7, 122, I18n.format("container.inventory"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.tile;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RSTiles;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.InterfaceNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
|
import net.minecraft.util.Direction;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
public class InterfaceTile extends NetworkNodeTile<InterfaceNetworkNode> {
|
||||||
|
public static final TileDataParameter<Integer, InterfaceTile> COMPARE = IComparable.createParameter();
|
||||||
|
|
||||||
|
private LazyOptional<IItemHandler> itemsCapability = LazyOptional.of(() -> getNode().getItems());
|
||||||
|
|
||||||
|
public InterfaceTile() {
|
||||||
|
super(RSTiles.INTERFACE);
|
||||||
|
|
||||||
|
dataManager.addWatchedParameter(COMPARE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction direction) {
|
||||||
|
if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||||
|
return itemsCapability.cast();
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.getCapability(cap, direction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nonnull
|
||||||
|
public InterfaceNetworkNode createNode(World world, BlockPos pos) {
|
||||||
|
return new InterfaceNetworkNode(world, pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSTiles;
|
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeInterface;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
public class TileInterface extends NetworkNodeTile<NetworkNodeInterface> {
|
|
||||||
public static final TileDataParameter<Integer, TileInterface> COMPARE = IComparable.createParameter();
|
|
||||||
|
|
||||||
public TileInterface() {
|
|
||||||
super(RSTiles.INTERFACE);
|
|
||||||
|
|
||||||
dataManager.addWatchedParameter(COMPARE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TODO
|
|
||||||
@Override
|
|
||||||
public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable Direction facing) {
|
|
||||||
return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY ? CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(getNode().getItems()) : super.getCapability(capability, facing);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable Direction facing) {
|
|
||||||
return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nonnull
|
|
||||||
public NetworkNodeInterface createNode(World world, BlockPos pos) {
|
|
||||||
return new NetworkNodeInterface(world, pos);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,25 +1,10 @@
|
|||||||
{
|
{
|
||||||
"forge_marker": 1,
|
|
||||||
"defaults": {
|
|
||||||
"model": "cube_all",
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/interface_disconnected"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"variants": {
|
"variants": {
|
||||||
"inventory": [
|
"connected=true": {
|
||||||
{
|
"model": "refinedstorage:block/interface_connected"
|
||||||
"transform": "forge:default-block"
|
},
|
||||||
}
|
"connected=false": {
|
||||||
],
|
"model": "refinedstorage:block/interface_disconnected"
|
||||||
"connected": {
|
|
||||||
"true": {
|
|
||||||
"textures": {
|
|
||||||
"all": "refinedstorage:blocks/interface_connected"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -27,8 +27,8 @@
|
|||||||
"gui.refinedstorage:destructor": "Destructor",
|
"gui.refinedstorage:destructor": "Destructor",
|
||||||
"gui.refinedstorage:constructor": "Constructor",
|
"gui.refinedstorage:constructor": "Constructor",
|
||||||
"gui.refinedstorage.relay": "Relay",
|
"gui.refinedstorage.relay": "Relay",
|
||||||
"gui.refinedstorage:interface.import": "Interface Import",
|
"gui.refinedstorage.interface.import": "Interface Import",
|
||||||
"gui.refinedstorage:interface.export": "Interface Export",
|
"gui.refinedstorage.interface.export": "Interface Export",
|
||||||
"gui.refinedstorage:crafting_monitor": "Crafting Monitor",
|
"gui.refinedstorage:crafting_monitor": "Crafting Monitor",
|
||||||
"gui.refinedstorage:wireless_crafting_monitor": "Wireless Crafting Monitor",
|
"gui.refinedstorage:wireless_crafting_monitor": "Wireless Crafting Monitor",
|
||||||
"gui.refinedstorage:crafting_monitor.tooltip.requested": "%d requested",
|
"gui.refinedstorage:crafting_monitor.tooltip.requested": "%d requested",
|
||||||
@@ -195,7 +195,7 @@
|
|||||||
"block.refinedstorage.64k_storage_block": "64k Storage Block",
|
"block.refinedstorage.64k_storage_block": "64k Storage Block",
|
||||||
"block.refinedstorage.creative_storage_block": "Creative Storage Block",
|
"block.refinedstorage.creative_storage_block": "Creative Storage Block",
|
||||||
"block.refinedstorage.relay": "Relay",
|
"block.refinedstorage.relay": "Relay",
|
||||||
"block.refinedstorage:interface": "Interface",
|
"block.refinedstorage.interface": "Interface",
|
||||||
"block.refinedstorage:crafting_monitor": "Crafting Monitor",
|
"block.refinedstorage:crafting_monitor": "Crafting Monitor",
|
||||||
"block.refinedstorage:wireless_transmitter": "Wireless Transmitter",
|
"block.refinedstorage:wireless_transmitter": "Wireless Transmitter",
|
||||||
"block.refinedstorage:wireless_transmitter.tooltip": "Must be placed on %s.",
|
"block.refinedstorage:wireless_transmitter.tooltip": "Must be placed on %s.",
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "refinedstorage:block/interface_connected"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "refinedstorage:block/interface_disconnected"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/interface_disconnected"
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "refinedstorage:interface"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"condition": "minecraft:survives_explosion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user