From 0c3de1087eaab54203054d8255f7784b28e642b4 Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Sat, 22 Oct 2022 11:55:30 +0100 Subject: [PATCH] Switch to vanilla's model data generators In some ways this isn't as nice as the Forge version (requires ATs, doesn't check texture/model existence). However, it's more multi-loader friendly and in some cases has much less boilerplate. Blockstate JSON files are incredibly verbose, so we add a custom JSON pretty printer which writes things in a slightly more compact manner. This also changes how turtle upgrades are loaded - we now support standard ResourceLocations (so computercraft:blocks/some_turtle_upgrade) as well as ModelResourceLocations (computercraft:items/some_turtle_upgrade#inventory). I don't think any resource packs need to touch our upgrades, but apologies if this breaks anything. --- build.gradle | 1 + .../computercraft/blockstates/cable.json | 125 ++ .../blockstates/computer_advanced.json | 57 +- .../blockstates/computer_command.json | 57 +- .../blockstates/computer_normal.json | 57 +- .../computercraft/blockstates/disk_drive.json | 16 + .../blockstates/monitor_advanced.json | 1102 ++++------------- .../blockstates/monitor_normal.json | 1036 +++------------- .../computercraft/blockstates/printer.json | 20 + .../computercraft/blockstates/speaker.json | 19 +- .../blockstates/turtle_advanced.json | 19 +- .../blockstates/turtle_normal.json | 19 +- .../blockstates/wired_modem_full.json | 16 +- .../blockstates/wireless_modem_advanced.json | 62 +- .../blockstates/wireless_modem_normal.json | 62 +- .../block/computer_advanced_blinking.json | 4 +- .../models/block/computer_advanced_off.json | 4 +- .../models/block/computer_advanced_on.json | 4 +- .../block/computer_command_blinking.json | 4 +- .../models/block/computer_command_off.json | 4 +- .../models/block/computer_command_on.json | 4 +- .../block/computer_normal_blinking.json | 4 +- .../models/block/computer_normal_off.json | 4 +- .../models/block/computer_normal_on.json | 4 +- .../models/block/disk_drive_empty.json | 8 + .../models/block/disk_drive_full.json | 8 + .../models/block/disk_drive_invalid.json | 8 + .../models/block/monitor_advanced_item.json | 7 +- .../models/block/monitor_normal_item.json | 7 +- .../models/block/printer_both_full.json | 8 + .../models/block/printer_bottom_full.json | 8 + .../models/block/printer_empty.json | 8 + .../models/block/printer_top_full.json | 8 + .../computercraft/models/block/speaker.json | 4 +- .../models/block/turtle_advanced.json | 5 +- .../models/block/turtle_advanced_base.json | 6 - .../block/turtle_crafting_table_left.json | 4 + .../block/turtle_crafting_table_right.json | 4 + .../block/turtle_modem_advanced_off_left.json | 4 + .../turtle_modem_advanced_off_right.json | 4 + .../block/turtle_modem_advanced_on_left.json | 4 + .../block/turtle_modem_advanced_on_right.json | 4 + .../block/turtle_modem_normal_off_left.json | 4 + .../block/turtle_modem_normal_off_right.json | 4 + .../block/turtle_modem_normal_on_left.json | 4 + .../block/turtle_modem_normal_on_right.json | 4 + .../models/block/turtle_normal.json | 5 +- .../models/block/turtle_normal_base.json | 6 - .../models/block/turtle_speaker_left.json | 4 + .../models/block/turtle_speaker_right.json | 4 + .../models/block/wired_modem_full_off.json | 7 +- .../wired_modem_full_off_peripheral.json | 7 +- .../models/block/wired_modem_full_on.json | 7 +- .../block/wired_modem_full_on_peripheral.json | 7 +- .../models/block/wired_modem_off.json | 5 +- .../block/wired_modem_off_peripheral.json | 5 +- .../models/block/wired_modem_on.json | 5 +- .../block/wireless_modem_advanced_off.json | 5 +- .../block/wireless_modem_normal_off.json | 5 +- .../block/wireless_modem_normal_on.json | 5 +- .../models/item/computer_advanced.json | 4 +- .../models/item/computer_command.json | 4 +- .../models/item/computer_normal.json | 4 +- .../computercraft/models/item/disk.json | 4 + .../computercraft/models/item/disk_drive.json | 1 + .../models/item/monitor_advanced.json | 4 +- .../models/item/monitor_normal.json | 4 +- .../pocket_computer_advanced_blinking.json | 8 + .../item/pocket_computer_advanced_on.json | 8 + .../models/item/pocket_computer_colour.json | 7 + .../item/pocket_computer_colour_blinking.json | 8 + .../item/pocket_computer_colour_on.json | 8 + .../item/pocket_computer_normal_blinking.json | 8 + .../item/pocket_computer_normal_on.json | 8 + .../models/item/printed_book.json | 1 + .../models/item/printed_page.json | 1 + .../models/item/printed_pages.json | 1 + .../computercraft/models/item/printer.json | 1 + .../computercraft/models/item/speaker.json | 4 +- .../models/item/treasure_disk.json | 4 + .../models/item/turtle_advanced.json | 4 +- .../models/item/turtle_normal.json | 4 +- .../models/item/wired_modem.json | 4 +- .../models/item/wired_modem_full.json | 4 +- .../models/item/wireless_modem_advanced.json | 4 +- .../models/item/wireless_modem_normal.json | 4 +- .../api/client/TransformedModel.java | 7 + .../computercraft/client/ClientRegistry.java | 32 +- .../render/TileEntityTurtleRenderer.java | 15 +- .../client/render/TurtleSmartItemModel.java | 2 +- .../computercraft/data/BasicCustomLoader.java | 44 - .../data/BlockModelGenerator.java | 473 +++++++ .../data/BlockModelProvider.java | 285 ----- .../dan200/computercraft/data/Generators.java | 2 +- .../data/ItemModelGenerator.java | 109 ++ .../computercraft/data/ModelProvider.java | 122 ++ .../computercraft/data/PrettyJsonWriter.java | 403 ++++++ .../peripheral/modem/wired/BlockCable.java | 12 +- .../peripheral/printer/BlockPrinter.java | 4 +- .../turtle/upgrades/TurtleCraftingTable.java | 6 +- .../shared/turtle/upgrades/TurtleModem.java | 26 +- .../shared/turtle/upgrades/TurtleSpeaker.java | 6 +- .../resources/META-INF/accesstransformer.cfg | 11 + .../computercraft/blockstates/cable.json | 197 --- .../computercraft/blockstates/disk_drive.json | 16 - .../computercraft/blockstates/printer.json | 20 - .../models/block/cable_item.json | 22 - .../models/block/disk_drive_empty.json | 8 - .../models/block/disk_drive_full.json | 8 - .../models/block/disk_drive_invalid.json | 8 - .../models/block/monitor_base.json | 1 + .../models/block/printer_both_full.json | 8 - .../models/block/printer_bottom_full.json | 8 - .../models/block/printer_empty.json | 8 - .../models/block/printer_top_full.json | 8 - .../models/block/turtle_base.json | 1 + .../computercraft/models/item/disk.json | 7 - .../computercraft/models/item/disk_drive.json | 3 - .../pocket_computer_advanced_blinking.json | 8 - .../item/pocket_computer_advanced_on.json | 8 - .../models/item/pocket_computer_colour.json | 7 - .../item/pocket_computer_colour_blinking.json | 8 - .../item/pocket_computer_colour_on.json | 8 - .../item/pocket_computer_normal_blinking.json | 8 - .../item/pocket_computer_normal_on.json | 8 - .../models/item/printed_book.json | 6 - .../models/item/printed_page.json | 6 - .../models/item/printed_pages.json | 6 - .../computercraft/models/item/printer.json | 3 - .../models/item/treasure_disk.json | 7 - .../models/item/turtle_colour.json | 3 - .../item/turtle_crafting_table_left.json | 6 - .../item/turtle_crafting_table_right.json | 6 - .../models/item/turtle_elf_overlay.json | 3 - .../item/turtle_modem_advanced_off_left.json | 6 - .../item/turtle_modem_advanced_off_right.json | 6 - .../item/turtle_modem_advanced_on_left.json | 6 - .../item/turtle_modem_advanced_on_right.json | 6 - .../item/turtle_modem_normal_off_left.json | 6 - .../item/turtle_modem_normal_off_right.json | 6 - .../item/turtle_modem_normal_on_left.json | 6 - .../item/turtle_modem_normal_on_right.json | 6 - .../item/turtle_speaker_upgrade_left.json | 6 - .../item/turtle_speaker_upgrade_right.json | 6 - 144 files changed, 2095 insertions(+), 2970 deletions(-) create mode 100644 src/generated/resources/assets/computercraft/blockstates/cable.json create mode 100644 src/generated/resources/assets/computercraft/blockstates/disk_drive.json create mode 100644 src/generated/resources/assets/computercraft/blockstates/printer.json create mode 100644 src/generated/resources/assets/computercraft/models/block/disk_drive_empty.json create mode 100644 src/generated/resources/assets/computercraft/models/block/disk_drive_full.json create mode 100644 src/generated/resources/assets/computercraft/models/block/disk_drive_invalid.json create mode 100644 src/generated/resources/assets/computercraft/models/block/printer_both_full.json create mode 100644 src/generated/resources/assets/computercraft/models/block/printer_bottom_full.json create mode 100644 src/generated/resources/assets/computercraft/models/block/printer_empty.json create mode 100644 src/generated/resources/assets/computercraft/models/block/printer_top_full.json delete mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_advanced_base.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_crafting_table_left.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_crafting_table_right.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_off_left.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_off_right.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_on_left.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_on_right.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_off_left.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_off_right.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_on_left.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_on_right.json delete mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_normal_base.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_speaker_left.json create mode 100644 src/generated/resources/assets/computercraft/models/block/turtle_speaker_right.json create mode 100644 src/generated/resources/assets/computercraft/models/item/disk.json create mode 100644 src/generated/resources/assets/computercraft/models/item/disk_drive.json create mode 100644 src/generated/resources/assets/computercraft/models/item/pocket_computer_advanced_blinking.json create mode 100644 src/generated/resources/assets/computercraft/models/item/pocket_computer_advanced_on.json create mode 100644 src/generated/resources/assets/computercraft/models/item/pocket_computer_colour.json create mode 100644 src/generated/resources/assets/computercraft/models/item/pocket_computer_colour_blinking.json create mode 100644 src/generated/resources/assets/computercraft/models/item/pocket_computer_colour_on.json create mode 100644 src/generated/resources/assets/computercraft/models/item/pocket_computer_normal_blinking.json create mode 100644 src/generated/resources/assets/computercraft/models/item/pocket_computer_normal_on.json create mode 100644 src/generated/resources/assets/computercraft/models/item/printed_book.json create mode 100644 src/generated/resources/assets/computercraft/models/item/printed_page.json create mode 100644 src/generated/resources/assets/computercraft/models/item/printed_pages.json create mode 100644 src/generated/resources/assets/computercraft/models/item/printer.json create mode 100644 src/generated/resources/assets/computercraft/models/item/treasure_disk.json delete mode 100644 src/main/java/dan200/computercraft/data/BasicCustomLoader.java create mode 100644 src/main/java/dan200/computercraft/data/BlockModelGenerator.java delete mode 100644 src/main/java/dan200/computercraft/data/BlockModelProvider.java create mode 100644 src/main/java/dan200/computercraft/data/ItemModelGenerator.java create mode 100644 src/main/java/dan200/computercraft/data/ModelProvider.java create mode 100644 src/main/java/dan200/computercraft/data/PrettyJsonWriter.java delete mode 100644 src/main/resources/assets/computercraft/blockstates/cable.json delete mode 100644 src/main/resources/assets/computercraft/blockstates/disk_drive.json delete mode 100644 src/main/resources/assets/computercraft/blockstates/printer.json delete mode 100644 src/main/resources/assets/computercraft/models/block/cable_item.json delete mode 100644 src/main/resources/assets/computercraft/models/block/disk_drive_empty.json delete mode 100644 src/main/resources/assets/computercraft/models/block/disk_drive_full.json delete mode 100644 src/main/resources/assets/computercraft/models/block/disk_drive_invalid.json delete mode 100644 src/main/resources/assets/computercraft/models/block/printer_both_full.json delete mode 100644 src/main/resources/assets/computercraft/models/block/printer_bottom_full.json delete mode 100644 src/main/resources/assets/computercraft/models/block/printer_empty.json delete mode 100644 src/main/resources/assets/computercraft/models/block/printer_top_full.json delete mode 100644 src/main/resources/assets/computercraft/models/item/disk.json delete mode 100644 src/main/resources/assets/computercraft/models/item/disk_drive.json delete mode 100644 src/main/resources/assets/computercraft/models/item/pocket_computer_advanced_blinking.json delete mode 100644 src/main/resources/assets/computercraft/models/item/pocket_computer_advanced_on.json delete mode 100644 src/main/resources/assets/computercraft/models/item/pocket_computer_colour.json delete mode 100644 src/main/resources/assets/computercraft/models/item/pocket_computer_colour_blinking.json delete mode 100644 src/main/resources/assets/computercraft/models/item/pocket_computer_colour_on.json delete mode 100644 src/main/resources/assets/computercraft/models/item/pocket_computer_normal_blinking.json delete mode 100644 src/main/resources/assets/computercraft/models/item/pocket_computer_normal_on.json delete mode 100644 src/main/resources/assets/computercraft/models/item/printed_book.json delete mode 100644 src/main/resources/assets/computercraft/models/item/printed_page.json delete mode 100644 src/main/resources/assets/computercraft/models/item/printed_pages.json delete mode 100644 src/main/resources/assets/computercraft/models/item/printer.json delete mode 100644 src/main/resources/assets/computercraft/models/item/treasure_disk.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_colour.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_crafting_table_left.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_crafting_table_right.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_elf_overlay.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_off_left.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_off_right.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_on_left.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_on_right.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_modem_normal_off_left.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_modem_normal_off_right.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_modem_normal_on_left.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_modem_normal_on_right.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_speaker_upgrade_left.json delete mode 100644 src/main/resources/assets/computercraft/models/item/turtle_speaker_upgrade_right.json diff --git a/build.gradle b/build.gradle index ea6724851..6b248a47d 100644 --- a/build.gradle +++ b/build.gradle @@ -72,6 +72,7 @@ data { workingDirectory project.file('run') args '--mod', 'computercraft', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + property("cct.pretty-json", "true") } testClient { diff --git a/src/generated/resources/assets/computercraft/blockstates/cable.json b/src/generated/resources/assets/computercraft/blockstates/cable.json new file mode 100644 index 000000000..4c06c8afe --- /dev/null +++ b/src/generated/resources/assets/computercraft/blockstates/cable.json @@ -0,0 +1,125 @@ +{ + "multipart": [ + { + "when": { + "OR": [ + {"east": "false", "north": "false", "south": "false", "cable": "true", "up": "true", "west": "false"}, + {"down": "true", "east": "false", "north": "false", "south": "false", "cable": "true", "west": "false"} + ] + }, + "apply": {"model": "computercraft:block/cable_core_facing", "x": 90} + }, + { + "when": { + "OR": [ + { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "cable": "true", + "up": "false", + "west": "false" + }, + {"down": "false", "east": "false", "north": "true", "cable": "true", "up": "false", "west": "false"}, + {"down": "false", "east": "false", "south": "true", "cable": "true", "up": "false", "west": "false"} + ] + }, + "apply": {"model": "computercraft:block/cable_core_facing", "y": 0} + }, + { + "when": { + "OR": [ + {"down": "false", "east": "true", "north": "false", "south": "false", "cable": "true", "up": "false"}, + {"down": "false", "north": "false", "south": "false", "cable": "true", "up": "false", "west": "true"} + ] + }, + "apply": {"model": "computercraft:block/cable_core_facing", "y": 90} + }, + { + "when": { + "OR": [ + {"down": "true", "north": "true", "cable": "true"}, + {"down": "true", "south": "true", "cable": "true"}, + {"down": "true", "cable": "true", "west": "true"}, + {"down": "true", "east": "true", "cable": "true"}, + {"north": "true", "cable": "true", "up": "true"}, + {"south": "true", "cable": "true", "up": "true"}, + {"cable": "true", "up": "true", "west": "true"}, + {"east": "true", "cable": "true", "up": "true"}, + {"north": "true", "cable": "true", "west": "true"}, + {"east": "true", "north": "true", "cable": "true"}, + {"south": "true", "cable": "true", "west": "true"}, + {"east": "true", "south": "true", "cable": "true"} + ] + }, + "apply": {"model": "computercraft:block/cable_core_any"} + }, + {"when": {"down": "true"}, "apply": {"model": "computercraft:block/cable_arm", "x": 270, "y": 0}}, + {"when": {"up": "true"}, "apply": {"model": "computercraft:block/cable_arm", "x": 90, "y": 0}}, + {"when": {"north": "true"}, "apply": {"model": "computercraft:block/cable_arm", "x": 0, "y": 180}}, + {"when": {"south": "true"}, "apply": {"model": "computercraft:block/cable_arm", "x": 0, "y": 0}}, + {"when": {"west": "true"}, "apply": {"model": "computercraft:block/cable_arm", "x": 0, "y": 90}}, + {"when": {"east": "true"}, "apply": {"model": "computercraft:block/cable_arm", "x": 0, "y": 270}}, + {"when": {"modem": "down_off"}, "apply": {"model": "computercraft:block/wired_modem_off", "x": 90, "y": 0}}, + { + "when": {"modem": "down_off_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_off_peripheral", "x": 90, "y": 0} + }, + {"when": {"modem": "down_on"}, "apply": {"model": "computercraft:block/wired_modem_on", "x": 90, "y": 0}}, + { + "when": {"modem": "down_on_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_on_peripheral", "x": 90, "y": 0} + }, + {"when": {"modem": "up_off"}, "apply": {"model": "computercraft:block/wired_modem_off", "x": 270, "y": 0}}, + { + "when": {"modem": "up_off_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_off_peripheral", "x": 270, "y": 0} + }, + {"when": {"modem": "up_on"}, "apply": {"model": "computercraft:block/wired_modem_on", "x": 270, "y": 0}}, + { + "when": {"modem": "up_on_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_on_peripheral", "x": 270, "y": 0} + }, + {"when": {"modem": "north_off"}, "apply": {"model": "computercraft:block/wired_modem_off", "x": 0, "y": 0}}, + { + "when": {"modem": "north_off_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_off_peripheral", "x": 0, "y": 0} + }, + {"when": {"modem": "north_on"}, "apply": {"model": "computercraft:block/wired_modem_on", "x": 0, "y": 0}}, + { + "when": {"modem": "north_on_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_on_peripheral", "x": 0, "y": 0} + }, + {"when": {"modem": "south_off"}, "apply": {"model": "computercraft:block/wired_modem_off", "x": 0, "y": 180}}, + { + "when": {"modem": "south_off_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_off_peripheral", "x": 0, "y": 180} + }, + {"when": {"modem": "south_on"}, "apply": {"model": "computercraft:block/wired_modem_on", "x": 0, "y": 180}}, + { + "when": {"modem": "south_on_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_on_peripheral", "x": 0, "y": 180} + }, + {"when": {"modem": "west_off"}, "apply": {"model": "computercraft:block/wired_modem_off", "x": 0, "y": 270}}, + { + "when": {"modem": "west_off_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_off_peripheral", "x": 0, "y": 270} + }, + {"when": {"modem": "west_on"}, "apply": {"model": "computercraft:block/wired_modem_on", "x": 0, "y": 270}}, + { + "when": {"modem": "west_on_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_on_peripheral", "x": 0, "y": 270} + }, + {"when": {"modem": "east_off"}, "apply": {"model": "computercraft:block/wired_modem_off", "x": 0, "y": 90}}, + { + "when": {"modem": "east_off_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_off_peripheral", "x": 0, "y": 90} + }, + {"when": {"modem": "east_on"}, "apply": {"model": "computercraft:block/wired_modem_on", "x": 0, "y": 90}}, + { + "when": {"modem": "east_on_peripheral"}, + "apply": {"model": "computercraft:block/wired_modem_on_peripheral", "x": 0, "y": 90} + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/computer_advanced.json b/src/generated/resources/assets/computercraft/blockstates/computer_advanced.json index ca62effa6..9d49529ec 100644 --- a/src/generated/resources/assets/computercraft/blockstates/computer_advanced.json +++ b/src/generated/resources/assets/computercraft/blockstates/computer_advanced.json @@ -1,49 +1,16 @@ { "variants": { - "facing=north,state=off": { - "model": "computercraft:block/computer_advanced_off" - }, - "facing=south,state=off": { - "model": "computercraft:block/computer_advanced_off", - "y": 180 - }, - "facing=west,state=off": { - "model": "computercraft:block/computer_advanced_off", - "y": 270 - }, - "facing=east,state=off": { - "model": "computercraft:block/computer_advanced_off", - "y": 90 - }, - "facing=north,state=on": { - "model": "computercraft:block/computer_advanced_on" - }, - "facing=south,state=on": { - "model": "computercraft:block/computer_advanced_on", - "y": 180 - }, - "facing=west,state=on": { - "model": "computercraft:block/computer_advanced_on", - "y": 270 - }, - "facing=east,state=on": { - "model": "computercraft:block/computer_advanced_on", - "y": 90 - }, - "facing=north,state=blinking": { - "model": "computercraft:block/computer_advanced_blinking" - }, - "facing=south,state=blinking": { - "model": "computercraft:block/computer_advanced_blinking", - "y": 180 - }, - "facing=west,state=blinking": { - "model": "computercraft:block/computer_advanced_blinking", - "y": 270 - }, - "facing=east,state=blinking": { - "model": "computercraft:block/computer_advanced_blinking", - "y": 90 - } + "facing=east,state=blinking": {"y": 90, "model": "computercraft:block/computer_advanced_blinking"}, + "facing=east,state=off": {"y": 90, "model": "computercraft:block/computer_advanced_off"}, + "facing=east,state=on": {"y": 90, "model": "computercraft:block/computer_advanced_on"}, + "facing=north,state=blinking": {"y": 0, "model": "computercraft:block/computer_advanced_blinking"}, + "facing=north,state=off": {"y": 0, "model": "computercraft:block/computer_advanced_off"}, + "facing=north,state=on": {"y": 0, "model": "computercraft:block/computer_advanced_on"}, + "facing=south,state=blinking": {"y": 180, "model": "computercraft:block/computer_advanced_blinking"}, + "facing=south,state=off": {"y": 180, "model": "computercraft:block/computer_advanced_off"}, + "facing=south,state=on": {"y": 180, "model": "computercraft:block/computer_advanced_on"}, + "facing=west,state=blinking": {"y": 270, "model": "computercraft:block/computer_advanced_blinking"}, + "facing=west,state=off": {"y": 270, "model": "computercraft:block/computer_advanced_off"}, + "facing=west,state=on": {"y": 270, "model": "computercraft:block/computer_advanced_on"} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/computer_command.json b/src/generated/resources/assets/computercraft/blockstates/computer_command.json index d0580539a..fb5881042 100644 --- a/src/generated/resources/assets/computercraft/blockstates/computer_command.json +++ b/src/generated/resources/assets/computercraft/blockstates/computer_command.json @@ -1,49 +1,16 @@ { "variants": { - "facing=north,state=off": { - "model": "computercraft:block/computer_command_off" - }, - "facing=south,state=off": { - "model": "computercraft:block/computer_command_off", - "y": 180 - }, - "facing=west,state=off": { - "model": "computercraft:block/computer_command_off", - "y": 270 - }, - "facing=east,state=off": { - "model": "computercraft:block/computer_command_off", - "y": 90 - }, - "facing=north,state=on": { - "model": "computercraft:block/computer_command_on" - }, - "facing=south,state=on": { - "model": "computercraft:block/computer_command_on", - "y": 180 - }, - "facing=west,state=on": { - "model": "computercraft:block/computer_command_on", - "y": 270 - }, - "facing=east,state=on": { - "model": "computercraft:block/computer_command_on", - "y": 90 - }, - "facing=north,state=blinking": { - "model": "computercraft:block/computer_command_blinking" - }, - "facing=south,state=blinking": { - "model": "computercraft:block/computer_command_blinking", - "y": 180 - }, - "facing=west,state=blinking": { - "model": "computercraft:block/computer_command_blinking", - "y": 270 - }, - "facing=east,state=blinking": { - "model": "computercraft:block/computer_command_blinking", - "y": 90 - } + "facing=east,state=blinking": {"y": 90, "model": "computercraft:block/computer_command_blinking"}, + "facing=east,state=off": {"y": 90, "model": "computercraft:block/computer_command_off"}, + "facing=east,state=on": {"y": 90, "model": "computercraft:block/computer_command_on"}, + "facing=north,state=blinking": {"y": 0, "model": "computercraft:block/computer_command_blinking"}, + "facing=north,state=off": {"y": 0, "model": "computercraft:block/computer_command_off"}, + "facing=north,state=on": {"y": 0, "model": "computercraft:block/computer_command_on"}, + "facing=south,state=blinking": {"y": 180, "model": "computercraft:block/computer_command_blinking"}, + "facing=south,state=off": {"y": 180, "model": "computercraft:block/computer_command_off"}, + "facing=south,state=on": {"y": 180, "model": "computercraft:block/computer_command_on"}, + "facing=west,state=blinking": {"y": 270, "model": "computercraft:block/computer_command_blinking"}, + "facing=west,state=off": {"y": 270, "model": "computercraft:block/computer_command_off"}, + "facing=west,state=on": {"y": 270, "model": "computercraft:block/computer_command_on"} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/computer_normal.json b/src/generated/resources/assets/computercraft/blockstates/computer_normal.json index 4108d0aa9..c64ad7417 100644 --- a/src/generated/resources/assets/computercraft/blockstates/computer_normal.json +++ b/src/generated/resources/assets/computercraft/blockstates/computer_normal.json @@ -1,49 +1,16 @@ { "variants": { - "facing=north,state=off": { - "model": "computercraft:block/computer_normal_off" - }, - "facing=south,state=off": { - "model": "computercraft:block/computer_normal_off", - "y": 180 - }, - "facing=west,state=off": { - "model": "computercraft:block/computer_normal_off", - "y": 270 - }, - "facing=east,state=off": { - "model": "computercraft:block/computer_normal_off", - "y": 90 - }, - "facing=north,state=on": { - "model": "computercraft:block/computer_normal_on" - }, - "facing=south,state=on": { - "model": "computercraft:block/computer_normal_on", - "y": 180 - }, - "facing=west,state=on": { - "model": "computercraft:block/computer_normal_on", - "y": 270 - }, - "facing=east,state=on": { - "model": "computercraft:block/computer_normal_on", - "y": 90 - }, - "facing=north,state=blinking": { - "model": "computercraft:block/computer_normal_blinking" - }, - "facing=south,state=blinking": { - "model": "computercraft:block/computer_normal_blinking", - "y": 180 - }, - "facing=west,state=blinking": { - "model": "computercraft:block/computer_normal_blinking", - "y": 270 - }, - "facing=east,state=blinking": { - "model": "computercraft:block/computer_normal_blinking", - "y": 90 - } + "facing=east,state=blinking": {"y": 90, "model": "computercraft:block/computer_normal_blinking"}, + "facing=east,state=off": {"y": 90, "model": "computercraft:block/computer_normal_off"}, + "facing=east,state=on": {"y": 90, "model": "computercraft:block/computer_normal_on"}, + "facing=north,state=blinking": {"y": 0, "model": "computercraft:block/computer_normal_blinking"}, + "facing=north,state=off": {"y": 0, "model": "computercraft:block/computer_normal_off"}, + "facing=north,state=on": {"y": 0, "model": "computercraft:block/computer_normal_on"}, + "facing=south,state=blinking": {"y": 180, "model": "computercraft:block/computer_normal_blinking"}, + "facing=south,state=off": {"y": 180, "model": "computercraft:block/computer_normal_off"}, + "facing=south,state=on": {"y": 180, "model": "computercraft:block/computer_normal_on"}, + "facing=west,state=blinking": {"y": 270, "model": "computercraft:block/computer_normal_blinking"}, + "facing=west,state=off": {"y": 270, "model": "computercraft:block/computer_normal_off"}, + "facing=west,state=on": {"y": 270, "model": "computercraft:block/computer_normal_on"} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/disk_drive.json b/src/generated/resources/assets/computercraft/blockstates/disk_drive.json new file mode 100644 index 000000000..79754ae03 --- /dev/null +++ b/src/generated/resources/assets/computercraft/blockstates/disk_drive.json @@ -0,0 +1,16 @@ +{ + "variants": { + "facing=east,state=empty": {"y": 90, "model": "computercraft:block/disk_drive_empty"}, + "facing=east,state=full": {"y": 90, "model": "computercraft:block/disk_drive_full"}, + "facing=east,state=invalid": {"y": 90, "model": "computercraft:block/disk_drive_invalid"}, + "facing=north,state=empty": {"y": 0, "model": "computercraft:block/disk_drive_empty"}, + "facing=north,state=full": {"y": 0, "model": "computercraft:block/disk_drive_full"}, + "facing=north,state=invalid": {"y": 0, "model": "computercraft:block/disk_drive_invalid"}, + "facing=south,state=empty": {"y": 180, "model": "computercraft:block/disk_drive_empty"}, + "facing=south,state=full": {"y": 180, "model": "computercraft:block/disk_drive_full"}, + "facing=south,state=invalid": {"y": 180, "model": "computercraft:block/disk_drive_invalid"}, + "facing=west,state=empty": {"y": 270, "model": "computercraft:block/disk_drive_empty"}, + "facing=west,state=full": {"y": 270, "model": "computercraft:block/disk_drive_full"}, + "facing=west,state=invalid": {"y": 270, "model": "computercraft:block/disk_drive_invalid"} + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/monitor_advanced.json b/src/generated/resources/assets/computercraft/blockstates/monitor_advanced.json index 230c2c727..a13125041 100644 --- a/src/generated/resources/assets/computercraft/blockstates/monitor_advanced.json +++ b/src/generated/resources/assets/computercraft/blockstates/monitor_advanced.json @@ -1,852 +1,268 @@ { "variants": { - "facing=north,orientation=down,state=none": { - "model": "computercraft:block/monitor_advanced", - "x": 90 - }, - "facing=south,orientation=down,state=none": { - "model": "computercraft:block/monitor_advanced", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=none": { - "model": "computercraft:block/monitor_advanced", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=none": { - "model": "computercraft:block/monitor_advanced", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=none": { - "model": "computercraft:block/monitor_advanced", - "x": 270 - }, - "facing=south,orientation=up,state=none": { - "model": "computercraft:block/monitor_advanced", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=none": { - "model": "computercraft:block/monitor_advanced", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=none": { - "model": "computercraft:block/monitor_advanced", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=none": { - "model": "computercraft:block/monitor_advanced" - }, - "facing=south,orientation=north,state=none": { - "model": "computercraft:block/monitor_advanced", - "y": 180 - }, - "facing=west,orientation=north,state=none": { - "model": "computercraft:block/monitor_advanced", - "y": 270 - }, - "facing=east,orientation=north,state=none": { - "model": "computercraft:block/monitor_advanced", - "y": 90 - }, - "facing=north,orientation=down,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "x": 90 - }, - "facing=south,orientation=down,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "x": 270 - }, - "facing=south,orientation=up,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=l": { - "model": "computercraft:block/monitor_advanced_l" - }, - "facing=south,orientation=north,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "y": 180 - }, - "facing=west,orientation=north,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "y": 270 - }, - "facing=east,orientation=north,state=l": { - "model": "computercraft:block/monitor_advanced_l", - "y": 90 - }, - "facing=north,orientation=down,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "x": 90 - }, - "facing=south,orientation=down,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "x": 270 - }, - "facing=south,orientation=up,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=r": { - "model": "computercraft:block/monitor_advanced_r" - }, - "facing=south,orientation=north,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "y": 180 - }, - "facing=west,orientation=north,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "y": 270 - }, - "facing=east,orientation=north,state=r": { - "model": "computercraft:block/monitor_advanced_r", - "y": 90 - }, - "facing=north,orientation=down,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "x": 90 - }, - "facing=south,orientation=down,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "x": 270 - }, - "facing=south,orientation=up,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lr": { - "model": "computercraft:block/monitor_advanced_lr" - }, - "facing=south,orientation=north,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "y": 180 - }, - "facing=west,orientation=north,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "y": 270 - }, - "facing=east,orientation=north,state=lr": { - "model": "computercraft:block/monitor_advanced_lr", - "y": 90 - }, - "facing=north,orientation=down,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "x": 90 - }, - "facing=south,orientation=down,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "x": 270 - }, - "facing=south,orientation=up,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=u": { - "model": "computercraft:block/monitor_advanced_u" - }, - "facing=south,orientation=north,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "y": 180 - }, - "facing=west,orientation=north,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "y": 270 - }, - "facing=east,orientation=north,state=u": { - "model": "computercraft:block/monitor_advanced_u", - "y": 90 - }, - "facing=north,orientation=down,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "x": 90 - }, - "facing=south,orientation=down,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "x": 270 - }, - "facing=south,orientation=up,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=d": { - "model": "computercraft:block/monitor_advanced_d" - }, - "facing=south,orientation=north,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "y": 180 - }, - "facing=west,orientation=north,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "y": 270 - }, - "facing=east,orientation=north,state=d": { - "model": "computercraft:block/monitor_advanced_d", - "y": 90 - }, - "facing=north,orientation=down,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "x": 90 - }, - "facing=south,orientation=down,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "x": 270 - }, - "facing=south,orientation=up,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=ud": { - "model": "computercraft:block/monitor_advanced_ud" - }, - "facing=south,orientation=north,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "y": 180 - }, - "facing=west,orientation=north,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "y": 270 - }, - "facing=east,orientation=north,state=ud": { - "model": "computercraft:block/monitor_advanced_ud", - "y": 90 - }, - "facing=north,orientation=down,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "x": 90 - }, - "facing=south,orientation=down,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "x": 270 - }, - "facing=south,orientation=up,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=rd": { - "model": "computercraft:block/monitor_advanced_rd" - }, - "facing=south,orientation=north,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "y": 180 - }, - "facing=west,orientation=north,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "y": 270 - }, - "facing=east,orientation=north,state=rd": { - "model": "computercraft:block/monitor_advanced_rd", - "y": 90 - }, - "facing=north,orientation=down,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "x": 90 - }, - "facing=south,orientation=down,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "x": 270 - }, - "facing=south,orientation=up,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=ld": { - "model": "computercraft:block/monitor_advanced_ld" - }, - "facing=south,orientation=north,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "y": 180 - }, - "facing=west,orientation=north,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "y": 270 - }, - "facing=east,orientation=north,state=ld": { - "model": "computercraft:block/monitor_advanced_ld", - "y": 90 - }, - "facing=north,orientation=down,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "x": 90 - }, - "facing=south,orientation=down,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "x": 270 - }, - "facing=south,orientation=up,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=ru": { - "model": "computercraft:block/monitor_advanced_ru" - }, - "facing=south,orientation=north,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "y": 180 - }, - "facing=west,orientation=north,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "y": 270 - }, - "facing=east,orientation=north,state=ru": { - "model": "computercraft:block/monitor_advanced_ru", - "y": 90 - }, - "facing=north,orientation=down,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "x": 90 - }, - "facing=south,orientation=down,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "x": 270 - }, - "facing=south,orientation=up,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lu": { - "model": "computercraft:block/monitor_advanced_lu" - }, - "facing=south,orientation=north,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "y": 180 - }, - "facing=west,orientation=north,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "y": 270 - }, - "facing=east,orientation=north,state=lu": { - "model": "computercraft:block/monitor_advanced_lu", - "y": 90 - }, - "facing=north,orientation=down,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "x": 90 - }, - "facing=south,orientation=down,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "x": 270 - }, - "facing=south,orientation=up,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd" - }, - "facing=south,orientation=north,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "y": 180 - }, - "facing=west,orientation=north,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "y": 270 - }, - "facing=east,orientation=north,state=lrd": { - "model": "computercraft:block/monitor_advanced_lrd", - "y": 90 - }, - "facing=north,orientation=down,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "x": 90 - }, - "facing=south,orientation=down,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "x": 270 - }, - "facing=south,orientation=up,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=rud": { - "model": "computercraft:block/monitor_advanced_rud" - }, - "facing=south,orientation=north,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "y": 180 - }, - "facing=west,orientation=north,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "y": 270 - }, - "facing=east,orientation=north,state=rud": { - "model": "computercraft:block/monitor_advanced_rud", - "y": 90 - }, - "facing=north,orientation=down,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "x": 90 - }, - "facing=south,orientation=down,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "x": 270 - }, - "facing=south,orientation=up,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lud": { - "model": "computercraft:block/monitor_advanced_lud" - }, - "facing=south,orientation=north,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "y": 180 - }, - "facing=west,orientation=north,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "y": 270 - }, - "facing=east,orientation=north,state=lud": { - "model": "computercraft:block/monitor_advanced_lud", - "y": 90 - }, - "facing=north,orientation=down,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "x": 90 - }, - "facing=south,orientation=down,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "x": 270 - }, - "facing=south,orientation=up,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lru": { - "model": "computercraft:block/monitor_advanced_lru" - }, - "facing=south,orientation=north,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "y": 180 - }, - "facing=west,orientation=north,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "y": 270 - }, - "facing=east,orientation=north,state=lru": { - "model": "computercraft:block/monitor_advanced_lru", - "y": 90 - }, - "facing=north,orientation=down,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "x": 90 - }, - "facing=south,orientation=down,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "x": 90, - "y": 270 - }, + "facing=east,orientation=down,state=d": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_d"}, + "facing=east,orientation=down,state=l": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_l"}, + "facing=east,orientation=down,state=ld": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=east,orientation=down,state=lr": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=east,orientation=down,state=lrd": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=east,orientation=down,state=lru": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_lru"}, "facing=east,orientation=down,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", + "y": 90, "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "x": 270 - }, - "facing=south,orientation=up,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lrud": { "model": "computercraft:block/monitor_advanced_lrud" }, - "facing=south,orientation=north,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "y": 180 - }, - "facing=west,orientation=north,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "y": 270 - }, + "facing=east,orientation=down,state=lu": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=east,orientation=down,state=lud": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=east,orientation=down,state=none": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced"}, + "facing=east,orientation=down,state=r": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_r"}, + "facing=east,orientation=down,state=rd": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=east,orientation=down,state=ru": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=east,orientation=down,state=rud": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=east,orientation=down,state=u": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_u"}, + "facing=east,orientation=down,state=ud": {"y": 90, "x": 90, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=east,orientation=north,state=d": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_d"}, + "facing=east,orientation=north,state=l": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_l"}, + "facing=east,orientation=north,state=ld": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=east,orientation=north,state=lr": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=east,orientation=north,state=lrd": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=east,orientation=north,state=lru": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_lru"}, "facing=east,orientation=north,state=lrud": { - "model": "computercraft:block/monitor_advanced_lrud", - "y": 90 - } + "y": 90, + "x": 0, + "model": "computercraft:block/monitor_advanced_lrud" + }, + "facing=east,orientation=north,state=lu": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=east,orientation=north,state=lud": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=east,orientation=north,state=none": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced"}, + "facing=east,orientation=north,state=r": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_r"}, + "facing=east,orientation=north,state=rd": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=east,orientation=north,state=ru": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=east,orientation=north,state=rud": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=east,orientation=north,state=u": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_u"}, + "facing=east,orientation=north,state=ud": {"y": 90, "x": 0, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=east,orientation=up,state=d": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_d"}, + "facing=east,orientation=up,state=l": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_l"}, + "facing=east,orientation=up,state=ld": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=east,orientation=up,state=lr": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=east,orientation=up,state=lrd": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=east,orientation=up,state=lru": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_lru"}, + "facing=east,orientation=up,state=lrud": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_lrud"}, + "facing=east,orientation=up,state=lu": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=east,orientation=up,state=lud": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=east,orientation=up,state=none": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced"}, + "facing=east,orientation=up,state=r": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_r"}, + "facing=east,orientation=up,state=rd": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=east,orientation=up,state=ru": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=east,orientation=up,state=rud": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=east,orientation=up,state=u": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_u"}, + "facing=east,orientation=up,state=ud": {"y": 90, "x": 270, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=north,orientation=down,state=d": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_d"}, + "facing=north,orientation=down,state=l": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_l"}, + "facing=north,orientation=down,state=ld": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=north,orientation=down,state=lr": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=north,orientation=down,state=lrd": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=north,orientation=down,state=lru": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_lru"}, + "facing=north,orientation=down,state=lrud": { + "y": 0, + "x": 90, + "model": "computercraft:block/monitor_advanced_lrud" + }, + "facing=north,orientation=down,state=lu": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=north,orientation=down,state=lud": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=north,orientation=down,state=none": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced"}, + "facing=north,orientation=down,state=r": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_r"}, + "facing=north,orientation=down,state=rd": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=north,orientation=down,state=ru": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=north,orientation=down,state=rud": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=north,orientation=down,state=u": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_u"}, + "facing=north,orientation=down,state=ud": {"y": 0, "x": 90, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=north,orientation=north,state=d": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_d"}, + "facing=north,orientation=north,state=l": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_l"}, + "facing=north,orientation=north,state=ld": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=north,orientation=north,state=lr": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=north,orientation=north,state=lrd": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=north,orientation=north,state=lru": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_lru"}, + "facing=north,orientation=north,state=lrud": { + "y": 0, + "x": 0, + "model": "computercraft:block/monitor_advanced_lrud" + }, + "facing=north,orientation=north,state=lu": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=north,orientation=north,state=lud": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=north,orientation=north,state=none": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced"}, + "facing=north,orientation=north,state=r": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_r"}, + "facing=north,orientation=north,state=rd": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=north,orientation=north,state=ru": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=north,orientation=north,state=rud": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=north,orientation=north,state=u": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_u"}, + "facing=north,orientation=north,state=ud": {"y": 0, "x": 0, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=north,orientation=up,state=d": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_d"}, + "facing=north,orientation=up,state=l": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_l"}, + "facing=north,orientation=up,state=ld": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=north,orientation=up,state=lr": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=north,orientation=up,state=lrd": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=north,orientation=up,state=lru": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_lru"}, + "facing=north,orientation=up,state=lrud": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_lrud"}, + "facing=north,orientation=up,state=lu": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=north,orientation=up,state=lud": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=north,orientation=up,state=none": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced"}, + "facing=north,orientation=up,state=r": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_r"}, + "facing=north,orientation=up,state=rd": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=north,orientation=up,state=ru": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=north,orientation=up,state=rud": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=north,orientation=up,state=u": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_u"}, + "facing=north,orientation=up,state=ud": {"y": 0, "x": 270, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=south,orientation=down,state=d": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_d"}, + "facing=south,orientation=down,state=l": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_l"}, + "facing=south,orientation=down,state=ld": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=south,orientation=down,state=lr": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=south,orientation=down,state=lrd": { + "y": 180, + "x": 90, + "model": "computercraft:block/monitor_advanced_lrd" + }, + "facing=south,orientation=down,state=lru": { + "y": 180, + "x": 90, + "model": "computercraft:block/monitor_advanced_lru" + }, + "facing=south,orientation=down,state=lrud": { + "y": 180, + "x": 90, + "model": "computercraft:block/monitor_advanced_lrud" + }, + "facing=south,orientation=down,state=lu": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=south,orientation=down,state=lud": { + "y": 180, + "x": 90, + "model": "computercraft:block/monitor_advanced_lud" + }, + "facing=south,orientation=down,state=none": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced"}, + "facing=south,orientation=down,state=r": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_r"}, + "facing=south,orientation=down,state=rd": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=south,orientation=down,state=ru": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=south,orientation=down,state=rud": { + "y": 180, + "x": 90, + "model": "computercraft:block/monitor_advanced_rud" + }, + "facing=south,orientation=down,state=u": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_u"}, + "facing=south,orientation=down,state=ud": {"y": 180, "x": 90, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=south,orientation=north,state=d": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_d"}, + "facing=south,orientation=north,state=l": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_l"}, + "facing=south,orientation=north,state=ld": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=south,orientation=north,state=lr": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=south,orientation=north,state=lrd": { + "y": 180, + "x": 0, + "model": "computercraft:block/monitor_advanced_lrd" + }, + "facing=south,orientation=north,state=lru": { + "y": 180, + "x": 0, + "model": "computercraft:block/monitor_advanced_lru" + }, + "facing=south,orientation=north,state=lrud": { + "y": 180, + "x": 0, + "model": "computercraft:block/monitor_advanced_lrud" + }, + "facing=south,orientation=north,state=lu": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=south,orientation=north,state=lud": { + "y": 180, + "x": 0, + "model": "computercraft:block/monitor_advanced_lud" + }, + "facing=south,orientation=north,state=none": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced"}, + "facing=south,orientation=north,state=r": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_r"}, + "facing=south,orientation=north,state=rd": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=south,orientation=north,state=ru": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=south,orientation=north,state=rud": { + "y": 180, + "x": 0, + "model": "computercraft:block/monitor_advanced_rud" + }, + "facing=south,orientation=north,state=u": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_u"}, + "facing=south,orientation=north,state=ud": {"y": 180, "x": 0, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=south,orientation=up,state=d": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_d"}, + "facing=south,orientation=up,state=l": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_l"}, + "facing=south,orientation=up,state=ld": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=south,orientation=up,state=lr": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=south,orientation=up,state=lrd": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=south,orientation=up,state=lru": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_lru"}, + "facing=south,orientation=up,state=lrud": { + "y": 180, + "x": 270, + "model": "computercraft:block/monitor_advanced_lrud" + }, + "facing=south,orientation=up,state=lu": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=south,orientation=up,state=lud": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=south,orientation=up,state=none": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced"}, + "facing=south,orientation=up,state=r": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_r"}, + "facing=south,orientation=up,state=rd": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=south,orientation=up,state=ru": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=south,orientation=up,state=rud": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=south,orientation=up,state=u": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_u"}, + "facing=south,orientation=up,state=ud": {"y": 180, "x": 270, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=west,orientation=down,state=d": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_d"}, + "facing=west,orientation=down,state=l": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_l"}, + "facing=west,orientation=down,state=ld": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=west,orientation=down,state=lr": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=west,orientation=down,state=lrd": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=west,orientation=down,state=lru": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_lru"}, + "facing=west,orientation=down,state=lrud": { + "y": 270, + "x": 90, + "model": "computercraft:block/monitor_advanced_lrud" + }, + "facing=west,orientation=down,state=lu": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=west,orientation=down,state=lud": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=west,orientation=down,state=none": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced"}, + "facing=west,orientation=down,state=r": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_r"}, + "facing=west,orientation=down,state=rd": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=west,orientation=down,state=ru": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=west,orientation=down,state=rud": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=west,orientation=down,state=u": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_u"}, + "facing=west,orientation=down,state=ud": {"y": 270, "x": 90, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=west,orientation=north,state=d": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_d"}, + "facing=west,orientation=north,state=l": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_l"}, + "facing=west,orientation=north,state=ld": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=west,orientation=north,state=lr": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=west,orientation=north,state=lrd": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=west,orientation=north,state=lru": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_lru"}, + "facing=west,orientation=north,state=lrud": { + "y": 270, + "x": 0, + "model": "computercraft:block/monitor_advanced_lrud" + }, + "facing=west,orientation=north,state=lu": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=west,orientation=north,state=lud": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=west,orientation=north,state=none": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced"}, + "facing=west,orientation=north,state=r": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_r"}, + "facing=west,orientation=north,state=rd": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=west,orientation=north,state=ru": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=west,orientation=north,state=rud": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=west,orientation=north,state=u": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_u"}, + "facing=west,orientation=north,state=ud": {"y": 270, "x": 0, "model": "computercraft:block/monitor_advanced_ud"}, + "facing=west,orientation=up,state=d": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_d"}, + "facing=west,orientation=up,state=l": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_l"}, + "facing=west,orientation=up,state=ld": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_ld"}, + "facing=west,orientation=up,state=lr": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_lr"}, + "facing=west,orientation=up,state=lrd": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_lrd"}, + "facing=west,orientation=up,state=lru": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_lru"}, + "facing=west,orientation=up,state=lrud": { + "y": 270, + "x": 270, + "model": "computercraft:block/monitor_advanced_lrud" + }, + "facing=west,orientation=up,state=lu": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_lu"}, + "facing=west,orientation=up,state=lud": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_lud"}, + "facing=west,orientation=up,state=none": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced"}, + "facing=west,orientation=up,state=r": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_r"}, + "facing=west,orientation=up,state=rd": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_rd"}, + "facing=west,orientation=up,state=ru": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_ru"}, + "facing=west,orientation=up,state=rud": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_rud"}, + "facing=west,orientation=up,state=u": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_u"}, + "facing=west,orientation=up,state=ud": {"y": 270, "x": 270, "model": "computercraft:block/monitor_advanced_ud"} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/monitor_normal.json b/src/generated/resources/assets/computercraft/blockstates/monitor_normal.json index f3f94002e..a92b23f98 100644 --- a/src/generated/resources/assets/computercraft/blockstates/monitor_normal.json +++ b/src/generated/resources/assets/computercraft/blockstates/monitor_normal.json @@ -1,852 +1,204 @@ { "variants": { - "facing=north,orientation=down,state=none": { - "model": "computercraft:block/monitor_normal", - "x": 90 - }, - "facing=south,orientation=down,state=none": { - "model": "computercraft:block/monitor_normal", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=none": { - "model": "computercraft:block/monitor_normal", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=none": { - "model": "computercraft:block/monitor_normal", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=none": { - "model": "computercraft:block/monitor_normal", - "x": 270 - }, - "facing=south,orientation=up,state=none": { - "model": "computercraft:block/monitor_normal", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=none": { - "model": "computercraft:block/monitor_normal", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=none": { - "model": "computercraft:block/monitor_normal", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=none": { - "model": "computercraft:block/monitor_normal" - }, - "facing=south,orientation=north,state=none": { - "model": "computercraft:block/monitor_normal", - "y": 180 - }, - "facing=west,orientation=north,state=none": { - "model": "computercraft:block/monitor_normal", - "y": 270 - }, - "facing=east,orientation=north,state=none": { - "model": "computercraft:block/monitor_normal", - "y": 90 - }, - "facing=north,orientation=down,state=l": { - "model": "computercraft:block/monitor_normal_l", - "x": 90 - }, - "facing=south,orientation=down,state=l": { - "model": "computercraft:block/monitor_normal_l", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=l": { - "model": "computercraft:block/monitor_normal_l", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=l": { - "model": "computercraft:block/monitor_normal_l", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=l": { - "model": "computercraft:block/monitor_normal_l", - "x": 270 - }, - "facing=south,orientation=up,state=l": { - "model": "computercraft:block/monitor_normal_l", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=l": { - "model": "computercraft:block/monitor_normal_l", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=l": { - "model": "computercraft:block/monitor_normal_l", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=l": { - "model": "computercraft:block/monitor_normal_l" - }, - "facing=south,orientation=north,state=l": { - "model": "computercraft:block/monitor_normal_l", - "y": 180 - }, - "facing=west,orientation=north,state=l": { - "model": "computercraft:block/monitor_normal_l", - "y": 270 - }, - "facing=east,orientation=north,state=l": { - "model": "computercraft:block/monitor_normal_l", - "y": 90 - }, - "facing=north,orientation=down,state=r": { - "model": "computercraft:block/monitor_normal_r", - "x": 90 - }, - "facing=south,orientation=down,state=r": { - "model": "computercraft:block/monitor_normal_r", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=r": { - "model": "computercraft:block/monitor_normal_r", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=r": { - "model": "computercraft:block/monitor_normal_r", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=r": { - "model": "computercraft:block/monitor_normal_r", - "x": 270 - }, - "facing=south,orientation=up,state=r": { - "model": "computercraft:block/monitor_normal_r", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=r": { - "model": "computercraft:block/monitor_normal_r", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=r": { - "model": "computercraft:block/monitor_normal_r", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=r": { - "model": "computercraft:block/monitor_normal_r" - }, - "facing=south,orientation=north,state=r": { - "model": "computercraft:block/monitor_normal_r", - "y": 180 - }, - "facing=west,orientation=north,state=r": { - "model": "computercraft:block/monitor_normal_r", - "y": 270 - }, - "facing=east,orientation=north,state=r": { - "model": "computercraft:block/monitor_normal_r", - "y": 90 - }, - "facing=north,orientation=down,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "x": 90 - }, - "facing=south,orientation=down,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "x": 270 - }, - "facing=south,orientation=up,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lr": { - "model": "computercraft:block/monitor_normal_lr" - }, - "facing=south,orientation=north,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "y": 180 - }, - "facing=west,orientation=north,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "y": 270 - }, - "facing=east,orientation=north,state=lr": { - "model": "computercraft:block/monitor_normal_lr", - "y": 90 - }, - "facing=north,orientation=down,state=u": { - "model": "computercraft:block/monitor_normal_u", - "x": 90 - }, - "facing=south,orientation=down,state=u": { - "model": "computercraft:block/monitor_normal_u", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=u": { - "model": "computercraft:block/monitor_normal_u", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=u": { - "model": "computercraft:block/monitor_normal_u", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=u": { - "model": "computercraft:block/monitor_normal_u", - "x": 270 - }, - "facing=south,orientation=up,state=u": { - "model": "computercraft:block/monitor_normal_u", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=u": { - "model": "computercraft:block/monitor_normal_u", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=u": { - "model": "computercraft:block/monitor_normal_u", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=u": { - "model": "computercraft:block/monitor_normal_u" - }, - "facing=south,orientation=north,state=u": { - "model": "computercraft:block/monitor_normal_u", - "y": 180 - }, - "facing=west,orientation=north,state=u": { - "model": "computercraft:block/monitor_normal_u", - "y": 270 - }, - "facing=east,orientation=north,state=u": { - "model": "computercraft:block/monitor_normal_u", - "y": 90 - }, - "facing=north,orientation=down,state=d": { - "model": "computercraft:block/monitor_normal_d", - "x": 90 - }, - "facing=south,orientation=down,state=d": { - "model": "computercraft:block/monitor_normal_d", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=d": { - "model": "computercraft:block/monitor_normal_d", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=d": { - "model": "computercraft:block/monitor_normal_d", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=d": { - "model": "computercraft:block/monitor_normal_d", - "x": 270 - }, - "facing=south,orientation=up,state=d": { - "model": "computercraft:block/monitor_normal_d", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=d": { - "model": "computercraft:block/monitor_normal_d", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=d": { - "model": "computercraft:block/monitor_normal_d", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=d": { - "model": "computercraft:block/monitor_normal_d" - }, - "facing=south,orientation=north,state=d": { - "model": "computercraft:block/monitor_normal_d", - "y": 180 - }, - "facing=west,orientation=north,state=d": { - "model": "computercraft:block/monitor_normal_d", - "y": 270 - }, - "facing=east,orientation=north,state=d": { - "model": "computercraft:block/monitor_normal_d", - "y": 90 - }, - "facing=north,orientation=down,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "x": 90 - }, - "facing=south,orientation=down,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "x": 270 - }, - "facing=south,orientation=up,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=ud": { - "model": "computercraft:block/monitor_normal_ud" - }, - "facing=south,orientation=north,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "y": 180 - }, - "facing=west,orientation=north,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "y": 270 - }, - "facing=east,orientation=north,state=ud": { - "model": "computercraft:block/monitor_normal_ud", - "y": 90 - }, - "facing=north,orientation=down,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "x": 90 - }, - "facing=south,orientation=down,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "x": 270 - }, - "facing=south,orientation=up,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=rd": { - "model": "computercraft:block/monitor_normal_rd" - }, - "facing=south,orientation=north,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "y": 180 - }, - "facing=west,orientation=north,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "y": 270 - }, - "facing=east,orientation=north,state=rd": { - "model": "computercraft:block/monitor_normal_rd", - "y": 90 - }, - "facing=north,orientation=down,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "x": 90 - }, - "facing=south,orientation=down,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "x": 270 - }, - "facing=south,orientation=up,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=ld": { - "model": "computercraft:block/monitor_normal_ld" - }, - "facing=south,orientation=north,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "y": 180 - }, - "facing=west,orientation=north,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "y": 270 - }, - "facing=east,orientation=north,state=ld": { - "model": "computercraft:block/monitor_normal_ld", - "y": 90 - }, - "facing=north,orientation=down,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "x": 90 - }, - "facing=south,orientation=down,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "x": 270 - }, - "facing=south,orientation=up,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=ru": { - "model": "computercraft:block/monitor_normal_ru" - }, - "facing=south,orientation=north,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "y": 180 - }, - "facing=west,orientation=north,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "y": 270 - }, - "facing=east,orientation=north,state=ru": { - "model": "computercraft:block/monitor_normal_ru", - "y": 90 - }, - "facing=north,orientation=down,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "x": 90 - }, - "facing=south,orientation=down,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "x": 270 - }, - "facing=south,orientation=up,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lu": { - "model": "computercraft:block/monitor_normal_lu" - }, - "facing=south,orientation=north,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "y": 180 - }, - "facing=west,orientation=north,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "y": 270 - }, - "facing=east,orientation=north,state=lu": { - "model": "computercraft:block/monitor_normal_lu", - "y": 90 - }, - "facing=north,orientation=down,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "x": 90 - }, - "facing=south,orientation=down,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "x": 270 - }, - "facing=south,orientation=up,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd" - }, - "facing=south,orientation=north,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "y": 180 - }, - "facing=west,orientation=north,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "y": 270 - }, - "facing=east,orientation=north,state=lrd": { - "model": "computercraft:block/monitor_normal_lrd", - "y": 90 - }, - "facing=north,orientation=down,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "x": 90 - }, - "facing=south,orientation=down,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "x": 270 - }, - "facing=south,orientation=up,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=rud": { - "model": "computercraft:block/monitor_normal_rud" - }, - "facing=south,orientation=north,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "y": 180 - }, - "facing=west,orientation=north,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "y": 270 - }, - "facing=east,orientation=north,state=rud": { - "model": "computercraft:block/monitor_normal_rud", - "y": 90 - }, - "facing=north,orientation=down,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "x": 90 - }, - "facing=south,orientation=down,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "x": 270 - }, - "facing=south,orientation=up,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lud": { - "model": "computercraft:block/monitor_normal_lud" - }, - "facing=south,orientation=north,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "y": 180 - }, - "facing=west,orientation=north,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "y": 270 - }, - "facing=east,orientation=north,state=lud": { - "model": "computercraft:block/monitor_normal_lud", - "y": 90 - }, - "facing=north,orientation=down,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "x": 90 - }, - "facing=south,orientation=down,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "x": 270 - }, - "facing=south,orientation=up,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lru": { - "model": "computercraft:block/monitor_normal_lru" - }, - "facing=south,orientation=north,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "y": 180 - }, - "facing=west,orientation=north,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "y": 270 - }, - "facing=east,orientation=north,state=lru": { - "model": "computercraft:block/monitor_normal_lru", - "y": 90 - }, - "facing=north,orientation=down,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "x": 90 - }, + "facing=east,orientation=down,state=d": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_d"}, + "facing=east,orientation=down,state=l": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_l"}, + "facing=east,orientation=down,state=ld": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_ld"}, + "facing=east,orientation=down,state=lr": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_lr"}, + "facing=east,orientation=down,state=lrd": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=east,orientation=down,state=lru": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_lru"}, + "facing=east,orientation=down,state=lrud": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=east,orientation=down,state=lu": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_lu"}, + "facing=east,orientation=down,state=lud": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_lud"}, + "facing=east,orientation=down,state=none": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal"}, + "facing=east,orientation=down,state=r": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_r"}, + "facing=east,orientation=down,state=rd": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_rd"}, + "facing=east,orientation=down,state=ru": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_ru"}, + "facing=east,orientation=down,state=rud": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_rud"}, + "facing=east,orientation=down,state=u": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_u"}, + "facing=east,orientation=down,state=ud": {"y": 90, "x": 90, "model": "computercraft:block/monitor_normal_ud"}, + "facing=east,orientation=north,state=d": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_d"}, + "facing=east,orientation=north,state=l": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_l"}, + "facing=east,orientation=north,state=ld": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_ld"}, + "facing=east,orientation=north,state=lr": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_lr"}, + "facing=east,orientation=north,state=lrd": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=east,orientation=north,state=lru": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_lru"}, + "facing=east,orientation=north,state=lrud": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=east,orientation=north,state=lu": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_lu"}, + "facing=east,orientation=north,state=lud": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_lud"}, + "facing=east,orientation=north,state=none": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal"}, + "facing=east,orientation=north,state=r": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_r"}, + "facing=east,orientation=north,state=rd": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_rd"}, + "facing=east,orientation=north,state=ru": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_ru"}, + "facing=east,orientation=north,state=rud": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_rud"}, + "facing=east,orientation=north,state=u": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_u"}, + "facing=east,orientation=north,state=ud": {"y": 90, "x": 0, "model": "computercraft:block/monitor_normal_ud"}, + "facing=east,orientation=up,state=d": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_d"}, + "facing=east,orientation=up,state=l": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_l"}, + "facing=east,orientation=up,state=ld": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_ld"}, + "facing=east,orientation=up,state=lr": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_lr"}, + "facing=east,orientation=up,state=lrd": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=east,orientation=up,state=lru": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_lru"}, + "facing=east,orientation=up,state=lrud": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=east,orientation=up,state=lu": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_lu"}, + "facing=east,orientation=up,state=lud": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_lud"}, + "facing=east,orientation=up,state=none": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal"}, + "facing=east,orientation=up,state=r": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_r"}, + "facing=east,orientation=up,state=rd": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_rd"}, + "facing=east,orientation=up,state=ru": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_ru"}, + "facing=east,orientation=up,state=rud": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_rud"}, + "facing=east,orientation=up,state=u": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_u"}, + "facing=east,orientation=up,state=ud": {"y": 90, "x": 270, "model": "computercraft:block/monitor_normal_ud"}, + "facing=north,orientation=down,state=d": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_d"}, + "facing=north,orientation=down,state=l": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_l"}, + "facing=north,orientation=down,state=ld": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_ld"}, + "facing=north,orientation=down,state=lr": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_lr"}, + "facing=north,orientation=down,state=lrd": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=north,orientation=down,state=lru": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_lru"}, + "facing=north,orientation=down,state=lrud": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=north,orientation=down,state=lu": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_lu"}, + "facing=north,orientation=down,state=lud": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_lud"}, + "facing=north,orientation=down,state=none": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal"}, + "facing=north,orientation=down,state=r": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_r"}, + "facing=north,orientation=down,state=rd": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_rd"}, + "facing=north,orientation=down,state=ru": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_ru"}, + "facing=north,orientation=down,state=rud": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_rud"}, + "facing=north,orientation=down,state=u": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_u"}, + "facing=north,orientation=down,state=ud": {"y": 0, "x": 90, "model": "computercraft:block/monitor_normal_ud"}, + "facing=north,orientation=north,state=d": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_d"}, + "facing=north,orientation=north,state=l": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_l"}, + "facing=north,orientation=north,state=ld": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_ld"}, + "facing=north,orientation=north,state=lr": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_lr"}, + "facing=north,orientation=north,state=lrd": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=north,orientation=north,state=lru": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_lru"}, + "facing=north,orientation=north,state=lrud": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=north,orientation=north,state=lu": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_lu"}, + "facing=north,orientation=north,state=lud": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_lud"}, + "facing=north,orientation=north,state=none": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal"}, + "facing=north,orientation=north,state=r": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_r"}, + "facing=north,orientation=north,state=rd": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_rd"}, + "facing=north,orientation=north,state=ru": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_ru"}, + "facing=north,orientation=north,state=rud": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_rud"}, + "facing=north,orientation=north,state=u": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_u"}, + "facing=north,orientation=north,state=ud": {"y": 0, "x": 0, "model": "computercraft:block/monitor_normal_ud"}, + "facing=north,orientation=up,state=d": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_d"}, + "facing=north,orientation=up,state=l": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_l"}, + "facing=north,orientation=up,state=ld": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_ld"}, + "facing=north,orientation=up,state=lr": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_lr"}, + "facing=north,orientation=up,state=lrd": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=north,orientation=up,state=lru": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_lru"}, + "facing=north,orientation=up,state=lrud": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=north,orientation=up,state=lu": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_lu"}, + "facing=north,orientation=up,state=lud": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_lud"}, + "facing=north,orientation=up,state=none": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal"}, + "facing=north,orientation=up,state=r": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_r"}, + "facing=north,orientation=up,state=rd": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_rd"}, + "facing=north,orientation=up,state=ru": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_ru"}, + "facing=north,orientation=up,state=rud": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_rud"}, + "facing=north,orientation=up,state=u": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_u"}, + "facing=north,orientation=up,state=ud": {"y": 0, "x": 270, "model": "computercraft:block/monitor_normal_ud"}, + "facing=south,orientation=down,state=d": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_d"}, + "facing=south,orientation=down,state=l": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_l"}, + "facing=south,orientation=down,state=ld": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_ld"}, + "facing=south,orientation=down,state=lr": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_lr"}, + "facing=south,orientation=down,state=lrd": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=south,orientation=down,state=lru": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_lru"}, "facing=south,orientation=down,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", + "y": 180, "x": 90, - "y": 180 - }, - "facing=west,orientation=down,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "x": 90, - "y": 270 - }, - "facing=east,orientation=down,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "x": 90, - "y": 90 - }, - "facing=north,orientation=up,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "x": 270 - }, - "facing=south,orientation=up,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "x": 270, - "y": 180 - }, - "facing=west,orientation=up,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "x": 270, - "y": 270 - }, - "facing=east,orientation=up,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "x": 270, - "y": 90 - }, - "facing=north,orientation=north,state=lrud": { "model": "computercraft:block/monitor_normal_lrud" }, + "facing=south,orientation=down,state=lu": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_lu"}, + "facing=south,orientation=down,state=lud": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_lud"}, + "facing=south,orientation=down,state=none": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal"}, + "facing=south,orientation=down,state=r": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_r"}, + "facing=south,orientation=down,state=rd": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_rd"}, + "facing=south,orientation=down,state=ru": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_ru"}, + "facing=south,orientation=down,state=rud": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_rud"}, + "facing=south,orientation=down,state=u": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_u"}, + "facing=south,orientation=down,state=ud": {"y": 180, "x": 90, "model": "computercraft:block/monitor_normal_ud"}, + "facing=south,orientation=north,state=d": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_d"}, + "facing=south,orientation=north,state=l": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_l"}, + "facing=south,orientation=north,state=ld": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_ld"}, + "facing=south,orientation=north,state=lr": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_lr"}, + "facing=south,orientation=north,state=lrd": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=south,orientation=north,state=lru": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_lru"}, "facing=south,orientation=north,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "y": 180 + "y": 180, + "x": 0, + "model": "computercraft:block/monitor_normal_lrud" }, - "facing=west,orientation=north,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "y": 270 - }, - "facing=east,orientation=north,state=lrud": { - "model": "computercraft:block/monitor_normal_lrud", - "y": 90 - } + "facing=south,orientation=north,state=lu": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_lu"}, + "facing=south,orientation=north,state=lud": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_lud"}, + "facing=south,orientation=north,state=none": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal"}, + "facing=south,orientation=north,state=r": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_r"}, + "facing=south,orientation=north,state=rd": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_rd"}, + "facing=south,orientation=north,state=ru": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_ru"}, + "facing=south,orientation=north,state=rud": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_rud"}, + "facing=south,orientation=north,state=u": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_u"}, + "facing=south,orientation=north,state=ud": {"y": 180, "x": 0, "model": "computercraft:block/monitor_normal_ud"}, + "facing=south,orientation=up,state=d": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_d"}, + "facing=south,orientation=up,state=l": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_l"}, + "facing=south,orientation=up,state=ld": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_ld"}, + "facing=south,orientation=up,state=lr": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_lr"}, + "facing=south,orientation=up,state=lrd": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=south,orientation=up,state=lru": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_lru"}, + "facing=south,orientation=up,state=lrud": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=south,orientation=up,state=lu": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_lu"}, + "facing=south,orientation=up,state=lud": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_lud"}, + "facing=south,orientation=up,state=none": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal"}, + "facing=south,orientation=up,state=r": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_r"}, + "facing=south,orientation=up,state=rd": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_rd"}, + "facing=south,orientation=up,state=ru": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_ru"}, + "facing=south,orientation=up,state=rud": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_rud"}, + "facing=south,orientation=up,state=u": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_u"}, + "facing=south,orientation=up,state=ud": {"y": 180, "x": 270, "model": "computercraft:block/monitor_normal_ud"}, + "facing=west,orientation=down,state=d": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_d"}, + "facing=west,orientation=down,state=l": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_l"}, + "facing=west,orientation=down,state=ld": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_ld"}, + "facing=west,orientation=down,state=lr": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_lr"}, + "facing=west,orientation=down,state=lrd": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=west,orientation=down,state=lru": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_lru"}, + "facing=west,orientation=down,state=lrud": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=west,orientation=down,state=lu": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_lu"}, + "facing=west,orientation=down,state=lud": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_lud"}, + "facing=west,orientation=down,state=none": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal"}, + "facing=west,orientation=down,state=r": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_r"}, + "facing=west,orientation=down,state=rd": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_rd"}, + "facing=west,orientation=down,state=ru": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_ru"}, + "facing=west,orientation=down,state=rud": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_rud"}, + "facing=west,orientation=down,state=u": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_u"}, + "facing=west,orientation=down,state=ud": {"y": 270, "x": 90, "model": "computercraft:block/monitor_normal_ud"}, + "facing=west,orientation=north,state=d": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_d"}, + "facing=west,orientation=north,state=l": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_l"}, + "facing=west,orientation=north,state=ld": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_ld"}, + "facing=west,orientation=north,state=lr": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_lr"}, + "facing=west,orientation=north,state=lrd": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=west,orientation=north,state=lru": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_lru"}, + "facing=west,orientation=north,state=lrud": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=west,orientation=north,state=lu": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_lu"}, + "facing=west,orientation=north,state=lud": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_lud"}, + "facing=west,orientation=north,state=none": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal"}, + "facing=west,orientation=north,state=r": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_r"}, + "facing=west,orientation=north,state=rd": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_rd"}, + "facing=west,orientation=north,state=ru": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_ru"}, + "facing=west,orientation=north,state=rud": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_rud"}, + "facing=west,orientation=north,state=u": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_u"}, + "facing=west,orientation=north,state=ud": {"y": 270, "x": 0, "model": "computercraft:block/monitor_normal_ud"}, + "facing=west,orientation=up,state=d": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_d"}, + "facing=west,orientation=up,state=l": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_l"}, + "facing=west,orientation=up,state=ld": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_ld"}, + "facing=west,orientation=up,state=lr": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_lr"}, + "facing=west,orientation=up,state=lrd": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_lrd"}, + "facing=west,orientation=up,state=lru": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_lru"}, + "facing=west,orientation=up,state=lrud": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_lrud"}, + "facing=west,orientation=up,state=lu": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_lu"}, + "facing=west,orientation=up,state=lud": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_lud"}, + "facing=west,orientation=up,state=none": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal"}, + "facing=west,orientation=up,state=r": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_r"}, + "facing=west,orientation=up,state=rd": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_rd"}, + "facing=west,orientation=up,state=ru": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_ru"}, + "facing=west,orientation=up,state=rud": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_rud"}, + "facing=west,orientation=up,state=u": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_u"}, + "facing=west,orientation=up,state=ud": {"y": 270, "x": 270, "model": "computercraft:block/monitor_normal_ud"} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/printer.json b/src/generated/resources/assets/computercraft/blockstates/printer.json new file mode 100644 index 000000000..25c1fc3d1 --- /dev/null +++ b/src/generated/resources/assets/computercraft/blockstates/printer.json @@ -0,0 +1,20 @@ +{ + "variants": { + "bottom=false,facing=east,top=false": {"y": 90, "model": "computercraft:block/printer_empty"}, + "bottom=false,facing=east,top=true": {"y": 90, "model": "computercraft:block/printer_top_full"}, + "bottom=false,facing=north,top=false": {"y": 0, "model": "computercraft:block/printer_empty"}, + "bottom=false,facing=north,top=true": {"y": 0, "model": "computercraft:block/printer_top_full"}, + "bottom=false,facing=south,top=false": {"y": 180, "model": "computercraft:block/printer_empty"}, + "bottom=false,facing=south,top=true": {"y": 180, "model": "computercraft:block/printer_top_full"}, + "bottom=false,facing=west,top=false": {"y": 270, "model": "computercraft:block/printer_empty"}, + "bottom=false,facing=west,top=true": {"y": 270, "model": "computercraft:block/printer_top_full"}, + "bottom=true,facing=east,top=false": {"y": 90, "model": "computercraft:block/printer_bottom_full"}, + "bottom=true,facing=east,top=true": {"y": 90, "model": "computercraft:block/printer_both_full"}, + "bottom=true,facing=north,top=false": {"y": 0, "model": "computercraft:block/printer_bottom_full"}, + "bottom=true,facing=north,top=true": {"y": 0, "model": "computercraft:block/printer_both_full"}, + "bottom=true,facing=south,top=false": {"y": 180, "model": "computercraft:block/printer_bottom_full"}, + "bottom=true,facing=south,top=true": {"y": 180, "model": "computercraft:block/printer_both_full"}, + "bottom=true,facing=west,top=false": {"y": 270, "model": "computercraft:block/printer_bottom_full"}, + "bottom=true,facing=west,top=true": {"y": 270, "model": "computercraft:block/printer_both_full"} + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/speaker.json b/src/generated/resources/assets/computercraft/blockstates/speaker.json index a5e90eb45..ff125706a 100644 --- a/src/generated/resources/assets/computercraft/blockstates/speaker.json +++ b/src/generated/resources/assets/computercraft/blockstates/speaker.json @@ -1,19 +1,8 @@ { "variants": { - "facing=north": { - "model": "computercraft:block/speaker" - }, - "facing=south": { - "model": "computercraft:block/speaker", - "y": 180 - }, - "facing=west": { - "model": "computercraft:block/speaker", - "y": 270 - }, - "facing=east": { - "model": "computercraft:block/speaker", - "y": 90 - } + "facing=east": {"model": "computercraft:block/speaker", "y": 90}, + "facing=north": {"model": "computercraft:block/speaker"}, + "facing=south": {"model": "computercraft:block/speaker", "y": 180}, + "facing=west": {"model": "computercraft:block/speaker", "y": 270} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/turtle_advanced.json b/src/generated/resources/assets/computercraft/blockstates/turtle_advanced.json index 44edcb1ed..cf29ddebd 100644 --- a/src/generated/resources/assets/computercraft/blockstates/turtle_advanced.json +++ b/src/generated/resources/assets/computercraft/blockstates/turtle_advanced.json @@ -1,19 +1,8 @@ { "variants": { - "facing=north": { - "model": "computercraft:block/turtle_advanced" - }, - "facing=south": { - "model": "computercraft:block/turtle_advanced", - "y": 180 - }, - "facing=west": { - "model": "computercraft:block/turtle_advanced", - "y": 270 - }, - "facing=east": { - "model": "computercraft:block/turtle_advanced", - "y": 90 - } + "facing=east": {"model": "computercraft:block/turtle_advanced", "y": 90}, + "facing=north": {"model": "computercraft:block/turtle_advanced", "y": 0}, + "facing=south": {"model": "computercraft:block/turtle_advanced", "y": 180}, + "facing=west": {"model": "computercraft:block/turtle_advanced", "y": 270} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/turtle_normal.json b/src/generated/resources/assets/computercraft/blockstates/turtle_normal.json index 81aa4fd3e..9f97633b8 100644 --- a/src/generated/resources/assets/computercraft/blockstates/turtle_normal.json +++ b/src/generated/resources/assets/computercraft/blockstates/turtle_normal.json @@ -1,19 +1,8 @@ { "variants": { - "facing=north": { - "model": "computercraft:block/turtle_normal" - }, - "facing=south": { - "model": "computercraft:block/turtle_normal", - "y": 180 - }, - "facing=west": { - "model": "computercraft:block/turtle_normal", - "y": 270 - }, - "facing=east": { - "model": "computercraft:block/turtle_normal", - "y": 90 - } + "facing=east": {"model": "computercraft:block/turtle_normal", "y": 90}, + "facing=north": {"model": "computercraft:block/turtle_normal", "y": 0}, + "facing=south": {"model": "computercraft:block/turtle_normal", "y": 180}, + "facing=west": {"model": "computercraft:block/turtle_normal", "y": 270} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/wired_modem_full.json b/src/generated/resources/assets/computercraft/blockstates/wired_modem_full.json index 7c6b1da16..13859d95b 100644 --- a/src/generated/resources/assets/computercraft/blockstates/wired_modem_full.json +++ b/src/generated/resources/assets/computercraft/blockstates/wired_modem_full.json @@ -1,16 +1,8 @@ { "variants": { - "modem=false,peripheral=false": { - "model": "computercraft:block/wired_modem_full_off" - }, - "modem=true,peripheral=false": { - "model": "computercraft:block/wired_modem_full_on" - }, - "modem=false,peripheral=true": { - "model": "computercraft:block/wired_modem_full_off_peripheral" - }, - "modem=true,peripheral=true": { - "model": "computercraft:block/wired_modem_full_on_peripheral" - } + "modem=false,peripheral=false": {"model": "computercraft:block/wired_modem_full_off"}, + "modem=false,peripheral=true": {"model": "computercraft:block/wired_modem_full_off_peripheral"}, + "modem=true,peripheral=false": {"model": "computercraft:block/wired_modem_full_on"}, + "modem=true,peripheral=true": {"model": "computercraft:block/wired_modem_full_on_peripheral"} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/wireless_modem_advanced.json b/src/generated/resources/assets/computercraft/blockstates/wireless_modem_advanced.json index 926c4bc53..df1032ec9 100644 --- a/src/generated/resources/assets/computercraft/blockstates/wireless_modem_advanced.json +++ b/src/generated/resources/assets/computercraft/blockstates/wireless_modem_advanced.json @@ -1,54 +1,16 @@ { "variants": { - "facing=down,on=false": { - "model": "computercraft:block/wireless_modem_advanced_off", - "x": 90, - "y": 90 - }, - "facing=up,on=false": { - "model": "computercraft:block/wireless_modem_advanced_off", - "x": 270, - "y": 90 - }, - "facing=north,on=false": { - "model": "computercraft:block/wireless_modem_advanced_off" - }, - "facing=south,on=false": { - "model": "computercraft:block/wireless_modem_advanced_off", - "y": 180 - }, - "facing=west,on=false": { - "model": "computercraft:block/wireless_modem_advanced_off", - "y": 270 - }, - "facing=east,on=false": { - "model": "computercraft:block/wireless_modem_advanced_off", - "y": 90 - }, - "facing=down,on=true": { - "model": "computercraft:block/wireless_modem_advanced_on", - "x": 90, - "y": 90 - }, - "facing=up,on=true": { - "model": "computercraft:block/wireless_modem_advanced_on", - "x": 270, - "y": 90 - }, - "facing=north,on=true": { - "model": "computercraft:block/wireless_modem_advanced_on" - }, - "facing=south,on=true": { - "model": "computercraft:block/wireless_modem_advanced_on", - "y": 180 - }, - "facing=west,on=true": { - "model": "computercraft:block/wireless_modem_advanced_on", - "y": 270 - }, - "facing=east,on=true": { - "model": "computercraft:block/wireless_modem_advanced_on", - "y": 90 - } + "facing=down,on=false": {"y": 0, "x": 90, "model": "computercraft:block/wireless_modem_advanced_off"}, + "facing=down,on=true": {"y": 0, "x": 90, "model": "computercraft:block/wireless_modem_advanced_on"}, + "facing=east,on=false": {"y": 90, "x": 0, "model": "computercraft:block/wireless_modem_advanced_off"}, + "facing=east,on=true": {"y": 90, "x": 0, "model": "computercraft:block/wireless_modem_advanced_on"}, + "facing=north,on=false": {"y": 0, "x": 0, "model": "computercraft:block/wireless_modem_advanced_off"}, + "facing=north,on=true": {"y": 0, "x": 0, "model": "computercraft:block/wireless_modem_advanced_on"}, + "facing=south,on=false": {"y": 180, "x": 0, "model": "computercraft:block/wireless_modem_advanced_off"}, + "facing=south,on=true": {"y": 180, "x": 0, "model": "computercraft:block/wireless_modem_advanced_on"}, + "facing=up,on=false": {"y": 0, "x": 270, "model": "computercraft:block/wireless_modem_advanced_off"}, + "facing=up,on=true": {"y": 0, "x": 270, "model": "computercraft:block/wireless_modem_advanced_on"}, + "facing=west,on=false": {"y": 270, "x": 0, "model": "computercraft:block/wireless_modem_advanced_off"}, + "facing=west,on=true": {"y": 270, "x": 0, "model": "computercraft:block/wireless_modem_advanced_on"} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/blockstates/wireless_modem_normal.json b/src/generated/resources/assets/computercraft/blockstates/wireless_modem_normal.json index 2d53b1085..9bd457efc 100644 --- a/src/generated/resources/assets/computercraft/blockstates/wireless_modem_normal.json +++ b/src/generated/resources/assets/computercraft/blockstates/wireless_modem_normal.json @@ -1,54 +1,16 @@ { "variants": { - "facing=down,on=false": { - "model": "computercraft:block/wireless_modem_normal_off", - "x": 90, - "y": 90 - }, - "facing=up,on=false": { - "model": "computercraft:block/wireless_modem_normal_off", - "x": 270, - "y": 90 - }, - "facing=north,on=false": { - "model": "computercraft:block/wireless_modem_normal_off" - }, - "facing=south,on=false": { - "model": "computercraft:block/wireless_modem_normal_off", - "y": 180 - }, - "facing=west,on=false": { - "model": "computercraft:block/wireless_modem_normal_off", - "y": 270 - }, - "facing=east,on=false": { - "model": "computercraft:block/wireless_modem_normal_off", - "y": 90 - }, - "facing=down,on=true": { - "model": "computercraft:block/wireless_modem_normal_on", - "x": 90, - "y": 90 - }, - "facing=up,on=true": { - "model": "computercraft:block/wireless_modem_normal_on", - "x": 270, - "y": 90 - }, - "facing=north,on=true": { - "model": "computercraft:block/wireless_modem_normal_on" - }, - "facing=south,on=true": { - "model": "computercraft:block/wireless_modem_normal_on", - "y": 180 - }, - "facing=west,on=true": { - "model": "computercraft:block/wireless_modem_normal_on", - "y": 270 - }, - "facing=east,on=true": { - "model": "computercraft:block/wireless_modem_normal_on", - "y": 90 - } + "facing=down,on=false": {"y": 0, "x": 90, "model": "computercraft:block/wireless_modem_normal_off"}, + "facing=down,on=true": {"y": 0, "x": 90, "model": "computercraft:block/wireless_modem_normal_on"}, + "facing=east,on=false": {"y": 90, "x": 0, "model": "computercraft:block/wireless_modem_normal_off"}, + "facing=east,on=true": {"y": 90, "x": 0, "model": "computercraft:block/wireless_modem_normal_on"}, + "facing=north,on=false": {"y": 0, "x": 0, "model": "computercraft:block/wireless_modem_normal_off"}, + "facing=north,on=true": {"y": 0, "x": 0, "model": "computercraft:block/wireless_modem_normal_on"}, + "facing=south,on=false": {"y": 180, "x": 0, "model": "computercraft:block/wireless_modem_normal_off"}, + "facing=south,on=true": {"y": 180, "x": 0, "model": "computercraft:block/wireless_modem_normal_on"}, + "facing=up,on=false": {"y": 0, "x": 270, "model": "computercraft:block/wireless_modem_normal_off"}, + "facing=up,on=true": {"y": 0, "x": 270, "model": "computercraft:block/wireless_modem_normal_on"}, + "facing=west,on=false": {"y": 270, "x": 0, "model": "computercraft:block/wireless_modem_normal_off"}, + "facing=west,on=true": {"y": 270, "x": 0, "model": "computercraft:block/wireless_modem_normal_on"} } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/computer_advanced_blinking.json b/src/generated/resources/assets/computercraft/models/block/computer_advanced_blinking.json index 36fcd2c1f..8f38a1426 100644 --- a/src/generated/resources/assets/computercraft/models/block/computer_advanced_blinking.json +++ b/src/generated/resources/assets/computercraft/models/block/computer_advanced_blinking.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/computer_advanced_side", + "top": "computercraft:block/computer_advanced_top", "front": "computercraft:block/computer_advanced_front_blink", - "top": "computercraft:block/computer_advanced_top" + "side": "computercraft:block/computer_advanced_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/computer_advanced_off.json b/src/generated/resources/assets/computercraft/models/block/computer_advanced_off.json index ea9eebc1a..a5f377ce2 100644 --- a/src/generated/resources/assets/computercraft/models/block/computer_advanced_off.json +++ b/src/generated/resources/assets/computercraft/models/block/computer_advanced_off.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/computer_advanced_side", + "top": "computercraft:block/computer_advanced_top", "front": "computercraft:block/computer_advanced_front", - "top": "computercraft:block/computer_advanced_top" + "side": "computercraft:block/computer_advanced_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/computer_advanced_on.json b/src/generated/resources/assets/computercraft/models/block/computer_advanced_on.json index a422fab7f..b85966988 100644 --- a/src/generated/resources/assets/computercraft/models/block/computer_advanced_on.json +++ b/src/generated/resources/assets/computercraft/models/block/computer_advanced_on.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/computer_advanced_side", + "top": "computercraft:block/computer_advanced_top", "front": "computercraft:block/computer_advanced_front_on", - "top": "computercraft:block/computer_advanced_top" + "side": "computercraft:block/computer_advanced_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/computer_command_blinking.json b/src/generated/resources/assets/computercraft/models/block/computer_command_blinking.json index 519ced852..991b698f0 100644 --- a/src/generated/resources/assets/computercraft/models/block/computer_command_blinking.json +++ b/src/generated/resources/assets/computercraft/models/block/computer_command_blinking.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/computer_command_side", + "top": "computercraft:block/computer_command_top", "front": "computercraft:block/computer_command_front_blink", - "top": "computercraft:block/computer_command_top" + "side": "computercraft:block/computer_command_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/computer_command_off.json b/src/generated/resources/assets/computercraft/models/block/computer_command_off.json index e4ab0b813..35021b763 100644 --- a/src/generated/resources/assets/computercraft/models/block/computer_command_off.json +++ b/src/generated/resources/assets/computercraft/models/block/computer_command_off.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/computer_command_side", + "top": "computercraft:block/computer_command_top", "front": "computercraft:block/computer_command_front", - "top": "computercraft:block/computer_command_top" + "side": "computercraft:block/computer_command_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/computer_command_on.json b/src/generated/resources/assets/computercraft/models/block/computer_command_on.json index d1b3911b0..57016e47a 100644 --- a/src/generated/resources/assets/computercraft/models/block/computer_command_on.json +++ b/src/generated/resources/assets/computercraft/models/block/computer_command_on.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/computer_command_side", + "top": "computercraft:block/computer_command_top", "front": "computercraft:block/computer_command_front_on", - "top": "computercraft:block/computer_command_top" + "side": "computercraft:block/computer_command_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/computer_normal_blinking.json b/src/generated/resources/assets/computercraft/models/block/computer_normal_blinking.json index 2fc2a5c91..b56958cc2 100644 --- a/src/generated/resources/assets/computercraft/models/block/computer_normal_blinking.json +++ b/src/generated/resources/assets/computercraft/models/block/computer_normal_blinking.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/computer_normal_side", + "top": "computercraft:block/computer_normal_top", "front": "computercraft:block/computer_normal_front_blink", - "top": "computercraft:block/computer_normal_top" + "side": "computercraft:block/computer_normal_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/computer_normal_off.json b/src/generated/resources/assets/computercraft/models/block/computer_normal_off.json index 0d1fac6c4..a0b673d23 100644 --- a/src/generated/resources/assets/computercraft/models/block/computer_normal_off.json +++ b/src/generated/resources/assets/computercraft/models/block/computer_normal_off.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/computer_normal_side", + "top": "computercraft:block/computer_normal_top", "front": "computercraft:block/computer_normal_front", - "top": "computercraft:block/computer_normal_top" + "side": "computercraft:block/computer_normal_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/computer_normal_on.json b/src/generated/resources/assets/computercraft/models/block/computer_normal_on.json index fbb5c2369..662c3bef5 100644 --- a/src/generated/resources/assets/computercraft/models/block/computer_normal_on.json +++ b/src/generated/resources/assets/computercraft/models/block/computer_normal_on.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/computer_normal_side", + "top": "computercraft:block/computer_normal_top", "front": "computercraft:block/computer_normal_front_on", - "top": "computercraft:block/computer_normal_top" + "side": "computercraft:block/computer_normal_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/disk_drive_empty.json b/src/generated/resources/assets/computercraft/models/block/disk_drive_empty.json new file mode 100644 index 000000000..640ae6792 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/disk_drive_empty.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "top": "computercraft:block/disk_drive_top", + "front": "computercraft:block/disk_drive_front", + "side": "computercraft:block/disk_drive_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/disk_drive_full.json b/src/generated/resources/assets/computercraft/models/block/disk_drive_full.json new file mode 100644 index 000000000..275dc2069 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/disk_drive_full.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "top": "computercraft:block/disk_drive_top", + "front": "computercraft:block/disk_drive_front_accepted", + "side": "computercraft:block/disk_drive_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/disk_drive_invalid.json b/src/generated/resources/assets/computercraft/models/block/disk_drive_invalid.json new file mode 100644 index 000000000..75563afd1 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/disk_drive_invalid.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "top": "computercraft:block/disk_drive_top", + "front": "computercraft:block/disk_drive_front_rejected", + "side": "computercraft:block/disk_drive_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/monitor_advanced_item.json b/src/generated/resources/assets/computercraft/models/block/monitor_advanced_item.json index e08a04610..aad0ced5f 100644 --- a/src/generated/resources/assets/computercraft/models/block/monitor_advanced_item.json +++ b/src/generated/resources/assets/computercraft/models/block/monitor_advanced_item.json @@ -1,8 +1,9 @@ { - "parent": "minecraft:block/orientable", + "parent": "computercraft:block/monitor_base", "textures": { - "side": "computercraft:block/monitor_advanced_4", "front": "computercraft:block/monitor_advanced_15", - "top": "computercraft:block/monitor_advanced_0" + "side": "computercraft:block/monitor_advanced_4", + "top": "computercraft:block/monitor_advanced_0", + "back": "computercraft:block/monitor_advanced_32" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/monitor_normal_item.json b/src/generated/resources/assets/computercraft/models/block/monitor_normal_item.json index 4834ae77f..167ef1121 100644 --- a/src/generated/resources/assets/computercraft/models/block/monitor_normal_item.json +++ b/src/generated/resources/assets/computercraft/models/block/monitor_normal_item.json @@ -1,8 +1,9 @@ { - "parent": "minecraft:block/orientable", + "parent": "computercraft:block/monitor_base", "textures": { - "side": "computercraft:block/monitor_normal_4", "front": "computercraft:block/monitor_normal_15", - "top": "computercraft:block/monitor_normal_0" + "side": "computercraft:block/monitor_normal_4", + "top": "computercraft:block/monitor_normal_0", + "back": "computercraft:block/monitor_normal_32" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/printer_both_full.json b/src/generated/resources/assets/computercraft/models/block/printer_both_full.json new file mode 100644 index 000000000..ee5fe9b36 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/printer_both_full.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "top": "computercraft:block/printer_top", + "front": "computercraft:block/printer_front_both_trays", + "side": "computercraft:block/printer_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/printer_bottom_full.json b/src/generated/resources/assets/computercraft/models/block/printer_bottom_full.json new file mode 100644 index 000000000..da3947591 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/printer_bottom_full.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "top": "computercraft:block/printer_top", + "front": "computercraft:block/printer_front_bottom_tray", + "side": "computercraft:block/printer_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/printer_empty.json b/src/generated/resources/assets/computercraft/models/block/printer_empty.json new file mode 100644 index 000000000..81c3fc9f8 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/printer_empty.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "top": "computercraft:block/printer_top", + "front": "computercraft:block/printer_front_empty", + "side": "computercraft:block/printer_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/printer_top_full.json b/src/generated/resources/assets/computercraft/models/block/printer_top_full.json new file mode 100644 index 000000000..dc933ec7d --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/printer_top_full.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/orientable", + "textures": { + "top": "computercraft:block/printer_top", + "front": "computercraft:block/printer_front_top_tray", + "side": "computercraft:block/printer_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/speaker.json b/src/generated/resources/assets/computercraft/models/block/speaker.json index 56e6b6009..340881c78 100644 --- a/src/generated/resources/assets/computercraft/models/block/speaker.json +++ b/src/generated/resources/assets/computercraft/models/block/speaker.json @@ -1,8 +1,8 @@ { "parent": "minecraft:block/orientable", "textures": { - "side": "computercraft:block/speaker_side", + "top": "computercraft:block/speaker_top", "front": "computercraft:block/speaker_front", - "top": "computercraft:block/speaker_top" + "side": "computercraft:block/speaker_side" } } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_advanced.json b/src/generated/resources/assets/computercraft/models/block/turtle_advanced.json index 4345893ff..f29fd9847 100644 --- a/src/generated/resources/assets/computercraft/models/block/turtle_advanced.json +++ b/src/generated/resources/assets/computercraft/models/block/turtle_advanced.json @@ -1,4 +1 @@ -{ - "loader": "computercraft:turtle", - "model": "computercraft:block/turtle_advanced_base" -} \ No newline at end of file +{"parent": "computercraft:block/turtle_base", "textures": {"texture": "computercraft:block/turtle_advanced"}} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_advanced_base.json b/src/generated/resources/assets/computercraft/models/block/turtle_advanced_base.json deleted file mode 100644 index 3887953c4..000000000 --- a/src/generated/resources/assets/computercraft/models/block/turtle_advanced_base.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_base", - "textures": { - "texture": "computercraft:block/turtle_advanced" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_crafting_table_left.json b/src/generated/resources/assets/computercraft/models/block/turtle_crafting_table_left.json new file mode 100644 index 000000000..f6459f6f4 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_crafting_table_left.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_left", + "textures": {"texture": "computercraft:block/turtle_crafty_face"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_crafting_table_right.json b/src/generated/resources/assets/computercraft/models/block/turtle_crafting_table_right.json new file mode 100644 index 000000000..65f180993 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_crafting_table_right.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_right", + "textures": {"texture": "computercraft:block/turtle_crafty_face"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_off_left.json b/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_off_left.json new file mode 100644 index 000000000..be51e6521 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_off_left.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_left", + "textures": {"texture": "computercraft:block/wireless_modem_advanced_face"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_off_right.json b/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_off_right.json new file mode 100644 index 000000000..5e9f89ec2 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_off_right.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_right", + "textures": {"texture": "computercraft:block/wireless_modem_advanced_face"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_on_left.json b/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_on_left.json new file mode 100644 index 000000000..2d53e8696 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_on_left.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_left", + "textures": {"texture": "computercraft:block/wireless_modem_advanced_face_on"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_on_right.json b/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_on_right.json new file mode 100644 index 000000000..f565b5ac6 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_modem_advanced_on_right.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_right", + "textures": {"texture": "computercraft:block/wireless_modem_advanced_face_on"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_off_left.json b/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_off_left.json new file mode 100644 index 000000000..678750e90 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_off_left.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_left", + "textures": {"texture": "computercraft:block/wireless_modem_normal_face"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_off_right.json b/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_off_right.json new file mode 100644 index 000000000..2e76166f6 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_off_right.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_right", + "textures": {"texture": "computercraft:block/wireless_modem_normal_face"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_on_left.json b/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_on_left.json new file mode 100644 index 000000000..4b7116053 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_on_left.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_left", + "textures": {"texture": "computercraft:block/wireless_modem_normal_face_on"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_on_right.json b/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_on_right.json new file mode 100644 index 000000000..4e85c0784 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_modem_normal_on_right.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_right", + "textures": {"texture": "computercraft:block/wireless_modem_normal_face_on"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_normal.json b/src/generated/resources/assets/computercraft/models/block/turtle_normal.json index 19acf6977..9bda0ac95 100644 --- a/src/generated/resources/assets/computercraft/models/block/turtle_normal.json +++ b/src/generated/resources/assets/computercraft/models/block/turtle_normal.json @@ -1,4 +1 @@ -{ - "loader": "computercraft:turtle", - "model": "computercraft:block/turtle_normal_base" -} \ No newline at end of file +{"parent": "computercraft:block/turtle_base", "textures": {"texture": "computercraft:block/turtle_normal"}} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_normal_base.json b/src/generated/resources/assets/computercraft/models/block/turtle_normal_base.json deleted file mode 100644 index 667721401..000000000 --- a/src/generated/resources/assets/computercraft/models/block/turtle_normal_base.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_base", - "textures": { - "texture": "computercraft:block/turtle_normal" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_speaker_left.json b/src/generated/resources/assets/computercraft/models/block/turtle_speaker_left.json new file mode 100644 index 000000000..22536e01c --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_speaker_left.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_left", + "textures": {"texture": "computercraft:block/turtle_speaker_face"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/turtle_speaker_right.json b/src/generated/resources/assets/computercraft/models/block/turtle_speaker_right.json new file mode 100644 index 000000000..56affb6b7 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/block/turtle_speaker_right.json @@ -0,0 +1,4 @@ +{ + "parent": "computercraft:block/turtle_upgrade_base_right", + "textures": {"texture": "computercraft:block/turtle_speaker_face"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wired_modem_full_off.json b/src/generated/resources/assets/computercraft/models/block/wired_modem_full_off.json index 35bbacc4e..525942ea7 100644 --- a/src/generated/resources/assets/computercraft/models/block/wired_modem_full_off.json +++ b/src/generated/resources/assets/computercraft/models/block/wired_modem_full_off.json @@ -1,6 +1 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "computercraft:block/wired_modem_face" - } -} \ No newline at end of file +{"parent": "minecraft:block/cube_all", "textures": {"all": "computercraft:block/wired_modem_face"}} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wired_modem_full_off_peripheral.json b/src/generated/resources/assets/computercraft/models/block/wired_modem_full_off_peripheral.json index 6f2d069b2..768fce161 100644 --- a/src/generated/resources/assets/computercraft/models/block/wired_modem_full_off_peripheral.json +++ b/src/generated/resources/assets/computercraft/models/block/wired_modem_full_off_peripheral.json @@ -1,6 +1 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "computercraft:block/wired_modem_face_peripheral" - } -} \ No newline at end of file +{"parent": "minecraft:block/cube_all", "textures": {"all": "computercraft:block/wired_modem_face_peripheral"}} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wired_modem_full_on.json b/src/generated/resources/assets/computercraft/models/block/wired_modem_full_on.json index 67e3c7b5e..d5543b299 100644 --- a/src/generated/resources/assets/computercraft/models/block/wired_modem_full_on.json +++ b/src/generated/resources/assets/computercraft/models/block/wired_modem_full_on.json @@ -1,6 +1 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "computercraft:block/wired_modem_face_on" - } -} \ No newline at end of file +{"parent": "minecraft:block/cube_all", "textures": {"all": "computercraft:block/wired_modem_face_on"}} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wired_modem_full_on_peripheral.json b/src/generated/resources/assets/computercraft/models/block/wired_modem_full_on_peripheral.json index 6dff54d30..ab3e1c4dd 100644 --- a/src/generated/resources/assets/computercraft/models/block/wired_modem_full_on_peripheral.json +++ b/src/generated/resources/assets/computercraft/models/block/wired_modem_full_on_peripheral.json @@ -1,6 +1 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "computercraft:block/wired_modem_face_peripheral_on" - } -} \ No newline at end of file +{"parent": "minecraft:block/cube_all", "textures": {"all": "computercraft:block/wired_modem_face_peripheral_on"}} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wired_modem_off.json b/src/generated/resources/assets/computercraft/models/block/wired_modem_off.json index b629be888..f461bd796 100644 --- a/src/generated/resources/assets/computercraft/models/block/wired_modem_off.json +++ b/src/generated/resources/assets/computercraft/models/block/wired_modem_off.json @@ -1,7 +1,4 @@ { "parent": "computercraft:block/modem", - "textures": { - "front": "computercraft:block/wired_modem_face", - "back": "computercraft:block/modem_back" - } + "textures": {"front": "computercraft:block/wired_modem_face", "back": "computercraft:block/modem_back"} } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wired_modem_off_peripheral.json b/src/generated/resources/assets/computercraft/models/block/wired_modem_off_peripheral.json index 7fea9f091..65c8622a0 100644 --- a/src/generated/resources/assets/computercraft/models/block/wired_modem_off_peripheral.json +++ b/src/generated/resources/assets/computercraft/models/block/wired_modem_off_peripheral.json @@ -1,7 +1,4 @@ { "parent": "computercraft:block/modem", - "textures": { - "front": "computercraft:block/wired_modem_face_peripheral", - "back": "computercraft:block/modem_back" - } + "textures": {"front": "computercraft:block/wired_modem_face_peripheral", "back": "computercraft:block/modem_back"} } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wired_modem_on.json b/src/generated/resources/assets/computercraft/models/block/wired_modem_on.json index 93a8d9fc0..81ecd54f6 100644 --- a/src/generated/resources/assets/computercraft/models/block/wired_modem_on.json +++ b/src/generated/resources/assets/computercraft/models/block/wired_modem_on.json @@ -1,7 +1,4 @@ { "parent": "computercraft:block/modem", - "textures": { - "front": "computercraft:block/wired_modem_face_on", - "back": "computercraft:block/modem_back" - } + "textures": {"front": "computercraft:block/wired_modem_face_on", "back": "computercraft:block/modem_back"} } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wireless_modem_advanced_off.json b/src/generated/resources/assets/computercraft/models/block/wireless_modem_advanced_off.json index 5bac5468e..047839c3f 100644 --- a/src/generated/resources/assets/computercraft/models/block/wireless_modem_advanced_off.json +++ b/src/generated/resources/assets/computercraft/models/block/wireless_modem_advanced_off.json @@ -1,7 +1,4 @@ { "parent": "computercraft:block/modem", - "textures": { - "front": "computercraft:block/wireless_modem_advanced_face", - "back": "computercraft:block/modem_back" - } + "textures": {"front": "computercraft:block/wireless_modem_advanced_face", "back": "computercraft:block/modem_back"} } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wireless_modem_normal_off.json b/src/generated/resources/assets/computercraft/models/block/wireless_modem_normal_off.json index 793df335a..5a11715c9 100644 --- a/src/generated/resources/assets/computercraft/models/block/wireless_modem_normal_off.json +++ b/src/generated/resources/assets/computercraft/models/block/wireless_modem_normal_off.json @@ -1,7 +1,4 @@ { "parent": "computercraft:block/modem", - "textures": { - "front": "computercraft:block/wireless_modem_normal_face", - "back": "computercraft:block/modem_back" - } + "textures": {"front": "computercraft:block/wireless_modem_normal_face", "back": "computercraft:block/modem_back"} } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/block/wireless_modem_normal_on.json b/src/generated/resources/assets/computercraft/models/block/wireless_modem_normal_on.json index 5bc2e8e35..0f7902f4d 100644 --- a/src/generated/resources/assets/computercraft/models/block/wireless_modem_normal_on.json +++ b/src/generated/resources/assets/computercraft/models/block/wireless_modem_normal_on.json @@ -1,7 +1,4 @@ { "parent": "computercraft:block/modem", - "textures": { - "front": "computercraft:block/wireless_modem_normal_face_on", - "back": "computercraft:block/modem_back" - } + "textures": {"front": "computercraft:block/wireless_modem_normal_face_on", "back": "computercraft:block/modem_back"} } \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/computer_advanced.json b/src/generated/resources/assets/computercraft/models/item/computer_advanced.json index a22f16b21..3a418487e 100644 --- a/src/generated/resources/assets/computercraft/models/item/computer_advanced.json +++ b/src/generated/resources/assets/computercraft/models/item/computer_advanced.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/computer_advanced_blinking" -} \ No newline at end of file +{"parent": "computercraft:block/computer_advanced_blinking"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/computer_command.json b/src/generated/resources/assets/computercraft/models/item/computer_command.json index b1e795493..79f15adfb 100644 --- a/src/generated/resources/assets/computercraft/models/item/computer_command.json +++ b/src/generated/resources/assets/computercraft/models/item/computer_command.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/computer_command_blinking" -} \ No newline at end of file +{"parent": "computercraft:block/computer_command_blinking"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/computer_normal.json b/src/generated/resources/assets/computercraft/models/item/computer_normal.json index 11327e98e..2a93d21b2 100644 --- a/src/generated/resources/assets/computercraft/models/item/computer_normal.json +++ b/src/generated/resources/assets/computercraft/models/item/computer_normal.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/computer_normal_blinking" -} \ No newline at end of file +{"parent": "computercraft:block/computer_normal_blinking"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/disk.json b/src/generated/resources/assets/computercraft/models/item/disk.json new file mode 100644 index 000000000..56c6fb122 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/disk.json @@ -0,0 +1,4 @@ +{ + "parent": "minecraft:item/generated", + "textures": {"layer0": "computercraft:item/disk_frame", "layer1": "computercraft:item/disk_colour"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/disk_drive.json b/src/generated/resources/assets/computercraft/models/item/disk_drive.json new file mode 100644 index 000000000..42c9ed010 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/disk_drive.json @@ -0,0 +1 @@ +{"parent": "computercraft:block/disk_drive_empty"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/monitor_advanced.json b/src/generated/resources/assets/computercraft/models/item/monitor_advanced.json index 62080d5e9..1d6e470e2 100644 --- a/src/generated/resources/assets/computercraft/models/item/monitor_advanced.json +++ b/src/generated/resources/assets/computercraft/models/item/monitor_advanced.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/monitor_advanced_item" -} \ No newline at end of file +{"parent": "computercraft:block/monitor_advanced_item"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/monitor_normal.json b/src/generated/resources/assets/computercraft/models/item/monitor_normal.json index 62f812992..e221021db 100644 --- a/src/generated/resources/assets/computercraft/models/item/monitor_normal.json +++ b/src/generated/resources/assets/computercraft/models/item/monitor_normal.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/monitor_normal_item" -} \ No newline at end of file +{"parent": "computercraft:block/monitor_normal_item"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/pocket_computer_advanced_blinking.json b/src/generated/resources/assets/computercraft/models/item/pocket_computer_advanced_blinking.json new file mode 100644 index 000000000..ad74c2177 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/pocket_computer_advanced_blinking.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "computercraft:item/pocket_computer_blink", + "layer1": "computercraft:item/pocket_computer_advanced", + "layer2": "computercraft:item/pocket_computer_light" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/pocket_computer_advanced_on.json b/src/generated/resources/assets/computercraft/models/item/pocket_computer_advanced_on.json new file mode 100644 index 000000000..af0b12f43 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/pocket_computer_advanced_on.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "computercraft:item/pocket_computer_on", + "layer1": "computercraft:item/pocket_computer_advanced", + "layer2": "computercraft:item/pocket_computer_light" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/pocket_computer_colour.json b/src/generated/resources/assets/computercraft/models/item/pocket_computer_colour.json new file mode 100644 index 000000000..e010c77ae --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/pocket_computer_colour.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "computercraft:item/pocket_computer_frame", + "layer1": "computercraft:item/pocket_computer_colour" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/pocket_computer_colour_blinking.json b/src/generated/resources/assets/computercraft/models/item/pocket_computer_colour_blinking.json new file mode 100644 index 000000000..05f8d2f00 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/pocket_computer_colour_blinking.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "computercraft:item/pocket_computer_blink", + "layer1": "computercraft:item/pocket_computer_colour", + "layer2": "computercraft:item/pocket_computer_light" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/pocket_computer_colour_on.json b/src/generated/resources/assets/computercraft/models/item/pocket_computer_colour_on.json new file mode 100644 index 000000000..7c77c6faa --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/pocket_computer_colour_on.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "computercraft:item/pocket_computer_on", + "layer1": "computercraft:item/pocket_computer_colour", + "layer2": "computercraft:item/pocket_computer_light" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/pocket_computer_normal_blinking.json b/src/generated/resources/assets/computercraft/models/item/pocket_computer_normal_blinking.json new file mode 100644 index 000000000..1977f6e3a --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/pocket_computer_normal_blinking.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "computercraft:item/pocket_computer_blink", + "layer1": "computercraft:item/pocket_computer_normal", + "layer2": "computercraft:item/pocket_computer_light" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/pocket_computer_normal_on.json b/src/generated/resources/assets/computercraft/models/item/pocket_computer_normal_on.json new file mode 100644 index 000000000..832ef44c3 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/pocket_computer_normal_on.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "computercraft:item/pocket_computer_on", + "layer1": "computercraft:item/pocket_computer_normal", + "layer2": "computercraft:item/pocket_computer_light" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/printed_book.json b/src/generated/resources/assets/computercraft/models/item/printed_book.json new file mode 100644 index 000000000..a9b28587a --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/printed_book.json @@ -0,0 +1 @@ +{"parent": "minecraft:item/generated", "textures": {"layer0": "computercraft:item/printed_book"}} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/printed_page.json b/src/generated/resources/assets/computercraft/models/item/printed_page.json new file mode 100644 index 000000000..a5fc28b95 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/printed_page.json @@ -0,0 +1 @@ +{"parent": "minecraft:item/generated", "textures": {"layer0": "computercraft:item/printed_page"}} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/printed_pages.json b/src/generated/resources/assets/computercraft/models/item/printed_pages.json new file mode 100644 index 000000000..84499dbf2 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/printed_pages.json @@ -0,0 +1 @@ +{"parent": "minecraft:item/generated", "textures": {"layer0": "computercraft:item/printed_pages"}} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/printer.json b/src/generated/resources/assets/computercraft/models/item/printer.json new file mode 100644 index 000000000..794d0c58f --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/printer.json @@ -0,0 +1 @@ +{"parent": "computercraft:block/printer_empty"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/speaker.json b/src/generated/resources/assets/computercraft/models/item/speaker.json index b1512e00a..ae66da5cb 100644 --- a/src/generated/resources/assets/computercraft/models/item/speaker.json +++ b/src/generated/resources/assets/computercraft/models/item/speaker.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/speaker" -} \ No newline at end of file +{"parent": "computercraft:block/speaker"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/treasure_disk.json b/src/generated/resources/assets/computercraft/models/item/treasure_disk.json new file mode 100644 index 000000000..56c6fb122 --- /dev/null +++ b/src/generated/resources/assets/computercraft/models/item/treasure_disk.json @@ -0,0 +1,4 @@ +{ + "parent": "minecraft:item/generated", + "textures": {"layer0": "computercraft:item/disk_frame", "layer1": "computercraft:item/disk_colour"} +} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/turtle_advanced.json b/src/generated/resources/assets/computercraft/models/item/turtle_advanced.json index f0022f574..66ad045a2 100644 --- a/src/generated/resources/assets/computercraft/models/item/turtle_advanced.json +++ b/src/generated/resources/assets/computercraft/models/item/turtle_advanced.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/turtle_advanced" -} \ No newline at end of file +{"loader": "computercraft:turtle", "model": "computercraft:block/turtle_advanced"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/turtle_normal.json b/src/generated/resources/assets/computercraft/models/item/turtle_normal.json index 93e148af2..18e686a8c 100644 --- a/src/generated/resources/assets/computercraft/models/item/turtle_normal.json +++ b/src/generated/resources/assets/computercraft/models/item/turtle_normal.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/turtle_normal" -} \ No newline at end of file +{"loader": "computercraft:turtle", "model": "computercraft:block/turtle_normal"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/wired_modem.json b/src/generated/resources/assets/computercraft/models/item/wired_modem.json index aba155aab..487b1d0f1 100644 --- a/src/generated/resources/assets/computercraft/models/item/wired_modem.json +++ b/src/generated/resources/assets/computercraft/models/item/wired_modem.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/wired_modem_off" -} \ No newline at end of file +{"parent": "computercraft:block/wired_modem_off"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/wired_modem_full.json b/src/generated/resources/assets/computercraft/models/item/wired_modem_full.json index 339d9842e..42c866124 100644 --- a/src/generated/resources/assets/computercraft/models/item/wired_modem_full.json +++ b/src/generated/resources/assets/computercraft/models/item/wired_modem_full.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/wired_modem_full_off" -} \ No newline at end of file +{"parent": "computercraft:block/wired_modem_full_off"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/wireless_modem_advanced.json b/src/generated/resources/assets/computercraft/models/item/wireless_modem_advanced.json index 4398d6086..ed9a5d3c0 100644 --- a/src/generated/resources/assets/computercraft/models/item/wireless_modem_advanced.json +++ b/src/generated/resources/assets/computercraft/models/item/wireless_modem_advanced.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/wireless_modem_advanced_off" -} \ No newline at end of file +{"parent": "computercraft:block/wireless_modem_advanced_off"} \ No newline at end of file diff --git a/src/generated/resources/assets/computercraft/models/item/wireless_modem_normal.json b/src/generated/resources/assets/computercraft/models/item/wireless_modem_normal.json index 970e4be3e..93263f0ed 100644 --- a/src/generated/resources/assets/computercraft/models/item/wireless_modem_normal.json +++ b/src/generated/resources/assets/computercraft/models/item/wireless_modem_normal.json @@ -1,3 +1 @@ -{ - "parent": "computercraft:block/wireless_modem_normal_off" -} \ No newline at end of file +{"parent": "computercraft:block/wireless_modem_normal_off"} \ No newline at end of file diff --git a/src/main/java/dan200/computercraft/api/client/TransformedModel.java b/src/main/java/dan200/computercraft/api/client/TransformedModel.java index 712d59134..003b1627f 100644 --- a/src/main/java/dan200/computercraft/api/client/TransformedModel.java +++ b/src/main/java/dan200/computercraft/api/client/TransformedModel.java @@ -10,6 +10,7 @@ import net.minecraft.client.renderer.model.ModelManager; import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.vector.TransformationMatrix; import javax.annotation.Nonnull; @@ -41,6 +42,12 @@ public static TransformedModel of( @Nonnull ModelResourceLocation location ) return new TransformedModel( modelManager.getModel( location ) ); } + public static TransformedModel of( @Nonnull ResourceLocation location ) + { + ModelManager modelManager = Minecraft.getInstance().getModelManager(); + return new TransformedModel( modelManager.getModel( location ) ); + } + public static TransformedModel of( @Nonnull ItemStack item, @Nonnull TransformationMatrix transform ) { IBakedModel model = Minecraft.getInstance().getItemRenderer().getItemModelShaper().getItemModel( item ); diff --git a/src/main/java/dan200/computercraft/client/ClientRegistry.java b/src/main/java/dan200/computercraft/client/ClientRegistry.java index aa0bc77c5..6e66db194 100644 --- a/src/main/java/dan200/computercraft/client/ClientRegistry.java +++ b/src/main/java/dan200/computercraft/client/ClientRegistry.java @@ -21,7 +21,6 @@ import net.minecraft.client.gui.ScreenManager; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderTypeLookup; -import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.Item; import net.minecraft.item.ItemModelsProperties; @@ -45,24 +44,25 @@ public final class ClientRegistry { private static final String[] EXTRA_MODELS = new String[] { // Turtle upgrades - "turtle_modem_normal_off_left", - "turtle_modem_normal_on_left", - "turtle_modem_normal_off_right", - "turtle_modem_normal_on_right", + "block/turtle_modem_normal_off_left", + "block/turtle_modem_normal_on_left", + "block/turtle_modem_normal_off_right", + "block/turtle_modem_normal_on_right", - "turtle_modem_advanced_off_left", - "turtle_modem_advanced_on_left", - "turtle_modem_advanced_off_right", - "turtle_modem_advanced_on_right", - "turtle_crafting_table_left", - "turtle_crafting_table_right", + "block/turtle_modem_advanced_off_left", + "block/turtle_modem_advanced_on_left", + "block/turtle_modem_advanced_off_right", + "block/turtle_modem_advanced_on_right", - "turtle_speaker_upgrade_left", - "turtle_speaker_upgrade_right", + "block/turtle_crafting_table_left", + "block/turtle_crafting_table_right", + + "block/turtle_speaker_left", + "block/turtle_speaker_right", // Turtle block renderer - "turtle_colour", - "turtle_elf_overlay", + "block/turtle_colour", + "block/turtle_elf_overlay", }; private ClientRegistry() {} @@ -73,7 +73,7 @@ public static void registerModels( ModelRegistryEvent event ) ModelLoaderRegistry.registerLoader( new ResourceLocation( ComputerCraft.MOD_ID, "turtle" ), TurtleModelLoader.INSTANCE ); for( String model : EXTRA_MODELS ) { - ModelLoader.addSpecialModel( new ModelResourceLocation( new ResourceLocation( ComputerCraft.MOD_ID, model ), "inventory" ) ); + ModelLoader.addSpecialModel( new ResourceLocation( ComputerCraft.MOD_ID, model ) ); } } diff --git a/src/main/java/dan200/computercraft/client/render/TileEntityTurtleRenderer.java b/src/main/java/dan200/computercraft/client/render/TileEntityTurtleRenderer.java index aa62d1be0..3ffe71299 100644 --- a/src/main/java/dan200/computercraft/client/render/TileEntityTurtleRenderer.java +++ b/src/main/java/dan200/computercraft/client/render/TileEntityTurtleRenderer.java @@ -7,6 +7,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; +import dan200.computercraft.ComputerCraft; import dan200.computercraft.api.client.TransformedModel; import dan200.computercraft.api.turtle.ITurtleUpgrade; import dan200.computercraft.api.turtle.TurtleSide; @@ -42,8 +43,8 @@ public class TileEntityTurtleRenderer extends TileEntityRenderer { private static final ModelResourceLocation NORMAL_TURTLE_MODEL = new ModelResourceLocation( "computercraft:turtle_normal", "inventory" ); private static final ModelResourceLocation ADVANCED_TURTLE_MODEL = new ModelResourceLocation( "computercraft:turtle_advanced", "inventory" ); - private static final ModelResourceLocation COLOUR_TURTLE_MODEL = new ModelResourceLocation( "computercraft:turtle_colour", "inventory" ); - private static final ModelResourceLocation ELF_OVERLAY_MODEL = new ModelResourceLocation( "computercraft:turtle_elf_overlay", "inventory" ); + private static final ResourceLocation COLOUR_TURTLE_MODEL = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_colour" ); + private static final ResourceLocation ELF_OVERLAY_MODEL = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_elf_overlay" ); private final Random random = new Random( 0 ); @@ -52,7 +53,7 @@ public TileEntityTurtleRenderer( TileEntityRendererDispatcher renderDispatcher ) super( renderDispatcher ); } - public static ModelResourceLocation getTurtleModel( ComputerFamily family, boolean coloured ) + public static ResourceLocation getTurtleModel( ComputerFamily family, boolean coloured ) { switch( family ) { @@ -64,9 +65,9 @@ public static ModelResourceLocation getTurtleModel( ComputerFamily family, boole } } - public static ModelResourceLocation getTurtleOverlayModel( ResourceLocation overlay, boolean christmas ) + public static ResourceLocation getTurtleOverlayModel( ResourceLocation overlay, boolean christmas ) { - if( overlay != null ) return new ModelResourceLocation( overlay, "inventory" ); + if( overlay != null ) return overlay; if( christmas ) return ELF_OVERLAY_MODEL; return null; } @@ -121,7 +122,7 @@ public void render( @Nonnull TileTurtle turtle, float partialTicks, @Nonnull Mat renderModel( transform, buffer, lightmapCoord, overlayLight, getTurtleModel( family, colour != -1 ), colour == -1 ? null : new int[] { colour } ); // Render the overlay - ModelResourceLocation overlayModel = getTurtleOverlayModel( overlay, HolidayUtil.getCurrentHoliday() == Holiday.CHRISTMAS ); + ResourceLocation overlayModel = getTurtleOverlayModel( overlay, HolidayUtil.getCurrentHoliday() == Holiday.CHRISTMAS ); if( overlayModel != null ) { renderModel( transform, buffer, lightmapCoord, overlayLight, overlayModel, null ); @@ -153,7 +154,7 @@ private void renderUpgrade( @Nonnull MatrixStack transform, @Nonnull IVertexBuil transform.popPose(); } - private void renderModel( @Nonnull MatrixStack transform, @Nonnull IVertexBuilder renderer, int lightmapCoord, int overlayLight, ModelResourceLocation modelLocation, int[] tints ) + private void renderModel( @Nonnull MatrixStack transform, @Nonnull IVertexBuilder renderer, int lightmapCoord, int overlayLight, ResourceLocation modelLocation, int[] tints ) { ModelManager modelManager = Minecraft.getInstance().getItemRenderer().getItemModelShaper().getModelManager(); renderModel( transform, renderer, lightmapCoord, overlayLight, modelManager.getModel( modelLocation ), tints ); diff --git a/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java b/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java index 32d7d951a..688037846 100644 --- a/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java +++ b/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java @@ -139,7 +139,7 @@ private IBakedModel buildModel( TurtleModelCombination combo ) { Minecraft mc = Minecraft.getInstance(); ModelManager modelManager = mc.getItemRenderer().getItemModelShaper().getModelManager(); - ModelResourceLocation overlayModelLocation = TileEntityTurtleRenderer.getTurtleOverlayModel( combo.overlay, combo.christmas ); + ResourceLocation overlayModelLocation = TileEntityTurtleRenderer.getTurtleOverlayModel( combo.overlay, combo.christmas ); IBakedModel baseModel = combo.colour ? colourModel : familyModel; IBakedModel overlayModel = overlayModelLocation != null ? modelManager.getModel( overlayModelLocation ) : null; diff --git a/src/main/java/dan200/computercraft/data/BasicCustomLoader.java b/src/main/java/dan200/computercraft/data/BasicCustomLoader.java deleted file mode 100644 index f36c3c322..000000000 --- a/src/main/java/dan200/computercraft/data/BasicCustomLoader.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of ComputerCraft - http://www.computercraft.info - * Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission. - * Send enquiries to dratcliffe@gmail.com - */ -package dan200.computercraft.data; - -import com.google.gson.JsonObject; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.generators.CustomLoaderBuilder; -import net.minecraftforge.client.model.generators.ModelBuilder; -import net.minecraftforge.common.data.ExistingFileHelper; - -import java.util.function.BiFunction; -import java.util.function.Consumer; - -public class BasicCustomLoader> extends CustomLoaderBuilder -{ - private final Consumer extra; - - protected BasicCustomLoader( ResourceLocation loaderId, T parent, ExistingFileHelper existingFileHelper, Consumer extra ) - { - super( loaderId, parent, existingFileHelper ); - this.extra = extra; - } - - public static > BiFunction> makeFactory( ResourceLocation id ) - { - return makeFactory( id, j -> {} ); - } - - public static > BiFunction> makeFactory( ResourceLocation id, Consumer extra ) - { - return ( parent, x ) -> new BasicCustomLoader<>( id, parent, x, extra ); - } - - @Override - public JsonObject toJson( JsonObject json ) - { - super.toJson( json ); - extra.accept( json ); - return json; - } -} diff --git a/src/main/java/dan200/computercraft/data/BlockModelGenerator.java b/src/main/java/dan200/computercraft/data/BlockModelGenerator.java new file mode 100644 index 000000000..69ab3b609 --- /dev/null +++ b/src/main/java/dan200/computercraft/data/BlockModelGenerator.java @@ -0,0 +1,473 @@ +/* + * This file is part of ComputerCraft - http://www.computercraft.info + * Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission. + * Send enquiries to dratcliffe@gmail.com + */ +package dan200.computercraft.data; + +import com.google.gson.JsonObject; +import dan200.computercraft.ComputerCraft; +import dan200.computercraft.shared.Registry; +import dan200.computercraft.shared.computer.blocks.BlockComputer; +import dan200.computercraft.shared.peripheral.diskdrive.BlockDiskDrive; +import dan200.computercraft.shared.peripheral.modem.wired.BlockCable; +import dan200.computercraft.shared.peripheral.modem.wired.BlockWiredModemFull; +import dan200.computercraft.shared.peripheral.modem.wired.CableModemVariant; +import dan200.computercraft.shared.peripheral.modem.wireless.BlockWirelessModem; +import dan200.computercraft.shared.peripheral.monitor.BlockMonitor; +import dan200.computercraft.shared.peripheral.monitor.MonitorEdgeState; +import dan200.computercraft.shared.peripheral.printer.BlockPrinter; +import dan200.computercraft.shared.turtle.blocks.BlockTurtle; +import dan200.computercraft.shared.util.DirectionUtil; +import net.minecraft.data.*; +import net.minecraft.state.BooleanProperty; +import net.minecraft.state.Property; +import net.minecraft.state.properties.BlockStateProperties; +import net.minecraft.util.Direction; +import net.minecraft.util.ResourceLocation; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.function.BiFunction; +import java.util.function.Function; + +import static net.minecraft.data.ModelTextures.getBlockTexture; +import static net.minecraft.data.ModelsResourceUtil.getModelLocation; + +class BlockModelGenerator +{ + private static final ModelsUtil MONITOR_BASE = new ModelsUtil( + Optional.of( new ResourceLocation( ComputerCraft.MOD_ID, "block/monitor_base" ) ), + Optional.empty(), + StockTextureAliases.FRONT, StockTextureAliases.SIDE, StockTextureAliases.TOP, StockTextureAliases.BACK + ); + private static final ModelsUtil MODEM = new ModelsUtil( + Optional.of( new ResourceLocation( ComputerCraft.MOD_ID, "block/modem" ) ), + Optional.empty(), + StockTextureAliases.FRONT, StockTextureAliases.BACK + ); + private static final ModelsUtil TURTLE = new ModelsUtil( + Optional.of( new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_base" ) ), + Optional.empty(), + StockTextureAliases.TEXTURE + ); + private static final ModelsUtil TURTLE_UPGRADE_LEFT = new ModelsUtil( + Optional.of( new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_upgrade_base_left" ) ), + Optional.of( "_left" ), + StockTextureAliases.TEXTURE + ); + private static final ModelsUtil TURTLE_UPGRADE_RIGHT = new ModelsUtil( + Optional.of( new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_upgrade_base_right" ) ), + Optional.of( "_left" ), + StockTextureAliases.TEXTURE + ); + + public static void addBlockModels( BlockModelProvider generators ) + { + registerComputer( generators, Registry.ModBlocks.COMPUTER_NORMAL.get() ); + registerComputer( generators, Registry.ModBlocks.COMPUTER_ADVANCED.get() ); + registerComputer( generators, Registry.ModBlocks.COMPUTER_COMMAND.get() ); + + registerTurtle( generators, Registry.ModBlocks.TURTLE_NORMAL.get() ); + registerTurtle( generators, Registry.ModBlocks.TURTLE_ADVANCED.get() ); + + registerWirelessModem( generators, Registry.ModBlocks.WIRELESS_MODEM_NORMAL.get() ); + registerWirelessModem( generators, Registry.ModBlocks.WIRELESS_MODEM_ADVANCED.get() ); + + registerWiredModems( generators ); + + registerMonitor( generators, Registry.ModBlocks.MONITOR_NORMAL.get() ); + registerMonitor( generators, Registry.ModBlocks.MONITOR_ADVANCED.get() ); + + generators.createHorizontallyRotatedBlock( Registry.ModBlocks.SPEAKER.get(), TexturedModel.ORIENTABLE_ONLY_TOP ); + registerDiskDrive( generators ); + registerPrinter( generators ); + + registerCable( generators ); + + registerTurtleUpgrade( generators, "block/turtle_crafting_table", "block/turtle_crafty_face" ); + registerTurtleUpgrade( generators, "block/turtle_speaker", "block/turtle_speaker_face" ); + registerTurtleModem( generators, "block/turtle_modem_normal", "block/wireless_modem_normal_face" ); + registerTurtleModem( generators, "block/turtle_modem_advanced", "block/wireless_modem_advanced_face" ); + } + + private static void registerDiskDrive( BlockModelProvider generators ) + { + BlockDiskDrive diskDrive = Registry.ModBlocks.DISK_DRIVE.get(); + generators.blockStateOutput.accept( FinishedVariantBlockState.multiVariant( diskDrive ) + .with( createHorizontalFacingDispatch() ) + .with( createModelDispatch( BlockDiskDrive.STATE, value -> { + String textureSuffix; + switch( value ) + { + case EMPTY: + textureSuffix = "_front"; + break; + case INVALID: + textureSuffix = "_front_rejected"; + break; + case FULL: + textureSuffix = "_front_accepted"; + break; + default: + throw new IllegalArgumentException(); + } + return StockModelShapes.CUBE_ORIENTABLE.createWithSuffix( + diskDrive, "_" + value.getSerializedName(), + ModelTextures.orientableCube( diskDrive ).put( StockTextureAliases.FRONT, getBlockTexture( diskDrive, textureSuffix ) ), + generators.modelOutput + ); + } ) ) + ); + generators.delegateItemModel( diskDrive, getModelLocation( diskDrive, "_empty" ) ); + } + + private static void registerPrinter( BlockModelProvider generators ) + { + BlockPrinter printer = Registry.ModBlocks.PRINTER.get(); + generators.blockStateOutput.accept( FinishedVariantBlockState.multiVariant( printer ) + .with( createHorizontalFacingDispatch() ) + .with( createModelDispatch( BlockPrinter.TOP, BlockPrinter.BOTTOM, ( top, bottom ) -> { + String model, texture; + if( top && bottom ) + { + model = "_both_full"; + texture = "_both_trays"; + } + else if( top ) + { + model = "_top_full"; + texture = "_top_tray"; + } + else if( bottom ) + { + model = "_bottom_full"; + texture = "_bottom_tray"; + } + else + { + texture = model = "_empty"; + } + + return StockModelShapes.CUBE_ORIENTABLE.createWithSuffix( printer, model, + ModelTextures.orientableCube( printer ).put( StockTextureAliases.FRONT, getBlockTexture( printer, "_front" + texture ) ), + generators.modelOutput + ); + } ) ) + ); + generators.delegateItemModel( printer, getModelLocation( printer, "_empty" ) ); + } + + private static void registerComputer( BlockModelProvider generators, BlockComputer block ) + { + generators.blockStateOutput.accept( FinishedVariantBlockState.multiVariant( block ) + .with( createHorizontalFacingDispatch() ) + .with( createModelDispatch( BlockComputer.STATE, state -> StockModelShapes.CUBE_ORIENTABLE.createWithSuffix( + block, "_" + state.getSerializedName(), + ModelTextures.orientableCube( block ).put( StockTextureAliases.FRONT, getBlockTexture( block, "_front" + state.getTexture() ) ), + generators.modelOutput + ) ) ) + ); + generators.delegateItemModel( block, getModelLocation( block, "_blinking" ) ); + } + + private static void registerTurtle( BlockModelProvider generators, BlockTurtle block ) + { + ResourceLocation model = TURTLE.create( block, ModelTextures.defaultTexture( block ), generators.modelOutput ); + generators.blockStateOutput.accept( + FinishedVariantBlockState.multiVariant( block, BlockModelDefinition.variant().with( BlockModelFields.MODEL, model ) ) + .with( createHorizontalFacingDispatch() ) + ); + + generators.modelOutput.accept( getModelLocation( block.asItem() ), () -> { + JsonObject out = new JsonObject(); + out.addProperty( "loader", "computercraft:turtle" ); + out.addProperty( "model", model.toString() ); + return out; + } ); + } + + private static void registerWirelessModem( BlockModelProvider generators, BlockWirelessModem block ) + { + generators.blockStateOutput.accept( FinishedVariantBlockState.multiVariant( block ) + .with( createFacingDispatch() ) + .with( createModelDispatch( BlockWirelessModem.ON, + on -> modemModel( generators, getModelLocation( block, on ? "_on" : "_off" ), getBlockTexture( block, "_face" + (on ? "_on" : "") ) ) + ) ) ); + generators.delegateItemModel( block, getModelLocation( block, "_off" ) ); + } + + private static void registerWiredModems( BlockModelProvider generators ) + { + BlockWiredModemFull fullBlock = Registry.ModBlocks.WIRED_MODEM_FULL.get(); + generators.blockStateOutput.accept( FinishedVariantBlockState.multiVariant( fullBlock ) + .with( createModelDispatch( BlockWiredModemFull.MODEM_ON, BlockWiredModemFull.PERIPHERAL_ON, ( on, peripheral ) -> { + String suffix = (on ? "_on" : "_off") + (peripheral ? "_peripheral" : ""); + ResourceLocation faceTexture = new ResourceLocation( ComputerCraft.MOD_ID, "block/wired_modem_face" + (peripheral ? "_peripheral" : "") + (on ? "_on" : "") ); + + // TODO: Do this somewhere more elegant! + modemModel( generators, new ResourceLocation( ComputerCraft.MOD_ID, "block/wired_modem" + suffix ), faceTexture ); + + return StockModelShapes.CUBE_ALL.create( + getModelLocation( fullBlock, suffix ), + new ModelTextures().put( StockTextureAliases.ALL, faceTexture ), + generators.modelOutput + ); + } ) ) ); + + generators.delegateItemModel( fullBlock, getModelLocation( fullBlock, "_off" ) ); + generators.delegateItemModel( Registry.ModItems.WIRED_MODEM.get(), new ResourceLocation( ComputerCraft.MOD_ID, "block/wired_modem_off" ) ); + } + + private static ResourceLocation modemModel( BlockModelProvider generators, ResourceLocation name, ResourceLocation texture ) + { + return MODEM.create( + name, + new ModelTextures() + .put( StockTextureAliases.FRONT, texture ) + .put( StockTextureAliases.BACK, new ResourceLocation( ComputerCraft.MOD_ID, "block/modem_back" ) ), + generators.modelOutput + ); + } + + private static void registerMonitor( BlockModelProvider generators, BlockMonitor block ) + { + monitorModel( generators, block, "", 16, 4, 0, 32 ); + monitorModel( generators, block, "_d", 20, 7, 0, 36 ); + monitorModel( generators, block, "_l", 19, 4, 1, 33 ); + monitorModel( generators, block, "_ld", 31, 7, 1, 45 ); + monitorModel( generators, block, "_lr", 18, 4, 2, 34 ); + monitorModel( generators, block, "_lrd", 30, 7, 2, 46 ); + monitorModel( generators, block, "_lru", 24, 5, 2, 40 ); + monitorModel( generators, block, "_lrud", 27, 6, 2, 43 ); + monitorModel( generators, block, "_lu", 25, 5, 1, 39 ); + monitorModel( generators, block, "_lud", 28, 6, 1, 42 ); + monitorModel( generators, block, "_r", 17, 4, 3, 35 ); + monitorModel( generators, block, "_rd", 29, 7, 3, 47 ); + monitorModel( generators, block, "_ru", 23, 5, 3, 41 ); + monitorModel( generators, block, "_rud", 26, 6, 3, 44 ); + monitorModel( generators, block, "_u", 22, 5, 0, 38 ); + monitorModel( generators, block, "_ud", 21, 6, 0, 37 ); + + generators.blockStateOutput.accept( FinishedVariantBlockState.multiVariant( block ) + .with( createHorizontalFacingDispatch() ) + .with( createVerticalFacingDispatch( BlockMonitor.ORIENTATION ) ) + .with( createModelDispatch( BlockMonitor.STATE, edge -> getModelLocation( block, edge == MonitorEdgeState.NONE ? "" : "_" + edge.getSerializedName() ) ) ) + ); + generators.delegateItemModel( block, monitorModel( generators, block, "_item", 15, 4, 0, 32 ) ); + } + + private static ResourceLocation monitorModel( BlockModelProvider generators, BlockMonitor block, String corners, int front, int side, int top, int back ) + { + return MONITOR_BASE.create( + getModelLocation( block, corners ), + new ModelTextures() + .put( StockTextureAliases.FRONT, getBlockTexture( block, "_" + front ) ) + .put( StockTextureAliases.SIDE, getBlockTexture( block, "_" + side ) ) + .put( StockTextureAliases.TOP, getBlockTexture( block, "_" + top ) ) + .put( StockTextureAliases.BACK, getBlockTexture( block, "_" + back ) ), + generators.modelOutput + ); + } + + private static void registerCable( BlockModelProvider generators ) + { + FinishedMultiPartBlockState generator = FinishedMultiPartBlockState.multiPart( Registry.ModBlocks.CABLE.get() ); + + // When a cable only has a neighbour in a single direction, we redirect the core to face that direction. + ResourceLocation coreFacing = new ResourceLocation( ComputerCraft.MOD_ID, "block/cable_core_facing" ); + generator.with( // Up/Down + IMultiPartPredicateBuilder.or( + cableNoNeighbour( Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST ).term( BlockCable.UP, true ), + cableNoNeighbour( Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST ).term( BlockCable.DOWN, true ) + ), + BlockModelDefinition.variant().with( BlockModelFields.MODEL, coreFacing ).with( BlockModelFields.X_ROT, BlockModelFields.Rotation.R90 ) + ); + + generator.with( // North/South and no neighbours + IMultiPartPredicateBuilder.or( + cableNoNeighbour( Direction.UP, Direction.DOWN, Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST ), + cableNoNeighbour( Direction.UP, Direction.DOWN, Direction.EAST, Direction.WEST ).term( BlockCable.NORTH, true ), + cableNoNeighbour( Direction.UP, Direction.DOWN, Direction.EAST, Direction.WEST ).term( BlockCable.SOUTH, true ) + ), + BlockModelDefinition.variant().with( BlockModelFields.MODEL, coreFacing ).with( BlockModelFields.Y_ROT, BlockModelFields.Rotation.R0 ) + ); + + generator.with( // East/West + IMultiPartPredicateBuilder.or( + cableNoNeighbour( Direction.NORTH, Direction.SOUTH, Direction.UP, Direction.DOWN ).term( BlockCable.EAST, true ), + cableNoNeighbour( Direction.NORTH, Direction.SOUTH, Direction.UP, Direction.DOWN ).term( BlockCable.WEST, true ) + ), + BlockModelDefinition.variant().with( BlockModelFields.MODEL, coreFacing ).with( BlockModelFields.Y_ROT, BlockModelFields.Rotation.R90 ) + ); + + // Find all other possibilities and emit a "solid" core which doesn't have a facing direction. + ResourceLocation core = new ResourceLocation( ComputerCraft.MOD_ID, "block/cable_core_any" ); + List rightAngles = new ArrayList<>(); + for( int i = 0; i < DirectionUtil.FACINGS.length; i++ ) + { + for( int j = i; j < DirectionUtil.FACINGS.length; j++ ) + { + if( DirectionUtil.FACINGS[i].getAxis() == DirectionUtil.FACINGS[j].getAxis() ) continue; + + rightAngles.add( new IMultiPartPredicateBuilder.Properties() + .term( BlockCable.CABLE, true ).term( CABLE_DIRECTIONS[i], true ).term( CABLE_DIRECTIONS[j], true ) + ); + } + } + generator.with( IMultiPartPredicateBuilder.or( rightAngles.toArray( new IMultiPartPredicateBuilder[0] ) ), BlockModelDefinition.variant().with( BlockModelFields.MODEL, core ) ); + + // Then emit the actual cable arms + ResourceLocation arm = new ResourceLocation( ComputerCraft.MOD_ID, "block/cable_arm" ); + for( Direction direction : DirectionUtil.FACINGS ) + { + generator.with( + new IMultiPartPredicateBuilder.Properties().term( CABLE_DIRECTIONS[direction.ordinal()], true ), + BlockModelDefinition.variant() + .with( BlockModelFields.MODEL, arm ) + .with( BlockModelFields.X_ROT, toXAngle( direction.getOpposite() ) ) + .with( BlockModelFields.Y_ROT, toYAngle( direction.getOpposite() ) ) + ); + } + + // And the modems! + for( Direction direction : DirectionUtil.FACINGS ) + { + for( boolean on : BOOLEANS ) + { + for( boolean peripheral : BOOLEANS ) + { + String suffix = (on ? "_on" : "_off") + (peripheral ? "_peripheral" : ""); + generator.with( + new IMultiPartPredicateBuilder.Properties().term( BlockCable.MODEM, CableModemVariant.from( direction, on, peripheral ) ), + BlockModelDefinition.variant() + .with( BlockModelFields.MODEL, new ResourceLocation( ComputerCraft.MOD_ID, "block/wired_modem" + suffix ) ) + .with( BlockModelFields.X_ROT, toXAngle( direction ) ) + .with( BlockModelFields.Y_ROT, toYAngle( direction ) ) + ); + } + } + } + + generators.blockStateOutput.accept( generator ); + } + + private static final BooleanProperty[] CABLE_DIRECTIONS = { BlockCable.DOWN, BlockCable.UP, BlockCable.NORTH, BlockCable.SOUTH, BlockCable.WEST, BlockCable.EAST }; + private static final boolean[] BOOLEANS = new boolean[] { false, true }; + + private static IMultiPartPredicateBuilder.Properties cableNoNeighbour( Direction... directions ) + { + IMultiPartPredicateBuilder.Properties condition = new IMultiPartPredicateBuilder.Properties().term( BlockCable.CABLE, true ); + for( Direction direction : directions ) condition.term( CABLE_DIRECTIONS[direction.ordinal()], false ); + return condition; + } + + private static void registerTurtleUpgrade( BlockModelProvider generators, String name, String texture ) + { + TURTLE_UPGRADE_LEFT.create( + new ResourceLocation( ComputerCraft.MOD_ID, name + "_left" ), + ModelTextures.defaultTexture( new ResourceLocation( ComputerCraft.MOD_ID, texture ) ), + generators.modelOutput + ); + TURTLE_UPGRADE_RIGHT.create( + new ResourceLocation( ComputerCraft.MOD_ID, name + "_right" ), + ModelTextures.defaultTexture( new ResourceLocation( ComputerCraft.MOD_ID, texture ) ), + generators.modelOutput + ); + } + + private static void registerTurtleModem( BlockModelProvider generators, String name, String texture ) + { + registerTurtleUpgrade( generators, name + "_off", texture ); + registerTurtleUpgrade( generators, name + "_on", texture + "_on" ); + } + + private static BlockModelFields.Rotation toXAngle( Direction direction ) + { + switch( direction ) + { + default: + return BlockModelFields.Rotation.R0; + case UP: + return BlockModelFields.Rotation.R270; + case DOWN: + return BlockModelFields.Rotation.R90; + } + } + + private static BlockModelFields.Rotation toYAngle( Direction direction ) + { + switch( direction ) + { + default: + return BlockModelFields.Rotation.R0; + case NORTH: + return BlockModelFields.Rotation.R0; + case SOUTH: + return BlockModelFields.Rotation.R180; + case EAST: + return BlockModelFields.Rotation.R90; + case WEST: + return BlockModelFields.Rotation.R270; + } + } + + private static BlockStateVariantBuilder createHorizontalFacingDispatch() + { + BlockStateVariantBuilder.One dispatch = BlockStateVariantBuilder.property( BlockStateProperties.HORIZONTAL_FACING ); + for( Direction direction : BlockStateProperties.HORIZONTAL_FACING.getPossibleValues() ) + { + dispatch.select( direction, BlockModelDefinition.variant().with( BlockModelFields.Y_ROT, toYAngle( direction ) ) ); + } + return dispatch; + } + + private static BlockStateVariantBuilder createVerticalFacingDispatch( Property property ) + { + BlockStateVariantBuilder.One dispatch = BlockStateVariantBuilder.property( property ); + for( Direction direction : property.getPossibleValues() ) + { + dispatch.select( direction, BlockModelDefinition.variant().with( BlockModelFields.X_ROT, toXAngle( direction ) ) ); + } + return dispatch; + } + + private static BlockStateVariantBuilder createFacingDispatch() + { + BlockStateVariantBuilder.One dispatch = BlockStateVariantBuilder.property( BlockStateProperties.FACING ); + for( Direction direction : BlockStateProperties.FACING.getPossibleValues() ) + { + dispatch.select( direction, BlockModelDefinition.variant() + .with( BlockModelFields.Y_ROT, toYAngle( direction ) ) + .with( BlockModelFields.X_ROT, toXAngle( direction ) ) + ); + } + return dispatch; + } + + private static > BlockStateVariantBuilder createModelDispatch( Property property, Function makeModel ) + { + BlockStateVariantBuilder.One variant = BlockStateVariantBuilder.property( property ); + for( T value : property.getPossibleValues() ) + { + variant.select( value, BlockModelDefinition.variant().with( BlockModelFields.MODEL, makeModel.apply( value ) ) ); + } + return variant; + } + + private static , U extends Comparable> BlockStateVariantBuilder createModelDispatch( + Property propertyT, Property propertyU, BiFunction makeModel + ) + { + BlockStateVariantBuilder.Two variant = BlockStateVariantBuilder.properties( propertyT, propertyU ); + for( T valueT : propertyT.getPossibleValues() ) + { + for( U valueU : propertyU.getPossibleValues() ) + { + variant.select( valueT, valueU, BlockModelDefinition.variant().with( BlockModelFields.MODEL, makeModel.apply( valueT, valueU ) ) ); + } + } + return variant; + } +} diff --git a/src/main/java/dan200/computercraft/data/BlockModelProvider.java b/src/main/java/dan200/computercraft/data/BlockModelProvider.java deleted file mode 100644 index 71eba743c..000000000 --- a/src/main/java/dan200/computercraft/data/BlockModelProvider.java +++ /dev/null @@ -1,285 +0,0 @@ -/* - * This file is part of ComputerCraft - http://www.computercraft.info - * Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission. - * Send enquiries to dratcliffe@gmail.com - */ -package dan200.computercraft.data; - -import dan200.computercraft.ComputerCraft; -import dan200.computercraft.shared.Registry; -import dan200.computercraft.shared.computer.blocks.BlockComputer; -import dan200.computercraft.shared.computer.core.ComputerState; -import dan200.computercraft.shared.peripheral.modem.wired.BlockWiredModemFull; -import dan200.computercraft.shared.peripheral.modem.wireless.BlockWirelessModem; -import dan200.computercraft.shared.peripheral.monitor.BlockMonitor; -import dan200.computercraft.shared.peripheral.monitor.MonitorEdgeState; -import dan200.computercraft.shared.turtle.blocks.BlockTurtle; -import net.minecraft.block.Block; -import net.minecraft.data.DataGenerator; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.generators.*; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.registries.IForgeRegistryEntry; - -import javax.annotation.Nonnull; -import java.util.Objects; - -public class BlockModelProvider extends BlockStateProvider -{ - private ModelFile monitorBase; - private ModelFile turtleBase; - private ModelFile modemBase; - - public BlockModelProvider( DataGenerator generator, ExistingFileHelper existingFileHelper ) - { - super( generator, ComputerCraft.MOD_ID, existingFileHelper ); - } - - @Nonnull - @Override - public String getName() - { - return "Block states and models"; - } - - @Override - protected void registerStatesAndModels() - { - monitorBase = models().getExistingFile( new ResourceLocation( ComputerCraft.MOD_ID, "block/monitor_base" ) ); - turtleBase = models().getExistingFile( new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_base" ) ); - modemBase = models().getExistingFile( new ResourceLocation( ComputerCraft.MOD_ID, "block/modem" ) ); - - registerComputer( Registry.ModBlocks.COMPUTER_NORMAL.get() ); - registerComputer( Registry.ModBlocks.COMPUTER_ADVANCED.get() ); - registerComputer( Registry.ModBlocks.COMPUTER_COMMAND.get() ); - - registerTurtle( Registry.ModBlocks.TURTLE_NORMAL.get() ); - registerTurtle( Registry.ModBlocks.TURTLE_ADVANCED.get() ); - - registerWirelessModem( Registry.ModBlocks.WIRELESS_MODEM_NORMAL.get() ); - registerWirelessModem( Registry.ModBlocks.WIRELESS_MODEM_ADVANCED.get() ); - - registerWiredModems(); - - registerMonitors( Registry.ModBlocks.MONITOR_NORMAL.get() ); - registerMonitors( Registry.ModBlocks.MONITOR_ADVANCED.get() ); - - // Register the simple things. - ModelFile speaker = models().orientable( - name( Registry.ModBlocks.SPEAKER.get() ), - blockTexture( Registry.ModBlocks.SPEAKER.get(), "_side" ), - blockTexture( Registry.ModBlocks.SPEAKER.get(), "_front" ), - blockTexture( Registry.ModBlocks.SPEAKER.get(), "_top" ) - ); - horizontalBlock( Registry.ModBlocks.SPEAKER.get(), speaker ); - simpleBlockItem( Registry.ModBlocks.SPEAKER.get(), speaker ); - } - - private void registerComputer( BlockComputer block ) - { - VariantBlockStateBuilder builder = getVariantBuilder( block ); - for( ComputerState state : BlockComputer.STATE.getPossibleValues() ) - { - BlockModelBuilder model = models().orientable( - extendedName( block, "_" + state ), - blockTexture( block, "_side" ), - blockTexture( block, "_front" + state.getTexture() ), - blockTexture( block, "_top" ) - ); - - for( Direction facing : BlockComputer.FACING.getPossibleValues() ) - { - builder.partialState() - .with( BlockComputer.STATE, state ) - .with( BlockComputer.FACING, facing ) - .addModels( new ConfiguredModel( model, 0, toYAngle( facing ), false ) ); - } - } - - simpleBlockItem( block, models().getBuilder( extendedName( block, "_blinking" ) ) ); - } - - private void registerTurtle( BlockTurtle block ) - { - VariantBlockStateBuilder builder = getVariantBuilder( block ); - BlockModelBuilder base = models() - .getBuilder( extendedName( block, "_base" ) ) - .parent( turtleBase ) - .texture( "texture", blockTexture( block ) ); - - BlockModelBuilder model = models() - .getBuilder( name( block ) ) - .customLoader( BasicCustomLoader.makeFactory( new ResourceLocation( ComputerCraft.MOD_ID, "turtle" ), x -> { - x.addProperty( "model", base.getLocation().toString() ); - } ) ) - .end(); - - for( Direction facing : BlockTurtle.FACING.getPossibleValues() ) - { - builder.partialState() - .with( BlockTurtle.FACING, facing ) - .addModels( new ConfiguredModel( model, 0, toYAngle( facing ), false ) ); - } - - simpleBlockItem( block, models().getBuilder( name( block ) ) ); - } - - private void registerWirelessModem( BlockWirelessModem block ) - { - VariantBlockStateBuilder builder = getVariantBuilder( block ); - - for( boolean on : BlockWirelessModem.ON.getPossibleValues() ) - { - ModelFile model = modemModel( extendedName( block, on ? "_on" : "_off" ), blockTexture( block, "_face" + (on ? "_on" : "") ) ); - - for( Direction facing : BlockWirelessModem.FACING.getPossibleValues() ) - { - builder.partialState() - .with( BlockWirelessModem.FACING, facing ) - .with( BlockWirelessModem.ON, on ) - .addModels( new ConfiguredModel( model, toXAngle( facing ), toYAngle( facing ), false ) ); - } - } - - simpleBlockItem( block, models().getBuilder( extendedName( block, "_off" ) ) ); - } - - private void registerWiredModems() - { - Block fullBlock = Registry.ModBlocks.WIRED_MODEM_FULL.get(); - VariantBlockStateBuilder fullBlockState = getVariantBuilder( fullBlock ); - for( boolean on : BlockWiredModemFull.MODEM_ON.getPossibleValues() ) - { - for( boolean peripheral : BlockWiredModemFull.PERIPHERAL_ON.getPossibleValues() ) - { - String suffix = (on ? "_on" : "_off") + (peripheral ? "_peripheral" : ""); - ResourceLocation faceTexture = new ResourceLocation( - ComputerCraft.MOD_ID, - "block/wired_modem_face" + (peripheral ? "_peripheral" : "") + (on ? "_on" : "") - ); - ModelFile fullBlockModel = models().cubeAll( blockTexture( fullBlock, suffix ).toString(), faceTexture ); - fullBlockState.partialState() - .with( BlockWiredModemFull.MODEM_ON, on ) - .with( BlockWiredModemFull.PERIPHERAL_ON, peripheral ) - .addModels( new ConfiguredModel( fullBlockModel ) ); - - modemModel( "wired_modem" + suffix, faceTexture ); - } - } - - simpleBlockItem( fullBlock, models().getBuilder( extendedName( fullBlock, "_off" ) ) ); - itemModels() - .getBuilder( name( Registry.ModItems.WIRED_MODEM.get() ) ) - .parent( models().getBuilder( "wired_modem_off" ) ); - } - - private ModelFile modemModel( String name, ResourceLocation texture ) - { - return models() - .getBuilder( name ) - .parent( modemBase ) - .texture( "front", texture ) - .texture( "back", new ResourceLocation( ComputerCraft.MOD_ID, "block/modem_back" ) ); - } - - private void registerMonitors( BlockMonitor block ) - { - String name = blockTexture( block ).toString(); - monitorModel( name, "", 16, 4, 0, 32 ); - monitorModel( name, "_d", 20, 7, 0, 36 ); - monitorModel( name, "_l", 19, 4, 1, 33 ); - monitorModel( name, "_ld", 31, 7, 1, 45 ); - monitorModel( name, "_lr", 18, 4, 2, 34 ); - monitorModel( name, "_lrd", 30, 7, 2, 46 ); - monitorModel( name, "_lru", 24, 5, 2, 40 ); - monitorModel( name, "_lrud", 27, 6, 2, 43 ); - monitorModel( name, "_lu", 25, 5, 1, 39 ); - monitorModel( name, "_lud", 28, 6, 1, 42 ); - monitorModel( name, "_r", 17, 4, 3, 35 ); - monitorModel( name, "_rd", 29, 7, 3, 47 ); - monitorModel( name, "_ru", 23, 5, 3, 41 ); - monitorModel( name, "_rud", 26, 6, 3, 44 ); - monitorModel( name, "_u", 22, 5, 0, 38 ); - monitorModel( name, "_ud", 21, 6, 0, 37 ); - - VariantBlockStateBuilder builder = getVariantBuilder( block ); - for( MonitorEdgeState edge : BlockMonitor.STATE.getPossibleValues() ) - { - String suffix = edge == MonitorEdgeState.NONE ? "" : "_" + edge.getSerializedName(); - ModelFile model = models().getBuilder( extend( block.getRegistryName(), suffix ) ); - - for( Direction facing : BlockMonitor.FACING.getPossibleValues() ) - { - for( Direction orientation : BlockMonitor.ORIENTATION.getPossibleValues() ) - { - builder.partialState() - .with( BlockMonitor.STATE, edge ) - .with( BlockMonitor.FACING, facing ) - .with( BlockMonitor.ORIENTATION, orientation ) - .addModels( new ConfiguredModel( model, toXAngle( orientation ), toYAngle( facing ), false ) ); - } - } - } - - simpleBlockItem( block, models().orientable( - extendedName( block, "_item" ), - blockTexture( block, "_4" ), - blockTexture( block, "_15" ), - blockTexture( block, "_0" ) - ) ); - } - - private void monitorModel( String prefix, String corners, int front, int side, int top, int back ) - { - String texturePrefix = prefix + "_"; - models().getBuilder( prefix + corners ) - .parent( monitorBase ) - .texture( "front", texturePrefix + front ) - .texture( "side", texturePrefix + side ) - .texture( "top", texturePrefix + top ) - .texture( "back", texturePrefix + back ); - } - - private static int toXAngle( Direction direction ) - { - switch( direction ) - { - default: - return 0; - case UP: - return 270; - case DOWN: - return 90; - } - } - - private static int toYAngle( Direction direction ) - { - return ((int) direction.toYRot() + 180) % 360; - } - - private static ResourceLocation blockTexture( Block block, String suffix ) - { - ResourceLocation id = block.getRegistryName(); - return new ResourceLocation( id.getNamespace(), "block/" + id.getPath() + suffix ); - } - - @Nonnull - private String name( @Nonnull IForgeRegistryEntry term ) - { - return Objects.requireNonNull( term.getRegistryName() ).toString(); - } - - @Nonnull - private String extendedName( @Nonnull IForgeRegistryEntry term, @Nonnull String suffix ) - { - return extend( Objects.requireNonNull( term.getRegistryName() ), suffix ); - } - - @Nonnull - private String extend( @Nonnull ResourceLocation location, @Nonnull String suffix ) - { - return new ResourceLocation( location.getNamespace(), location.getPath() + suffix ).toString(); - } -} diff --git a/src/main/java/dan200/computercraft/data/Generators.java b/src/main/java/dan200/computercraft/data/Generators.java index 201f363da..7154bde0c 100644 --- a/src/main/java/dan200/computercraft/data/Generators.java +++ b/src/main/java/dan200/computercraft/data/Generators.java @@ -25,7 +25,7 @@ public static void gather( GatherDataEvent event ) generator.addProvider( new RecipeGenerator( generator ) ); generator.addProvider( new LootTableGenerator( generator ) ); - generator.addProvider( new BlockModelProvider( generator, existingFiles ) ); + generator.addProvider( new ModelProvider( generator, BlockModelGenerator::addBlockModels, ItemModelGenerator::addItemModels ) ); BlockTagsGenerator blockTags = new BlockTagsGenerator( generator, existingFiles ); generator.addProvider( blockTags ); diff --git a/src/main/java/dan200/computercraft/data/ItemModelGenerator.java b/src/main/java/dan200/computercraft/data/ItemModelGenerator.java new file mode 100644 index 000000000..df8784fd8 --- /dev/null +++ b/src/main/java/dan200/computercraft/data/ItemModelGenerator.java @@ -0,0 +1,109 @@ +/* + * This file is part of ComputerCraft - http://www.computercraft.info + * Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission. + * Send enquiries to dratcliffe@gmail.com + */ +package dan200.computercraft.data; + +import dan200.computercraft.ComputerCraft; +import dan200.computercraft.shared.Registry; +import net.minecraft.data.*; +import net.minecraft.item.Item; +import net.minecraft.util.ResourceLocation; + +import java.util.Optional; + +import static net.minecraft.data.ModelsResourceUtil.getModelLocation; + +public final class ItemModelGenerator +{ + private ItemModelGenerator() + { + } + + public static void addItemModels( ItemModelProvider generators ) + { + registerDisk( generators, Registry.ModItems.DISK.get() ); + registerDisk( generators, Registry.ModItems.TREASURE_DISK.get() ); + + registerPocketComputer( generators, getModelLocation( Registry.ModItems.POCKET_COMPUTER_NORMAL.get() ), false ); + registerPocketComputer( generators, getModelLocation( Registry.ModItems.POCKET_COMPUTER_ADVANCED.get() ), false ); + registerPocketComputer( generators, new ResourceLocation( ComputerCraft.MOD_ID, "item/pocket_computer_colour" ), true ); + + generators.generateFlatItem( Registry.ModItems.PRINTED_BOOK.get(), StockModelShapes.FLAT_ITEM ); + generators.generateFlatItem( Registry.ModItems.PRINTED_PAGE.get(), StockModelShapes.FLAT_ITEM ); + generators.generateFlatItem( Registry.ModItems.PRINTED_PAGES.get(), StockModelShapes.FLAT_ITEM ); + } + + private static void registerPocketComputer( ItemModelProvider generators, ResourceLocation id, boolean off ) + { + createFlatItem( generators, addSuffix( id, "_blinking" ), + new ResourceLocation( ComputerCraft.MOD_ID, "item/pocket_computer_blink" ), + id, + new ResourceLocation( ComputerCraft.MOD_ID, "item/pocket_computer_light" ) + ); + + createFlatItem( generators, addSuffix( id, "_on" ), + new ResourceLocation( ComputerCraft.MOD_ID, "item/pocket_computer_on" ), + id, + new ResourceLocation( ComputerCraft.MOD_ID, "item/pocket_computer_light" ) + ); + + // Don't emit the default/off state for advanced/normal pocket computers, as they have item overrides. + if( off ) + { + createFlatItem( generators, id, + new ResourceLocation( ComputerCraft.MOD_ID, "item/pocket_computer_frame" ), + id + ); + } + } + + private static void registerDisk( ItemModelProvider generators, Item item ) + { + createFlatItem( generators, item, + new ResourceLocation( ComputerCraft.MOD_ID, "item/disk_frame" ), + new ResourceLocation( ComputerCraft.MOD_ID, "item/disk_colour" ) + ); + } + + private static void createFlatItem( ItemModelProvider generators, Item item, ResourceLocation... ids ) + { + createFlatItem( generators, getModelLocation( item ), ids ); + } + + /** + * Generate a flat item from an arbitrary number of layers. + * + * @param generators The current item generator helper. + * @param model The model we're writing to. + * @param textures The textures which make up this model. + * @see net.minecraft.client.renderer.model.ItemModelGenerator The parser for this file format. + */ + private static void createFlatItem( ItemModelProvider generators, ResourceLocation model, ResourceLocation... textures ) + { + if( textures.length > 5 ) throw new IndexOutOfBoundsException( "Too many layers" ); + if( textures.length == 0 ) throw new IndexOutOfBoundsException( "Must have at least one texture" ); + if( textures.length == 1 ) + { + StockModelShapes.FLAT_ITEM.create( model, ModelTextures.layer0( textures[0] ), generators.output ); + return; + } + + StockTextureAliases[] slots = new StockTextureAliases[textures.length]; + ModelTextures mapping = new ModelTextures(); + for( int i = 0; i < textures.length; i++ ) + { + StockTextureAliases slot = slots[i] = StockTextureAliases.create( "layer" + i ); + mapping.put( slot, textures[i] ); + } + + new ModelsUtil( Optional.of( new ResourceLocation( "item/generated" ) ), Optional.empty(), slots ) + .create( model, mapping, generators.output ); + } + + private static ResourceLocation addSuffix( ResourceLocation location, String suffix ) + { + return new ResourceLocation( location.getNamespace(), location.getPath() + suffix ); + } +} diff --git a/src/main/java/dan200/computercraft/data/ModelProvider.java b/src/main/java/dan200/computercraft/data/ModelProvider.java new file mode 100644 index 000000000..a4637976a --- /dev/null +++ b/src/main/java/dan200/computercraft/data/ModelProvider.java @@ -0,0 +1,122 @@ +/* + * This file is part of ComputerCraft - http://www.computercraft.info + * Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission. + * Send enquiries to dratcliffe@gmail.com + */ +package dan200.computercraft.data; + +import com.google.gson.JsonElement; +import net.minecraft.block.Block; +import net.minecraft.data.*; +import net.minecraft.item.Item; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.registries.ForgeRegistries; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import javax.annotation.Nonnull; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Consumer; +import java.util.function.Supplier; + +/** + * A copy of {@link net.minecraft.data.BlockStateProvider} which accepts a custom generator. + *

+ * Please don't sue me Mojang. Or at least make these changes to vanilla before doing so! + */ +public class ModelProvider implements IDataProvider +{ + private static final Logger LOGGER = LogManager.getLogger(); + + private final DataGenerator generator; + + private final Consumer blocks; + private final Consumer items; + + public ModelProvider( DataGenerator generator, Consumer blocks, Consumer items ) + { + this.generator = generator; + this.blocks = blocks; + this.items = items; + } + + @Override + public void run( @Nonnull DirectoryCache output ) + { + Map blockStates = new HashMap<>(); + Consumer addBlockState = generator -> { + Block block = generator.getBlock(); + if( blockStates.containsKey( block ) ) + { + throw new IllegalStateException( "Duplicate blockstate definition for " + block ); + } + blockStates.put( block, generator ); + }; + + Map> models = new HashMap<>(); + BiConsumer> addModel = ( id, contents ) -> { + if( models.containsKey( id ) ) throw new IllegalStateException( "Duplicate model definition for " + id ); + models.put( id, contents ); + }; + Set explicitItems = new HashSet<>(); + blocks.accept( new BlockModelProvider( addBlockState, addModel, explicitItems::add ) ); + items.accept( new ItemModelProvider( addModel ) ); + + for( Block block : ForgeRegistries.BLOCKS ) + { + if( !blockStates.containsKey( block ) ) continue; + + Item item = Item.BY_BLOCK.get( block ); + if( item == null || explicitItems.contains( item ) ) continue; + + ResourceLocation model = ModelsResourceUtil.getModelLocation( item ); + if( !models.containsKey( model ) ) + { + models.put( model, new BlockModelWriter( ModelsResourceUtil.getModelLocation( block ) ) ); + } + } + + saveCollection( output, generator.getOutputFolder(), blockStates, ModelProvider::createBlockStatePath ); + saveCollection( output, generator.getOutputFolder(), models, ModelProvider::createModelPath ); + } + + private void saveCollection( DirectoryCache output, Path root, Map> items, BiFunction getLocation ) + { + for( Map.Entry> entry : items.entrySet() ) + { + Path path = getLocation.apply( root, entry.getKey() ); + try + { + PrettyJsonWriter.save( output, entry.getValue().get(), path ); + } + catch( Exception exception ) + { + LOGGER.error( "Couldn't save {}", path, exception ); + } + } + } + + private static Path createBlockStatePath( Path path, Block block ) + { + ResourceLocation id = ForgeRegistries.BLOCKS.getKey( block ); + return path.resolve( "assets/" + id.getNamespace() + "/blockstates/" + id.getPath() + ".json" ); + } + + private static Path createModelPath( Path path, ResourceLocation id ) + { + return path.resolve( "assets/" + id.getNamespace() + "/models/" + id.getPath() + ".json" ); + } + + @Nonnull + @Override + public String getName() + { + return "Block State Definitions"; + } +} diff --git a/src/main/java/dan200/computercraft/data/PrettyJsonWriter.java b/src/main/java/dan200/computercraft/data/PrettyJsonWriter.java new file mode 100644 index 000000000..dd5954bfe --- /dev/null +++ b/src/main/java/dan200/computercraft/data/PrettyJsonWriter.java @@ -0,0 +1,403 @@ +/* + * This file is part of ComputerCraft - http://www.computercraft.info + * Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission. + * Send enquiries to dratcliffe@gmail.com + */ +package dan200.computercraft.data; + +import com.google.common.base.Strings; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonElement; +import com.google.gson.stream.JsonWriter; +import net.minecraft.data.DirectoryCache; +import net.minecraft.data.IDataProvider; + +import javax.annotation.Nullable; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.*; + +/** + * Alternative version of {@link JsonWriter} which attempts to lay out the JSON in a more compact format. + *

+ * Yes, this is at least a little deranged. + */ +public class PrettyJsonWriter extends JsonWriter +{ + private static final boolean ENABLED = System.getProperty( "cct.pretty-json" ) != null; + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); + + private static final int MAX_WIDTH = 120; + + private final Writer out; + + /** + * A stack of objects. This is either a {@link String} (in which case we've received an object key but no value) + * or a {@link DocList} (which either represents an array or object). + */ + private final Deque stack = new ArrayDeque<>(); + + public PrettyJsonWriter( Writer out ) + { + super( out ); + this.out = out; + } + + /** + * Create a JSON writer. This will either be a pretty or normal version, depending on whether the global flag is + * set. + * + * @param out The writer to emit to. + * @return The constructed JSON writer. + */ + public static JsonWriter createWriter( Writer out ) + { + return ENABLED ? new PrettyJsonWriter( out ) : new JsonWriter( out ); + } + + public static void save( DirectoryCache cache, JsonElement json, Path path ) throws IOException + { + StringWriter writer = new StringWriter(); + GSON.toJson( json, createWriter( writer ) ); + String contents = writer.toString(); + + String hash = IDataProvider.SHA1.hashUnencodedChars( contents ).toString(); + if( !Objects.equals( cache.getHash( path ), hash ) || !Files.exists( path ) ) + { + Files.createDirectories( path.getParent() ); + + try( BufferedWriter bufferedwriter = Files.newBufferedWriter( path ) ) + { + bufferedwriter.write( contents ); + } + } + + cache.putNew( path, hash ); + } + + private void pushValue( Object object ) throws IOException + { + // We've popped our top object, just write a value. + if( stack.isEmpty() ) + { + write( out, object, MAX_WIDTH, 0 ); + return; + } + + // Otherwise we either need to push to our list or finish a record pair. + Object head = stack.getLast(); + if( head instanceof DocList ) + { + ((DocList) head).add( object ); + } + else + { + stack.removeLast(); + ((DocList) stack.getLast()).add( new Pair( (String) head, object ) ); + } + } + + @Override + public JsonWriter beginArray() + { + stack.add( new DocList( "[", "]" ) ); + return this; + } + + @Override + public JsonWriter endArray() throws IOException + { + DocList list = (DocList) stack.removeLast(); + pushValue( list ); + return this; + } + + @Override + public JsonWriter beginObject() + { + stack.add( new DocList( "{", "}" ) ); + return this; + } + + @Override + public JsonWriter endObject() throws IOException + { + return endArray(); + } + + @Override + public JsonWriter name( String name ) throws IOException + { + stack.add( escapeString( name ) ); + return this; + } + + @Override + public JsonWriter jsonValue( String value ) throws IOException + { + pushValue( value ); + return this; + } + + @Override + public JsonWriter value( @Nullable String value ) throws IOException + { + return value == null ? nullValue() : jsonValue( escapeString( value ) ); + } + + @Override + public JsonWriter nullValue() throws IOException + { + if( !getSerializeNulls() && stack.peekLast() instanceof String ) + { + stack.removeLast(); + return this; + } + + return jsonValue( "null" ); + } + + @Override + public JsonWriter value( boolean value ) throws IOException + { + return jsonValue( Boolean.toString( value ) ); + } + + @Override + public JsonWriter value( @Nullable Boolean value ) throws IOException + { + return value == null ? nullValue() : jsonValue( Boolean.toString( value ) ); + } + + @Override + public JsonWriter value( double value ) throws IOException + { + return jsonValue( Double.toString( value ) ); + } + + @Override + public JsonWriter value( long value ) throws IOException + { + return jsonValue( Long.toString( value ) ); + } + + @Override + public JsonWriter value( @Nullable Number value ) throws IOException + { + return value == null ? nullValue() : jsonValue( value.toString() ); + } + + @Override + public void close() throws IOException + { + if( !stack.isEmpty() ) throw new IllegalArgumentException( "Object is remaining on the stack" ); + out.close(); + } + + /** + * A key/value pair inside a JSON object. + */ + private static final class Pair + { + /** + * The escaped object key. + */ + final String key; + + /** + * The object value. + */ + final Object value; + + private Pair( String key, Object value ) + { + this.key = key; + this.value = value; + } + + int width() + { + return key.length() + 2 + PrettyJsonWriter.width( value ); + } + + int write( Writer out, int space, int indent ) throws IOException + { + out.write( key ); + out.write( ": " ); + return PrettyJsonWriter.write( out, value, space - key.length() - 2, indent ); + } + } + + /** + * A list of terms inside a JSON document. Either an array or a JSON object. + */ + private static class DocList + { + final String prefix; + final String suffix; + final List contents = new ArrayList<>(); + int width; + + DocList( String prefix, String suffix ) + { + this.prefix = prefix; + this.suffix = suffix; + width = prefix.length() + suffix.length(); + } + + void add( Object value ) + { + contents.add( value ); + width += width( value ) + (contents.isEmpty() ? 0 : 2); + } + + int write( Writer writer, int space, int indent ) throws IOException + { + writer.append( prefix ); + if( width <= space ) + { + // We've sufficient room on this line, so write everything on one line. + + // Take into account the suffix length here, as we ignore it the case we wrap. + space -= prefix.length() + suffix.length(); + + boolean comma = false; + for( Object value : contents ) + { + if( comma ) + { + writer.append( ", " ); + space -= 2; + } + comma = true; + + space = PrettyJsonWriter.write( writer, value, space, indent ); + } + } + else + { + // We've run out of room, so write each value on separate lines. + String indentStr = Strings.repeat( " ", indent ); + writer.append( "\n " ).append( indentStr ); + + boolean comma = false; + for( Object value : contents ) + { + if( comma ) + { + writer.append( ",\n " ).append( indentStr ); + } + comma = true; + + PrettyJsonWriter.write( writer, value, MAX_WIDTH - indent - 2, indent + 2 ); + } + writer.append( "\n" ).append( indentStr ); + } + + writer.append( suffix ); + return space; + } + } + + /** + * Estimate the width of an object. + * + * @param object The object to emit. + * @return The computed width. + */ + private static int width( Object object ) + { + if( object instanceof String ) return ((String) object).length(); + if( object instanceof DocList ) return ((DocList) object).width; + if( object instanceof Pair ) return ((Pair) object).width(); + throw new IllegalArgumentException( "Not a valid document" ); + } + + /** + * Write a value to the output stream. + * + * @param writer The writer to emit to. + * @param object The object to write. + * @param space The amount of space left on this line. Will be no larger than {@link #MAX_WIDTH}, but may be negative. + * @param indent The current indent. + * @return The new amount of space left on this line. This is undefined if the writer wraps. + * @throws IOException If the underlying writer fails. + */ + private static int write( Writer writer, Object object, int space, int indent ) throws IOException + { + if( object instanceof String ) + { + String str = (String) object; + writer.write( str ); + return space - str.length(); + } + else if( object instanceof DocList ) + { + return ((DocList) object).write( writer, space, indent ); + } + else if( object instanceof Pair ) + { + return ((Pair) object).write( writer, space, indent ); + } + else + { + throw new IllegalArgumentException( "Not a valid document" ); + } + } + + private static String escapeString( String value ) + { + StringBuilder builder = new StringBuilder(); + builder.append( '\"' ); + + int length = value.length(); + for( int i = 0; i < length; i++ ) + { + char c = value.charAt( i ); + String replacement = null; + if( c < STRING_REPLACE.length ) + { + replacement = STRING_REPLACE[c]; + } + else if( c == '\u2028' ) + { + replacement = "\\u2028"; + } + else if( c == '\u2029' ) + { + replacement = "\\u2029"; + } + + if( replacement == null ) + { + builder.append( c ); + } + else + { + builder.append( replacement ); + } + } + + builder.append( '\"' ); + return builder.toString(); + } + + private static final String[] STRING_REPLACE = new String[128]; + + static + { + for( int i = 0; i <= 0x1f; i++ ) STRING_REPLACE[i] = String.format( "\\u%04x", i ); + STRING_REPLACE['"'] = "\\\""; + STRING_REPLACE['\\'] = "\\\\"; + STRING_REPLACE['\t'] = "\\t"; + STRING_REPLACE['\b'] = "\\b"; + STRING_REPLACE['\n'] = "\\n"; + STRING_REPLACE['\r'] = "\\r"; + STRING_REPLACE['\f'] = "\\f"; + } +} diff --git a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockCable.java b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockCable.java index 8365556d4..a5be55686 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockCable.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/modem/wired/BlockCable.java @@ -45,12 +45,12 @@ public class BlockCable extends BlockGeneric implements IWaterLoggable public static final EnumProperty MODEM = EnumProperty.create( "modem", CableModemVariant.class ); public static final BooleanProperty CABLE = BooleanProperty.create( "cable" ); - private static final BooleanProperty NORTH = BooleanProperty.create( "north" ); - private static final BooleanProperty SOUTH = BooleanProperty.create( "south" ); - private static final BooleanProperty EAST = BooleanProperty.create( "east" ); - private static final BooleanProperty WEST = BooleanProperty.create( "west" ); - private static final BooleanProperty UP = BooleanProperty.create( "up" ); - private static final BooleanProperty DOWN = BooleanProperty.create( "down" ); + public static final BooleanProperty NORTH = BooleanProperty.create( "north" ); + public static final BooleanProperty SOUTH = BooleanProperty.create( "south" ); + public static final BooleanProperty EAST = BooleanProperty.create( "east" ); + public static final BooleanProperty WEST = BooleanProperty.create( "west" ); + public static final BooleanProperty UP = BooleanProperty.create( "up" ); + public static final BooleanProperty DOWN = BooleanProperty.create( "down" ); static final EnumMap CONNECTIONS = new EnumMap<>( new ImmutableMap.Builder() diff --git a/src/main/java/dan200/computercraft/shared/peripheral/printer/BlockPrinter.java b/src/main/java/dan200/computercraft/shared/peripheral/printer/BlockPrinter.java index a03611816..54197d9ba 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/printer/BlockPrinter.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/printer/BlockPrinter.java @@ -32,8 +32,8 @@ public class BlockPrinter extends BlockGeneric { private static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; - static final BooleanProperty TOP = BooleanProperty.create( "top" ); - static final BooleanProperty BOTTOM = BooleanProperty.create( "bottom" ); + public static final BooleanProperty TOP = BooleanProperty.create( "top" ); + public static final BooleanProperty BOTTOM = BooleanProperty.create( "bottom" ); public BlockPrinter( Properties settings ) { diff --git a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleCraftingTable.java b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleCraftingTable.java index 5b73bfbca..b919dfa16 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleCraftingTable.java +++ b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleCraftingTable.java @@ -5,6 +5,7 @@ */ package dan200.computercraft.shared.turtle.upgrades; +import dan200.computercraft.ComputerCraft; import dan200.computercraft.api.client.TransformedModel; import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.turtle.AbstractTurtleUpgrade; @@ -12,7 +13,6 @@ import dan200.computercraft.api.turtle.TurtleSide; import dan200.computercraft.api.turtle.TurtleUpgradeType; import net.minecraft.block.Blocks; -import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.util.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -21,8 +21,8 @@ public class TurtleCraftingTable extends AbstractTurtleUpgrade { - private static final ModelResourceLocation leftModel = new ModelResourceLocation( "computercraft:turtle_crafting_table_left", "inventory" ); - private static final ModelResourceLocation rightModel = new ModelResourceLocation( "computercraft:turtle_crafting_table_right", "inventory" ); + private static final ResourceLocation leftModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_crafting_table_left" ); + private static final ResourceLocation rightModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_crafting_table_right" ); public TurtleCraftingTable( ResourceLocation id ) { diff --git a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleModem.java b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleModem.java index d1f998e62..272fb1611 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleModem.java +++ b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleModem.java @@ -5,13 +5,13 @@ */ package dan200.computercraft.shared.turtle.upgrades; +import dan200.computercraft.ComputerCraft; import dan200.computercraft.api.client.TransformedModel; import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.turtle.*; import dan200.computercraft.shared.Registry; import dan200.computercraft.shared.peripheral.modem.ModemState; import dan200.computercraft.shared.peripheral.modem.wireless.WirelessModemPeripheral; -import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; @@ -63,10 +63,10 @@ public boolean equals( IPeripheral other ) private final boolean advanced; - private final ModelResourceLocation leftOffModel; - private final ModelResourceLocation rightOffModel; - private final ModelResourceLocation leftOnModel; - private final ModelResourceLocation rightOnModel; + private final ResourceLocation leftOffModel; + private final ResourceLocation rightOffModel; + private final ResourceLocation leftOnModel; + private final ResourceLocation rightOnModel; public TurtleModem( boolean advanced, ResourceLocation id ) { @@ -80,17 +80,17 @@ public TurtleModem( boolean advanced, ResourceLocation id ) if( advanced ) { - leftOffModel = new ModelResourceLocation( "computercraft:turtle_modem_advanced_off_left", "inventory" ); - rightOffModel = new ModelResourceLocation( "computercraft:turtle_modem_advanced_off_right", "inventory" ); - leftOnModel = new ModelResourceLocation( "computercraft:turtle_modem_advanced_on_left", "inventory" ); - rightOnModel = new ModelResourceLocation( "computercraft:turtle_modem_advanced_on_right", "inventory" ); + leftOffModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_modem_advanced_off_left" ); + rightOffModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_modem_advanced_off_right" ); + leftOnModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_modem_advanced_on_left" ); + rightOnModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_modem_advanced_on_right" ); } else { - leftOffModel = new ModelResourceLocation( "computercraft:turtle_modem_normal_off_left", "inventory" ); - rightOffModel = new ModelResourceLocation( "computercraft:turtle_modem_normal_off_right", "inventory" ); - leftOnModel = new ModelResourceLocation( "computercraft:turtle_modem_normal_on_left", "inventory" ); - rightOnModel = new ModelResourceLocation( "computercraft:turtle_modem_normal_on_right", "inventory" ); + leftOffModel = new ResourceLocation( ComputerCraft.MOD_ID, "turtle_modem_normal_off_left" ); + rightOffModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_modem_normal_off_right" ); + leftOnModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_modem_normal_on_left" ); + rightOnModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_modem_normal_on_right" ); } } diff --git a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleSpeaker.java b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleSpeaker.java index 988acffd0..ea90a5625 100644 --- a/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleSpeaker.java +++ b/src/main/java/dan200/computercraft/shared/turtle/upgrades/TurtleSpeaker.java @@ -5,6 +5,7 @@ */ package dan200.computercraft.shared.turtle.upgrades; +import dan200.computercraft.ComputerCraft; import dan200.computercraft.api.client.TransformedModel; import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.turtle.AbstractTurtleUpgrade; @@ -14,7 +15,6 @@ import dan200.computercraft.shared.Registry; import dan200.computercraft.shared.peripheral.speaker.SpeakerPosition; import dan200.computercraft.shared.peripheral.speaker.UpgradeSpeakerPeripheral; -import net.minecraft.client.renderer.model.ModelResourceLocation; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.api.distmarker.Dist; @@ -24,8 +24,8 @@ public class TurtleSpeaker extends AbstractTurtleUpgrade { - private static final ModelResourceLocation leftModel = new ModelResourceLocation( "computercraft:turtle_speaker_upgrade_left", "inventory" ); - private static final ModelResourceLocation rightModel = new ModelResourceLocation( "computercraft:turtle_speaker_upgrade_right", "inventory" ); + private static final ResourceLocation leftModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_speaker_left" ); + private static final ResourceLocation rightModel = new ResourceLocation( ComputerCraft.MOD_ID, "block/turtle_speaker_right" ); private static class Peripheral extends UpgradeSpeakerPeripheral { diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 55bf2c721..3e27fde6c 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -15,3 +15,14 @@ public net.minecraft.client.audio.SoundEngine field_217940_j # executor # ItemData public net.minecraft.item.ItemGroup field_78034_o # langId public net.minecraft.item.ItemGroup field_242391_q # displayName + +# Data generators +public net.minecraft.data.BlockModelProvider field_239834_a_ # blockStateOutput +public net.minecraft.data.BlockModelProvider field_239835_b_ # modelOutput +public net.minecraft.data.BlockModelProvider func_239957_c_(Lnet/minecraft/block/Block;Lnet/minecraft/util/ResourceLocation;)V # delegateItemModel +public net.minecraft.data.BlockModelProvider func_239867_a_(Lnet/minecraft/item/Item;Lnet/minecraft/util/ResourceLocation;)V # delegateItemModel +public net.minecraft.data.BlockModelProvider func_239939_b_(Lnet/minecraft/block/Block;Lnet/minecraft/data/TexturedModel$ISupplier;)V # createHorizontallyRotatedBlock +public net.minecraft.data.ItemModelProvider field_240073_a_ # output +public net.minecraft.data.ItemModelProvider func_240077_a_(Lnet/minecraft/item/Item;Ljava/lang/String;Lnet/minecraft/data/ModelsUtil;)V # generateFlatItem +public net.minecraft.data.ItemModelProvider func_240076_a_(Lnet/minecraft/item/Item;Lnet/minecraft/data/ModelsUtil;)V # generateFlatItem +public net.minecraft.data.StockTextureAliases func_240431_a_(Ljava/lang/String;)Lnet/minecraft/data/StockTextureAliases; # create diff --git a/src/main/resources/assets/computercraft/blockstates/cable.json b/src/main/resources/assets/computercraft/blockstates/cable.json deleted file mode 100644 index 5f8c84a5d..000000000 --- a/src/main/resources/assets/computercraft/blockstates/cable.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "multipart": [ - { - "when": { - "OR": [ - { - "cable": "true", "up": "true", - "north": "false", "south": "false", "west": "false", "east": "false" - }, - { - "cable": "true", "down": "true", - "north": "false", "south": "false", "west": "false", "east": "false" - } - ] - }, - "apply": { "model": "computercraft:block/cable_core_facing", "x": 90 } - }, - - { - "when": { - "OR": [ - { - "cable": "true", "up": "false", "down": "false", - "north": "false", "south": "false", "west": "false", "east": "false" - }, - { - "cable": "true", "north": "true", - "up": "false", "down": "false", "west": "false", "east": "false" - }, - { - "cable": "true", "south": "true", - "up": "false", "down": "false", "west": "false", "east": "false" - } - ] - }, - "apply": { "model": "computercraft:block/cable_core_facing", "y": 0 } - }, - - { - "when": { - "OR": [ - { - "cable": "true", "west": "true", - "up": "false", "down": "false", "north": "false", "south": "false" - }, - { - "cable": "true", "east": "true", - "up": "false", "down": "false", "north": "false", "south": "false" - } - ] - }, - "apply": { "model": "computercraft:block/cable_core_facing", "y": 90 } - }, - - { - "when": { - "OR": [ - { "cable": "true", "down": "true", "north": "true" }, - { "cable": "true", "down": "true", "south": "true" }, - { "cable": "true", "down": "true", "east": "true" }, - { "cable": "true", "down": "true", "west": "true" }, - { "cable": "true", "up": "true", "north": "true" }, - { "cable": "true", "up": "true", "south": "true" }, - { "cable": "true", "up": "true", "east": "true" }, - { "cable": "true", "up": "true", "west": "true" }, - { "cable": "true", "north": "true", "west": "true" }, - { "cable": "true", "north": "true", "east": "true" }, - { "cable": "true", "south": "true", "west": "true" }, - { "cable": "true", "south": "true", "east": "true" } - ] - }, - "apply": { "model": "computercraft:block/cable_core_any" } - }, - - { - "when": { "up": true }, - "apply": { "model": "computercraft:block/cable_arm", "x": 90 } - }, - { - "when": { "down": true }, - "apply": { "model": "computercraft:block/cable_arm", "x": 270 } - }, - { - "when": { "north": true }, - "apply": { "model": "computercraft:block/cable_arm", "y": 180 } - }, - { - "when": { "south": true }, - "apply": { "model": "computercraft:block/cable_arm" } - }, - { - "when": { "west": true }, - "apply": { "model": "computercraft:block/cable_arm", "y": 90 } - }, - { - "when": { "east": true }, - "apply": { "model": "computercraft:block/cable_arm", "y": 270 } - }, - - { - "when": { "modem": "up_off" }, - "apply": { "model": "computercraft:block/wired_modem_off", "x": 270 } - }, - { - "when": { "modem": "down_off" }, - "apply": { "model": "computercraft:block/wired_modem_off", "x": 90 } - }, - { - "when": { "modem": "north_off" }, - "apply": { "model": "computercraft:block/wired_modem_off" } - }, - { - "when": { "modem": "south_off" }, - "apply": { "model": "computercraft:block/wired_modem_off", "y": 180 } - }, - { - "when": { "modem": "west_off" }, - "apply": { "model": "computercraft:block/wired_modem_off", "y": 270 } - }, - { - "when": { "modem": "east_off" }, - "apply": { "model": "computercraft:block/wired_modem_off", "y": 90 } - }, - { - "when": { "modem": "up_on" }, - "apply": { "model": "computercraft:block/wired_modem_on", "x": 270 } - }, - { - "when": { "modem": "down_on" }, - "apply": { "model": "computercraft:block/wired_modem_on", "x": 90 } - }, - { - "when": { "modem": "north_on" }, - "apply": { "model": "computercraft:block/wired_modem_on" } - }, - { - "when": { "modem": "south_on" }, - "apply": { "model": "computercraft:block/wired_modem_on", "y": 180 } - }, - { - "when": { "modem": "west_on" }, - "apply": { "model": "computercraft:block/wired_modem_on", "y": 270 } - }, - { - "when": { "modem": "east_on" }, - "apply": { "model": "computercraft:block/wired_modem_on", "y": 90 } - }, - { - "when": { "modem": "up_off_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_off_peripheral", "x": 270 } - }, - { - "when": { "modem": "down_off_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_off_peripheral", "x": 90 } - }, - { - "when": { "modem": "north_off_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_off_peripheral" } - }, - { - "when": { "modem": "south_off_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_off_peripheral", "y": 180 } - }, - { - "when": { "modem": "west_off_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_off_peripheral", "y": 270 } - }, - { - "when": { "modem": "east_off_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_off_peripheral", "y": 90 } - }, - { - "when": { "modem": "up_on_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_on_peripheral", "x": 270 } - }, - { - "when": { "modem": "down_on_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_on_peripheral", "x": 90 } - }, - { - "when": { "modem": "north_on_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_on_peripheral" } - }, - { - "when": { "modem": "south_on_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_on_peripheral", "y": 180 } - }, - { - "when": { "modem": "west_on_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_on_peripheral", "y": 270 } - }, - { - "when": { "modem": "east_on_peripheral" }, - "apply": { "model": "computercraft:block/wired_modem_on_peripheral", "y": 90 } - } - ] -} diff --git a/src/main/resources/assets/computercraft/blockstates/disk_drive.json b/src/main/resources/assets/computercraft/blockstates/disk_drive.json deleted file mode 100644 index 2ab35863c..000000000 --- a/src/main/resources/assets/computercraft/blockstates/disk_drive.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "facing=north,state=empty": { "model": "computercraft:block/disk_drive_empty" }, - "facing=south,state=empty": { "model": "computercraft:block/disk_drive_empty", "y": 180 }, - "facing=west,state=empty": { "model": "computercraft:block/disk_drive_empty", "y": 270 }, - "facing=east,state=empty": { "model": "computercraft:block/disk_drive_empty", "y": 90 }, - "facing=north,state=full": { "model": "computercraft:block/disk_drive_full" }, - "facing=south,state=full": { "model": "computercraft:block/disk_drive_full", "y": 180 }, - "facing=west,state=full": { "model": "computercraft:block/disk_drive_full", "y": 270 }, - "facing=east,state=full": { "model": "computercraft:block/disk_drive_full", "y": 90 }, - "facing=north,state=invalid": { "model": "computercraft:block/disk_drive_invalid" }, - "facing=south,state=invalid": { "model": "computercraft:block/disk_drive_invalid", "y": 180 }, - "facing=west,state=invalid": { "model": "computercraft:block/disk_drive_invalid", "y": 270 }, - "facing=east,state=invalid": { "model": "computercraft:block/disk_drive_invalid", "y": 90 } - } -} diff --git a/src/main/resources/assets/computercraft/blockstates/printer.json b/src/main/resources/assets/computercraft/blockstates/printer.json deleted file mode 100644 index b07cd1bbd..000000000 --- a/src/main/resources/assets/computercraft/blockstates/printer.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "variants": { - "facing=north,bottom=false,top=false": { "model": "computercraft:block/printer_empty" }, - "facing=south,bottom=false,top=false": { "model": "computercraft:block/printer_empty", "y": 180 }, - "facing=west,bottom=false,top=false": { "model": "computercraft:block/printer_empty", "y": 270 }, - "facing=east,bottom=false,top=false": { "model": "computercraft:block/printer_empty", "y": 90 }, - "facing=north,bottom=false,top=true": { "model": "computercraft:block/printer_top_full" }, - "facing=south,bottom=false,top=true": { "model": "computercraft:block/printer_top_full", "y": 180 }, - "facing=west,bottom=false,top=true": { "model": "computercraft:block/printer_top_full", "y": 270 }, - "facing=east,bottom=false,top=true": { "model": "computercraft:block/printer_top_full", "y": 90 }, - "facing=north,bottom=true,top=false": { "model": "computercraft:block/printer_bottom_full" }, - "facing=south,bottom=true,top=false": { "model": "computercraft:block/printer_bottom_full", "y": 180 }, - "facing=west,bottom=true,top=false": { "model": "computercraft:block/printer_bottom_full", "y": 270 }, - "facing=east,bottom=true,top=false": { "model": "computercraft:block/printer_bottom_full", "y": 90 }, - "facing=north,bottom=true,top=true": { "model": "computercraft:block/printer_both_full" }, - "facing=south,bottom=true,top=true": { "model": "computercraft:block/printer_both_full", "y": 180 }, - "facing=west,bottom=true,top=true": { "model": "computercraft:block/printer_both_full", "y": 270 }, - "facing=east,bottom=true,top=true": { "model": "computercraft:block/printer_both_full", "y": 90 } - } -} diff --git a/src/main/resources/assets/computercraft/models/block/cable_item.json b/src/main/resources/assets/computercraft/models/block/cable_item.json deleted file mode 100644 index 2ee3627ab..000000000 --- a/src/main/resources/assets/computercraft/models/block/cable_item.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "computercraft:block/cable_core", - "side": "computercraft:block/cable_side", - "end": "computercraft:block/cable_core" - }, - "elements": [ - { - "from": [ 6, 6, 2 ], - "to": [ 10, 10, 14 ], - "faces": { - "down": { "uv": [ 6, 2, 10, 14 ], "texture": "#side" }, - "up": { "uv": [ 6, 2, 10, 14 ], "texture": "#side" }, - "north": { "uv": [ 6, 6, 10, 10 ], "texture": "#end" }, - "south": { "uv": [ 6, 6, 10, 10 ], "texture": "#end" }, - "west": { "uv": [ 2, 6, 14, 10 ], "texture": "#side" }, - "east": { "uv": [ 2, 6, 14, 10 ], "texture": "#side" } - } - } - ] -} diff --git a/src/main/resources/assets/computercraft/models/block/disk_drive_empty.json b/src/main/resources/assets/computercraft/models/block/disk_drive_empty.json deleted file mode 100644 index 67a028949..000000000 --- a/src/main/resources/assets/computercraft/models/block/disk_drive_empty.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/orientable", - "textures": { - "front": "computercraft:block/disk_drive_front", - "side": "computercraft:block/disk_drive_side", - "top": "computercraft:block/disk_drive_top" - } -} diff --git a/src/main/resources/assets/computercraft/models/block/disk_drive_full.json b/src/main/resources/assets/computercraft/models/block/disk_drive_full.json deleted file mode 100644 index 57ea2cf14..000000000 --- a/src/main/resources/assets/computercraft/models/block/disk_drive_full.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/orientable", - "textures": { - "front": "computercraft:block/disk_drive_front_accepted", - "side": "computercraft:block/disk_drive_side", - "top": "computercraft:block/disk_drive_top" - } -} diff --git a/src/main/resources/assets/computercraft/models/block/disk_drive_invalid.json b/src/main/resources/assets/computercraft/models/block/disk_drive_invalid.json deleted file mode 100644 index 0eb64250b..000000000 --- a/src/main/resources/assets/computercraft/models/block/disk_drive_invalid.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/orientable", - "textures": { - "front": "computercraft:block/disk_drive_front_rejected", - "side": "computercraft:block/disk_drive_side", - "top": "computercraft:block/disk_drive_top" - } -} diff --git a/src/main/resources/assets/computercraft/models/block/monitor_base.json b/src/main/resources/assets/computercraft/models/block/monitor_base.json index 06ec832aa..039cac94a 100644 --- a/src/main/resources/assets/computercraft/models/block/monitor_base.json +++ b/src/main/resources/assets/computercraft/models/block/monitor_base.json @@ -1,5 +1,6 @@ { "parent": "block/cube", + "render_type": "cutout", "textures": { "particle": "#front", "down": "#top", diff --git a/src/main/resources/assets/computercraft/models/block/printer_both_full.json b/src/main/resources/assets/computercraft/models/block/printer_both_full.json deleted file mode 100644 index e086ec662..000000000 --- a/src/main/resources/assets/computercraft/models/block/printer_both_full.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/orientable", - "textures": { - "front": "computercraft:block/printer_front_both_trays", - "side": "computercraft:block/printer_side", - "top": "computercraft:block/printer_top" - } -} diff --git a/src/main/resources/assets/computercraft/models/block/printer_bottom_full.json b/src/main/resources/assets/computercraft/models/block/printer_bottom_full.json deleted file mode 100644 index 0191534cd..000000000 --- a/src/main/resources/assets/computercraft/models/block/printer_bottom_full.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/orientable", - "textures": { - "front": "computercraft:block/printer_front_bottom_tray", - "side": "computercraft:block/printer_side", - "top": "computercraft:block/printer_top" - } -} diff --git a/src/main/resources/assets/computercraft/models/block/printer_empty.json b/src/main/resources/assets/computercraft/models/block/printer_empty.json deleted file mode 100644 index e41abdf71..000000000 --- a/src/main/resources/assets/computercraft/models/block/printer_empty.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/orientable", - "textures": { - "front": "computercraft:block/printer_front_empty", - "side": "computercraft:block/printer_side", - "top": "computercraft:block/printer_top" - } -} diff --git a/src/main/resources/assets/computercraft/models/block/printer_top_full.json b/src/main/resources/assets/computercraft/models/block/printer_top_full.json deleted file mode 100644 index 5a6465e15..000000000 --- a/src/main/resources/assets/computercraft/models/block/printer_top_full.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/orientable", - "textures": { - "front": "computercraft:block/printer_front_top_tray", - "side": "computercraft:block/printer_side", - "top": "computercraft:block/printer_top" - } -} diff --git a/src/main/resources/assets/computercraft/models/block/turtle_base.json b/src/main/resources/assets/computercraft/models/block/turtle_base.json index aa3e71418..52ae637d4 100644 --- a/src/main/resources/assets/computercraft/models/block/turtle_base.json +++ b/src/main/resources/assets/computercraft/models/block/turtle_base.json @@ -1,5 +1,6 @@ { "parent": "block/block", + "render_type": "translucent", "textures": { "particle": "#texture" }, diff --git a/src/main/resources/assets/computercraft/models/item/disk.json b/src/main/resources/assets/computercraft/models/item/disk.json deleted file mode 100644 index f815397c5..000000000 --- a/src/main/resources/assets/computercraft/models/item/disk.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/disk_frame", - "layer1": "computercraft:item/disk_colour" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/disk_drive.json b/src/main/resources/assets/computercraft/models/item/disk_drive.json deleted file mode 100644 index ca800e3f8..000000000 --- a/src/main/resources/assets/computercraft/models/item/disk_drive.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "computercraft:block/disk_drive_empty" -} diff --git a/src/main/resources/assets/computercraft/models/item/pocket_computer_advanced_blinking.json b/src/main/resources/assets/computercraft/models/item/pocket_computer_advanced_blinking.json deleted file mode 100644 index 7a11caa9b..000000000 --- a/src/main/resources/assets/computercraft/models/item/pocket_computer_advanced_blinking.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/pocket_computer_blink", - "layer1": "computercraft:item/pocket_computer_advanced", - "layer2": "computercraft:item/pocket_computer_light" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/pocket_computer_advanced_on.json b/src/main/resources/assets/computercraft/models/item/pocket_computer_advanced_on.json deleted file mode 100644 index dd50412e8..000000000 --- a/src/main/resources/assets/computercraft/models/item/pocket_computer_advanced_on.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/pocket_computer_on", - "layer1": "computercraft:item/pocket_computer_advanced", - "layer2": "computercraft:item/pocket_computer_light" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/pocket_computer_colour.json b/src/main/resources/assets/computercraft/models/item/pocket_computer_colour.json deleted file mode 100644 index a0fb13727..000000000 --- a/src/main/resources/assets/computercraft/models/item/pocket_computer_colour.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/pocket_computer_frame", - "layer1": "computercraft:item/pocket_computer_colour" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/pocket_computer_colour_blinking.json b/src/main/resources/assets/computercraft/models/item/pocket_computer_colour_blinking.json deleted file mode 100644 index 784ed879b..000000000 --- a/src/main/resources/assets/computercraft/models/item/pocket_computer_colour_blinking.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/pocket_computer_blink", - "layer1": "computercraft:item/pocket_computer_colour", - "layer2": "computercraft:item/pocket_computer_light" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/pocket_computer_colour_on.json b/src/main/resources/assets/computercraft/models/item/pocket_computer_colour_on.json deleted file mode 100644 index e086819c7..000000000 --- a/src/main/resources/assets/computercraft/models/item/pocket_computer_colour_on.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/pocket_computer_on", - "layer1": "computercraft:item/pocket_computer_colour", - "layer2": "computercraft:item/pocket_computer_light" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/pocket_computer_normal_blinking.json b/src/main/resources/assets/computercraft/models/item/pocket_computer_normal_blinking.json deleted file mode 100644 index 72e94e035..000000000 --- a/src/main/resources/assets/computercraft/models/item/pocket_computer_normal_blinking.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/pocket_computer_blink", - "layer1": "computercraft:item/pocket_computer_normal", - "layer2": "computercraft:item/pocket_computer_light" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/pocket_computer_normal_on.json b/src/main/resources/assets/computercraft/models/item/pocket_computer_normal_on.json deleted file mode 100644 index 4c5f435fd..000000000 --- a/src/main/resources/assets/computercraft/models/item/pocket_computer_normal_on.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/pocket_computer_on", - "layer1": "computercraft:item/pocket_computer_normal", - "layer2": "computercraft:item/pocket_computer_light" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/printed_book.json b/src/main/resources/assets/computercraft/models/item/printed_book.json deleted file mode 100644 index c2e601ff6..000000000 --- a/src/main/resources/assets/computercraft/models/item/printed_book.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/printed_book" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/printed_page.json b/src/main/resources/assets/computercraft/models/item/printed_page.json deleted file mode 100644 index b7b945e41..000000000 --- a/src/main/resources/assets/computercraft/models/item/printed_page.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/printed_page" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/printed_pages.json b/src/main/resources/assets/computercraft/models/item/printed_pages.json deleted file mode 100644 index dbe6704e2..000000000 --- a/src/main/resources/assets/computercraft/models/item/printed_pages.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/printed_pages" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/printer.json b/src/main/resources/assets/computercraft/models/item/printer.json deleted file mode 100644 index 13979ae67..000000000 --- a/src/main/resources/assets/computercraft/models/item/printer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "computercraft:block/printer_empty" -} diff --git a/src/main/resources/assets/computercraft/models/item/treasure_disk.json b/src/main/resources/assets/computercraft/models/item/treasure_disk.json deleted file mode 100644 index f815397c5..000000000 --- a/src/main/resources/assets/computercraft/models/item/treasure_disk.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "computercraft:item/disk_frame", - "layer1": "computercraft:item/disk_colour" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_colour.json b/src/main/resources/assets/computercraft/models/item/turtle_colour.json deleted file mode 100644 index ef04ffdde..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_colour.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "computercraft:block/turtle_colour" -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_crafting_table_left.json b/src/main/resources/assets/computercraft/models/item/turtle_crafting_table_left.json deleted file mode 100644 index 8b93cc7c6..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_crafting_table_left.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_left", - "textures": { - "texture": "computercraft:block/turtle_crafty_face" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_crafting_table_right.json b/src/main/resources/assets/computercraft/models/item/turtle_crafting_table_right.json deleted file mode 100644 index 87c7226da..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_crafting_table_right.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_right", - "textures": { - "texture": "computercraft:block/turtle_crafty_face" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_elf_overlay.json b/src/main/resources/assets/computercraft/models/item/turtle_elf_overlay.json deleted file mode 100644 index 7d7ebff97..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_elf_overlay.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "computercraft:block/turtle_elf_overlay" -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_off_left.json b/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_off_left.json deleted file mode 100644 index b77cfcb52..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_off_left.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_left", - "textures": { - "texture": "computercraft:block/wireless_modem_advanced_face" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_off_right.json b/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_off_right.json deleted file mode 100644 index 6e0a3906e..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_off_right.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_right", - "textures": { - "texture": "computercraft:block/wireless_modem_advanced_face" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_on_left.json b/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_on_left.json deleted file mode 100644 index c01ae10d6..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_on_left.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_left", - "textures": { - "texture": "computercraft:block/wireless_modem_advanced_face_on" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_on_right.json b/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_on_right.json deleted file mode 100644 index ee3de262c..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_modem_advanced_on_right.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_right", - "textures": { - "texture": "computercraft:block/wireless_modem_advanced_face_on" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_off_left.json b/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_off_left.json deleted file mode 100644 index b01fb94cf..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_off_left.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_left", - "textures": { - "texture": "computercraft:block/wireless_modem_normal_face" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_off_right.json b/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_off_right.json deleted file mode 100644 index 6ad179231..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_off_right.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_right", - "textures": { - "texture": "computercraft:block/wireless_modem_normal_face" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_on_left.json b/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_on_left.json deleted file mode 100644 index cde6c4276..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_on_left.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_left", - "textures": { - "texture": "computercraft:block/wireless_modem_normal_face_on" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_on_right.json b/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_on_right.json deleted file mode 100644 index 182942292..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_modem_normal_on_right.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_right", - "textures": { - "texture": "computercraft:block/wireless_modem_normal_face_on" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_speaker_upgrade_left.json b/src/main/resources/assets/computercraft/models/item/turtle_speaker_upgrade_left.json deleted file mode 100644 index 206713cc9..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_speaker_upgrade_left.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_left", - "textures": { - "texture": "computercraft:block/turtle_speaker_face" - } -} diff --git a/src/main/resources/assets/computercraft/models/item/turtle_speaker_upgrade_right.json b/src/main/resources/assets/computercraft/models/item/turtle_speaker_upgrade_right.json deleted file mode 100644 index f43a92f77..000000000 --- a/src/main/resources/assets/computercraft/models/item/turtle_speaker_upgrade_right.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "computercraft:block/turtle_upgrade_base_right", - "textures": { - "texture": "computercraft:block/turtle_speaker_face" - } -}