From 600c62c48b6864099829aeefcec61d89b9c10416 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 18 Dec 2016 00:23:39 +0100 Subject: [PATCH] Add models for security manager / security card --- .../refinedstorage/block/BlockBase.java | 20 +++++++++ .../block/BlockSecurityManager.java | 5 +++ .../refinedstorage/proxy/ProxyClient.java | 2 + .../tile/TileSecurityManager.java | 5 +++ .../blockstates/machine_casing.json | 2 +- .../blockstates/security_manager.json | 42 ++++++++++++++++++ .../models/item/security_card.json | 6 +++ .../blocks/{casing.png => machine_casing.png} | Bin .../textures/items/security_card.png | Bin 0 -> 231 bytes 9 files changed, 81 insertions(+), 1 deletion(-) create mode 100755 src/main/resources/assets/refinedstorage/blockstates/security_manager.json create mode 100755 src/main/resources/assets/refinedstorage/models/item/security_card.json rename src/main/resources/assets/refinedstorage/textures/blocks/{casing.png => machine_casing.png} (100%) create mode 100755 src/main/resources/assets/refinedstorage/textures/items/security_card.png diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java index 69715346a..dcddaf52d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockBase.java @@ -12,6 +12,7 @@ import net.minecraft.block.material.Material; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.InventoryHelper; import net.minecraft.item.Item; @@ -158,6 +159,25 @@ public abstract class BlockBase extends Block { return true; } + @Override + public boolean canEntityDestroy(IBlockState state, IBlockAccess world, BlockPos pos, Entity entity) { + TileEntity tile = world.getTileEntity(pos); + + if (tile != null && tile.hasCapability(CapabilityNetworkNode.NETWORK_NODE_CAPABILITY, null)) { + INetworkNode node = tile.getCapability(CapabilityNetworkNode.NETWORK_NODE_CAPABILITY, null); + + if (node.getNetwork() != null) { + if (!(entity instanceof EntityPlayer)) { + return false; + } + + return node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, (EntityPlayer) entity); + } + } + + return super.canEntityDestroy(state, world, pos, entity); + } + public EnumPlacementType getPlacementType() { return EnumPlacementType.HORIZONTAL; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSecurityManager.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSecurityManager.java index 4481734d1..1cfc498b1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSecurityManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockSecurityManager.java @@ -45,4 +45,9 @@ public class BlockSecurityManager extends BlockNode { return true; } + + @Override + public boolean hasConnectivityState() { + return true; + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java index 0a54a3551..347dc778a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java @@ -153,6 +153,7 @@ public class ProxyClient extends ProxyCommon { ModelLoader.setCustomModelResourceLocation(RSItems.GRID_FILTER, 0, new ModelResourceLocation("refinedstorage:grid_filter", "inventory")); ModelLoader.setCustomModelResourceLocation(RSItems.NETWORK_CARD, 0, new ModelResourceLocation("refinedstorage:network_card", "inventory")); ModelLoader.setCustomModelResourceLocation(RSItems.WRENCH, 0, new ModelResourceLocation("refinedstorage:wrench", "inventory")); + ModelLoader.setCustomModelResourceLocation(RSItems.SECURITY_CARD, 0, new ModelResourceLocation("refinedstorage:security_card", "inventory")); ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, 0, new ModelResourceLocation("refinedstorage:upgrade", "inventory")); ModelLoader.setCustomModelResourceLocation(RSItems.UPGRADE, ItemUpgrade.TYPE_RANGE, new ModelResourceLocation("refinedstorage:range_upgrade", "inventory")); @@ -204,6 +205,7 @@ public class ProxyClient extends ProxyCommon { ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RSBlocks.FLUID_STORAGE), EnumFluidStorageType.TYPE_512K.getId(), new ModelResourceLocation("refinedstorage:fluid_storage", "type=512k")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RSBlocks.FLUID_STORAGE), EnumFluidStorageType.TYPE_CREATIVE.getId(), new ModelResourceLocation("refinedstorage:fluid_storage", "type=creative")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RSBlocks.DISK_MANIPULATOR), 0, new ModelResourceLocation("refinedstorage:disk_manipulator", "inventory")); + ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RSBlocks.SECURITY_MANAGER), 0, new ModelResourceLocation("refinedstorage:security_manager", "inventory")); ModelLoaderRegistry.registerLoader(new ICustomModelLoader() { @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSecurityManager.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSecurityManager.java index 4cd757440..15e237ba3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSecurityManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSecurityManager.java @@ -163,4 +163,9 @@ public class TileSecurityManager extends TileNode implements ISecurityCardContai public IItemHandler getDrops() { return new CombinedInvWrapper(cards, editCard); } + + @Override + public boolean hasConnectivityState() { + return true; + } } diff --git a/src/main/resources/assets/refinedstorage/blockstates/machine_casing.json b/src/main/resources/assets/refinedstorage/blockstates/machine_casing.json index 0526b619f..88f2eceb7 100755 --- a/src/main/resources/assets/refinedstorage/blockstates/machine_casing.json +++ b/src/main/resources/assets/refinedstorage/blockstates/machine_casing.json @@ -3,7 +3,7 @@ "defaults": { "model": "cube_all", "textures": { - "all": "refinedstorage:blocks/casing" + "all": "refinedstorage:blocks/machine_casing" } }, "variants": { diff --git a/src/main/resources/assets/refinedstorage/blockstates/security_manager.json b/src/main/resources/assets/refinedstorage/blockstates/security_manager.json new file mode 100755 index 000000000..6f83a86df --- /dev/null +++ b/src/main/resources/assets/refinedstorage/blockstates/security_manager.json @@ -0,0 +1,42 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "cube_all", + "textures": { + "all": "refinedstorage:blocks/machine_casing" + } + }, + "variants": { + "inventory": [ + { + "transform": "forge:default-block" + } + ], + "connected": { + "true": { + }, + "false": { + } + }, + "direction": { + "north": { + "y": 0 + }, + "east": { + "y": 90 + }, + "south": { + "y": 180 + }, + "west": { + "y": 270 + }, + "up": { + "x": 270 + }, + "down": { + "x": 90 + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/models/item/security_card.json b/src/main/resources/assets/refinedstorage/models/item/security_card.json new file mode 100755 index 000000000..6cc78ce4a --- /dev/null +++ b/src/main/resources/assets/refinedstorage/models/item/security_card.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "refinedstorage:items/security_card" + } +} diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/casing.png b/src/main/resources/assets/refinedstorage/textures/blocks/machine_casing.png similarity index 100% rename from src/main/resources/assets/refinedstorage/textures/blocks/casing.png rename to src/main/resources/assets/refinedstorage/textures/blocks/machine_casing.png diff --git a/src/main/resources/assets/refinedstorage/textures/items/security_card.png b/src/main/resources/assets/refinedstorage/textures/items/security_card.png new file mode 100755 index 0000000000000000000000000000000000000000..7e6a6297a371aa34dc991f4ebbc36a82e13dfae5 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwqdBmh3k`Md6+ii__Zu1bp?Q@=DdS{6jPIX38Z`y6(Ez%?iAl?|JV)qD2o Vt(M$t@_|+`c)I$ztaD0e0sw&_O3DBL literal 0 HcmV?d00001