diff --git a/game/client/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java b/game/client/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java index 2e3339d3c..bbb0483c0 100644 --- a/game/client/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java +++ b/game/client/src/main/java/net/minecraft/client/render/block/model/BlockModelDispatcher.java @@ -382,6 +382,8 @@ public final class BlockModelDispatcher addDispatch(new BlockModelGenericButton<>(Blocks.BUTTON_GLOOMSTONE, "minecraft:block/button/stone/gloomstone")); addDispatch(new BlockModelGenericButton<>(Blocks.BUTTON_SANDSTONE, "minecraft:block/button/stone/sandstone")); addDispatch(new BlockModelGenericButton<>(Blocks.BUTTON_BRIMSTONE, "minecraft:block/button/stone/brimstone")); + addDispatch(new BlockModelGenericButton<>(Blocks.BUTTON_MARBLE, "minecraft:block/button/stone/marble")); + addDispatch(new BlockModelGenericButton<>(Blocks.BUTTON_SLATE, "minecraft:block/button/stone/slate")); addDispatch(new BlockModelGenericButton<>(Blocks.BUTTON_PLANKS_OAK, "minecraft:block/button/planks/oak")); addDispatch(new BlockModelGenericButtonPainted<>(Blocks.BUTTON_PLANKS_PAINTED)); @@ -396,6 +398,8 @@ public final class BlockModelDispatcher addDispatch(new BlockModelGenericPressurePlate<>(Blocks.PRESSURE_PLATE_GLOOMSTONE, "minecraft:block/pressure_plate/stone/gloomstone")); addDispatch(new BlockModelGenericPressurePlate<>(Blocks.PRESSURE_PLATE_SANDSTONE, "minecraft:block/pressure_plate/stone/sandstone")); addDispatch(new BlockModelGenericPressurePlate<>(Blocks.PRESSURE_PLATE_BRIMSTONE, "minecraft:block/pressure_plate/stone/brimstone")); + addDispatch(new BlockModelGenericPressurePlate<>(Blocks.PRESSURE_PLATE_MARBLE, "minecraft:block/pressure_plate/stone/marble")); + addDispatch(new BlockModelGenericPressurePlate<>(Blocks.PRESSURE_PLATE_SLATE, "minecraft:block/pressure_plate/stone/slate")); addDispatch(new BlockModelGenericPressurePlate<>(Blocks.PRESSURE_PLATE_PLANKS_OAK, "minecraft:block/pressure_plate/planks/oak")); addDispatch(new BlockModelGenericPressurePlate<>(Blocks.PRESSURE_PLATE_COBBLE_STONE, "minecraft:block/pressure_plate/cobbled/stone")); diff --git a/game/client/src/main/java/net/minecraft/client/render/block/model/generic/BlockModelGenericRubyglassGrowth.java b/game/client/src/main/java/net/minecraft/client/render/block/model/generic/BlockModelGenericRubyglassGrowth.java index f0488a930..0889ec820 100644 --- a/game/client/src/main/java/net/minecraft/client/render/block/model/generic/BlockModelGenericRubyglassGrowth.java +++ b/game/client/src/main/java/net/minecraft/client/render/block/model/generic/BlockModelGenericRubyglassGrowth.java @@ -30,17 +30,7 @@ public class BlockModelGenericRubyglassGrowth extends Bloc @Override public boolean render(@NotNull TessellatorGeneral tessellator, @NotNull WorldSource worldSource, @NotNull TilePosc tilePos) { - int data = worldSource.getBlockData(tilePos); - - int shape = data & SHAPE_MASK; - - if (shape == STATE_TOP) { - return this.topModel.render(tessellator, worldSource, tilePos); - } else if (shape == STATE_BOTTOM) { - return this.bottomModel.render(tessellator, worldSource, tilePos); - } else { - return this.budModel.render(tessellator, worldSource, tilePos); - } + return this.modelForShape(worldSource, tilePos).render(tessellator, worldSource, tilePos); } @Override @@ -50,7 +40,19 @@ public class BlockModelGenericRubyglassGrowth extends Bloc @Override public boolean renderWithOverrideTexture(@NotNull TessellatorGeneral tessellator, @NotNull WorldSource worldSource, @NotNull TilePosc tilePos, IconCoordinate overrideTexture) { - return false; + return this.modelForShape(worldSource, tilePos).renderWithOverrideTexture(tessellator, worldSource, tilePos, overrideTexture); + } + + private @NotNull BlockModelGenericFullyRotatable modelForShape(@NotNull WorldSource worldSource, @NotNull TilePosc tilePos) { + int shape = worldSource.getBlockData(tilePos) & SHAPE_MASK; + + if (shape == STATE_TOP) { + return this.topModel; + } else if (shape == STATE_BOTTOM) { + return this.bottomModel; + } else { + return this.budModel; + } } @Override diff --git a/game/client/src/main/resources/assets/minecraft/models/block/button/stone/marble/active.json b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/marble/active.json new file mode 100644 index 000000000..af5362c74 --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/marble/active.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button/active", + "textures": { + "texture": "minecraft:block/marble" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/button/stone/marble/idle.json b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/marble/idle.json new file mode 100644 index 000000000..bde60656d --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/marble/idle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button/idle", + "textures": { + "texture": "minecraft:block/marble" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/button/stone/marble/inventory.json b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/marble/inventory.json new file mode 100644 index 000000000..3072d4ad1 --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/marble/inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button/inventory", + "textures": { + "texture": "minecraft:block/marble" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/button/stone/slate/active.json b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/slate/active.json new file mode 100644 index 000000000..9cbeabc08 --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/slate/active.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button/active", + "textures": { + "texture": "minecraft:block/slate_top" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/button/stone/slate/idle.json b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/slate/idle.json new file mode 100644 index 000000000..e52603977 --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/slate/idle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button/idle", + "textures": { + "texture": "minecraft:block/slate_top" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/button/stone/slate/inventory.json b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/slate/inventory.json new file mode 100644 index 000000000..1c497de11 --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/button/stone/slate/inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button/inventory", + "textures": { + "texture": "minecraft:block/slate_top" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/marble/active.json b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/marble/active.json new file mode 100644 index 000000000..b8f3d13ea --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/marble/active.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate/active", + "textures": { + "texture": "minecraft:block/marble" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/marble/idle.json b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/marble/idle.json new file mode 100644 index 000000000..3519acf93 --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/marble/idle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate/idle", + "textures": { + "texture": "minecraft:block/marble" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/marble/inventory.json b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/marble/inventory.json new file mode 100644 index 000000000..d8cde04b9 --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/marble/inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate/inventory", + "textures": { + "texture": "minecraft:block/marble" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/slate/active.json b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/slate/active.json new file mode 100644 index 000000000..ffd3ccf37 --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/slate/active.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate/active", + "textures": { + "texture": "minecraft:block/slate_top" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/slate/idle.json b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/slate/idle.json new file mode 100644 index 000000000..06eb7165d --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/slate/idle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate/idle", + "textures": { + "texture": "minecraft:block/slate_top" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/slate/inventory.json b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/slate/inventory.json new file mode 100644 index 000000000..922efc953 --- /dev/null +++ b/game/client/src/main/resources/assets/minecraft/models/block/pressure_plate/stone/slate/inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate/inventory", + "textures": { + "texture": "minecraft:block/slate_top" + } +} diff --git a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_cap.json b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_cap.json index 04f04c2a6..05bd270f6 100644 --- a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_cap.json +++ b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_cap.json @@ -1,40 +1,25 @@ { - "format_version": "1.21.6", - "credit": "Made with Blockbench", - "textures": { - "closed": "minecraft:block/rubyglass/conduit/closed/closed", - "closed_overlay": "minecraft:block/rubyglass/conduit/closed/closed_overlay", - "open": "minecraft:block/rubyglass/conduit/open/open", - "open_overlay": "minecraft:block/rubyglass/conduit/open/open_overlay", - "plug": "minecraft:block/rubyglass/conduit/plug/plug", - "plug_overlay": "minecraft:block/rubyglass/conduit/plug/plug_overlay", - "particle": "minecraft:block/rubyglass/conduit/closed/closed" - }, - "elements": [ - { - "name": "Conduit Casing", - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "north"}, - "east": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "east"}, - "south": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "south"}, - "west": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "up"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "down"} - } - }, - { - "name": "Redstone Overlay", - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug_overlay", "cullface": "north", "tintindex": 0, "shade": false}, - "east": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug_overlay", "cullface": "east", "tintindex": 0, "shade": false}, - "south": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug_overlay", "cullface": "south", "tintindex": 0, "shade": false}, - "west": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug_overlay", "cullface": "west", "tintindex": 0, "shade": false}, - "down": {"uv": [0, 0, 16, 16], "texture": "#open_overlay", "cullface": "down", "tintindex": 0, "shade": false} - } - } - ] + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "particle": "block/rubyglass/conduit/closed/active", + "closed": "block/rubyglass/conduit/closed/active", + "open": "block/rubyglass/conduit/open/active", + "plug": "block/rubyglass/conduit/plug/active" + }, + "elements": [ + { + "name": "Conduit Casing", + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "north", "tintindex": 0}, + "east": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "east", "tintindex": 0}, + "south": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "south", "tintindex": 0}, + "west": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "west", "tintindex": 0}, + "up": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "up", "tintindex": 0}, + "down": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "down", "tintindex": 0} + } + } + ] } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_cap_off.json b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_cap_off.json index c823c86d8..207ff6daa 100644 --- a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_cap_off.json +++ b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_cap_off.json @@ -2,12 +2,10 @@ "format_version": "1.21.6", "credit": "Made with Blockbench", "textures": { - "closed": "minecraft:block/rubyglass/conduit/closed/closed", - "closed_overlay": "minecraft:block/rubyglass/conduit/closed/closed_overlay", - "open": "minecraft:block/rubyglass/conduit/open/open", - "open_overlay": "minecraft:block/rubyglass/conduit/open/open_overlay", - "plug": "minecraft:block/rubyglass/conduit/plug/plug", - "particle": "minecraft:block/rubyglass/conduit/closed/closed" + "closed": "minecraft:block/rubyglass/conduit/closed/idle", + "open": "minecraft:block/rubyglass/conduit/open/idle", + "plug": "minecraft:block/rubyglass/conduit/plug/idle", + "particle": "minecraft:block/rubyglass/conduit/closed/idle" }, "elements": [ { diff --git a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_core.json b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_core.json index b3b4a9ed0..f6d5b10ad 100644 --- a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_core.json +++ b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_core.json @@ -1,44 +1,45 @@ { - "format_version": "1.21.6", - "credit": "Made with Blockbench", - "display": { - "gui": { "rotation": [ 30, 225, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.625, 0.625, 0.625 ] }, - "ground": { "rotation": [ 0, 0, 0 ], "translation": [ 0, 3, 0 ], "scale": [ 0.25, 0.25, 0.25 ] }, - "fixed": { "rotation": [ 0, 0, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.5, 0.5, 0.5 ] }, - "thirdperson_righthand": { "rotation": [ 75, 45, 0 ], "translation": [ 0, 2.5, 0 ], "scale": [ 0.375, 0.375, 0.375 ] }, - "firstperson_righthand": { "rotation": [ 0, 45, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.4, 0.4, 0.4 ] } - }, - "textures": { - "closed": "minecraft:block/rubyglass/conduit/closed/closed", - "closed_overlay": "minecraft:block/rubyglass/conduit/closed/closed_overlay", - "particle": "minecraft:block/rubyglass/conduit/closed/closed" - }, - "elements": [ - { - "name": "Conduit Casing", - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "north"}, - "east": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "east"}, - "south": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "south"}, - "west": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "up"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "down"} - } - }, - { - "name": "Redstone Overlay", - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#closed_overlay", "cullface": "north", "tintindex": 0, "shade": false}, - "east": {"uv": [0, 0, 16, 16], "texture": "#closed_overlay", "cullface": "east", "tintindex": 0, "shade": false}, - "south": {"uv": [0, 0, 16, 16], "texture": "#closed_overlay", "cullface": "south", "tintindex": 0, "shade": false}, - "west": {"uv": [0, 0, 16, 16], "texture": "#closed_overlay", "cullface": "west", "tintindex": 0, "shade": false}, - "up": {"uv": [0, 0, 16, 16], "texture": "#closed_overlay", "cullface": "up", "tintindex": 0, "shade": false}, - "down": {"uv": [0, 0, 16, 16], "texture": "#closed_overlay", "cullface": "down", "tintindex": 0, "shade": false} - } - } - ] + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "particle": "block/rubyglass/conduit/closed/active", + "closed": "block/rubyglass/conduit/closed/active" + }, + "elements": [ + { + "name": "Conduit Casing", + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "north", "tintindex": 0}, + "east": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "east", "tintindex": 0}, + "south": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "south", "tintindex": 0}, + "west": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "west", "tintindex": 0}, + "up": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "up", "tintindex": 0}, + "down": {"uv": [0, 0, 16, 16], "texture": "#closed", "cullface": "down", "tintindex": 0} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_core_off.json b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_core_off.json index b84b0ad51..a64bd0b5a 100644 --- a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_core_off.json +++ b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_core_off.json @@ -9,9 +9,8 @@ "firstperson_righthand": { "rotation": [ 0, 45, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.4, 0.4, 0.4 ] } }, "textures": { - "closed": "minecraft:block/rubyglass/conduit/closed/closed", - "closed_overlay": "minecraft:block/rubyglass/conduit/closed/closed_overlay", - "particle": "minecraft:block/rubyglass/conduit/closed/closed" + "closed": "minecraft:block/rubyglass/conduit/closed/idle", + "particle": "minecraft:block/rubyglass/conduit/closed/idle" }, "elements": [ { diff --git a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_corner.json b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_corner.json index 70b5cc7bd..22ca11293 100644 --- a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_corner.json +++ b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_corner.json @@ -1,41 +1,25 @@ { - "format_version": "1.21.6", - "credit": "Made with Blockbench", - "textures": { - "corner": "minecraft:block/rubyglass/conduit/corner/corner", - "corner_overlay": "minecraft:block/rubyglass/conduit/corner/corner_overlay", - "open": "minecraft:block/rubyglass/conduit/open/open", - "open_overlay": "minecraft:block/rubyglass/conduit/open/open_overlay", - "plug": "minecraft:block/rubyglass/conduit/plug/plug", - "plug_overlay": "minecraft:block/rubyglass/conduit/plug/plug_overlay", - "particle": "minecraft:block/rubyglass/conduit/closed/closed" - }, - "elements": [ - { - "name": "Conduit Casing", - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "north"}, - "east": {"uv": [0, 0, 16, 16], "texture": "#corner", "cullface": "east"}, - "south": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "south"}, - "west": {"uv": [16, 0, 0, 16], "texture": "#corner", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#plug", "cullface": "up"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "down"} - } - }, - { - "name": "Redstone Overlay", - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#open_overlay", "cullface": "north", "tintindex": 0, "shade": false}, - "east": {"uv": [0, 0, 16, 16], "texture": "#corner_overlay", "cullface": "east", "tintindex": 0, "shade": false}, - "south": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug_overlay", "cullface": "south", "tintindex": 0, "shade": false}, - "west": {"uv": [16, 0, 0, 16], "texture": "#corner_overlay", "cullface": "west", "tintindex": 0, "shade": false}, - "up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#plug_overlay", "cullface": "up", "tintindex": 0, "shade": false}, - "down": {"uv": [0, 0, 16, 16], "texture": "#open_overlay", "cullface": "down", "tintindex": 0, "shade": false} - } - } - ] + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "corner": "block/rubyglass/conduit/corner/active", + "open": "block/rubyglass/conduit/open/active", + "plug": "block/rubyglass/conduit/plug/active", + "particle": "block/rubyglass/conduit/closed/active" + }, + "elements": [ + { + "name": "Conduit Casing", + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "north", "tintindex": 0}, + "east": {"uv": [0, 0, 16, 16], "texture": "#corner", "cullface": "east", "tintindex": 0}, + "south": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#plug", "cullface": "south", "tintindex": 0}, + "west": {"uv": [16, 0, 0, 16], "texture": "#corner", "cullface": "west", "tintindex": 0}, + "up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#plug", "cullface": "up", "tintindex": 0}, + "down": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "down", "tintindex": 0} + } + } + ] } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_corner_off.json b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_corner_off.json index 2c6590b5b..99bf063fd 100644 --- a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_corner_off.json +++ b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_corner_off.json @@ -2,13 +2,10 @@ "format_version": "1.21.6", "credit": "Made with Blockbench", "textures": { - "corner": "minecraft:block/rubyglass/conduit/corner/corner", - "corner_overlay": "minecraft:block/rubyglass/conduit/corner/corner_overlay", - "open": "minecraft:block/rubyglass/conduit/open/open", - "open_overlay": "minecraft:block/rubyglass/conduit/open/open_overlay", - "plug": "minecraft:block/rubyglass/conduit/plug/plug", - "plug_overlay": "minecraft:block/rubyglass/conduit/plug/plug_overlay", - "particle": "minecraft:block/rubyglass/conduit/closed/closed" + "corner": "minecraft:block/rubyglass/conduit/corner/idle", + "open": "minecraft:block/rubyglass/conduit/open/idle", + "plug": "minecraft:block/rubyglass/conduit/plug/idle", + "particle": "minecraft:block/rubyglass/conduit/closed/idle" }, "elements": [ { diff --git a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_straight.json b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_straight.json index b10f4b890..d8d676caa 100644 --- a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_straight.json +++ b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_straight.json @@ -1,39 +1,24 @@ { - "format_version": "1.21.6", - "credit": "Made with Blockbench", - "textures": { - "open": "minecraft:block/rubyglass/conduit/open/open", - "open_overlay": "minecraft:block/rubyglass/conduit/open/open_overlay", - "straight": "minecraft:block/rubyglass/conduit/straight/straight", - "straight_overlay": "minecraft:block/rubyglass/conduit/straight/straight_overlay", - "particle": "minecraft:block/rubyglass/conduit/closed/closed" - }, - "elements": [ - { - "name": "Conduit Casing", - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight", "cullface": "north"}, - "east": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight", "cullface": "east"}, - "south": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight", "cullface": "south"}, - "west": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "up"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "down"} - } - }, - { - "name": "Redstone Overlay", - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight_overlay", "cullface": "north", "tintindex": 0, "shade": false}, - "east": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight_overlay", "cullface": "east", "tintindex": 0, "shade": false}, - "south": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight_overlay", "cullface": "south", "tintindex": 0, "shade": false}, - "west": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight_overlay", "cullface": "west", "tintindex": 0, "shade": false}, - "up": {"uv": [0, 0, 16, 16], "texture": "#open_overlay", "cullface": "up", "tintindex": 0, "shade": false}, - "down": {"uv": [0, 0, 16, 16], "texture": "#open_overlay", "cullface": "down", "tintindex": 0, "shade": false} - } - } - ] + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "open": "block/rubyglass/conduit/open/active", + "straight": "block/rubyglass/conduit/straight/active", + "particle": "block/rubyglass/conduit/closed/active" + }, + "elements": [ + { + "name": "Conduit Casing", + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight", "cullface": "north", "tintindex": 0}, + "east": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight", "cullface": "east", "tintindex": 0}, + "south": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight", "cullface": "south", "tintindex": 0}, + "west": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#straight", "cullface": "west", "tintindex": 0}, + "up": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "up", "tintindex": 0}, + "down": {"uv": [0, 0, 16, 16], "texture": "#open", "cullface": "down", "tintindex": 0} + } + } + ] } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_straight_off.json b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_straight_off.json index f2cd1b03d..aec76f56c 100644 --- a/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_straight_off.json +++ b/game/client/src/main/resources/assets/minecraft/models/block/rubyglass/conduit/conduit_straight_off.json @@ -2,11 +2,9 @@ "format_version": "1.21.6", "credit": "Made with Blockbench", "textures": { - "open": "minecraft:block/rubyglass/conduit/open/open", - "open_overlay": "minecraft:block/rubyglass/conduit/open/open_overlay", - "straight": "minecraft:block/rubyglass/conduit/straight/straight", - "straight_overlay": "minecraft:block/rubyglass/conduit/straight/straight_overlay", - "particle": "minecraft:block/rubyglass/conduit/closed/closed" + "open": "minecraft:block/rubyglass/conduit/open/idle", + "straight": "minecraft:block/rubyglass/conduit/straight/idle", + "particle": "minecraft:block/rubyglass/conduit/closed/idle" }, "elements": [ { diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/flowing.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/flowing.emiss.png.mcmeta index b20a20474..57ab1b345 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/flowing.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/flowing.emiss.png.mcmeta @@ -1,17 +1,5 @@ { - "animation": { - "interpolate": false, - "random": false, - "frametime": 7, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - } + "animation": { + "frametime": 7 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/flowing.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/flowing.png.mcmeta index b20a20474..57ab1b345 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/flowing.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/flowing.png.mcmeta @@ -1,17 +1,5 @@ { - "animation": { - "interpolate": false, - "random": false, - "frametime": 7, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - } + "animation": { + "frametime": 7 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/still.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/still.emiss.png.mcmeta index e0fcfa6e6..82bde58cf 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/still.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/still.emiss.png.mcmeta @@ -1,12 +1,6 @@ { - "animation": { - "interpolate": true, - "frametime": 30, - "frames": [ - 0, - 1, - 2, - 3 - ] - } + "animation": { + "interpolate": true, + "frametime": 30 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/still.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/still.png.mcmeta index 781fd9305..82bde58cf 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/still.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/fluid/acid/still.png.mcmeta @@ -1,16 +1,6 @@ { - "animation": { - "interpolate": true, - "frametime": 30, - "frames": [ - 0, - 1, - 2, - 3, - 0, - 3, - 2, - 1 - ] - } + "animation": { + "interpolate": true, + "frametime": 30 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.emiss.png index 8e5dad90c..37a42fc94 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.emiss.png.mcmeta index 6c67b115b..631c360b1 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.emiss.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 80 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 80 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.png index c8359ceb0..9d7940b0a 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.png.mcmeta index 6c67b115b..631c360b1 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front0.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 80 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 80 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.emiss.png index a3627c320..37a42fc94 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.emiss.png.mcmeta index fe63ba1cc..6e5692009 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.emiss.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 90 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 90 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.png index ae6babd8e..9d7940b0a 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.png.mcmeta index fe63ba1cc..6e5692009 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front1.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 90 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 90 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.emiss.png index 077b7fabc..37a42fc94 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.emiss.png.mcmeta index 0c408636c..69042ce2b 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.emiss.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 60 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 60 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.png index 4e9f25c1e..9d7940b0a 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.png.mcmeta index 0c408636c..69042ce2b 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front2.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 60 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 60 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.emiss.png index 8e980e188..37a42fc94 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.emiss.png.mcmeta index 893e25fb8..d4c5c151d 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.emiss.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 100 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 100 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.png index 7eb1cdce0..9d7940b0a 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.png.mcmeta index 893e25fb8..d4c5c151d 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front3.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 100 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 100 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.emiss.png index 44dc4abff..c78595758 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.emiss.png.mcmeta index 6c67b115b..631c360b1 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.emiss.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 80 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 80 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.png index 672cfd148..21e6777fb 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.png.mcmeta index 6c67b115b..631c360b1 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active0.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 80 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 80 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.emiss.png index 923aa551d..c78595758 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.emiss.png.mcmeta index fe63ba1cc..6e5692009 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.emiss.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 90 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 90 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.png index f95722d49..21e6777fb 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.png.mcmeta index fe63ba1cc..6e5692009 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active1.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 90 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 90 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.emiss.png index 50f5502b4..c78595758 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.emiss.png.mcmeta index 0c408636c..69042ce2b 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.emiss.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 60 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 60 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.png index bf9c77c46..21e6777fb 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.png.mcmeta index 0c408636c..69042ce2b 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active2.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 60 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 60 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.emiss.png index d93e1b4b3..c78595758 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.emiss.png.mcmeta index 893e25fb8..d4c5c151d 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.emiss.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 100 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 100 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.png b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.png index 041ee079c..21e6777fb 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.png and b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.png.mcmeta index 893e25fb8..d4c5c151d 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/matcher/front_active3.png.mcmeta @@ -1,16 +1,16 @@ { - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - { - "index": 5, - "time": 100 - } - ] - } + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 2, + { + "index": 1, + "time": 100 + } + ] + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.emiss.png index a230152c3..cbd486a48 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.emiss.png.mcmeta index b13a44198..657147540 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.emiss.png.mcmeta @@ -1,16 +1,6 @@ { - "animation": { - "interpolate": true, - "frametime": 16, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - } + "animation": { + "interpolate": true, + "frametime": 80 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.png index 6f6baa4a7..0349def78 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.png and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.png.mcmeta index b13a44198..657147540 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/block.png.mcmeta @@ -1,16 +1,6 @@ { - "animation": { - "interpolate": true, - "frametime": 16, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - } + "animation": { + "interpolate": true, + "frametime": 80 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.emiss.png index a230152c3..cbd486a48 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.emiss.png.mcmeta index b13a44198..657147540 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.emiss.png.mcmeta @@ -1,16 +1,6 @@ { - "animation": { - "interpolate": true, - "frametime": 16, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - } + "animation": { + "interpolate": true, + "frametime": 80 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.png index 2b5326feb..4a3d30885 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.png and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.png.mcmeta index b13a44198..657147540 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/brick.png.mcmeta @@ -1,16 +1,6 @@ { - "animation": { - "interpolate": true, - "frametime": 16, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - } + "animation": { + "interpolate": true, + "frametime": 80 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/active.cmask.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/active.cmask.png new file mode 100644 index 000000000..4998f8d0d Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/active.cmask.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/closed_overlay.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/active.emiss.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/closed_overlay.emiss.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/active.emiss.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/active.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/active.png new file mode 100644 index 000000000..526e4bc8e Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/active.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/closed_overlay.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/closed_overlay.png deleted file mode 100644 index 21861dd34..000000000 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/closed_overlay.png and /dev/null differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/closed.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/idle.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/closed.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/closed/idle.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/active.cmask.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/active.cmask.png new file mode 100644 index 000000000..7f9bcd34d Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/active.cmask.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/corner_overlay.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/active.emiss.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/corner_overlay.emiss.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/active.emiss.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/active.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/active.png new file mode 100644 index 000000000..e093a9b38 Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/active.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/corner_overlay.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/corner_overlay.png deleted file mode 100644 index 9c26af9cc..000000000 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/corner_overlay.png and /dev/null differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/corner.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/idle.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/corner.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/corner/idle.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/active.cmask.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/active.cmask.png new file mode 100644 index 000000000..812e6982d Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/active.cmask.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/open_overlay.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/active.emiss.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/open_overlay.emiss.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/active.emiss.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/active.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/active.png new file mode 100644 index 000000000..512e03575 Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/active.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/open.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/idle.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/open.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/idle.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/open_overlay.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/open_overlay.png deleted file mode 100644 index 4558bfef0..000000000 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/open/open_overlay.png and /dev/null differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/active.cmask.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/active.cmask.png new file mode 100644 index 000000000..db2999e7b Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/active.cmask.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/plug_overlay.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/active.emiss.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/plug_overlay.emiss.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/active.emiss.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/active.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/active.png new file mode 100644 index 000000000..42fe64aab Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/active.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/plug.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/idle.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/plug.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/idle.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/plug_overlay.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/plug_overlay.png deleted file mode 100644 index 63f0acae3..000000000 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/plug/plug_overlay.png and /dev/null differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/active.cmask.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/active.cmask.png new file mode 100644 index 000000000..51d6120d7 Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/active.cmask.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/straight_overlay.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/active.emiss.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/straight_overlay.emiss.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/active.emiss.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/active.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/active.png new file mode 100644 index 000000000..6da26a92d Binary files /dev/null and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/active.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/straight.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/idle.png similarity index 100% rename from game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/straight.png rename to game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/idle.png diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/straight_overlay.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/straight_overlay.png deleted file mode 100644 index a072df79a..000000000 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/conduit/straight/straight_overlay.png and /dev/null differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.emiss.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.emiss.png index a230152c3..cbd486a48 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.emiss.png and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.emiss.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.emiss.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.emiss.png.mcmeta index b13a44198..657147540 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.emiss.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.emiss.png.mcmeta @@ -1,16 +1,6 @@ { - "animation": { - "interpolate": true, - "frametime": 16, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - } + "animation": { + "interpolate": true, + "frametime": 80 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.png b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.png index 961512bbb..610cd3b7c 100644 Binary files a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.png and b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.png differ diff --git a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.png.mcmeta b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.png.mcmeta index b13a44198..657147540 100644 --- a/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.png.mcmeta +++ b/game/client/src/main/resources/assets/minecraft/textures/block/rubyglass/node.png.mcmeta @@ -1,16 +1,6 @@ { - "animation": { - "interpolate": true, - "frametime": 16, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - } + "animation": { + "interpolate": true, + "frametime": 80 + } } \ No newline at end of file diff --git a/game/client/src/main/resources/shaders/clouds.vsh b/game/client/src/main/resources/shaders/clouds.vsh index 04756272e..16e6bfa08 100644 --- a/game/client/src/main/resources/shaders/clouds.vsh +++ b/game/client/src/main/resources/shaders/clouds.vsh @@ -28,8 +28,8 @@ void main() { float zFrac = fract(zOffset); TexCoord = aUV + vec2( - xInt * 1/256f, - zInt * 1/256f + xInt * 1/256.0, + zInt * 1/256.0 ); vec3 pos = aPos; diff --git a/game/core/build.gradle.kts b/game/core/build.gradle.kts index 2933056c4..26db79f9b 100644 --- a/game/core/build.gradle.kts +++ b/game/core/build.gradle.kts @@ -82,10 +82,10 @@ val versionGenerator by tasks.registering { // 2nd nibble: Minor version // 3rd nibble: 0 if release, 1 if prerelease, 2 if nightly/dev release // 4th nibble: Prerelease version or patch version -// For example, 7.1_01 would be encoded as 0x7101 -// 7.1 prerelease 1 would be encoded as 0x7111 +// For example, 8.0.1 would be encoded as 0x8001 +// 8.1-pre1 would be encoded as 0x8111 fun genProtocol(version: String, channel: String): String { - val parts = version.split(".") // 7.3_01 + val parts = version.split(".") // 8.0.1 var major = 0; var minor = 0; var patch = 0; @@ -106,17 +106,17 @@ fun genProtocol(version: String, channel: String): String { } else if (parts.isNotEmpty()) { major = parts[0].trim().toInt() if (parts.size > 1) { - if (parts[1].contains("_")) { - val parts2 = parts[1].split("_") - minor = parts2[0].trim().toInt() - patch = parts2[1].trim().toInt() - } else if (parts[1].contains("-pre", true)) { + if (parts[1].contains("-pre", true)) { val parts2 = parts[1].lowercase().split("-pre") minor = parts2[0].trim().toInt() patch = parts2[1].trim().toInt() } else { minor = parts[1].trim().toInt() } + + if (parts.size > 2) { + patch = parts[2].trim().toInt() + } } } diff --git a/game/core/src/main/java/net/minecraft/core/Global.java b/game/core/src/main/java/net/minecraft/core/Global.java index 3a4249ab4..b31db96e5 100644 --- a/game/core/src/main/java/net/minecraft/core/Global.java +++ b/game/core/src/main/java/net/minecraft/core/Global.java @@ -31,9 +31,9 @@ public class Global // 2 byte value // 1st nibble: Major version // 2nd nibble: Minor version - // 3rd nibble: 0 if release, 1 if prerelease, 2 if nightly release + // 3rd nibble: 0 if release, 1 if prerelease, 2 if nightly/dev release // 4th nibble: Prerelease version or patch version - // For example, 7.1_01 would be encoded as 0x7101 - // 7.1 prerelease 1 would be encoded as 0x7111 + // For example, 8.0.1 would be encoded as 0x8001 + // 8.1-pre1 would be encoded as 0x8111 public static final int MP_PROTOCOL_VERSION = Version.MP_PROTOCOL_VERSION; } diff --git a/game/core/src/main/java/net/minecraft/core/block/BlockLogicGrowthRubyglass.java b/game/core/src/main/java/net/minecraft/core/block/BlockLogicGrowthRubyglass.java index ea739bee2..06934a60f 100644 --- a/game/core/src/main/java/net/minecraft/core/block/BlockLogicGrowthRubyglass.java +++ b/game/core/src/main/java/net/minecraft/core/block/BlockLogicGrowthRubyglass.java @@ -2,8 +2,13 @@ package net.minecraft.core.block; import net.minecraft.core.block.entity.TileEntity; import net.minecraft.core.block.material.Material; +import net.minecraft.core.entity.player.Player; import net.minecraft.core.enums.EnumDropCause; +import net.minecraft.core.item.Item; import net.minecraft.core.item.ItemStack; +import net.minecraft.core.item.tool.ItemToolPickaxe; +import net.minecraft.core.item.tool.ItemToolShears; +import net.minecraft.core.achievement.stat.StatList; import net.minecraft.core.util.helper.Direction; import net.minecraft.core.util.helper.Side; import net.minecraft.core.world.LevelListener; @@ -16,6 +21,8 @@ import org.jetbrains.annotations.Nullable; import org.joml.primitives.AABBd; import org.joml.primitives.AABBdc; +import java.util.Random; + public class BlockLogicGrowthRubyglass extends BlockLogic implements BlockLogic.MatcherDataEquivalency.Masked { public static final int DIRECTION_MASK = 0b0000_0111; @@ -25,6 +32,8 @@ public class BlockLogicGrowthRubyglass extends BlockLogic implements BlockLogic. public static final int STATE_BOTTOM = 0b0000_1000; public static final int STATE_TOP = 0b0001_0000; + public static final int GROWTH_CHANCE = 16; + public BlockLogicGrowthRubyglass(final @NotNull Block block, final @NotNull Material material) { super(block, material); } @@ -69,6 +78,26 @@ public class BlockLogicGrowthRubyglass extends BlockLogic implements BlockLogic. } } + @Override + public void updateTick(final @NotNull World world, final @NotNull TilePosc tilePos, final @NotNull Random rand, final boolean isRandomTick) { + if (world.isClientSide || !isRandomTick) return; + if (rand.nextInt(GROWTH_CHANCE) != 0) return; + + int data = world.getBlockData(tilePos); + if ((data & SHAPE_MASK) != STATE_BUD) return; + + Direction dir = Direction.fromId(data & DIRECTION_MASK); + + TilePos anchorPos = tilePos.add(dir.opposite(), new TilePos()); + if (world.getBlockType(anchorPos) != Blocks.RUBYGLASS_NODE) return; + + TilePos growthPos = tilePos.add(dir, new TilePos()); + if (world.getBlockType(growthPos) != Blocks.AIR) return; + + world.setBlockTypeDataNotify(growthPos, this.block, STATE_TOP | dir.id); + world.setBlockDataNotify(tilePos, STATE_BOTTOM | dir.id); + } + @Override public boolean canPlaceOnSide(final @NotNull World world, final @NotNull TilePosc tilePos, final @NotNull Side side) { TilePos anchorPos = tilePos.add(side.direction().opposite(), new TilePos()); @@ -209,11 +238,26 @@ public class BlockLogicGrowthRubyglass extends BlockLogic implements BlockLogic. }; } + @Override + public void onHarvest(final @NotNull World world, final @NotNull Player player, final @NotNull TilePosc tilePos, final int data, final @Nullable TileEntity tileEntity) { + final @Nullable ItemStack heldStack = player.inventory.getCurrentItem(); + final @Nullable Item heldItem = heldStack != null ? heldStack.getItem() : null; + + if (heldItem instanceof ItemToolPickaxe || heldItem instanceof ItemToolShears || (heldItem != null && heldItem.isSilkTouch())) { + super.onHarvest(world, player, tilePos, data, tileEntity); + return; + } + + player.addStat(this.block.getStat(StatList.STAT_MINED), 1); + this.dropWithCause(world, EnumDropCause.IMPROPER_TOOL, tilePos, data, tileEntity, player); + } + @Override public ItemStack @Nullable [] getBreakResult(@NotNull World world, @NotNull EnumDropCause dropCause, int data, @Nullable TileEntity tileEntity) { if (dropCause == EnumDropCause.PICK_BLOCK) { return new ItemStack[]{this.block.getDefaultStack()}; - } else if (dropCause == EnumDropCause.SILK_TOUCH) { + } else if (dropCause == EnumDropCause.SILK_TOUCH || dropCause == EnumDropCause.PROPER_TOOL + || dropCause == EnumDropCause.WORLD || dropCause == EnumDropCause.PISTON_CRUSH) { int shape = data & SHAPE_MASK; if (shape == STATE_BOTTOM) { diff --git a/game/core/src/main/java/net/minecraft/core/block/Blocks.java b/game/core/src/main/java/net/minecraft/core/block/Blocks.java index 2ec2342a0..228e9804a 100644 --- a/game/core/src/main/java/net/minecraft/core/block/Blocks.java +++ b/game/core/src/main/java/net/minecraft/core/block/Blocks.java @@ -1159,8 +1159,9 @@ public final class Blocks { .withSound(BlockSounds.STONE).withHardness(1.5F).withOverrideColor(MaterialColor.rubyglass) .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.CHAINLINK_FENCES_CONNECT, BlockTags.PREVENT_MOB_SPAWNS); public static final @NotNull Block RUBYGLASS_GROWTH = register("rubyglass.growth", "minecraft:block/rubyglass_growth", 825, block -> new BlockLogicGrowthRubyglass(block, Materials.PLANT)) - .withSound(BlockSounds.CRYSTAL).withOverrideColor(MaterialColor.rubyglass) - .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.SHEARS_DO_SILK_TOUCH); + .withSound(BlockSounds.CRYSTAL).withHardness(1F).withOverrideColor(MaterialColor.rubyglass) + .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.SHEARS_DO_SILK_TOUCH) + .setTicking(true); public static final @NotNull Block RUBYGLASS_NODE = register("rubyglass.node", "minecraft:block/rubyglass_node", 826, (b) -> new BlockLogicNodeRubyglass(b)) .withSound(BlockSounds.CRYSTAL).withHardness(3F) .withTags(BlockTags.MINEABLE_BY_PICKAXE) @@ -1554,6 +1555,12 @@ public final class Blocks { public static final @NotNull Block PRESSURE_PLATE_BRIMSTONE = register("pressureplate.brimstone", "minecraft:block/pressure_plate_brimstone", 1117, (b) -> new BlockLogicPressurePlate<>(b, Mob.class, Materials.STONE)) .withSound(BlockSounds.STONE).withHardness(0.9F) .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS); + public static final @NotNull Block PRESSURE_PLATE_MARBLE = register("pressureplate.marble", "minecraft:block/pressure_plate_marble", 1118, (b) -> new BlockLogicPressurePlate<>(b, Mob.class, Materials.MARBLE)) + .withSound(BlockSounds.STONE).withHardness(0.5F) + .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS); + public static final @NotNull Block PRESSURE_PLATE_SLATE = register("pressureplate.slate", "minecraft:block/pressure_plate_slate", 1119, (b) -> new BlockLogicPressurePlate<>(b, Mob.class, Materials.SLATE)) + .withSound(BlockSounds.STONE).withHardness(0.5F) + .withTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS); public static final @NotNull Block BUTTON_BASALT = register("button.basalt", "minecraft:block/button_basalt", 1120, BlockLogicButton::new) .withSound(BlockSounds.STONE).withHardness(0.5F) @@ -1579,6 +1586,12 @@ public final class Blocks { public static final @NotNull Block BUTTON_BRIMSTONE = register("button.brimstone", "minecraft:block/button_brimstone", 1127, BlockLogicButton::new) .withSound(BlockSounds.STONE).withHardness(0.9F) .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS); + public static final @NotNull Block BUTTON_MARBLE = register("button.marble", "minecraft:block/button_marble", 1128, BlockLogicButton::new) + .withSound(BlockSounds.STONE).withHardness(0.5F) + .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS); + public static final @NotNull Block BUTTON_SLATE = register("button.slate", "minecraft:block/button_slate", 1129, BlockLogicButton::new) + .withSound(BlockSounds.STONE).withHardness(0.5F) + .withTags(BlockTags.BROKEN_BY_FLUIDS, BlockTags.MINEABLE_BY_PICKAXE, BlockTags.PREVENT_MOB_SPAWNS); public static Block register(String key, String namespaceId, int id, BlockLogicSupplier logicSupplier) { Block container = new Block<>(id, key, namespaceId, logicSupplier); diff --git a/game/core/src/main/java/net/minecraft/core/data/registry/Registries.java b/game/core/src/main/java/net/minecraft/core/data/registry/Registries.java index 1a2e889c2..63d7186fb 100644 --- a/game/core/src/main/java/net/minecraft/core/data/registry/Registries.java +++ b/game/core/src/main/java/net/minecraft/core/data/registry/Registries.java @@ -82,6 +82,7 @@ public class Registries extends Registry> { ITEM_GROUPS.register("minecraft:stones", stackListOf(Blocks.STONE, Blocks.BASALT, Blocks.LIMESTONE, Blocks.GRANITE, Blocks.PERMAFROST, Blocks.NETHERRACK, Blocks.GLOOMSTONE)); ITEM_GROUPS.register("minecraft:cobblestones", stackListOf(Blocks.COBBLE_STONE, Blocks.COBBLE_BASALT, Blocks.COBBLE_LIMESTONE, Blocks.COBBLE_GRANITE, Blocks.COBBLE_PERMAFROST, Blocks.COBBLE_NETHERRACK, Blocks.COBBLE_GLOOMSTONE)); + ITEM_GROUPS.register("minecraft:mossy_cobblestones", stackListOf(Blocks.COBBLE_STONE_MOSSY, Blocks.COBBLE_BASALT_MOSSY, Blocks.COBBLE_LIMESTONE_MOSSY, Blocks.COBBLE_GRANITE_MOSSY)); ITEM_GROUPS.register("minecraft:grasses", stackListOf(Blocks.GRASS, Blocks.GRASS_RETRO)); ITEM_GROUPS.register("minecraft:dirt", stackListOf(Blocks.DIRT, Blocks.DIRT_SCORCHED)); ITEM_GROUPS.register("minecraft:trommel_dirt", stackListOf(Blocks.DIRT, Blocks.DIRT_SCORCHED, Blocks.GRASS, Blocks.GRASS_RETRO, Blocks.GRASS_SCORCHED, Blocks.PATH_DIRT, Blocks.FARMLAND_DIRT)); @@ -133,6 +134,8 @@ public class Registries extends Registry> { buttonsList.add(Blocks.BUTTON_GLOOMSTONE.getDefaultStack()); buttonsList.add(Blocks.BUTTON_SANDSTONE.getDefaultStack()); buttonsList.add(Blocks.BUTTON_BRIMSTONE.getDefaultStack()); + buttonsList.add(Blocks.BUTTON_MARBLE.getDefaultStack()); + buttonsList.add(Blocks.BUTTON_SLATE.getDefaultStack()); pressurePlatesList.add(Blocks.PRESSURE_PLATE_STONE.getDefaultStack()); pressurePlatesList.add(Blocks.PRESSURE_PLATE_BASALT.getDefaultStack()); pressurePlatesList.add(Blocks.PRESSURE_PLATE_LIMESTONE.getDefaultStack()); @@ -142,6 +145,8 @@ public class Registries extends Registry> { pressurePlatesList.add(Blocks.PRESSURE_PLATE_GLOOMSTONE.getDefaultStack()); pressurePlatesList.add(Blocks.PRESSURE_PLATE_SANDSTONE.getDefaultStack()); pressurePlatesList.add(Blocks.PRESSURE_PLATE_BRIMSTONE.getDefaultStack()); + pressurePlatesList.add(Blocks.PRESSURE_PLATE_MARBLE.getDefaultStack()); + pressurePlatesList.add(Blocks.PRESSURE_PLATE_SLATE.getDefaultStack()); pressurePlatesList.add(Blocks.PRESSURE_PLATE_COBBLE_STONE.getDefaultStack()); pressurePlatesList.add(Blocks.PRESSURE_PLATE_COBBLE_BASALT.getDefaultStack()); pressurePlatesList.add(Blocks.PRESSURE_PLATE_COBBLE_LIMESTONE.getDefaultStack()); diff --git a/game/core/src/main/java/net/minecraft/core/player/inventory/CreativeMenuContents.java b/game/core/src/main/java/net/minecraft/core/player/inventory/CreativeMenuContents.java index ee8b0f514..88a17f3af 100644 --- a/game/core/src/main/java/net/minecraft/core/player/inventory/CreativeMenuContents.java +++ b/game/core/src/main/java/net/minecraft/core/player/inventory/CreativeMenuContents.java @@ -247,6 +247,9 @@ public final class CreativeMenuContents { addBlock(list, Blocks.SLATE_POLISHED); addBlock(list, Blocks.SLAB_SLATE_POLISHED); list.add(new ItemStack(Items.STATUE_SLATE)); + + addBlock(list, Blocks.BUTTON_SLATE); + addBlock(list, Blocks.PRESSURE_PLATE_SLATE); newPage(list); @@ -397,6 +400,9 @@ public final class CreativeMenuContents { list.add(new ItemStack(Items.STATUE_MARBLE)); list.add(new ItemStack(Items.STATUE_PIGMAN)); + addBlock(list, Blocks.BUTTON_MARBLE); + addBlock(list, Blocks.PRESSURE_PLATE_MARBLE); + newPage(list); } diff --git a/game/core/src/main/resources/assets/minecraft/lang/en_US/tile.lang b/game/core/src/main/resources/assets/minecraft/lang/en_US/tile.lang index 87c96be42..b0ad03edd 100644 --- a/game/core/src/main/resources/assets/minecraft/lang/en_US/tile.lang +++ b/game/core/src/main/resources/assets/minecraft/lang/en_US/tile.lang @@ -737,6 +737,10 @@ tile.button.sandstone.name=Sandstone Button tile.button.sandstone.desc=Emits a brief redstone signal when pressed. tile.button.brimstone.name=Brimstone Button tile.button.brimstone.desc=Emits a brief redstone signal when pressed. +tile.button.marble.name=Marble Button +tile.button.marble.desc=Emits a brief redstone signal when pressed. +tile.button.slate.name=Slate Button +tile.button.slate.desc=Emits a brief redstone signal when pressed. tile.button.planks.name=Wooden Button tile.button.planks.desc=Emits a brief redstone signal when pressed. @@ -797,6 +801,10 @@ tile.pressureplate.sandstone.name=Sandstone Pressure Plate tile.pressureplate.sandstone.desc=Emits a redstone signal when living creatures step on it. tile.pressureplate.brimstone.name=Brimstone Pressure Plate tile.pressureplate.brimstone.desc=Emits a redstone signal when living creatures step on it. +tile.pressureplate.marble.name=Marble Pressure Plate +tile.pressureplate.marble.desc=Emits a redstone signal when living creatures step on it. +tile.pressureplate.slate.name=Slate Pressure Plate +tile.pressureplate.slate.desc=Emits a redstone signal when living creatures step on it. tile.pressureplate.planks.oak.name=Wooden Pressure Plate tile.pressureplate.planks.oak.desc=Emits a redstone signal when anything steps on it. diff --git a/gradle.properties b/gradle.properties index 7b5e78a90..1b34def90 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,6 +3,6 @@ org.gradle.daemon = true org.gradle.caching = true bta.group = net.minecraft -bta.version = 8.0 +bta.version = 8.0.1 bta.assetPackFormat = 4 bta.buildChannel = BuildChannel.DEVELOPMENT \ No newline at end of file diff --git a/util/datagen/build.gradle.kts b/util/datagen/build.gradle.kts index e416c8b22..573986482 100644 --- a/util/datagen/build.gradle.kts +++ b/util/datagen/build.gradle.kts @@ -32,6 +32,16 @@ val runDatagen by tasks.registering(JavaExec::class) { args = listOf("--output", recipesDir.toString()) } +val runTrommelReport by tasks.registering(JavaExec::class) { + group = "bta.generator" + description = "Sieves stacks of input through every trommel recipe and prints their loot distribution" + + outputs.upToDateWhen { false } + + mainClass.set("net.minecraft.datagen.TrommelYieldReport") + classpath = sourceSets["main"].runtimeClasspath +} + tasks.named("jar", Jar::class) { duplicatesStrategy = DuplicatesStrategy.INCLUDE; from(sourceSets["generated"].resources) diff --git a/util/datagen/src/main/java/net/minecraft/datagen/TrommelGenerator.java b/util/datagen/src/main/java/net/minecraft/datagen/TrommelGenerator.java index 81de6c796..45b93b3d5 100644 --- a/util/datagen/src/main/java/net/minecraft/datagen/TrommelGenerator.java +++ b/util/datagen/src/main/java/net/minecraft/datagen/TrommelGenerator.java @@ -31,7 +31,7 @@ public class TrommelGenerator { RecipeBuilder.Trommel(RecipesGenerator.CORE_NAMESPACE) .setInput(Blocks.MUD) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.BONE)), 4) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.STRING), 1, 3), 2) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.STRING), 1, 3), 5) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.SLIMEBALL), 1, 4), 0.5) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.CLOTH), 1, 2), 0.5) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.CHAINLINK), 1), 0.25) @@ -46,17 +46,18 @@ public class TrommelGenerator { .addEntry(new WeightedRandomLootObject(new ItemStack(Items.AMMO_PEBBLE), 1, 4), 15) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.ORE_RAW_IRON), 1, 2), 5) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.DYE,1, DyeColor.BLUE.itemMeta), 2, 6), 5) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.DUST_REDSTONE), 2, 4), 4) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.QUARTZ), 1), 0.5) .create("gravel"); RecipeBuilder.Trommel(RecipesGenerator.CORE_NAMESPACE) .setInput(Blocks.DIRT_SCORCHED_RICH) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.ORE_RAW_GOLD), 1, 2), 10) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.ORE_RAW_IRON), 1, 2), 15) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.QUARTZ), 1, 4), 25) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.OLIVINE), 1, 4), 25) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.DYE,1, DyeColor.BLUE.itemMeta), 2, 4), 20) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.CLAY), 4, 8), 10) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.ORE_RAW_GOLD), 1, 2), 17) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.ORE_RAW_IRON), 1, 2), 17) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.QUARTZ), 1, 4), 24) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.OLIVINE), 1, 4), 24) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.DYE,1, DyeColor.BLUE.itemMeta), 1, 4), 17) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.CLAY), 4, 8), 8) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.AMMO_PEBBLE), 1, 5), 5) .create("rich_dirt"); @@ -66,6 +67,7 @@ public class TrommelGenerator { .addEntry(new WeightedRandomLootObject(new ItemStack(Items.CLAY), 2, 5), 20) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.AMMO_PEBBLE), 1, 3), 15) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.BONE), 1, 2), 10) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.DUST_REDSTONE), 2, 4), 4) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.FLINT), 1, 2), 5) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.OLIVINE), 1), 5) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.ORE_RAW_GOLD), 1), 0.5) @@ -78,7 +80,7 @@ public class TrommelGenerator { .addEntry(new WeightedRandomLootObject(new ItemStack(Items.ORE_RAW_GOLD), 1), 2) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.ORE_RAW_IRON), 1), 1) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.DUST_GLOWSTONE), 1, 6), 5) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.NETHERCOAL), 1), 2) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.NETHERCOAL), 1), 3) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.AMMO_PEBBLE), 1, 2), 15) .create("soulsand"); @@ -90,8 +92,7 @@ public class TrommelGenerator { .addEntry(new WeightedRandomLootObject(new ItemStack(Items.DUST_GLOWSTONE), 1, 2), 10) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.FLINT), 1, 2), 5) .addEntry(new WeightedRandomLootObject(new ItemStack(Items.SULFUR), 1, 2), 10) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.NETHERCOAL), 1), 5) - .addEntry(new WeightedRandomLootObject(new ItemStack(Items.ORE_RAW_GOLD), 1), 0.5) + .addEntry(new WeightedRandomLootObject(new ItemStack(Items.RUBYGLASS), 1), 2.5) .create("brimsand"); RecipeBuilder.Trommel(RecipesGenerator.CORE_NAMESPACE) diff --git a/util/datagen/src/main/java/net/minecraft/datagen/TrommelYieldReport.java b/util/datagen/src/main/java/net/minecraft/datagen/TrommelYieldReport.java new file mode 100644 index 000000000..610d91241 --- /dev/null +++ b/util/datagen/src/main/java/net/minecraft/datagen/TrommelYieldReport.java @@ -0,0 +1,213 @@ +package net.minecraft.datagen; + +import net.minecraft.core.WeightedRandomBag; +import net.minecraft.core.WeightedRandomLootObject; +import net.minecraft.core.block.Blocks; +import net.minecraft.core.data.registry.Registries; +import net.minecraft.core.data.registry.recipe.RecipeGroup; +import net.minecraft.core.data.registry.recipe.RecipeSymbol; +import net.minecraft.core.data.registry.recipe.entry.RecipeEntryTrommel; +import net.minecraft.core.item.Item; +import net.minecraft.core.item.ItemStack; +import net.minecraft.core.item.Items; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * Sieves a number of stacks of input through every trommel recipe declared by {@link TrommelGenerator} + * and prints the resulting loot distribution. + */ +public class TrommelYieldReport { + private static final int STACK_SIZE = 64; + private static final int STACKS_SIEVED = 27; + + private final int stacksSieved; + private final int passes; + private final long seed; + + public TrommelYieldReport(int stacksSieved, long seed) { + this.stacksSieved = stacksSieved; + this.passes = stacksSieved * STACK_SIZE; + this.seed = seed; + } + + public static void main(String @NotNull [] args) { + int stacksSieved = STACKS_SIEVED; + long seed = new Random().nextLong(); + + int pointer = 0; + while (pointer < args.length) { + switch (args[pointer]) { + case "--stacks": { + stacksSieved = Integer.parseInt(args[pointer + 1]); + pointer++; + pointer++; + break; + } + case "--seed": { + seed = Long.parseLong(args[pointer + 1]); + pointer++; + pointer++; + break; + } + default: + pointer++; + } + } + + Blocks.init(); + Items.init(); + new Registries(); + + TrommelGenerator.generate(); + + new TrommelYieldReport(stacksSieved, seed).run(); + } + + public void run() { + RecipeGroup trommelRecipes = Registries.RECIPES.TROMMEL; + check(!trommelRecipes.getAllRecipes().isEmpty(), "No trommel recipes were generated!"); + + System.out.printf("Sieving %s stacks through every trommel recipe with seed %s%n", this.stacksSieved, this.seed); + + Random random = new Random(this.seed); + + for (RecipeEntryTrommel recipe : trommelRecipes) { + sieve(trommelRecipes.getKey(recipe), recipe, random); + } + } + + private void sieve(String recipeId, RecipeEntryTrommel recipe, Random random) { + WeightedRandomBag bag = recipe.getOutput(); + + List results = new ArrayList<>(); + double totalWeight = 0; + + for (WeightedRandomBag.Entry entry : bag.getEntriesWithWeights()) { + + results.add(new Result(entry.getObject(), entry.getWeight())); + totalWeight += entry.getWeight(); + + } + + check(!results.isEmpty(), "Trommel recipe '" + recipeId + "' has no entries!"); + + for (int pass = 0; pass < this.passes; pass++) { + + WeightedRandomLootObject loot = bag.getRandom(random); + check(loot != null, "Trommel recipe '" + recipeId + "' rolled no loot object!"); + + ItemStack stack = loot.getItemStack(random); + check(stack != null, "Trommel recipe '" + recipeId + "' rolled a null stack!"); + + Result result = find(results, stack); + check(result != null, "Trommel recipe '" + recipeId + "' rolled undeclared output " + describe(stack) + "!"); + + result.record(recipeId, stack); + } + + print(recipeId, recipe, results, totalWeight); + } + + private Result find(List results, ItemStack stack) { + for (Result result : results) { + if (result.matches(stack)) return result; + } + + return null; + } + + private void print(String recipeId, RecipeEntryTrommel recipe, List results, double totalWeight) { + System.out.println(); + + System.out.printf("=== trommel/%s - input %s - %s items sieved (%s stacks) ===%n", + recipeId, describe(recipe.getInput()), this.passes, this.stacksSieved); + + int totalRolls = 0; + int totalItems = 0; + + for (Result result : results) { + printRow(result.name(), + String.format("weight %6.2f (%6.2f%%)", result.weight, (result.weight / totalWeight) * 100), + result.rolls, + result.items); + totalRolls += result.rolls; + totalItems += result.items; + } + + printRow("TOTAL", "", totalRolls, totalItems); + + check(totalRolls == this.passes, "Trommel recipe '" + recipeId + "' did not sieve every input item!"); + } + + private void printRow(String name, String weight, int rolls, int items) { + System.out.printf("\t%-30s %-22s rolled %4sx (%6.2f%%) - %5s items (%5.2f stacks)%n", + name, weight, rolls, (rolls / (float) this.passes) * 100, items, items / (float) STACK_SIZE); + } + + private static void check(boolean condition, String message) { + if (!condition) throw new IllegalStateException(message); + } + + private static String describe(RecipeSymbol input) { + if (input.getStack() != null) return describe(input.getStack()); + return input.getItemGroup(); + } + + private static String describe(ItemStack stack) { + Item item = stack.getItem(); + String name = item.namespaceID.toString(); + return stack.getMetadata() != 0 ? name + "@" + stack.getMetadata() : name; + } + + private static class Result { + + private final WeightedRandomLootObject loot; + private final double weight; + private int rolls; + private int items; + + public Result(WeightedRandomLootObject loot, double weight) { + this.loot = loot; + this.weight = weight; + } + + public boolean matches(ItemStack stack) { + + ItemStack declared = this.loot.getDefinedItemStack(); + + if (declared == null || declared.itemID != stack.itemID) return false; + + if (this.loot.isRandomMeta()) { + return stack.getMetadata() >= this.loot.getMinMeta() && stack.getMetadata() <= this.loot.getMaxMeta(); + } + + return declared.getMetadata() == stack.getMetadata(); + } + + public void record(String recipeId, ItemStack stack) { + + if (this.loot.isRandomYield()) { + check(stack.stackSize >= this.loot.getMinYield() && stack.stackSize <= this.loot.getMaxYield(), + "Trommel recipe '" + recipeId + "' rolled " + stack.stackSize + " " + name() + ", outside of its declared yield of " + + this.loot.getMinYield() + "-" + this.loot.getMaxYield() + "!"); + } + + else { + check(stack.stackSize == this.loot.getFixedYield(), + "Trommel recipe '" + recipeId + "' rolled the wrong amount of " + name() + "!"); + } + + this.rolls++; + this.items += stack.stackSize; + } + + public String name() { + ItemStack declared = this.loot.getDefinedItemStack(); + return declared == null ? "NULL" : describe(declared); + } + } +} diff --git a/util/datagen/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java b/util/datagen/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java index 828a9b86e..f46c93caa 100644 --- a/util/datagen/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java +++ b/util/datagen/src/main/java/net/minecraft/datagen/WorkbenchGenerator.java @@ -98,7 +98,6 @@ class WorkbenchGenerator { .addInput(Items.PAPER) .addInput(Items.PAPER) .addInput(Items.PAPER) - .addInput(Items.LEATHER) .create("book", Items.BOOK.getDefaultStack()); RecipeBuilder.Shaped(CORE_NAMESPACE) @@ -304,7 +303,7 @@ class WorkbenchGenerator { "#X", "X#") .addInput('#', Items.AMMO_PEBBLE) - .addInput('X', Blocks.OBSIDIAN) + .addInput('X', Blocks.SOULSAND) .create("pebbles_to_gloomstone", new ItemStack(Blocks.COBBLE_GLOOMSTONE, 2)); }); @@ -316,13 +315,48 @@ class WorkbenchGenerator { .addInput('X', Blocks.ICE) .create("perma_ice", new ItemStack(Blocks.PERMAICE, 2)); - RecipeBuilder.Shaped(CORE_NAMESPACE) - .setShape( - "#X", - "X#") - .addInput('#', Items.AMMO_PEBBLE) - .addInput('X', Items.FLINT) - .create("gravel_from_flint_and_pebbles", Blocks.GRAVEL.getDefaultStack()); + RecipeBuilder.consolidationGroup("aggregates", () -> { + RecipeBuilder.Shaped(CORE_NAMESPACE) + .setShape( + "#X", + "X#") + .addInput('#', Items.AMMO_PEBBLE) + .addInput('X', Items.FLINT) + .create("gravel_from_flint_and_pebbles", Blocks.GRAVEL.getDefaultStack()); + + RecipeBuilder.Shaped(CORE_NAMESPACE) + .setShape( + "#X", + "X#") + .addInput('#', Items.QUARTZ) + .addInput('X', Items.FLINT) + .create("sand_from_flint_and_quartz", Blocks.SAND.getDefaultStack()); + + RecipeBuilder.Shaped(CORE_NAMESPACE) + .setShape( + "#X", + "X#") + .addInput('#', Blocks.COBBLE_NETHERRACK) + .addInput('X', Items.FLINT) + .create("soulsand_from_flint_and_cobble_netherrack", Blocks.SOULSAND.getDefaultStack()); + + RecipeBuilder.Shaped(CORE_NAMESPACE) + .setShape( + "#X", + "X#") + .addInput('#', Items.COAL, 0) + .addInput('X', Items.FLINT) + .create("brimsand_from_flint_and_coal", Blocks.BRIMSAND.getDefaultStack()); + + RecipeBuilder.Shaped(CORE_NAMESPACE) + .setShape( + "#X", + "X#") + .addInput('#', Items.COAL, 1) + .addInput('X', Items.FLINT) + .create("brimsand_from_flint_and_charcoal", Blocks.BRIMSAND.getDefaultStack()); + }); + RecipeBuilder.Shaped(CORE_NAMESPACE) .setShape( @@ -1329,6 +1363,8 @@ class WorkbenchGenerator { plate.addInput('#', Blocks.GLOOMSTONE).create("gloomstone_pressure_plate", Blocks.PRESSURE_PLATE_GLOOMSTONE.getDefaultStack()); plate.addInput('#', Blocks.SANDSTONE).create("sandstone_pressure_plate", Blocks.PRESSURE_PLATE_SANDSTONE.getDefaultStack()); plate.addInput('#', Blocks.BRIMSTONE).create("brimstone_pressure_plate", Blocks.PRESSURE_PLATE_BRIMSTONE.getDefaultStack()); + plate.addInput('#', Blocks.MARBLE).create("marble_pressure_plate", Blocks.PRESSURE_PLATE_MARBLE.getDefaultStack()); + plate.addInput('#', Blocks.SLATE).create("slate_pressure_plate", Blocks.PRESSURE_PLATE_SLATE.getDefaultStack()); plate.addInput('#', Blocks.COBBLE_STONE).create("cobble_stone_pressure_plate", Blocks.PRESSURE_PLATE_COBBLE_STONE.getDefaultStack()); plate.addInput('#', Blocks.COBBLE_BASALT).create("cobble_basalt_pressure_plate", Blocks.PRESSURE_PLATE_COBBLE_BASALT.getDefaultStack()); @@ -1374,12 +1410,9 @@ class WorkbenchGenerator { .addInput('R', Items.DUST_REDSTONE) .create("steel_piston", Blocks.PISTON_BASE_STEEL.getDefaultStack()); - RecipeBuilder.Shaped(CORE_NAMESPACE) - .setShape( - "S", - "P") - .addInput('S', Items.SLIMEBALL) - .addInput('P', Blocks.PISTON_BASE) + RecipeBuilder.Shapeless(CORE_NAMESPACE) + .addInput(Items.SLIMEBALL) + .addInput(Blocks.PISTON_BASE) .create("sticky_piston", Blocks.PISTON_BASE_STICKY.getDefaultStack()); RecipeBuilder.Shaped(CORE_NAMESPACE) @@ -1401,6 +1434,8 @@ class WorkbenchGenerator { RecipeBuilder.Shapeless(CORE_NAMESPACE).addInput(Blocks.GLOOMSTONE).create("gloomstone_button", new ItemStack(Blocks.BUTTON_GLOOMSTONE, buttonYield)); RecipeBuilder.Shapeless(CORE_NAMESPACE).addInput(Blocks.SANDSTONE).create("sandstone_button", new ItemStack(Blocks.BUTTON_SANDSTONE, buttonYield)); RecipeBuilder.Shapeless(CORE_NAMESPACE).addInput(Blocks.BRIMSTONE).create("brimstone_button", new ItemStack(Blocks.BUTTON_BRIMSTONE, buttonYield)); + RecipeBuilder.Shapeless(CORE_NAMESPACE).addInput(Blocks.MARBLE).create("marble_button", new ItemStack(Blocks.BUTTON_MARBLE, buttonYield)); + RecipeBuilder.Shapeless(CORE_NAMESPACE).addInput(Blocks.SLATE).create("slate_button", new ItemStack(Blocks.BUTTON_SLATE, buttonYield)); RecipeBuilder.Shapeless(CORE_NAMESPACE).addInput(Blocks.PLANKS_OAK).create("wooden_button", new ItemStack(Blocks.BUTTON_PLANKS_OAK, buttonYield)); for (DyeColor color : DyeColor.values()) { RecipeBuilder.Shapeless(CORE_NAMESPACE).addInput(Blocks.PLANKS_OAK_PAINTED, color.blockMeta).create(color.colorID + "_wooden_button", new ItemStack(Blocks.BUTTON_PLANKS_PAINTED, buttonYield, color.blockMeta << 4)); @@ -1515,7 +1550,7 @@ class WorkbenchGenerator { "###", "CQB", "###") - .addInput('#', Blocks.COBBLE_STONE_MOSSY) + .addInput('#', "minecraft:mossy_cobblestones") .addInput('C', Blocks.CONDUIT) .addInput('Q', Items.QUARTZ) .addInput('B', Items.BONE)