From 9bd333d74fc5f13a2fc3b7f7e0d7f0bf10fa7ce9 Mon Sep 17 00:00:00 2001 From: Flotschispielt Date: Fri, 13 Feb 2026 22:17:46 +0100 Subject: [PATCH] Fixed EnergyStorage Bug and implemented it with directional energy extraction --- .../KaiFlo/SolarCell/Enums/BlockRotation.java | 19 ++ .../KaiFlo/SolarCell/Helpers/BlockHelper.java | 83 ++++++- .../BatteryStorageTicking.java | 49 ++-- .../EnergyStorages/EnergyStorage1.bbmodel | 2 +- .../EnergyStorages/EnergyStorage1.blockymodel | 104 +++++++++ .../Server/Item/Items/EnergyOven.json | 217 ++++++++++++++++++ .../Server/Item/Items/EnergyStorage.json | 2 +- .../Server/Item/Items/SolarCell.json | 2 +- 8 files changed, 436 insertions(+), 42 deletions(-) create mode 100644 src/main/java/org/KaiFlo/SolarCell/Enums/BlockRotation.java create mode 100644 src/main/resources/Server/Item/Items/EnergyOven.json diff --git a/src/main/java/org/KaiFlo/SolarCell/Enums/BlockRotation.java b/src/main/java/org/KaiFlo/SolarCell/Enums/BlockRotation.java new file mode 100644 index 0000000..7097cad --- /dev/null +++ b/src/main/java/org/KaiFlo/SolarCell/Enums/BlockRotation.java @@ -0,0 +1,19 @@ +package org.KaiFlo.SolarCell.Enums; + +public enum BlockRotation { + NORTH, + EAST, + SOUTH, + WEST; + public static BlockRotation getEnum(int rotationIndex) { + return switch ( rotationIndex ) + { + case 0 -> NORTH; + case 1 -> WEST; + case 2 -> SOUTH; + case 3 -> EAST; + default -> NORTH; + }; + + } +} diff --git a/src/main/java/org/KaiFlo/SolarCell/Helpers/BlockHelper.java b/src/main/java/org/KaiFlo/SolarCell/Helpers/BlockHelper.java index 246b43f..c118636 100644 --- a/src/main/java/org/KaiFlo/SolarCell/Helpers/BlockHelper.java +++ b/src/main/java/org/KaiFlo/SolarCell/Helpers/BlockHelper.java @@ -9,6 +9,7 @@ import com.hypixel.hytale.server.core.universe.world.World; import com.hypixel.hytale.server.core.universe.world.chunk.BlockComponentChunk; import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk; import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore; +import org.KaiFlo.SolarCell.Enums.BlockRotation; import org.checkerframework.checker.nullness.compatqual.NonNullDecl; import java.util.*; @@ -33,6 +34,61 @@ public class BlockHelper { } } + public static void executeForDirection( + int centerX, int centerY, int centerZ, + World world, + CommandBuffer commandBuffer, + BlockRotation direction, + ChunkSafeCallback chunkSafeCallback){ + Map> positionsByChunk = new HashMap<>(); + addBlockInDirectionToPositions(centerX, centerY, centerZ, direction, positionsByChunk); + addBlockDownwardToPositions(centerX, centerY, centerZ, positionsByChunk); + + executeChunkSafeCallbackForPositions(world, commandBuffer, chunkSafeCallback, positionsByChunk); + } + + private static void addBlockInDirectionToPositions( + int centerX, int centerY, int centerZ, BlockRotation direction, Map> positionsByChunk) { + + int xPos = centerX; + int zPos = centerZ; + + if(direction == BlockRotation.NORTH || direction == BlockRotation.SOUTH){ + zPos += direction == BlockRotation.SOUTH ? 1 : -1; + }else{ + xPos += direction == BlockRotation.EAST ? 1 : -1; + } + + int chunkX = Math.floorDiv(xPos, 32); + int chunkZ = Math.floorDiv(zPos, 32); + long chunkIndex = ChunkUtil.indexChunk(chunkX, chunkZ); + + int localX = Math.floorMod(xPos, 32); + int localZ = Math.floorMod(zPos, 32); + + positionsByChunk + .computeIfAbsent(chunkIndex, _ -> new ArrayList<>()) + .add(new BlockPos(xPos, centerY, zPos, localX, localZ)); + } + + private static void addBlockDownwardToPositions( + int centerX, int centerY, int centerZ, Map> positionsByChunk) { + + int yPos = centerY - 1; + + int chunkX = Math.floorDiv(centerX, 32); + int chunkZ = Math.floorDiv(centerZ, 32); + long chunkIndex = ChunkUtil.indexChunk(chunkX, chunkZ); + + int localX = Math.floorMod(centerX, 32); + int localZ = Math.floorMod(centerZ, 32); + + positionsByChunk + .computeIfAbsent(chunkIndex, _ -> new ArrayList<>()) + .add(new BlockPos(centerX, yPos, centerZ, localX, localZ)); + } + + public static void executeForCubeAroundChunkSafe( int centerX, int centerY, int centerZ, int size, @@ -69,40 +125,43 @@ public class BlockHelper { } } } + executeChunkSafeCallbackForPositions(world, commandBuffer, chunkSafeCallback, positionsByChunk); + } + + private static void executeChunkSafeCallbackForPositions(World world, CommandBuffer commandBuffer, ChunkSafeCallback chunkSafeCallback, Map> positionsByChunk) { world.execute(() -> { for (var entry : positionsByChunk.entrySet()) { - long chunkIndex = entry.getKey(); + long chunkIndexCI = entry.getKey(); List blockPositions = entry.getValue(); - WorldChunk chunk = world.getChunkIfLoaded(chunkIndex); - if (chunk == null) continue; + WorldChunk worldChunk = world.getChunkIfLoaded(chunkIndexCI); + if (worldChunk == null) continue; var blockComponentChunk = commandBuffer.getComponent( - chunk.getReference(), - BlockComponentChunk.getComponentType() + worldChunk.getReference(), + BlockComponentChunk.getComponentType() ); if (blockComponentChunk == null) continue; for (BlockPos pos : blockPositions) { int index = ChunkUtil.indexBlockInColumn( - pos.localX(), pos.y(), pos.localZ() + pos.localX(), pos.y(), pos.localZ() ); var targetRef = blockComponentChunk.getEntityReference(index); if (targetRef == null) continue; chunkSafeCallback.accept( - pos.x(), pos.y(), pos.z(), - targetRef, - blockComponentChunk, - chunk + pos.x(), pos.y(), pos.z(), + targetRef, + blockComponentChunk, + worldChunk ); } } }); - - } + record BlockPos(int x, int y, int z, int localX, int localZ) {} public interface Callback { void accept(int x, int y, int z); diff --git a/src/main/java/org/KaiFlo/SolarCell/Systems/EnergyStorage/TickingImplementations/BatteryStorageTicking.java b/src/main/java/org/KaiFlo/SolarCell/Systems/EnergyStorage/TickingImplementations/BatteryStorageTicking.java index bcf48df..b77c93b 100644 --- a/src/main/java/org/KaiFlo/SolarCell/Systems/EnergyStorage/TickingImplementations/BatteryStorageTicking.java +++ b/src/main/java/org/KaiFlo/SolarCell/Systems/EnergyStorage/TickingImplementations/BatteryStorageTicking.java @@ -4,18 +4,20 @@ import com.hypixel.hytale.component.Archetype; import com.hypixel.hytale.component.CommandBuffer; import com.hypixel.hytale.component.Component; import com.hypixel.hytale.component.Ref; +import com.hypixel.hytale.logger.HytaleLogger; import com.hypixel.hytale.protocol.Vector3i; import com.hypixel.hytale.server.core.universe.world.World; import com.hypixel.hytale.server.core.universe.world.chunk.BlockComponentChunk; import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore; +import com.hypixel.hytale.server.core.util.NotificationUtil; import org.KaiFlo.SolarCell.Components.EnergySource.Implementations.EnergySourceComponent; import org.KaiFlo.SolarCell.Components.EnergyStorage.Implementations.EnergyStorageComponent; +import org.KaiFlo.SolarCell.Enums.BlockRotation; import org.KaiFlo.SolarCell.Systems.ITickingSystem; import java.util.List; -import static org.KaiFlo.SolarCell.Helpers.BlockHelper.HyLogger; -import static org.KaiFlo.SolarCell.Helpers.BlockHelper.executeForCubeAroundChunkSafe; +import static org.KaiFlo.SolarCell.Helpers.BlockHelper.*; import static org.KaiFlo.SolarCell.Helpers.ComponentHelper.getComponentOfType; public class BatteryStorageTicking implements ITickingSystem { @@ -26,41 +28,34 @@ public class BatteryStorageTicking implements ITickingSystem { if (energyStorage == null) return; var energySourceComponent = getComponentOfType(foundComponents, EnergySourceComponent.class).orElse(null); if (energySourceComponent != null) return; - executeForCubeAroundChunkSafe(globalPosition.x, globalPosition.y, globalPosition.z, 5, false, world, commandBuffer, - (x, y, z, targetRef, _, _) -> { - if (energyStorage.getCurrentEnergyAmount() >= energyStorage.getMaxCapacity()) { - return; - } + int blockRotationIndex = world.getBlockRotationIndex(globalPosition.x, globalPosition.y, globalPosition.z); +// HyLogger.atInfo().log("Block at " + globalPosition.x+", "+ globalPosition.y+", " +globalPosition.z+": "+blockRotationIndex); + + var rotation = BlockRotation.getEnum(blockRotationIndex); + + executeForDirection(globalPosition.x, globalPosition.y, globalPosition.z, world, commandBuffer, rotation, + (x, y, z, targetRef, _, _) -> { + if (energyStorage.getCurrentEnergyAmount() >= energyStorage.getMaxCapacity()) return; var targetEnergyStorage = commandBuffer.getComponent(targetRef, EnergyStorageComponent.getComponentType()); if (targetEnergyStorage == null) return; - if (targetEnergyStorage.getCurrentEnergyAmount() < energyStorage.getCurrentEnergyAmount()) return; + if (targetEnergyStorage.getCurrentEnergyAmount() < energyStorage.getCurrentEnergyAmount() && commandBuffer.getComponent(targetRef, EnergySourceComponent.getComponentType()) == null) return; - long diff = targetEnergyStorage.getCurrentEnergyAmount() - - energyStorage.getCurrentEnergyAmount(); - var diffWasNegative = diff < 0; - diff = Math.abs(diff); + var extractEnergy = Math.min(energyStorage.getReceiveEnergyPerTick(), targetEnergyStorage.getCurrentEnergyAmount()); - long extractTarget = Math.min( - Math.ceilDiv(diff,2), - Math.min( - targetEnergyStorage.getExtractEnergyPerTick(), - energyStorage.getReceiveEnergyPerTick() - ) - ); - if (extractTarget<=0){ - return; - } - if (diffWasNegative) { - transmitEnergy(targetEnergyStorage,energyStorage,extractTarget,new Vector3i(x,y,z), globalPosition.x, globalPosition.y, globalPosition.z); - }else { - transmitEnergy(energyStorage,targetEnergyStorage,extractTarget,globalPosition, x, y, z); - } + transmitEnergy(energyStorage,targetEnergyStorage,extractEnergy,globalPosition, x, y, z); + //Input bei Lüftungsgitter + //INPUT index 0 --> North + //INPUT index 1 --> West + //INPUT index 2 --> South + //INPUT index 3 --> East } ); } + + private static void transmitEnergy( EnergyStorageComponent energyStorage, EnergyStorageComponent targetEnergyStorage,long extractTarget, Vector3i globalPosition, int x, int y, int z) { long energy = 1; if (extractTarget > 1 && !(energyStorage.getCurrentEnergyAmount()+1>=energyStorage.getMaxCapacity())) { diff --git a/src/main/resources/Common/Items/EnergyStorages/EnergyStorage1.bbmodel b/src/main/resources/Common/Items/EnergyStorages/EnergyStorage1.bbmodel index a58e6ef..1e6e7cc 100644 --- a/src/main/resources/Common/Items/EnergyStorages/EnergyStorage1.bbmodel +++ b/src/main/resources/Common/Items/EnergyStorages/EnergyStorage1.bbmodel @@ -1 +1 @@ -{"meta":{"format_version":"5.0","model_format":"hytale_prop","box_uv":false},"name":"EnergyStorage1","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":128,"height":128},"elements":[{"name":"cube","box_uv":false,"render_order":"default","locked":false,"allow_mirror_modeling":true,"shading_mode":"flat","double_sided":false,"from":[-16,0,-16],"to":[16,8,16],"autouv":1,"color":8,"origin":[0,0,0],"faces":{"north":{"uv":[78,58,110,66],"texture":0},"east":{"uv":[78,66,110,74],"texture":0},"south":{"uv":[78,74,110,82],"texture":0},"west":{"uv":[26,80,58,88],"texture":0},"up":{"uv":[32,32,0,0],"texture":0},"down":{"uv":[32,32,0,64],"texture":0}},"type":"cube","uuid":"203ca8e8-12cb-9d5a-8c2a-b1895f57f751"},{"name":"cube","box_uv":false,"render_order":"default","locked":false,"allow_mirror_modeling":true,"shading_mode":"flat","double_sided":false,"from":[-13,8,-13],"to":[13,24,13],"autouv":1,"color":8,"origin":[0,8,0],"faces":{"north":{"uv":[26,64,52,80],"texture":0},"east":{"uv":[64,26,90,42],"texture":0},"south":{"uv":[64,42,90,58],"texture":0},"west":{"uv":[52,64,78,80],"texture":0},"up":{"uv":[26,90,0,64],"texture":0},"down":{"uv":[90,0,64,26],"texture":0}},"type":"cube","uuid":"7784ec6c-5c2e-b3c3-fe27-991e40ea8073"},{"name":"cube","box_uv":false,"render_order":"default","locked":false,"allow_mirror_modeling":true,"shading_mode":"flat","double_sided":false,"from":[-16,24,-16],"to":[16,32,16],"autouv":1,"color":8,"origin":[0,24,0],"faces":{"north":{"uv":[58,82,90,90],"texture":0},"east":{"uv":[26,88,58,96],"texture":0},"south":{"uv":[90,0,122,8],"texture":0},"west":{"uv":[90,8,122,16],"texture":0},"up":{"uv":[64,32,32,0],"texture":0},"down":{"uv":[64,32,32,64],"texture":0}},"type":"cube","uuid":"71766419-7dc3-10e1-27b8-c21f838d8db5"}],"groups":[],"outliner":["203ca8e8-12cb-9d5a-8c2a-b1895f57f751","71766419-7dc3-10e1-27b8-c21f838d8db5","7784ec6c-5c2e-b3c3-fe27-991e40ea8073"],"textures":[{"name":"texture.png","relative_path":"texture.png","folder":"block","namespace":"","id":"0","group":"","width":256,"height":256,"uv_width":256,"uv_height":256,"particle":false,"use_as_default":true,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"f0d64cd8-8610-a9ac-4a34-a9fe1f6e4632","source":"data:image/png;base64,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"}]} \ No newline at end of file +{"meta":{"format_version":"5.0","model_format":"hytale_prop","box_uv":false},"name":"EnergyStorage1","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":128,"height":128},"elements":[{"name":"cube","box_uv":false,"render_order":"default","locked":false,"allow_mirror_modeling":true,"shading_mode":"flat","double_sided":false,"from":[-16,0,-16],"to":[16,8,16],"autouv":1,"color":8,"origin":[0,0,0],"faces":{"north":{"uv":[78,58,110,66],"texture":0},"east":{"uv":[78,66,110,74],"texture":0},"south":{"uv":[78,74,110,82],"texture":0},"west":{"uv":[26,80,58,88],"texture":0},"up":{"uv":[32,32,0,0],"texture":0},"down":{"uv":[32,32,0,64],"texture":0}},"type":"cube","uuid":"203ca8e8-12cb-9d5a-8c2a-b1895f57f751"},{"name":"cube","box_uv":false,"render_order":"default","locked":false,"allow_mirror_modeling":true,"shading_mode":"flat","double_sided":false,"from":[-13,8,-13],"to":[13,24,13],"autouv":1,"color":8,"origin":[0,8,0],"faces":{"north":{"uv":[26,64,52,80],"texture":0},"east":{"uv":[64,26,90,42],"texture":0},"south":{"uv":[64,42,90,58],"texture":0},"west":{"uv":[52,64,78,80],"texture":0},"up":{"uv":[26,90,0,64],"texture":0},"down":{"uv":[90,0,64,26],"texture":0}},"type":"cube","uuid":"7784ec6c-5c2e-b3c3-fe27-991e40ea8073"},{"name":"cube","box_uv":false,"render_order":"default","locked":false,"allow_mirror_modeling":true,"shading_mode":"flat","double_sided":false,"from":[-16,24,-16],"to":[16,32,16],"autouv":1,"color":8,"origin":[0,24,0],"faces":{"north":{"uv":[58,82,90,90],"texture":0},"east":{"uv":[26,88,58,96],"texture":0},"south":{"uv":[90,0,122,8],"texture":0},"west":{"uv":[90,8,122,16],"texture":0},"up":{"uv":[64,32,32,0],"texture":0},"down":{"uv":[64,32,32,64],"texture":0}},"type":"cube","uuid":"71766419-7dc3-10e1-27b8-c21f838d8db5"},{"name":"cube","box_uv":false,"render_order":"default","locked":false,"allow_mirror_modeling":true,"shading_mode":"flat","double_sided":false,"from":[-5,11,-15],"to":[5,21,-13],"autouv":1,"color":1,"origin":[2,11,-14],"faces":{"north":{"uv":[3,1,13,11],"texture":0},"east":{"uv":[0,1,2,11],"texture":0},"south":{"uv":[0,1,10,11],"texture":0},"west":{"uv":[0,1,2,11],"texture":0},"up":{"uv":[0,0,10,2],"texture":0},"down":{"uv":[0,0,10,2],"texture":0}},"type":"cube","uuid":"68ec74b7-a936-cd50-73ed-6ce8dea0e99b"},{"name":"cube","box_uv":false,"render_order":"default","locked":false,"allow_mirror_modeling":true,"shading_mode":"flat","double_sided":false,"from":[-3,13,-16],"to":[3,19,-14],"autouv":1,"color":3,"origin":[0,15,-15],"faces":{"north":{"uv":[0,0,6,6],"texture":0},"east":{"uv":[0,0,2,6],"texture":0},"south":{"uv":[1,0,7,6],"texture":0},"west":{"uv":[0,0,2,6],"texture":0},"up":{"uv":[1,0,7,2],"texture":0},"down":{"uv":[1,0,7,2],"texture":0}},"type":"cube","uuid":"c6bada12-2526-60a3-4444-d772d6dd05d8"}],"groups":[],"outliner":["203ca8e8-12cb-9d5a-8c2a-b1895f57f751","71766419-7dc3-10e1-27b8-c21f838d8db5","7784ec6c-5c2e-b3c3-fe27-991e40ea8073","68ec74b7-a936-cd50-73ed-6ce8dea0e99b","c6bada12-2526-60a3-4444-d772d6dd05d8"],"textures":[{"name":"texture.png","relative_path":"texture.png","folder":"block","namespace":"","id":"0","group":"","width":256,"height":256,"uv_width":256,"uv_height":256,"particle":false,"use_as_default":true,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"f0d64cd8-8610-a9ac-4a34-a9fe1f6e4632","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAMkUlEQVR4AezdTa7k1BmA4QrKBIkZElLG7KHnySwRWUBvIIvKBpCSIVGGyUoyjhQpMyQmSE2d5hqMcbns8vn196Drtss+/n7e7/q9pmk1n/zxq/cfWm7v3r37MN9K1zLPlY5L55vip1zzbTpfaj/PlY5L5RG37fNzlv8ntw7++fyLL2/TVrqcKU/al861jJ9yTtvyWu7PU560zx1bvOsQ6EIA18GpEwTGIkAAY81LtQhkI5ACNRdAy1fUmrlr5kqDnW8tc8/rcNwfgeYC6A+JihCIQ4AA4sxapwj8igAB/AqJEwhcn8DUIQFMJArv//+//9zmW+F0v8iV8pbOJ/6YBAig4tzSb8ZNW+m0U560L51L/HEJEMC4s1M5AqcJEMBphAIgMBaBebUEMKdR8Ljlq3jL3AWRCp2BAAFkgCgEAqMSIIBRJ6duBDIQIIAMEIVAYBQCyzoJYEnEZwQCESCAQMPWKgJLAgSwJOIzAoEIEECgYWs1NoG17glgjYpzCAQhQABBBq1NBNYIEMAaFecQCEKAAIIMWpuxCTzqngAekXEegQAEwgvgs0+/v9XaAnw/aXEwAuEF8M3f/n6rsQ32faHcIATCCyDN+cN/06/Pt73rnkeyAoF6BLYyNRdAy7+vLmductj6NnOtVwLNBdArmBx1kUIOimKUJEAAB+kefaiPrj9YjuUInCLQhQDSq/i0nepmx81TnrSflv/mdz8ePXtYp3U/rt736yv37ItsFQLPCTxb0VwA6e+rm2/PCj57fZ4rHS/jvSqBtQd97dwyn88ItCTQXAAtm5cbgegECGDxHXD2p/azN4hFOh8RaEqAAJrilxyBcgT2RCaAGaW1n/6PfqI/Oj8L5xCB7gkQwMaIPOQbcFy6BAECeDLGtbeCrVuOrt+K5RoCpQkQwAnC3hBOwHNrUQJ7gxPABqmtn+Zb1zZCuoRAVwQI4MQ4SOAEPLd2QYAAuhiDIhBoQ4AA7tz3/Lv8njX3UD99HV3/040OEDhJ4MjtBHCElrUIXIwAAVxsoNpB4AgBAnijlfOVPWest/LsEChCgAA2sM4fZL/jvwHKpW4IHC2EAO7Ejj7cczHcb1/9OhpzNYiTCBQmQABvgHM+sDljvZVnh0ARAgRQBKugCIxBgAAOzmnP6//BkJYjkIXAK0EIYIPao1f5R+c3QrmEQJcECODgWPY+/N4UDoK1vAkBAlhg9+AugPh4aQIEsGO8pLADkiVNCbyanABm5HI+6Hv/VWGW3iEC1QkQwAK5B3cBxMdLEwgvgN//+f1t2v7wl5+Pp3Np/+h8urZ3+/a73w7xjfTZp9/f0jZEsYo8TSC8AE4TvAeY/38G7x8/ftU49zFR5l+SqNKWOaxwBQmcCU0AZ+i5F4HBCRDA4ANUPgJnCBDAi/TWXvFfDHX4tpa5Dxfrhq4JEEDX41EcAtsEzl6tJoB/f/P1bfTtX3/9uYc5+M+/+HL+8eNxjXMfE/kFgRMEqgngRI3Zb831B37Sq/i0ZS9yEXDKk/aLSz4i8DKBLgSQ44Gcx5gfv0zmyY3pJ/x8e7L89OV5rnR8OqAACNwJVBfA3ofz2bpn1++9+ULg0gRyNFddADmKPhtj64/7PhLLo/Nna3E/Ai0JdCmA9LBtPaRrwLbWp3hr9xw5l+Kn7cg91iLQO4EmAlg+kCM+WC1/M65l7t6/odV3jEATATwr8awQzt7/rD7XEWhNIFf+rgSwfDNYNjm/vvchn9+zjOczAtEJVBfAswe3xAO7lvNRnrW16ZtkbX16FZ+2tKbkNuVJ+5J5xI5FoLoAtvA+evi27ql5bS6B9N/i51vpOua50nHpfOLHINBEACUe9PnDOR/dWq5Ha+f3LY/X4izX+IxADQI5czQRwCsNvPLQbuXxQG/RcS0KgWEEkAby7KHNLYmUc+/2z398fUvb3vXWIdADge4E8Oghf3R+gvjs+rTujCTmOVr+ZlzL3BNH+2sQ6E4ApbGmhzhtufP86av3t7TljiseAnMCuY+rCWDv3557Zl2Ov713b/7cgxAPgRYEqgmgRXOlc6ZX8Wm7Uq7SvYjfD4EwApge1Gl/dgTpv8XPt2W8Kc+0X14/+nmeKx0fvd96BNYIhBFAaj49ONOWPpfcpjxpXzKP2HEIlOi0mgDST8ISDeyJ2TL3nvqsQaAVgWoCaNWgvAgg8JhAGAG0fBVvmfvx6F1B4HarKoD0Kj5tpeFPedK+dC7xEShNoFT8qgIo1YS4CCDwGoGqAkivwtP2Wrn775rypP3+u6xEIBaBqgKIhVa3CPRPgAD6n5EKgxMo2X41AbR8FW+Zu+TwxEbgLIFqAjhbqPsRQCA/AQLIz1REBIYhQADDjEqhEQmU7pkAShMWH4GOCRBAx8NRGgKlCRBAacLiI9AxAQLoeDhKi02gRvcEUIOyHAh0SoAAOh2MshCoQYAAalCWA4FOCRBAp4NRVmwCtbongFqk5UGgQwIE0OFQlIRALQIEUIu0PAh0SIAAOhyKkmITqNk9AdSkLRcCnREggM4GohwEahIggJq05UKgMwIE0NlAlBObQO3uCaA2cfkQ6IgAAXQ0DKUgUJsAAdQmLh8CHREggI6GoZTYBFp0TwAtqMuJQCcECKCTQSgDgRYECKAFdTkR6IQAAXQyCGXEJtCqewJoRV5eBDogQAAdDEEJCLQiQACtyMuLQAcECKCDISghNoGW3RNAS/pyI9CYAAE0HoD0CLQkQAAt6cuNQGMCBNB4ANLHJtC6ewJoPQH5EWhIgAAawpcagdYECKD1BORHoCEBAmgIX+rYBHrongB6mIIaEGhEgAAagZcWgR4IEEAPU1ADAo0IEEAj8NLGJtBL9wTQyyTUgUADAgTQALqUCPRCgAB6mYQ6EGhAgAAaQJcyNoGeuieAnqahFgQqEyCAysClQ6AnAgTQ0zTUgkBlAgRQGbh0sQn01j0B9DYR9SBQkQABVIQtFQK9ESCA3iaiHgQqEiCAirClik2gx+4JoMepqAmBSgQIoBJoaRDokQAB9DgVNSFQiQABVAItTWwCvXZPAL1ORl0IVCBAABUgS4FArwQIoNfJqAuBCgQIoAJkKWIT6Ll7Auh5OmpDoDABAigMWHgEeiZAAD1PR20IFCZAAIUBCx+bQO/dE0DvE1IfAgUJEEBBuEIj0DsBAuh9QupDoCABAigIV+jYBEbongBGmJIaEShEgAAKgRUWgREIEMAIU1IjAoUIEEAhsMLGJjBK9wQwyqTUiUABAgRQAKqQCIxCgABGmZQ6EShAgAAKQBUyNoGRuieAkaalVgQyEyCAzECFQ2AkAgQw0rTUikBmAgSQGahwsQmM1j0BjDYx9SKQkQABZIQpFAKjESCA0SamXgQyEiCAjDCFik1gxO4JYMSpqRmBTAQIIBNIYRAYkQABjDg1NSOQiQABZAIpTGwCo3ZPAKNOTt0IZCBAABkgCoHAqAQIYNTJqRuBDAQIIANEIWITGLl7Ahh5empH4CQBAjgJ0O0IjEyAAEaentoROEmAAE4CdHtsAqN3TwCjT1D9CJwgQAAn4LkVgdEJEMDoE1Q/AicIEMAJeG6NTeAK3RPAFaaoBwReJEAAL4JzGwJXIEAAV5iiHhB4kQABvAjObbEJXKV7ArjKJPWBwAsECOAFaG5B4CoECOAqk9QHAi8QIIAXoLklNoErdU8AV5qmXhA4SIAADgKzHIErESCAK01TLwgcJEAAB4FZHpvA1bongKtNVD8IHCBAAAdgWYrA1QgQwNUmqh8EDhAggAOwLI1N4IrdE8AVp6onBHYSIICdoCxD4IoECOCKU9UTAjsJEMBOUJbFJnDV7gngqpPVFwI7CBDADkiWIHBVAgRw1cnqC4EdBAhgByRLYhO4cvcEcOXp6g2BJwQI4AkglxG4MgECuPJ09YbAEwIE8ASQy7EJXL17Arj6hPWHwAYBAtiA4xICVydAAFefsP4Q2CBAABtwXIpNIEL3BBBhynpE4AEBAngAxmkEIhAggAhT1iMCDwgQwAMwTscmEKV7AogyaX0isEKAAFagOIVAFAIEEGXS+kRghQABrEBxKjaBSN0TQKRp6xWBBQECWADxEYFIBAgg0rT1isCCAAEsgPgYm0C07gkg2sT1i8CMAAHMYDhEIBoBAog2cf0iMCNAADMYDmMTiNg9AUScup4ReCNAAG8g7BCISIAAIk5dzwi8ESCANxB2sQlE7Z4Aok5e3wjcCRDAHYIvBKISIICok9c3AncCBHCH4Cs2gcjdE0Dk6es9PAECCP8tAEBkAgQQefp6D0+AAMJ/C8QGEL37HwAAAP//qYRbCgAAAAZJREFUAwCFSB49nkWC0QAAAABJRU5ErkJggg=="}]} \ No newline at end of file diff --git a/src/main/resources/Common/Items/EnergyStorages/EnergyStorage1.blockymodel b/src/main/resources/Common/Items/EnergyStorages/EnergyStorage1.blockymodel index 1b1842e..6e95954 100644 --- a/src/main/resources/Common/Items/EnergyStorages/EnergyStorage1.blockymodel +++ b/src/main/resources/Common/Items/EnergyStorages/EnergyStorage1.blockymodel @@ -155,6 +155,110 @@ "doubleSided": false, "shadingMode": "flat" } + }, + { + "id": "4", + "name": "cube", + "position": {"x": 2, "y": 11, "z": -14}, + "orientation": {"x": 0, "y": 0, "z": 0, "w": 1}, + "shape": { + "type": "box", + "offset": {"x": -2, "y": 5, "z": 0}, + "stretch": {"x": 1, "y": 1, "z": 1}, + "settings": { + "isPiece": false, + "size": {"x": 10, "y": 10, "z": 2}, + "isStaticBox": true + }, + "textureLayout": { + "back": { + "offset": {"x": 3, "y": 1}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "right": { + "offset": {"x": 0, "y": 1}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "front": { + "offset": {"x": 0, "y": 1}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "left": { + "offset": {"x": 0, "y": 1}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "top": { + "offset": {"x": 0, "y": 0}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "bottom": { + "offset": {"x": 0, "y": 0}, + "mirror": {"x": false, "y": false}, + "angle": 0 + } + }, + "unwrapMode": "custom", + "visible": true, + "doubleSided": false, + "shadingMode": "flat" + } + }, + { + "id": "5", + "name": "cube", + "position": {"x": 0, "y": 15, "z": -15}, + "orientation": {"x": 0, "y": 0, "z": 0, "w": 1}, + "shape": { + "type": "box", + "offset": {"x": 0, "y": 1, "z": 0}, + "stretch": {"x": 1, "y": 1, "z": 1}, + "settings": { + "isPiece": false, + "size": {"x": 6, "y": 6, "z": 2}, + "isStaticBox": true + }, + "textureLayout": { + "back": { + "offset": {"x": 0, "y": 0}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "right": { + "offset": {"x": 0, "y": 0}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "front": { + "offset": {"x": 1, "y": 0}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "left": { + "offset": {"x": 0, "y": 0}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "top": { + "offset": {"x": 1, "y": 0}, + "mirror": {"x": false, "y": false}, + "angle": 0 + }, + "bottom": { + "offset": {"x": 1, "y": 0}, + "mirror": {"x": false, "y": false}, + "angle": 0 + } + }, + "unwrapMode": "custom", + "visible": true, + "doubleSided": false, + "shadingMode": "flat" + } } ], "format": "prop", diff --git a/src/main/resources/Server/Item/Items/EnergyOven.json b/src/main/resources/Server/Item/Items/EnergyOven.json new file mode 100644 index 0000000..56ff0e5 --- /dev/null +++ b/src/main/resources/Server/Item/Items/EnergyOven.json @@ -0,0 +1,217 @@ +{ + "TranslationProperties": { + "Name": "server.items.Bench_Furnace.name", + "Description": "server.items.Bench_Furnace.description" + }, + "Icon": "Icons/ItemsGenerated/Bench_Furnace.png", + "Categories": [ + "Furniture.Benches" + ], + "Recipe": { + "Input": [ + { + "ResourceTypeId": "Wood_Trunk", + "Quantity": 6 + }, + { + "ResourceTypeId": "Rock", + "Quantity": 6 + } + ], + "Output": [ + { + "ItemId": "Bench_Furnace", + "Metadata": { + "BlockState": { + "Type": "processingBench", + "FuelContainer": { + "Capacity": 2 + } + } + } + } + ], + "BenchRequirement": [ + { + "Type": "Crafting", + "Categories": [ + "Workbench_Crafting" + ], + "Id": "Workbench" + } + ], + "TimeSeconds": 3 + }, + "BlockType": { + "Material": "Solid", + "DrawType": "Model", + "Opacity": "Solid", + "CustomModel": "Items/EnergyStorages/EnergyStorage1.blockymodel", + "CustomModelTexture": [ + { + "Texture": "Items/EnergyStorages/texture.png", + "Weight": 1 + } + ], + "VariantRotation": "NESW", + "Bench": { + "Type": "Processing", + "AllowNoInputProcessing": true, + "Input": [ + { + "FilterValidIngredients": true + }, + { + "FilterValidIngredients": true + } + ], + "Fuel": [ + { + "ResourceTypeId": "Fuel", + "Icon": "Icons/Processing/FuelSlotIcon.png" + } + ], + "LocalOpenSoundEventId": "SFX_Furnace_Bench_Open", + "LocalCloseSoundEventId": "SFX_Furnace_Bench_Close", + "CompletedSoundEventId": "SFX_Furnace_Bench_Processing_Complete", + "EndSoundEventId": "SFX_Furnace_Bench_Processing_End", + "FailedSoundEventId": "SFX_Furnace_Bench_Processing_Failed", + "BenchUpgradeSoundEventId": "SFX_Workbench_Upgrade_Start_Default", + "BenchUpgradeCompletedSoundEventId": "SFX_Workbench_Upgrade_Complete_Default", + "ExtraOutput": { + "Outputs": [ + { + "ItemId": "Ingredient_Charcoal" + } + ], + "PerFuelItemsConsumed": 2, + "IgnoredFuelSources": [ + { + "ItemId": "Ingredient_Charcoal" + }, + { + "ItemId": "Ingredient_Fibre" + }, + { + "ItemId": "Ingredient_Tree_Sap" + } + ] + }, + "OutputSlotsCount": 4, + "Id": "Furnace", + "TierLevels": [ + { + "UpgradeRequirement": { + "Material": [ + { + "ItemId": "Ingredient_Bar_Copper", + "Quantity": 5 + }, + { + "ItemId": "Ingredient_Bar_Iron", + "Quantity": 5 + }, + { + "ItemId": "Ingredient_Bar_Thorium", + "Quantity": 5 + }, + { + "ItemId": "Ingredient_Bar_Cobalt", + "Quantity": 5 + } + ], + "TimeSeconds": 3 + }, + "CraftingTimeReductionModifier": 0.0 + }, + { + "CraftingTimeReductionModifier": 0.3, + "ExtraInputSlot": 1 + } + ] + }, + "State": { + "Id": "processingBench", + "Definitions": { + "Processing": { + "Looping": true, + "Light": { + "Color": "#B72" + }, + "CustomModelTexture": [ + { + "Texture": "Blocks/Benches/Furnace_Texture.png", + "Weight": 1 + } + ], + "Particles": [ + { + "SystemId": "Fire_Furnace_On", + "TargetNodeName": "Fire", + "Scale": 0.7, + "PositionOffset": { + "X": 0, + "Z": 0.3 + } + } + ], + "AmbientSoundEventId": "SFX_Furnace_Bench_Processing", + "CustomModelAnimation": "Blocks/Benches/Furnace_Smelting.blockyanim" + }, + "ProcessCompleted": { + "Light": { + "Color": "#B72" + }, + "CustomModelTexture": [ + { + "Texture": "Blocks/Benches/Furnace_Texture.png", + "Weight": 1 + } + ], + "AmbientSoundEventId": "SFX_Furnace_Bench_Processing", + "Looping": true, + "CustomModelAnimation": "Blocks/Benches/Furnace_Smelting.blockyanim" + } + } + }, + "Gathering": { + "Breaking": { + "GatherType": "Benches" + } + }, + "BlockParticleSetId": "Stone", + "ParticleColor": "#5C583E", + "Support": { + "Down": [ + { + "FaceType": "Full" + } + ] + }, + "BlockSoundSetId": "Stone", + "Interactions": { + "Use": "Open_Processing_Bench" + } + }, + "PlayerAnimationsId": "Block", + "IconProperties": { + "Scale": 0.365, + "Rotation": [ + 22.5, + 45, + 22.5 + ], + "Translation": [ + 12, + -17.4 + ] + }, + "Tags": { + "Type": [ + "Bench" + ] + }, + "MaxStack": 1, + "ItemLevel": 1, + "ItemSoundSetId": "ISS_Blocks_Stone" +} diff --git a/src/main/resources/Server/Item/Items/EnergyStorage.json b/src/main/resources/Server/Item/Items/EnergyStorage.json index 8895f9a..aadfbc2 100644 --- a/src/main/resources/Server/Item/Items/EnergyStorage.json +++ b/src/main/resources/Server/Item/Items/EnergyStorage.json @@ -20,7 +20,7 @@ "Components": { "EnergyStorage": { "MaxCapacity": 10000, - "ExtractEnergyPerTick": 1000, + "ExtractEnergyPerTick": 500, "ReceiveEnergyPerTick": 1000, "CurrentEnergyAmount": 100 } diff --git a/src/main/resources/Server/Item/Items/SolarCell.json b/src/main/resources/Server/Item/Items/SolarCell.json index 2b92f31..66adec8 100644 --- a/src/main/resources/Server/Item/Items/SolarCell.json +++ b/src/main/resources/Server/Item/Items/SolarCell.json @@ -26,7 +26,7 @@ }, "EnergySource": { "EnergyCapacity": -1, - "GeneratesPerTick": 1 + "GeneratesPerTick": 200 } } },