From 251157e287dd3ef8671b635414b4fb4ab6a18429 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 27 May 2016 21:18:21 +0200 Subject: [PATCH] Fix controller not spreading load --- .../refinedstorage/proxy/ClientProxy.java | 15 ++--- .../java/refinedstorage/tile/TileBase.java | 2 +- .../java/refinedstorage/tile/TileMachine.java | 4 ++ .../tile/controller/TileController.java | 6 -- .../blockstates/creative_controller.json | 65 +++++++++++++++++++ 5 files changed, 77 insertions(+), 15 deletions(-) create mode 100755 src/main/resources/assets/refinedstorage/blockstates/creative_controller.json diff --git a/src/main/java/refinedstorage/proxy/ClientProxy.java b/src/main/java/refinedstorage/proxy/ClientProxy.java index 935eae1e2..1e7b690a3 100755 --- a/src/main/java/refinedstorage/proxy/ClientProxy.java +++ b/src/main/java/refinedstorage/proxy/ClientProxy.java @@ -98,6 +98,12 @@ public class ClientProxy extends CommonProxy { ModelLoader.setCustomModelResourceLocation(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_CRAFTING, new ModelResourceLocation("refinedstorage:crafting_upgrade", "inventory")); // Blocks + ModelLoader.setCustomStateMapper(RefinedStorageBlocks.STORAGE, (new StateMap.Builder()) + .ignore(RefinedStorageBlocks.STORAGE.DIRECTION) + .ignore(RefinedStorageBlocks.STORAGE.CONNECTED) + .build() + ); + ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.CABLE), 0, new ModelResourceLocation("refinedstorage:cable", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.GRID), EnumGridType.NORMAL.getId(), new ModelResourceLocation("refinedstorage:grid", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.GRID), EnumGridType.CRAFTING.getId(), new ModelResourceLocation("refinedstorage:grid", "inventory")); @@ -108,7 +114,7 @@ public class ClientProxy extends CommonProxy { ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.EXTERNAL_STORAGE), 0, new ModelResourceLocation("refinedstorage:external_storage", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.DISK_DRIVE), 0, new ModelResourceLocation("refinedstorage:disk_drive", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.CONTROLLER), EnumControllerType.NORMAL.getId(), new ModelResourceLocation("refinedstorage:controller", "inventory")); - ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.CONTROLLER), EnumControllerType.CREATIVE.getId(), new ModelResourceLocation("refinedstorage:controller", "inventory")); + ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.CONTROLLER), EnumControllerType.CREATIVE.getId(), new ModelResourceLocation("refinedstorage:creative_controller", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.CONSTRUCTOR), 0, new ModelResourceLocation("refinedstorage:constructor", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.DESTRUCTOR), 0, new ModelResourceLocation("refinedstorage:destructor", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.SOLDERER), 0, new ModelResourceLocation("refinedstorage:solderer", "inventory")); @@ -119,13 +125,6 @@ public class ClientProxy extends CommonProxy { ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.CRAFTING_MONITOR), 0, new ModelResourceLocation("refinedstorage:crafting_monitor", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.CRAFTER), 0, new ModelResourceLocation("refinedstorage:crafter", "inventory")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.PROCESSING_PATTERN_ENCODER), 0, new ModelResourceLocation("refinedstorage:processing_pattern_encoder", "inventory")); - - ModelLoader.setCustomStateMapper(RefinedStorageBlocks.STORAGE, (new StateMap.Builder()) - .ignore(RefinedStorageBlocks.STORAGE.DIRECTION) - .ignore(RefinedStorageBlocks.STORAGE.CONNECTED) - .build() - ); - ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.STORAGE), EnumStorageType.TYPE_1K.getId(), new ModelResourceLocation("refinedstorage:storage", "type=1k")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.STORAGE), EnumStorageType.TYPE_4K.getId(), new ModelResourceLocation("refinedstorage:storage", "type=4k")); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(RefinedStorageBlocks.STORAGE), EnumStorageType.TYPE_16K.getId(), new ModelResourceLocation("refinedstorage:storage", "type=16k")); diff --git a/src/main/java/refinedstorage/tile/TileBase.java b/src/main/java/refinedstorage/tile/TileBase.java index 215f20cb6..212066cd5 100755 --- a/src/main/java/refinedstorage/tile/TileBase.java +++ b/src/main/java/refinedstorage/tile/TileBase.java @@ -32,7 +32,7 @@ public abstract class TileBase extends TileEntity implements ITickable { if (!worldObj.isRemote) { if (this instanceof ISynchronizedContainer) { for (EntityPlayer player : worldObj.playerEntities) { - if (((ISynchronizedContainer) this).getContainer() == player.openContainer.getClass()) { + if (((ISynchronizedContainer) this).getContainer() == player.openContainer.getClass() && ticks % 4 == 0) { RefinedStorage.NETWORK.sendTo(new MessageTileContainerUpdate(this), (EntityPlayerMP) player); } } diff --git a/src/main/java/refinedstorage/tile/TileMachine.java b/src/main/java/refinedstorage/tile/TileMachine.java index 4a45d8f1f..1aa04925e 100755 --- a/src/main/java/refinedstorage/tile/TileMachine.java +++ b/src/main/java/refinedstorage/tile/TileMachine.java @@ -62,6 +62,10 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta RefinedStorageUtils.updateBlock(worldObj, pos); } + + if (isActive()) { + updateMachine(); + } } } diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index cd1096aeb..e8c911557 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -104,12 +104,6 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr syncMachines(); } - for (TileMachine machine : machines) { - if (machine.mayUpdate()) { - machine.updateMachine(); - } - } - for (ICraftingTask taskToCancel : craftingTasksToCancel) { taskToCancel.onCancelled(this); } diff --git a/src/main/resources/assets/refinedstorage/blockstates/creative_controller.json b/src/main/resources/assets/refinedstorage/blockstates/creative_controller.json new file mode 100755 index 000000000..f2b5ef5a5 --- /dev/null +++ b/src/main/resources/assets/refinedstorage/blockstates/creative_controller.json @@ -0,0 +1,65 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "orientable", + "textures": { + "side": "refinedstorage:blocks/side", + "top": "refinedstorage:blocks/side", + "front": "refinedstorage:blocks/controller_8" + } + }, + "variants": { + "inventory": [ + { + "y": 0, + "transform": "forge:default-block" + } + ], + "energy": { + "0": { + }, + "1": { + }, + "2": { + }, + "3": { + }, + "4": { + }, + "5": { + }, + "6": { + }, + "7": { + }, + "8": { + } + }, + "type": { + "normal": { + }, + "creative": { + } + }, + "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