Re-add the Security Manager
This commit is contained in:
@@ -48,6 +48,14 @@ public class ClientSetup {
|
|||||||
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "network_transmitter"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/network_transmitter/cutouts/connected")));
|
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "network_transmitter"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/network_transmitter/cutouts/connected")));
|
||||||
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "relay"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/relay/cutouts/connected")));
|
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "relay"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/relay/cutouts/connected")));
|
||||||
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "detector"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/detector/cutouts/on")));
|
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "detector"), (base, registry) -> new FullbrightBakedModel(base, new ResourceLocation(RS.ID, "block/detector/cutouts/on")));
|
||||||
|
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "security_manager"), (base, registry) -> new FullbrightBakedModel(
|
||||||
|
base,
|
||||||
|
new ResourceLocation(RS.ID, "block/security_manager/cutouts/top_connected"),
|
||||||
|
new ResourceLocation(RS.ID, "block/security_manager/cutouts/front_connected"),
|
||||||
|
new ResourceLocation(RS.ID, "block/security_manager/cutouts/left_connected"),
|
||||||
|
new ResourceLocation(RS.ID, "block/security_manager/cutouts/back_connected"),
|
||||||
|
new ResourceLocation(RS.ID, "block/security_manager/cutouts/right_connected")
|
||||||
|
));
|
||||||
|
|
||||||
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_drive"), (base, registry) -> new FullbrightBakedModel(
|
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_drive"), (base, registry) -> new FullbrightBakedModel(
|
||||||
new DiskDriveBakedModel(
|
new DiskDriveBakedModel(
|
||||||
@@ -113,6 +121,7 @@ public class ClientSetup {
|
|||||||
ScreenManager.registerFactory(RSContainers.NETWORK_TRANSMITTER, NetworkTransmitterScreen::new);
|
ScreenManager.registerFactory(RSContainers.NETWORK_TRANSMITTER, NetworkTransmitterScreen::new);
|
||||||
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);
|
||||||
|
|
||||||
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);
|
||||||
|
@@ -122,6 +122,7 @@ public final class RS {
|
|||||||
API.instance().getNetworkNodeRegistry().add(NetworkTransmitterNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new NetworkTransmitterNetworkNode(world, pos)));
|
API.instance().getNetworkNodeRegistry().add(NetworkTransmitterNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new NetworkTransmitterNetworkNode(world, pos)));
|
||||||
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().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
||||||
|
|
||||||
@@ -170,6 +171,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(new NetworkTransmitterBlock());
|
e.getRegistry().register(new NetworkTransmitterBlock());
|
||||||
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());
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -202,6 +204,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(NetworkTransmitterTile::new, RSBlocks.NETWORK_TRANSMITTER).build(null).setRegistryName(RS.ID, "network_transmitter")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(NetworkTransmitterTile::new, RSBlocks.NETWORK_TRANSMITTER).build(null).setRegistryName(RS.ID, "network_transmitter")));
|
||||||
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")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) {
|
private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) {
|
||||||
@@ -226,6 +229,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<NetworkTransmitterContainer, NetworkTransmitterTile>((windowId, inv, tile) -> new NetworkTransmitterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "network_transmitter"));
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<NetworkTransmitterContainer, NetworkTransmitterTile>((windowId, inv, tile) -> new NetworkTransmitterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "network_transmitter"));
|
||||||
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"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -300,6 +304,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.NETWORK_TRANSMITTER));
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.NETWORK_TRANSMITTER));
|
||||||
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));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO
|
/* TODO
|
||||||
|
@@ -58,6 +58,8 @@ public final class RSBlocks {
|
|||||||
public static final FluidStorageBlock FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK = null;
|
public static final FluidStorageBlock FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK = null;
|
||||||
@ObjectHolder(RS.ID + ":creative_fluid_storage_block")
|
@ObjectHolder(RS.ID + ":creative_fluid_storage_block")
|
||||||
public static final FluidStorageBlock CREATIVE_FLUID_STORAGE_BLOCK = null;
|
public static final FluidStorageBlock CREATIVE_FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":security_manager")
|
||||||
|
public static final SecurityManagerBlock SECURITY_MANAGER = 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();
|
||||||
@@ -67,7 +69,6 @@ public final class RSBlocks {
|
|||||||
public static final BlockCrafter CRAFTER = new BlockCrafter();
|
public static final BlockCrafter CRAFTER = new BlockCrafter();
|
||||||
public static final BlockFluidInterface FLUID_INTERFACE = new BlockFluidInterface();
|
public static final BlockFluidInterface FLUID_INTERFACE = new BlockFluidInterface();
|
||||||
public static final BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator();
|
public static final BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator();
|
||||||
public static final BlockSecurityManager SECURITY_MANAGER = new BlockSecurityManager();
|
|
||||||
public static final BlockStorageMonitor STORAGE_MONITOR = new BlockStorageMonitor();
|
public static final BlockStorageMonitor STORAGE_MONITOR = new BlockStorageMonitor();
|
||||||
public static final BlockPortableGrid PORTABLE_GRID = new BlockPortableGrid();
|
public static final BlockPortableGrid PORTABLE_GRID = new BlockPortableGrid();
|
||||||
public static final BlockCrafterManager CRAFTER_MANAGER = new BlockCrafterManager();
|
public static final BlockCrafterManager CRAFTER_MANAGER = new BlockCrafterManager();
|
||||||
|
@@ -29,6 +29,8 @@ public final class RSContainers {
|
|||||||
public static final ContainerType<StorageContainer> STORAGE_BLOCK = null;
|
public static final ContainerType<StorageContainer> STORAGE_BLOCK = null;
|
||||||
@ObjectHolder(RS.ID + ":fluid_storage_block")
|
@ObjectHolder(RS.ID + ":fluid_storage_block")
|
||||||
public static final ContainerType<FluidStorageContainer> FLUID_STORAGE_BLOCK = null;
|
public static final ContainerType<FluidStorageContainer> FLUID_STORAGE_BLOCK = null;
|
||||||
|
@ObjectHolder(RS.ID + ":security_manager")
|
||||||
|
public static final ContainerType<SecurityManagerContainer> SECURITY_MANAGER = 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<FluidInterfaceContainer> FLUID_INTERFACE = null;
|
public static final ContainerType<FluidInterfaceContainer> FLUID_INTERFACE = null;
|
||||||
//@ObjectHolder(RS.ID + ":interface")
|
//@ObjectHolder(RS.ID + ":interface")
|
||||||
public static final ContainerType<ImporterContainer> INTERFACE = null;
|
public static final ContainerType<ImporterContainer> INTERFACE = null;
|
||||||
//@ObjectHolder(RS.ID + ":security_manager")
|
|
||||||
public static final ContainerType<SecurityManagerContainer> SECURITY_MANAGER = 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")
|
||||||
|
@@ -12,8 +12,6 @@ public class RSOldConfig {
|
|||||||
public int fluidInterfaceUsage;
|
public int fluidInterfaceUsage;
|
||||||
public int wirelessTransmitterUsage;
|
public int wirelessTransmitterUsage;
|
||||||
public int diskManipulatorUsage;
|
public int diskManipulatorUsage;
|
||||||
public int securityManagerUsage;
|
|
||||||
public int securityManagerPerSecurityCardUsage;
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
//region Wireless Transmitter
|
//region Wireless Transmitter
|
||||||
@@ -79,8 +77,6 @@ public class RSOldConfig {
|
|||||||
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");
|
||||||
securityManagerUsage = config.getInt("securityManager", ENERGY, 4, 0, Integer.MAX_VALUE, "The base energy used by Security Managers");
|
|
||||||
securityManagerPerSecurityCardUsage = config.getInt("securityManagerPerSecurityCard", ENERGY, 10, 0, Integer.MAX_VALUE, "The additional energy used by Security Cards in Security Managers");
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
//region Wireless Transmitter
|
//region Wireless Transmitter
|
||||||
|
@@ -58,15 +58,15 @@ public class RSTiles {
|
|||||||
public static final TileEntityType<FluidStorageTile> FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK = null;
|
public static final TileEntityType<FluidStorageTile> FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK = null;
|
||||||
@ObjectHolder(RS.ID + ":creative_fluid_storage_block")
|
@ObjectHolder(RS.ID + ":creative_fluid_storage_block")
|
||||||
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")
|
||||||
|
public static final TileEntityType<SecurityManagerTile> SECURITY_MANAGER = 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;
|
||||||
//@ObjectHolder(RS.ID + ":security_manager")
|
|
||||||
public static final TileEntityType<TileSecurityManager> SECURITY_MANAGER = null;
|
|
||||||
//@ObjectHolder(RS.ID + ":storage_monitor")
|
//@ObjectHolder(RS.ID + ":storage_monitor")
|
||||||
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<TileSecurityManager> WIRELESS_TRANSMITTER = null;
|
public static final TileEntityType<SecurityManagerTile> WIRELESS_TRANSMITTER = null;
|
||||||
//@ObjectHolder(RS.ID + ":interface")
|
//@ObjectHolder(RS.ID + ":interface")
|
||||||
public static final TileEntityType<ImporterTile> INTERFACE = null;
|
public static final TileEntityType<ImporterTile> INTERFACE = null;
|
||||||
//@ObjectHolder(RS.ID + ":fluid_interface")
|
//@ObjectHolder(RS.ID + ":fluid_interface")
|
||||||
|
@@ -25,7 +25,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class NetworkNodeSecurityManager extends NetworkNode implements ISecurityCardContainer {
|
public class SecurityManagerNetworkNode extends NetworkNode implements ISecurityCardContainer {
|
||||||
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "security_manager");
|
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "security_manager");
|
||||||
|
|
||||||
private List<ISecurityCard> cards = new ArrayList<>();
|
private List<ISecurityCard> cards = new ArrayList<>();
|
||||||
@@ -48,17 +48,17 @@ public class NetworkNodeSecurityManager extends NetworkNode implements ISecurity
|
|||||||
.addValidator(new ItemValidator(RSItems.SECURITY_CARD))
|
.addValidator(new ItemValidator(RSItems.SECURITY_CARD))
|
||||||
.addListener(new NetworkNodeInventoryListener(this));
|
.addListener(new NetworkNodeInventoryListener(this));
|
||||||
|
|
||||||
public NetworkNodeSecurityManager(World world, BlockPos pos) {
|
public SecurityManagerNetworkNode(World world, BlockPos pos) {
|
||||||
super(world, pos);
|
super(world, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnergyUsage() {
|
public int getEnergyUsage() {
|
||||||
int usage = RS.INSTANCE.config.securityManagerUsage;
|
int usage = RS.SERVER_CONFIG.getSecurityManager().getUsage();
|
||||||
|
|
||||||
for (int i = 0; i < cardsInv.getSlots(); ++i) {
|
for (int i = 0; i < cardsInv.getSlots(); ++i) {
|
||||||
if (!cardsInv.getStackInSlot(i).isEmpty()) {
|
if (!cardsInv.getStackInSlot(i).isEmpty()) {
|
||||||
usage += RS.INSTANCE.config.securityManagerPerSecurityCardUsage;
|
usage += RS.SERVER_CONFIG.getSecurityManager().getUsagePerCard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@@ -1,55 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.block;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileSecurityManager;
|
|
||||||
|
|
||||||
public class BlockSecurityManager extends BlockNode {
|
|
||||||
public BlockSecurityManager() {
|
|
||||||
super(BlockInfoBuilder.forId("security_manager").tileEntity(TileSecurityManager::new).create());
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TODO
|
|
||||||
@Override
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
|
||||||
public void registerModels(IModelRegistration modelRegistration) {
|
|
||||||
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
|
|
||||||
|
|
||||||
modelRegistration.addBakedModelOverride(info.getId(), base -> new BakedModelFullbright(
|
|
||||||
base,
|
|
||||||
RS.ID + ":blocks/security_manager/cutouts/top_connected",
|
|
||||||
RS.ID + ":blocks/security_manager/cutouts/front_connected",
|
|
||||||
RS.ID + ":blocks/security_manager/cutouts/left_connected",
|
|
||||||
RS.ID + ":blocks/security_manager/cutouts/back_connected",
|
|
||||||
RS.ID + ":blocks/security_manager/cutouts/right_connected"
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BlockRenderLayer getRenderLayer() {
|
|
||||||
return BlockRenderLayer.CUTOUT;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public BlockDirection getDirection() {
|
|
||||||
return BlockDirection.HORIZONTAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onBlockActivated(World world, BlockPos pos, BlockState state, PlayerEntity player, EnumHand hand, Direction side, float hitX, float hitY, float hitZ) {
|
|
||||||
if (!world.isRemote) {
|
|
||||||
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 {
|
|
||||||
openNetworkGui(RSGui.SECURITY_MANAGER, player, world, pos, side, Permission.MODIFY, Permission.SECURITY);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasConnectedState() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -5,11 +5,13 @@ import com.raoulvdberge.refinedstorage.api.network.NetworkType;
|
|||||||
import com.raoulvdberge.refinedstorage.container.ControllerContainer;
|
import com.raoulvdberge.refinedstorage.container.ControllerContainer;
|
||||||
import com.raoulvdberge.refinedstorage.tile.ControllerTile;
|
import com.raoulvdberge.refinedstorage.tile.ControllerTile;
|
||||||
import com.raoulvdberge.refinedstorage.util.BlockUtils;
|
import com.raoulvdberge.refinedstorage.util.BlockUtils;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.NetworkUtils;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.entity.LivingEntity;
|
import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
|
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||||
import net.minecraft.inventory.container.Container;
|
import net.minecraft.inventory.container.Container;
|
||||||
import net.minecraft.inventory.container.INamedContainerProvider;
|
import net.minecraft.inventory.container.INamedContainerProvider;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@@ -26,6 +28,7 @@ import net.minecraft.util.text.TranslationTextComponent;
|
|||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.energy.CapabilityEnergy;
|
import net.minecraftforge.energy.CapabilityEnergy;
|
||||||
|
import net.minecraftforge.fml.network.NetworkHooks;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
@@ -109,9 +112,11 @@ public class ControllerBlock extends Block {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult rayTraceResult) {
|
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) {
|
||||||
if (!world.isRemote) {
|
if (!world.isRemote) {
|
||||||
player.openContainer(new INamedContainerProvider() {
|
return NetworkUtils.attemptModify(world, pos, hit.getFace(), player, () -> NetworkHooks.openGui(
|
||||||
|
(ServerPlayerEntity) player,
|
||||||
|
new INamedContainerProvider() {
|
||||||
@Override
|
@Override
|
||||||
public ITextComponent getDisplayName() {
|
public ITextComponent getDisplayName() {
|
||||||
return new TranslationTextComponent("gui.refinedstorage." + (ControllerBlock.this.getType() == NetworkType.CREATIVE ? "creative_" : "") + "controller");
|
return new TranslationTextComponent("gui.refinedstorage." + (ControllerBlock.this.getType() == NetworkType.CREATIVE ? "creative_" : "") + "controller");
|
||||||
@@ -121,7 +126,9 @@ public class ControllerBlock extends Block {
|
|||||||
public Container createMenu(int i, PlayerInventory playerInventory, PlayerEntity player) {
|
public Container createMenu(int i, PlayerInventory playerInventory, PlayerEntity player) {
|
||||||
return new ControllerContainer((ControllerTile) world.getTileEntity(pos), player, i);
|
return new ControllerContainer((ControllerTile) world.getTileEntity(pos), player, i);
|
||||||
}
|
}
|
||||||
});
|
},
|
||||||
|
pos
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -0,0 +1,77 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.block;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
|
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.SecurityManagerContainer;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.factory.PositionalTileContainerProvider;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.SecurityManagerTile;
|
||||||
|
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.BlockRenderLayer;
|
||||||
|
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 SecurityManagerBlock extends NodeBlock {
|
||||||
|
public SecurityManagerBlock() {
|
||||||
|
super(BlockUtils.DEFAULT_ROCK_PROPERTIES);
|
||||||
|
|
||||||
|
this.setRegistryName(RS.ID, "security_manager");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockRenderLayer getRenderLayer() {
|
||||||
|
return BlockRenderLayer.CUTOUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockDirection getDirection() {
|
||||||
|
return BlockDirection.HORIZONTAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) {
|
||||||
|
if (!world.isRemote) {
|
||||||
|
Runnable action = () -> NetworkHooks.openGui(
|
||||||
|
(ServerPlayerEntity) player,
|
||||||
|
new PositionalTileContainerProvider<SecurityManagerTile>(
|
||||||
|
new TranslationTextComponent("gui.refinedstorage.security_manager"),
|
||||||
|
(tile, windowId, inventory, p) -> new SecurityManagerContainer(tile, player, windowId),
|
||||||
|
pos
|
||||||
|
),
|
||||||
|
pos
|
||||||
|
);
|
||||||
|
|
||||||
|
if (player.getGameProfile().getId().equals(((SecurityManagerTile) world.getTileEntity(pos)).getNode().getOwner())) {
|
||||||
|
action.run();
|
||||||
|
} else {
|
||||||
|
return NetworkUtils.attempt(world, pos, hit.getFace(), player, action, Permission.MODIFY, Permission.SECURITY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
||||||
|
return new SecurityManagerTile();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasConnectedState() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@@ -19,6 +19,7 @@ public class ServerConfig {
|
|||||||
private NetworkTransmitter networkTransmitter;
|
private NetworkTransmitter networkTransmitter;
|
||||||
private Relay relay;
|
private Relay relay;
|
||||||
private Detector detector;
|
private Detector detector;
|
||||||
|
private SecurityManager securityManager;
|
||||||
private Upgrades upgrades;
|
private Upgrades upgrades;
|
||||||
|
|
||||||
public ServerConfig() {
|
public ServerConfig() {
|
||||||
@@ -35,6 +36,7 @@ public class ServerConfig {
|
|||||||
networkTransmitter = new NetworkTransmitter();
|
networkTransmitter = new NetworkTransmitter();
|
||||||
relay = new Relay();
|
relay = new Relay();
|
||||||
detector = new Detector();
|
detector = new Detector();
|
||||||
|
securityManager = new SecurityManager();
|
||||||
upgrades = new Upgrades();
|
upgrades = new Upgrades();
|
||||||
|
|
||||||
spec = builder.build();
|
spec = builder.build();
|
||||||
@@ -96,6 +98,10 @@ public class ServerConfig {
|
|||||||
return detector;
|
return detector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SecurityManager getSecurityManager() {
|
||||||
|
return securityManager;
|
||||||
|
}
|
||||||
|
|
||||||
public ForgeConfigSpec getSpec() {
|
public ForgeConfigSpec getSpec() {
|
||||||
return spec;
|
return spec;
|
||||||
}
|
}
|
||||||
@@ -455,4 +461,26 @@ public class ServerConfig {
|
|||||||
return usage.get();
|
return usage.get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class SecurityManager {
|
||||||
|
private final ForgeConfigSpec.IntValue usage;
|
||||||
|
private final ForgeConfigSpec.IntValue usagePerCard;
|
||||||
|
|
||||||
|
public SecurityManager() {
|
||||||
|
builder.push("securityManager");
|
||||||
|
|
||||||
|
usage = builder.comment("The energy used by the Security Manager").defineInRange("usage", 4, 0, Integer.MAX_VALUE);
|
||||||
|
usagePerCard = builder.comment("The additional energy used by Security Cards in the Security Manager").defineInRange("usagePerCard", 10, 0, Integer.MAX_VALUE);
|
||||||
|
|
||||||
|
builder.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUsage() {
|
||||||
|
return usage.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUsagePerCard() {
|
||||||
|
return usagePerCard.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,12 +1,12 @@
|
|||||||
package com.raoulvdberge.refinedstorage.container;
|
package com.raoulvdberge.refinedstorage.container;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSContainers;
|
import com.raoulvdberge.refinedstorage.RSContainers;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileSecurityManager;
|
import com.raoulvdberge.refinedstorage.tile.SecurityManagerTile;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
import net.minecraftforge.items.SlotItemHandler;
|
||||||
|
|
||||||
public class SecurityManagerContainer extends BaseContainer {
|
public class SecurityManagerContainer extends BaseContainer {
|
||||||
public SecurityManagerContainer(TileSecurityManager securityManager, PlayerEntity player, int windowId) {
|
public SecurityManagerContainer(SecurityManagerTile securityManager, PlayerEntity player, int windowId) {
|
||||||
super(RSContainers.SECURITY_MANAGER, securityManager, player, windowId);
|
super(RSContainers.SECURITY_MANAGER, securityManager, player, windowId);
|
||||||
|
|
||||||
int x = 8;
|
int x = 8;
|
||||||
|
@@ -1,67 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.network;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileSecurityManager;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
|
||||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
|
||||||
|
|
||||||
public class MessageSecurityManagerUpdate extends MessageHandlerPlayerToServer<MessageSecurityManagerUpdate> implements IMessage {
|
|
||||||
private int x;
|
|
||||||
private int y;
|
|
||||||
private int z;
|
|
||||||
private Permission permission;
|
|
||||||
private boolean state;
|
|
||||||
|
|
||||||
public MessageSecurityManagerUpdate() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageSecurityManagerUpdate(TileSecurityManager securityManager, Permission permission, boolean state) {
|
|
||||||
this.x = securityManager.getPos().getX();
|
|
||||||
this.y = securityManager.getPos().getY();
|
|
||||||
this.z = securityManager.getPos().getZ();
|
|
||||||
this.permission = permission;
|
|
||||||
this.state = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes(ByteBuf buf) {
|
|
||||||
x = buf.readInt();
|
|
||||||
y = buf.readInt();
|
|
||||||
z = buf.readInt();
|
|
||||||
|
|
||||||
int id = buf.readInt();
|
|
||||||
|
|
||||||
permission = Permission.INSERT;
|
|
||||||
state = buf.readBoolean();
|
|
||||||
|
|
||||||
for (Permission otherPermission : Permission.values()) {
|
|
||||||
if (otherPermission.getId() == id) {
|
|
||||||
permission = otherPermission;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void toBytes(ByteBuf buf) {
|
|
||||||
buf.writeInt(x);
|
|
||||||
buf.writeInt(y);
|
|
||||||
buf.writeInt(z);
|
|
||||||
buf.writeInt(permission.getId());
|
|
||||||
buf.writeBoolean(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void handle(MessageSecurityManagerUpdate message, ServerPlayerEntity player) {
|
|
||||||
TileEntity tile = player.getEntityWorld().getTileEntity(new BlockPos(message.x, message.y, message.z));
|
|
||||||
|
|
||||||
if (tile instanceof TileSecurityManager) {
|
|
||||||
((TileSecurityManager) tile).getNode().updatePermission(message.permission, message.state);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -45,6 +45,7 @@ public class NetworkHandler {
|
|||||||
handler.registerMessage(id++, GridFluidPullMessage.class, GridFluidPullMessage::encode, GridFluidPullMessage::decode, GridFluidPullMessage::handle);
|
handler.registerMessage(id++, GridFluidPullMessage.class, GridFluidPullMessage::encode, GridFluidPullMessage::decode, GridFluidPullMessage::handle);
|
||||||
handler.registerMessage(id++, GridTransferMessage.class, GridTransferMessage::encode, GridTransferMessage::decode, GridTransferMessage::handle);
|
handler.registerMessage(id++, GridTransferMessage.class, GridTransferMessage::encode, GridTransferMessage::decode, GridTransferMessage::handle);
|
||||||
handler.registerMessage(id++, GridProcessingTransferMessage.class, GridProcessingTransferMessage::encode, GridProcessingTransferMessage::decode, GridProcessingTransferMessage::handle);
|
handler.registerMessage(id++, GridProcessingTransferMessage.class, GridProcessingTransferMessage::encode, GridProcessingTransferMessage::decode, GridProcessingTransferMessage::handle);
|
||||||
|
handler.registerMessage(id++, SecurityManagerUpdateMessage.class, SecurityManagerUpdateMessage::encode, SecurityManagerUpdateMessage::decode, SecurityManagerUpdateMessage::handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendToServer(Object message) {
|
public void sendToServer(Object message) {
|
||||||
|
@@ -0,0 +1,63 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.network;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.SecurityManagerTile;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraftforge.fml.network.NetworkEvent;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class SecurityManagerUpdateMessage {
|
||||||
|
private BlockPos pos;
|
||||||
|
private Permission permission;
|
||||||
|
private boolean state;
|
||||||
|
|
||||||
|
public SecurityManagerUpdateMessage(BlockPos pos, Permission permission, boolean state) {
|
||||||
|
this.pos = pos;
|
||||||
|
this.permission = permission;
|
||||||
|
this.state = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SecurityManagerUpdateMessage decode(PacketBuffer buf) {
|
||||||
|
BlockPos pos = buf.readBlockPos();
|
||||||
|
|
||||||
|
int id = buf.readInt();
|
||||||
|
Permission permission = Permission.INSERT;
|
||||||
|
|
||||||
|
for (Permission otherPermission : Permission.values()) {
|
||||||
|
if (otherPermission.getId() == id) {
|
||||||
|
permission = otherPermission;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean state = buf.readBoolean();
|
||||||
|
|
||||||
|
return new SecurityManagerUpdateMessage(pos, permission, state);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void encode(SecurityManagerUpdateMessage message, PacketBuffer buf) {
|
||||||
|
buf.writeBlockPos(message.pos);
|
||||||
|
buf.writeInt(message.permission.getId());
|
||||||
|
buf.writeBoolean(message.state);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handle(SecurityManagerUpdateMessage message, Supplier<NetworkEvent.Context> ctx) {
|
||||||
|
PlayerEntity player = ctx.get().getSender();
|
||||||
|
|
||||||
|
if (player != null) {
|
||||||
|
ctx.get().enqueueWork(() -> {
|
||||||
|
TileEntity tile = player.getEntityWorld().getTileEntity(message.pos);
|
||||||
|
|
||||||
|
if (tile instanceof SecurityManagerTile) {
|
||||||
|
((SecurityManagerTile) tile).getNode().updatePermission(message.permission, message.state);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
}
|
@@ -3,47 +3,43 @@ package com.raoulvdberge.refinedstorage.screen;
|
|||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
import com.raoulvdberge.refinedstorage.container.SecurityManagerContainer;
|
import com.raoulvdberge.refinedstorage.container.SecurityManagerContainer;
|
||||||
|
import com.raoulvdberge.refinedstorage.item.SecurityCardItem;
|
||||||
|
import com.raoulvdberge.refinedstorage.network.SecurityManagerUpdateMessage;
|
||||||
import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton;
|
import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.RedstoneModeSideButton;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileSecurityManager;
|
import com.raoulvdberge.refinedstorage.tile.SecurityManagerTile;
|
||||||
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
||||||
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.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
||||||
|
|
||||||
public class GuiSecurityManager extends BaseScreen<SecurityManagerContainer> {
|
public class SecurityManagerScreen extends BaseScreen<SecurityManagerContainer> {
|
||||||
private TileSecurityManager securityManager;
|
private final SecurityManagerTile securityManager;
|
||||||
private GuiCheckBox[] permissions = new GuiCheckBox[Permission.values().length];
|
private GuiCheckBox[] permissions = new GuiCheckBox[Permission.values().length];
|
||||||
|
|
||||||
public GuiSecurityManager(SecurityManagerContainer container, TileSecurityManager securityManager, PlayerInventory inventory) {
|
public SecurityManagerScreen(SecurityManagerContainer container, PlayerInventory inventory, ITextComponent title) {
|
||||||
super(container, 176, 234, inventory, null);
|
super(container, 176, 234, inventory, title);
|
||||||
|
|
||||||
this.securityManager = securityManager;
|
this.securityManager = (SecurityManagerTile) container.getTile();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPostInit(int x, int y) {
|
public void onPostInit(int x, int y) {
|
||||||
addSideButton(new RedstoneModeSideButton(this, TileSecurityManager.REDSTONE_MODE));
|
addSideButton(new RedstoneModeSideButton(this, SecurityManagerTile.REDSTONE_MODE));
|
||||||
|
|
||||||
int padding = 15;
|
int padding = 15;
|
||||||
|
|
||||||
permissions[0] = addCheckBox(x + 7, y + 93, I18n.format("gui.refinedstorage.security_manager.permission.0"), false, btn -> {
|
permissions[0] = addCheckBox(x + 7, y + 93, I18n.format("gui.refinedstorage.security_manager.permission.0"), false, btn -> handle(0));
|
||||||
});
|
permissions[1] = addCheckBox(permissions[0].x, permissions[0].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.1"), false, btn -> handle(1));
|
||||||
|
permissions[2] = addCheckBox(permissions[1].x, permissions[1].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.2"), false, btn -> handle(2));
|
||||||
|
permissions[3] = addCheckBox(permissions[0].x + 90, permissions[0].y, I18n.format("gui.refinedstorage.security_manager.permission.3"), false, btn -> handle(3));
|
||||||
|
permissions[4] = addCheckBox(permissions[3].x, permissions[3].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.4"), false, btn -> handle(4));
|
||||||
|
permissions[5] = addCheckBox(permissions[4].x, permissions[4].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.5"), false, btn -> handle(5));
|
||||||
|
}
|
||||||
|
|
||||||
permissions[1] = addCheckBox(permissions[0].x, permissions[0].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.1"), false, btn -> {
|
private void handle(int i) {
|
||||||
});
|
RS.NETWORK_HANDLER.sendToServer(new SecurityManagerUpdateMessage(securityManager.getPos(), Permission.values()[i], permissions[i].isChecked()));
|
||||||
|
|
||||||
permissions[2] = addCheckBox(permissions[1].x, permissions[1].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.2"), false, btn -> {
|
|
||||||
});
|
|
||||||
|
|
||||||
permissions[3] = addCheckBox(permissions[0].x + 90, permissions[0].y, I18n.format("gui.refinedstorage.security_manager.permission.3"), false, btn -> {
|
|
||||||
});
|
|
||||||
|
|
||||||
permissions[4] = addCheckBox(permissions[3].x, permissions[3].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.4"), false, btn -> {
|
|
||||||
});
|
|
||||||
|
|
||||||
permissions[5] = addCheckBox(permissions[4].x, permissions[4].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.5"), false, btn -> {
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -51,22 +47,10 @@ public class GuiSecurityManager extends BaseScreen<SecurityManagerContainer> {
|
|||||||
ItemStack card = securityManager.getNode().getEditCard().getStackInSlot(0);
|
ItemStack card = securityManager.getNode().getEditCard().getStackInSlot(0);
|
||||||
|
|
||||||
for (Permission permission : Permission.values()) {
|
for (Permission permission : Permission.values()) {
|
||||||
// TODO permissions[permission.getId()].setIsChecked(!card.isEmpty() && ItemSecurityCard.hasPermission(card, permission));
|
permissions[permission.getId()].setIsChecked(!card.isEmpty() && SecurityCardItem.hasPermission(card, permission));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO
|
|
||||||
@Override
|
|
||||||
protected void actionPerformed(GuiButton button) throws IOException {
|
|
||||||
super.actionPerformed(button);
|
|
||||||
|
|
||||||
for (int i = 0; i < permissions.length; ++i) {
|
|
||||||
if (button == permissions[i]) {
|
|
||||||
RS.INSTANCE.network.sendToServer(new MessageSecurityManagerUpdate(securityManager, Permission.values()[i], permissions[i].isChecked()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderBackground(int x, int y, int mouseX, int mouseY) {
|
public void renderBackground(int x, int y, int mouseX, int mouseY) {
|
||||||
bindTexture(RS.ID, "gui/security_manager.png");
|
bindTexture(RS.ID, "gui/security_manager.png");
|
||||||
@@ -76,15 +60,15 @@ public class GuiSecurityManager extends BaseScreen<SecurityManagerContainer> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderForeground(int mouseX, int mouseY) {
|
public void renderForeground(int mouseX, int mouseY) {
|
||||||
renderString(7, 7, I18n.format("gui.refinedstorage:security_manager"));
|
renderString(7, 7, title.getFormattedText());
|
||||||
renderString(7, 59, I18n.format("gui.refinedstorage:security_manager.configure"));
|
renderString(7, 59, I18n.format("gui.refinedstorage.security_manager.configure"));
|
||||||
renderString(7, 140, I18n.format("container.inventory"));
|
renderString(7, 140, I18n.format("container.inventory"));
|
||||||
|
|
||||||
for (int i = 0; i < permissions.length; ++i) {
|
for (int i = 0; i < permissions.length; ++i) {
|
||||||
GuiCheckBox permission = permissions[i];
|
GuiCheckBox permission = permissions[i];
|
||||||
|
|
||||||
if (RenderUtils.inBounds(permission.x - guiLeft, permission.y - guiTop, permission.getWidth(), permission.getHeight(), mouseX, mouseY)) {
|
if (RenderUtils.inBounds(permission.x - guiLeft, permission.y - guiTop, permission.getWidth(), permission.getHeight(), mouseX, mouseY)) {
|
||||||
renderTooltip(mouseX, mouseY, I18n.format("gui.refinedstorage:security_manager.permission." + i + ".tooltip"));
|
renderTooltip(mouseX, mouseY, I18n.format("gui.refinedstorage.security_manager.permission." + i + ".tooltip"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -0,0 +1,20 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.tile;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RSTiles;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.SecurityManagerNetworkNode;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
public class SecurityManagerTile extends NetworkNodeTile<SecurityManagerNetworkNode> {
|
||||||
|
public SecurityManagerTile() {
|
||||||
|
super(RSTiles.SECURITY_MANAGER);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nonnull
|
||||||
|
public SecurityManagerNetworkNode createNode(World world, BlockPos pos) {
|
||||||
|
return new SecurityManagerNetworkNode(world, pos);
|
||||||
|
}
|
||||||
|
}
|
@@ -1,20 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSTiles;
|
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeSecurityManager;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
public class TileSecurityManager extends NetworkNodeTile<NetworkNodeSecurityManager> {
|
|
||||||
public TileSecurityManager() {
|
|
||||||
super(RSTiles.SECURITY_MANAGER);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nonnull
|
|
||||||
public NetworkNodeSecurityManager createNode(World world, BlockPos pos) {
|
|
||||||
return new NetworkNodeSecurityManager(world, pos);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,54 +1,36 @@
|
|||||||
{
|
{
|
||||||
"forge_marker": 1,
|
|
||||||
"defaults": {
|
|
||||||
"model": "refinedstorage:security_manager",
|
|
||||||
"textures": {
|
|
||||||
"particle": "refinedstorage:blocks/security_manager/front",
|
|
||||||
"down": "refinedstorage:blocks/security_manager/bottom",
|
|
||||||
"up": "refinedstorage:blocks/security_manager/top",
|
|
||||||
"north": "refinedstorage:blocks/security_manager/front",
|
|
||||||
"east": "refinedstorage:blocks/security_manager/left",
|
|
||||||
"south": "refinedstorage:blocks/security_manager/back",
|
|
||||||
"west": "refinedstorage:blocks/security_manager/right",
|
|
||||||
"cutout_up": "refinedstorage:blocks/security_manager/cutouts/top_disconnected",
|
|
||||||
"cutout_north": "refinedstorage:blocks/security_manager/cutouts/front_disconnected",
|
|
||||||
"cutout_east": "refinedstorage:blocks/security_manager/cutouts/left_disconnected",
|
|
||||||
"cutout_south": "refinedstorage:blocks/security_manager/cutouts/back_disconnected",
|
|
||||||
"cutout_west": "refinedstorage:blocks/security_manager/cutouts/right_disconnected"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"variants": {
|
"variants": {
|
||||||
"inventory": [
|
"connected=true,direction=north": {
|
||||||
{
|
"model": "refinedstorage:block/security_manager_connected",
|
||||||
"transform": "forge:default-block"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"connected": {
|
|
||||||
"true": {
|
|
||||||
"textures": {
|
|
||||||
"cutout_up": "refinedstorage:blocks/security_manager/cutouts/top_connected",
|
|
||||||
"cutout_north": "refinedstorage:blocks/security_manager/cutouts/front_connected",
|
|
||||||
"cutout_east": "refinedstorage:blocks/security_manager/cutouts/left_connected",
|
|
||||||
"cutout_south": "refinedstorage:blocks/security_manager/cutouts/back_connected",
|
|
||||||
"cutout_west": "refinedstorage:blocks/security_manager/cutouts/right_connected"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"direction": {
|
|
||||||
"north": {
|
|
||||||
"y": 0
|
"y": 0
|
||||||
},
|
},
|
||||||
"east": {
|
"connected=true,direction=east": {
|
||||||
|
"model": "refinedstorage:block/security_manager_connected",
|
||||||
"y": 90
|
"y": 90
|
||||||
},
|
},
|
||||||
"south": {
|
"connected=true,direction=south": {
|
||||||
|
"model": "refinedstorage:block/security_manager_connected",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"west": {
|
"connected=true,direction=west": {
|
||||||
|
"model": "refinedstorage:block/security_manager_connected",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"connected=false,direction=north": {
|
||||||
|
"model": "refinedstorage:block/security_manager_disconnected",
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"connected=false,direction=east": {
|
||||||
|
"model": "refinedstorage:block/security_manager_disconnected",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"connected=false,direction=south": {
|
||||||
|
"model": "refinedstorage:block/security_manager_disconnected",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"connected=false,direction=west": {
|
||||||
|
"model": "refinedstorage:block/security_manager_disconnected",
|
||||||
"y": 270
|
"y": 270
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
@@ -65,16 +65,16 @@
|
|||||||
"gui.refinedstorage:crafting_preview.error.recursive.4": "Offending pattern:",
|
"gui.refinedstorage:crafting_preview.error.recursive.4": "Offending pattern:",
|
||||||
"gui.refinedstorage:crafting_preview.error.too_complex.0": "The crafting task calculation was too complex",
|
"gui.refinedstorage:crafting_preview.error.too_complex.0": "The crafting task calculation was too complex",
|
||||||
"gui.refinedstorage:crafting_preview.error.too_complex.1": "and was stopped to avoid server strain.",
|
"gui.refinedstorage:crafting_preview.error.too_complex.1": "and was stopped to avoid server strain.",
|
||||||
"gui.refinedstorage:security_manager": "Security Manager",
|
"gui.refinedstorage.security_manager": "Security Manager",
|
||||||
"gui.refinedstorage:security_manager.configure": "Configure",
|
"gui.refinedstorage.security_manager.configure": "Configure",
|
||||||
"gui.refinedstorage.security_manager.permission.0": "Insert",
|
"gui.refinedstorage.security_manager.permission.0": "Insert",
|
||||||
"gui.refinedstorage.security_manager.permission.0.tooltip": "Inserting items to the network",
|
"gui.refinedstorage.security_manager.permission.0.tooltip": "Inserting items or fluids to the network",
|
||||||
"gui.refinedstorage.security_manager.permission.1": "Extract",
|
"gui.refinedstorage.security_manager.permission.1": "Extract",
|
||||||
"gui.refinedstorage.security_manager.permission.1.tooltip": "Extracting items from the network",
|
"gui.refinedstorage.security_manager.permission.1.tooltip": "Extracting items or fluids from the network",
|
||||||
"gui.refinedstorage.security_manager.permission.2": "Autocrafting",
|
"gui.refinedstorage.security_manager.permission.2": "Autocrafting",
|
||||||
"gui.refinedstorage.security_manager.permission.2.tooltip": "Starting, cancelling and viewing crafting tasks",
|
"gui.refinedstorage.security_manager.permission.2.tooltip": "Starting, cancelling and viewing crafting tasks",
|
||||||
"gui.refinedstorage.security_manager.permission.3": "Modify",
|
"gui.refinedstorage.security_manager.permission.3": "Modify",
|
||||||
"gui.refinedstorage.security_manager.permission.3.tooltip": "Opening block GUIs",
|
"gui.refinedstorage.security_manager.permission.3.tooltip": "Opening blocks",
|
||||||
"gui.refinedstorage.security_manager.permission.4": "Build",
|
"gui.refinedstorage.security_manager.permission.4": "Build",
|
||||||
"gui.refinedstorage.security_manager.permission.4.tooltip": "Adding or removing devices to or from the network",
|
"gui.refinedstorage.security_manager.permission.4.tooltip": "Adding or removing devices to or from the network",
|
||||||
"gui.refinedstorage.security_manager.permission.5": "Security",
|
"gui.refinedstorage.security_manager.permission.5": "Security",
|
||||||
@@ -208,7 +208,7 @@
|
|||||||
"block.refinedstorage.1024k_fluid_storage_block": "1024k Fluid Storage Block",
|
"block.refinedstorage.1024k_fluid_storage_block": "1024k Fluid Storage Block",
|
||||||
"block.refinedstorage.4096k_fluid_storage_block": "4096k Fluid Storage Block",
|
"block.refinedstorage.4096k_fluid_storage_block": "4096k Fluid Storage Block",
|
||||||
"block.refinedstorage.creative_fluid_storage_block": "Creative Fluid Storage Block",
|
"block.refinedstorage.creative_fluid_storage_block": "Creative Fluid Storage Block",
|
||||||
"block.refinedstorage:security_manager": "Security Manager",
|
"block.refinedstorage.security_manager": "Security Manager",
|
||||||
"block.refinedstorage.quartz_enriched_iron_block": "Block of Quartz Enriched Iron",
|
"block.refinedstorage.quartz_enriched_iron_block": "Block of Quartz Enriched Iron",
|
||||||
"block.refinedstorage:storage_monitor": "Storage Monitor",
|
"block.refinedstorage:storage_monitor": "Storage Monitor",
|
||||||
"block.refinedstorage:portable_grid.0": "Portable Grid",
|
"block.refinedstorage:portable_grid.0": "Portable Grid",
|
||||||
|
@@ -1,5 +1,14 @@
|
|||||||
{
|
{
|
||||||
"parent": "block/cube",
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"particle": "refinedstorage:block/security_manager/front",
|
||||||
|
"down": "refinedstorage:block/security_manager/bottom",
|
||||||
|
"up": "refinedstorage:block/security_manager/top",
|
||||||
|
"north": "refinedstorage:block/security_manager/front",
|
||||||
|
"east": "refinedstorage:block/security_manager/left",
|
||||||
|
"south": "refinedstorage:block/security_manager/back",
|
||||||
|
"west": "refinedstorage:block/security_manager/right"
|
||||||
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"from": [
|
"from": [
|
||||||
|
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/security_manager",
|
||||||
|
"textures": {
|
||||||
|
"cutout_up": "refinedstorage:block/security_manager/cutouts/top_connected",
|
||||||
|
"cutout_north": "refinedstorage:block/security_manager/cutouts/front_connected",
|
||||||
|
"cutout_east": "refinedstorage:block/security_manager/cutouts/left_connected",
|
||||||
|
"cutout_south": "refinedstorage:block/security_manager/cutouts/back_connected",
|
||||||
|
"cutout_west": "refinedstorage:block/security_manager/cutouts/right_connected"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/security_manager",
|
||||||
|
"textures": {
|
||||||
|
"cutout_up": "refinedstorage:block/security_manager/cutouts/top_disconnected",
|
||||||
|
"cutout_north": "refinedstorage:block/security_manager/cutouts/front_disconnected",
|
||||||
|
"cutout_east": "refinedstorage:block/security_manager/cutouts/left_disconnected",
|
||||||
|
"cutout_south": "refinedstorage:block/security_manager/cutouts/back_disconnected",
|
||||||
|
"cutout_west": "refinedstorage:block/security_manager/cutouts/right_disconnected"
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/security_manager_disconnected"
|
||||||
|
}
|
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "refinedstorage:security_manager"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"condition": "minecraft:survives_explosion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@@ -10,8 +10,7 @@
|
|||||||
"item": "refinedstorage:quartz_enriched_iron"
|
"item": "refinedstorage:quartz_enriched_iron"
|
||||||
},
|
},
|
||||||
"C": {
|
"C": {
|
||||||
"type": "forge:ore_dict",
|
"tag": "forge:chests"
|
||||||
"ore": "chest"
|
|
||||||
},
|
},
|
||||||
"S": {
|
"S": {
|
||||||
"item": "refinedstorage:security_card"
|
"item": "refinedstorage:security_card"
|
Reference in New Issue
Block a user