From ff89e5feeb247ce33a7c9ebc263fbd557cca6889 Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Sat, 22 Oct 2022 10:48:30 +0100 Subject: [PATCH 1/2] Some datagen improvements - Convert remaining recipes over to datagen. - Switch loot tables to use vanilla's loot table generator. It's honestly not too different, just the earlier system confused me too much :). Alas, a positive diff because the JSON is so verbose. I've got a really nice patch which makes the JSON more compact, but alas the Mixin doesn't apply on 1.16 :(. --- .../computer_advanced_upgrade.json | 35 +++++ .../pocket_computer_advanced_upgrade.json | 35 +++++ .../computercraft/turtle_advanced.json | 32 +++++ .../turtle_advanced_upgrade.json | 35 +++++ .../recipes/computercraft/turtle_normal.json | 32 +++++ .../loot_tables/blocks/cable.json | 2 - .../loot_tables/blocks/computer_advanced.json | 1 - .../loot_tables/blocks/computer_command.json | 1 - .../loot_tables/blocks/computer_normal.json | 1 - .../loot_tables/blocks/disk_drive.json | 7 +- .../loot_tables/blocks/monitor_advanced.json | 1 - .../loot_tables/blocks/monitor_normal.json | 1 - .../loot_tables/blocks/printer.json | 7 +- .../loot_tables/blocks/speaker.json | 1 - .../loot_tables/blocks/turtle_advanced.json | 1 - .../loot_tables/blocks/turtle_normal.json | 1 - .../loot_tables/blocks/wired_modem_full.json | 1 - .../blocks/wireless_modem_advanced.json | 1 - .../blocks/wireless_modem_normal.json | 1 - .../recipes/computer_advanced_upgrade.json | 20 +++ .../pocket_computer_advanced_upgrade.json | 20 +++ .../recipes/turtle_advanced.json | 23 ++++ .../recipes/turtle_advanced_upgrade.json | 23 ++++ .../computercraft/recipes/turtle_normal.json | 23 ++++ .../data/LootTableGenerator.java | 118 ++++++++++------- .../computercraft/data/LootTableProvider.java | 91 ------------- .../computercraft/data/RecipeGenerator.java | 106 ++++++++++++++-- .../computercraft/data/RecipeWrapper.java | 120 +++++++++++------- .../advancements/recipes/turtle_advanced.json | 24 ---- .../advancements/recipes/turtle_normal.json | 24 ---- .../recipes/computer_advanced_upgrade.json | 14 -- .../pocket_computer_advanced_upgrade.json | 14 -- .../recipes/turtle_advanced.json | 15 --- .../recipes/turtle_advanced_upgrade.json | 15 --- .../computercraft/recipes/turtle_normal.json | 15 --- 35 files changed, 536 insertions(+), 325 deletions(-) create mode 100644 src/generated/resources/data/computercraft/advancements/recipes/computercraft/computer_advanced_upgrade.json create mode 100644 src/generated/resources/data/computercraft/advancements/recipes/computercraft/pocket_computer_advanced_upgrade.json create mode 100644 src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_advanced.json create mode 100644 src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_advanced_upgrade.json create mode 100644 src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_normal.json create mode 100644 src/generated/resources/data/computercraft/recipes/computer_advanced_upgrade.json create mode 100644 src/generated/resources/data/computercraft/recipes/pocket_computer_advanced_upgrade.json create mode 100644 src/generated/resources/data/computercraft/recipes/turtle_advanced.json create mode 100644 src/generated/resources/data/computercraft/recipes/turtle_advanced_upgrade.json create mode 100644 src/generated/resources/data/computercraft/recipes/turtle_normal.json delete mode 100644 src/main/java/dan200/computercraft/data/LootTableProvider.java delete mode 100644 src/main/resources/data/computercraft/advancements/recipes/turtle_advanced.json delete mode 100644 src/main/resources/data/computercraft/advancements/recipes/turtle_normal.json delete mode 100644 src/main/resources/data/computercraft/recipes/computer_advanced_upgrade.json delete mode 100644 src/main/resources/data/computercraft/recipes/pocket_computer_advanced_upgrade.json delete mode 100644 src/main/resources/data/computercraft/recipes/turtle_advanced.json delete mode 100644 src/main/resources/data/computercraft/recipes/turtle_advanced_upgrade.json delete mode 100644 src/main/resources/data/computercraft/recipes/turtle_normal.json diff --git a/src/generated/resources/data/computercraft/advancements/recipes/computercraft/computer_advanced_upgrade.json b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/computer_advanced_upgrade.json new file mode 100644 index 000000000..c43774066 --- /dev/null +++ b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/computer_advanced_upgrade.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "computercraft:computer_advanced_upgrade" + ] + }, + "criteria": { + "has_components": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "computercraft:computer_normal" + }, + { + "tag": "forge:ingots/gold" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "computercraft:computer_advanced_upgrade" + } + } + }, + "requirements": [ + [ + "has_components", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/computercraft/advancements/recipes/computercraft/pocket_computer_advanced_upgrade.json b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/pocket_computer_advanced_upgrade.json new file mode 100644 index 000000000..a985117ec --- /dev/null +++ b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/pocket_computer_advanced_upgrade.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "computercraft:pocket_computer_advanced_upgrade" + ] + }, + "criteria": { + "has_components": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "computercraft:pocket_computer_normal" + }, + { + "tag": "forge:ingots/gold" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "computercraft:pocket_computer_advanced_upgrade" + } + } + }, + "requirements": [ + [ + "has_components", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_advanced.json b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_advanced.json new file mode 100644 index 000000000..7c0a65a87 --- /dev/null +++ b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_advanced.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "computercraft:turtle_advanced" + ] + }, + "criteria": { + "has_computer": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "computercraft:computer_normal" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "computercraft:turtle_advanced" + } + } + }, + "requirements": [ + [ + "has_computer", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_advanced_upgrade.json b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_advanced_upgrade.json new file mode 100644 index 000000000..a4388eb70 --- /dev/null +++ b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_advanced_upgrade.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "computercraft:turtle_advanced_upgrade" + ] + }, + "criteria": { + "has_components": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "computercraft:turtle_normal" + }, + { + "tag": "forge:ingots/gold" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "computercraft:turtle_advanced_upgrade" + } + } + }, + "requirements": [ + [ + "has_components", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_normal.json b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_normal.json new file mode 100644 index 000000000..c9ba99fc5 --- /dev/null +++ b/src/generated/resources/data/computercraft/advancements/recipes/computercraft/turtle_normal.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "computercraft:turtle_normal" + ] + }, + "criteria": { + "has_computer": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "computercraft:computer_normal" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "computercraft:turtle_normal" + } + } + }, + "requirements": [ + [ + "has_computer", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/cable.json b/src/generated/resources/data/computercraft/loot_tables/blocks/cable.json index 4d994baaf..8dbab1a8c 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/cable.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/cable.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "cable", "rolls": 1, "entries": [ { @@ -24,7 +23,6 @@ ] }, { - "name": "wired_modem", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/computer_advanced.json b/src/generated/resources/data/computercraft/loot_tables/blocks/computer_advanced.json index 6ca0e4761..15042ab67 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/computer_advanced.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/computer_advanced.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/computer_command.json b/src/generated/resources/data/computercraft/loot_tables/blocks/computer_command.json index 6ca0e4761..15042ab67 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/computer_command.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/computer_command.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/computer_normal.json b/src/generated/resources/data/computercraft/loot_tables/blocks/computer_normal.json index 6ca0e4761..15042ab67 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/computer_normal.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/computer_normal.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/disk_drive.json b/src/generated/resources/data/computercraft/loot_tables/blocks/disk_drive.json index 4bd0f0ea2..efbb9571d 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/disk_drive.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/disk_drive.json @@ -2,11 +2,16 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_name", + "source": "block_entity" + } + ], "name": "computercraft:disk_drive" } ], diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/monitor_advanced.json b/src/generated/resources/data/computercraft/loot_tables/blocks/monitor_advanced.json index 21e4fc349..6f6efb7b1 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/monitor_advanced.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/monitor_advanced.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/monitor_normal.json b/src/generated/resources/data/computercraft/loot_tables/blocks/monitor_normal.json index 3e4d5df59..6e9205622 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/monitor_normal.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/monitor_normal.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/printer.json b/src/generated/resources/data/computercraft/loot_tables/blocks/printer.json index e401a994b..fa51af19a 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/printer.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/printer.json @@ -2,11 +2,16 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_name", + "source": "block_entity" + } + ], "name": "computercraft:printer" } ], diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/speaker.json b/src/generated/resources/data/computercraft/loot_tables/blocks/speaker.json index 90e5773e3..924ce3a07 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/speaker.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/speaker.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/turtle_advanced.json b/src/generated/resources/data/computercraft/loot_tables/blocks/turtle_advanced.json index 6ca0e4761..15042ab67 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/turtle_advanced.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/turtle_advanced.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/turtle_normal.json b/src/generated/resources/data/computercraft/loot_tables/blocks/turtle_normal.json index 6ca0e4761..15042ab67 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/turtle_normal.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/turtle_normal.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/wired_modem_full.json b/src/generated/resources/data/computercraft/loot_tables/blocks/wired_modem_full.json index cb2b02189..2abb2ab28 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/wired_modem_full.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/wired_modem_full.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/wireless_modem_advanced.json b/src/generated/resources/data/computercraft/loot_tables/blocks/wireless_modem_advanced.json index 03e30c572..52320d72e 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/wireless_modem_advanced.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/wireless_modem_advanced.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/loot_tables/blocks/wireless_modem_normal.json b/src/generated/resources/data/computercraft/loot_tables/blocks/wireless_modem_normal.json index 30c49f858..820abb301 100644 --- a/src/generated/resources/data/computercraft/loot_tables/blocks/wireless_modem_normal.json +++ b/src/generated/resources/data/computercraft/loot_tables/blocks/wireless_modem_normal.json @@ -2,7 +2,6 @@ "type": "minecraft:block", "pools": [ { - "name": "main", "rolls": 1, "entries": [ { diff --git a/src/generated/resources/data/computercraft/recipes/computer_advanced_upgrade.json b/src/generated/resources/data/computercraft/recipes/computer_advanced_upgrade.json new file mode 100644 index 000000000..7e9781e3f --- /dev/null +++ b/src/generated/resources/data/computercraft/recipes/computer_advanced_upgrade.json @@ -0,0 +1,20 @@ +{ + "type": "computercraft:computer_upgrade", + "pattern": [ + "###", + "#C#", + "# #" + ], + "key": { + "#": { + "tag": "forge:ingots/gold" + }, + "C": { + "item": "computercraft:computer_advanced" + } + }, + "result": { + "item": "computercraft:computer_advanced" + }, + "family": "ADVANCED" +} \ No newline at end of file diff --git a/src/generated/resources/data/computercraft/recipes/pocket_computer_advanced_upgrade.json b/src/generated/resources/data/computercraft/recipes/pocket_computer_advanced_upgrade.json new file mode 100644 index 000000000..e98691a5b --- /dev/null +++ b/src/generated/resources/data/computercraft/recipes/pocket_computer_advanced_upgrade.json @@ -0,0 +1,20 @@ +{ + "type": "computercraft:computer_upgrade", + "pattern": [ + "###", + "#C#", + "# #" + ], + "key": { + "#": { + "tag": "forge:ingots/gold" + }, + "C": { + "item": "computercraft:pocket_computer_normal" + } + }, + "result": { + "item": "computercraft:pocket_computer_advanced" + }, + "family": "ADVANCED" +} \ No newline at end of file diff --git a/src/generated/resources/data/computercraft/recipes/turtle_advanced.json b/src/generated/resources/data/computercraft/recipes/turtle_advanced.json new file mode 100644 index 000000000..9423e8455 --- /dev/null +++ b/src/generated/resources/data/computercraft/recipes/turtle_advanced.json @@ -0,0 +1,23 @@ +{ + "type": "computercraft:turtle", + "pattern": [ + "###", + "#C#", + "#I#" + ], + "key": { + "#": { + "tag": "forge:ingots/gold" + }, + "C": { + "item": "computercraft:computer_advanced" + }, + "I": { + "tag": "forge:chests/wooden" + } + }, + "result": { + "item": "computercraft:turtle_advanced" + }, + "family": "ADVANCED" +} \ No newline at end of file diff --git a/src/generated/resources/data/computercraft/recipes/turtle_advanced_upgrade.json b/src/generated/resources/data/computercraft/recipes/turtle_advanced_upgrade.json new file mode 100644 index 000000000..406f08a51 --- /dev/null +++ b/src/generated/resources/data/computercraft/recipes/turtle_advanced_upgrade.json @@ -0,0 +1,23 @@ +{ + "type": "computercraft:computer_upgrade", + "pattern": [ + "###", + "#C#", + " B " + ], + "key": { + "#": { + "tag": "forge:ingots/gold" + }, + "C": { + "item": "computercraft:computer_advanced" + }, + "B": { + "tag": "forge:storage_blocks/gold" + } + }, + "result": { + "item": "computercraft:turtle_advanced" + }, + "family": "ADVANCED" +} \ No newline at end of file diff --git a/src/generated/resources/data/computercraft/recipes/turtle_normal.json b/src/generated/resources/data/computercraft/recipes/turtle_normal.json new file mode 100644 index 000000000..d796748ff --- /dev/null +++ b/src/generated/resources/data/computercraft/recipes/turtle_normal.json @@ -0,0 +1,23 @@ +{ + "type": "computercraft:turtle", + "pattern": [ + "###", + "#C#", + "#I#" + ], + "key": { + "#": { + "tag": "forge:ingots/iron" + }, + "C": { + "item": "computercraft:computer_normal" + }, + "I": { + "tag": "forge:chests/wooden" + } + }, + "result": { + "item": "computercraft:turtle_normal" + }, + "family": "NORMAL" +} \ No newline at end of file diff --git a/src/main/java/dan200/computercraft/data/LootTableGenerator.java b/src/main/java/dan200/computercraft/data/LootTableGenerator.java index 7eeb68330..a5231f821 100644 --- a/src/main/java/dan200/computercraft/data/LootTableGenerator.java +++ b/src/main/java/dan200/computercraft/data/LootTableGenerator.java @@ -5,6 +5,7 @@ */ package dan200.computercraft.data; +import com.mojang.datafixers.util.Pair; import dan200.computercraft.ComputerCraft; import dan200.computercraft.shared.CommonHooks; import dan200.computercraft.shared.Registry; @@ -16,14 +17,22 @@ import dan200.computercraft.shared.peripheral.modem.wired.CableModemVariant; import net.minecraft.advancements.criterion.StatePropertiesPredicate; import net.minecraft.block.Block; import net.minecraft.data.DataGenerator; +import net.minecraft.data.LootTableProvider; import net.minecraft.loot.*; import net.minecraft.loot.conditions.Alternative; import net.minecraft.loot.conditions.BlockStateProperty; +import net.minecraft.loot.conditions.ILootCondition; import net.minecraft.loot.conditions.SurvivesExplosion; +import net.minecraft.loot.functions.CopyName; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.RegistryObject; +import javax.annotation.Nonnull; +import java.util.Arrays; +import java.util.List; +import java.util.Map; import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.function.Supplier; public class LootTableGenerator extends LootTableProvider { @@ -32,17 +41,32 @@ public class LootTableGenerator extends LootTableProvider super( generator ); } + @Nonnull @Override - protected void registerLoot( BiConsumer add ) + protected List>>, LootParameterSet>> getTables() { - basicDrop( add, Registry.ModBlocks.DISK_DRIVE ); - basicDrop( add, Registry.ModBlocks.MONITOR_NORMAL ); - basicDrop( add, Registry.ModBlocks.MONITOR_ADVANCED ); - basicDrop( add, Registry.ModBlocks.PRINTER ); - basicDrop( add, Registry.ModBlocks.SPEAKER ); - basicDrop( add, Registry.ModBlocks.WIRED_MODEM_FULL ); - basicDrop( add, Registry.ModBlocks.WIRELESS_MODEM_NORMAL ); - basicDrop( add, Registry.ModBlocks.WIRELESS_MODEM_ADVANCED ); + return Arrays.asList( + Pair.of( () -> LootTableGenerator::registerBlocks, LootParameterSets.BLOCK ), + Pair.of( () -> LootTableGenerator::registerGeneric, LootParameterSets.ALL_PARAMS ) + ); + } + + @Override + protected void validate( Map map, @Nonnull ValidationTracker validationtracker ) + { + map.forEach( ( id, table ) -> LootTableManager.validate( validationtracker, id, table ) ); + } + + private static void registerBlocks( BiConsumer add ) + { + namedBlockDrop( add, Registry.ModBlocks.DISK_DRIVE ); + selfDrop( add, Registry.ModBlocks.MONITOR_NORMAL ); + selfDrop( add, Registry.ModBlocks.MONITOR_ADVANCED ); + namedBlockDrop( add, Registry.ModBlocks.PRINTER ); + selfDrop( add, Registry.ModBlocks.SPEAKER ); + selfDrop( add, Registry.ModBlocks.WIRED_MODEM_FULL ); + selfDrop( add, Registry.ModBlocks.WIRELESS_MODEM_NORMAL ); + selfDrop( add, Registry.ModBlocks.WIRELESS_MODEM_ADVANCED ); computerDrop( add, Registry.ModBlocks.COMPUTER_NORMAL ); computerDrop( add, Registry.ModBlocks.COMPUTER_ADVANCED ); @@ -52,9 +76,7 @@ public class LootTableGenerator extends LootTableProvider add.accept( Registry.ModBlocks.CABLE.get().getLootTable(), LootTable .lootTable() - .setParamSet( LootParameterSets.BLOCK ) .withPool( LootPool.lootPool() - .name( "cable" ) .setRolls( ConstantRange.exactly( 1 ) ) .add( ItemLootEntry.lootTableItem( Registry.ModItems.CABLE.get() ) ) .when( SurvivesExplosion.survivesExplosion() ) @@ -63,7 +85,6 @@ public class LootTableGenerator extends LootTableProvider ) ) .withPool( LootPool.lootPool() - .name( "wired_modem" ) .setRolls( ConstantRange.exactly( 1 ) ) .add( ItemLootEntry.lootTableItem( Registry.ModItems.WIRED_MODEM.get() ) ) .when( SurvivesExplosion.survivesExplosion() ) @@ -71,44 +92,55 @@ public class LootTableGenerator extends LootTableProvider .setProperties( StatePropertiesPredicate.Builder.properties().hasProperty( BlockCable.MODEM, CableModemVariant.None ) ) .invert() ) + ) ); + } + + private static void registerGeneric( BiConsumer add ) + { + add.accept( CommonHooks.LOOT_TREASURE_DISK, LootTable.lootTable() ); + } + + private static void selfDrop( BiConsumer add, Supplier wrapper ) + { + blockDrop( add, wrapper, ItemLootEntry.lootTableItem( wrapper.get() ), SurvivesExplosion.survivesExplosion() ); + } + + private static void namedBlockDrop( BiConsumer add, Supplier wrapper ) + { + blockDrop( + add, wrapper, + ItemLootEntry.lootTableItem( wrapper.get() ).apply( CopyName.copyName( CopyName.Source.BLOCK_ENTITY ) ), + SurvivesExplosion.survivesExplosion() + ); + } + + private static void computerDrop( BiConsumer add, Supplier block ) + { + blockDrop( + add, block, + DynamicLootEntry.dynamicEntry( new ResourceLocation( ComputerCraft.MOD_ID, "computer" ) ), + Alternative.alternative( + BlockNamedEntityLootCondition.BUILDER, + HasComputerIdLootCondition.BUILDER, + PlayerCreativeLootCondition.BUILDER.invert() ) - .build() ); - - add.accept( CommonHooks.LOOT_TREASURE_DISK, LootTable - .lootTable() - .setParamSet( LootParameterSets.ALL_PARAMS ) - .build() ); + ); } - private static void basicDrop( BiConsumer add, RegistryObject wrapper ) + private static void blockDrop( + BiConsumer add, Supplier wrapper, + LootEntry.Builder drop, + ILootCondition.IBuilder condition + ) { Block block = wrapper.get(); add.accept( block.getLootTable(), LootTable .lootTable() - .setParamSet( LootParameterSets.BLOCK ) .withPool( LootPool.lootPool() - .name( "main" ) .setRolls( ConstantRange.exactly( 1 ) ) - .add( ItemLootEntry.lootTableItem( block ) ) - .when( SurvivesExplosion.survivesExplosion() ) - ).build() ); - } - - private static void computerDrop( BiConsumer add, RegistryObject wrapper ) - { - Block block = wrapper.get(); - add.accept( block.getLootTable(), LootTable - .lootTable() - .setParamSet( LootParameterSets.BLOCK ) - .withPool( LootPool.lootPool() - .name( "main" ) - .setRolls( ConstantRange.exactly( 1 ) ) - .add( DynamicLootEntry.dynamicEntry( new ResourceLocation( ComputerCraft.MOD_ID, "computer" ) ) ) - .when( Alternative.alternative( - BlockNamedEntityLootCondition.BUILDER, - HasComputerIdLootCondition.BUILDER, - PlayerCreativeLootCondition.BUILDER.invert() - ) ) - ).build() ); + .add( drop ) + .when( condition ) + ) + ); } } diff --git a/src/main/java/dan200/computercraft/data/LootTableProvider.java b/src/main/java/dan200/computercraft/data/LootTableProvider.java deleted file mode 100644 index 828e0ea01..000000000 --- a/src/main/java/dan200/computercraft/data/LootTableProvider.java +++ /dev/null @@ -1,91 +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.common.collect.Multimap; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import dan200.computercraft.ComputerCraft; -import net.minecraft.data.DataGenerator; -import net.minecraft.data.DirectoryCache; -import net.minecraft.data.IDataProvider; -import net.minecraft.loot.LootParameterSets; -import net.minecraft.loot.LootTable; -import net.minecraft.loot.LootTableManager; -import net.minecraft.loot.ValidationTracker; -import net.minecraft.util.ResourceLocation; - -import javax.annotation.Nonnull; -import java.io.IOException; -import java.nio.file.Path; -import java.util.HashMap; -import java.util.Map; -import java.util.function.BiConsumer; - -/** - * An alternative to {@link net.minecraft.data.LootTableProvider}, with a more flexible interface. - */ -public abstract class LootTableProvider implements IDataProvider -{ - private static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); - - private final DataGenerator generator; - - public LootTableProvider( DataGenerator generator ) - { - this.generator = generator; - } - - @Override - public void run( @Nonnull DirectoryCache cache ) - { - Map tables = new HashMap<>(); - ValidationTracker validation = new ValidationTracker( LootParameterSets.ALL_PARAMS, x -> null, tables::get ); - - registerLoot( ( id, table ) -> { - if( tables.containsKey( id ) ) validation.reportProblem( "Duplicate loot tables for " + id ); - tables.put( id, table ); - } ); - - tables.forEach( ( key, value ) -> LootTableManager.validate( validation, key, value ) ); - - Multimap problems = validation.getProblems(); - if( !problems.isEmpty() ) - { - problems.forEach( ( child, problem ) -> - ComputerCraft.log.warn( "Found validation problem in " + child + ": " + problem ) ); - throw new IllegalStateException( "Failed to validate loot tables, see logs" ); - } - - tables.forEach( ( key, value ) -> { - Path path = getPath( key ); - try - { - IDataProvider.save( GSON, cache, LootTableManager.serialize( value ), path ); - } - catch( IOException e ) - { - ComputerCraft.log.error( "Couldn't save loot table {}", path, e ); - } - } ); - } - - protected abstract void registerLoot( BiConsumer add ); - - @Nonnull - @Override - public String getName() - { - return "LootTables"; - } - - private Path getPath( ResourceLocation id ) - { - return generator.getOutputFolder() - .resolve( "data" ).resolve( id.getNamespace() ).resolve( "loot_tables" ) - .resolve( id.getPath() + ".json" ); - } -} diff --git a/src/main/java/dan200/computercraft/data/RecipeGenerator.java b/src/main/java/dan200/computercraft/data/RecipeGenerator.java index 8c12bf699..aef2c05b7 100644 --- a/src/main/java/dan200/computercraft/data/RecipeGenerator.java +++ b/src/main/java/dan200/computercraft/data/RecipeGenerator.java @@ -5,6 +5,7 @@ */ package dan200.computercraft.data; +import com.google.gson.JsonObject; import dan200.computercraft.ComputerCraft; import dan200.computercraft.shared.PocketUpgrades; import dan200.computercraft.shared.Registry; @@ -12,11 +13,13 @@ import dan200.computercraft.shared.TurtleUpgrades; import dan200.computercraft.shared.common.ColourableRecipe; import dan200.computercraft.shared.common.IColouredItem; import dan200.computercraft.shared.computer.core.ComputerFamily; +import dan200.computercraft.shared.computer.recipe.ComputerUpgradeRecipe; import dan200.computercraft.shared.media.recipes.DiskRecipe; import dan200.computercraft.shared.media.recipes.PrintoutRecipe; import dan200.computercraft.shared.pocket.items.PocketComputerItemFactory; import dan200.computercraft.shared.pocket.recipes.PocketComputerUpgradeRecipe; import dan200.computercraft.shared.turtle.items.TurtleItemFactory; +import dan200.computercraft.shared.turtle.recipes.TurtleRecipe; import dan200.computercraft.shared.turtle.recipes.TurtleUpgradeRecipe; import dan200.computercraft.shared.util.Colour; import dan200.computercraft.shared.util.ImpostorRecipe; @@ -79,10 +82,11 @@ public class RecipeGenerator extends RecipeProvider .requires( DyeItem.byColor( ofColour( colour ) ) ) .group( "computercraft:disk" ) .unlockedBy( "has_drive", inventoryChange( Registry.ModBlocks.DISK_DRIVE.get() ) ) - .save( RecipeWrapper.wrap( - ImpostorShapelessRecipe.SERIALIZER, add, - x -> x.putInt( IColouredItem.NBT_COLOUR, colour.getHex() ) - ), new ResourceLocation( ComputerCraft.MOD_ID, "disk_" + (colour.ordinal() + 1) ) ); + .save( + RecipeWrapper.wrap( ImpostorShapelessRecipe.SERIALIZER, add ) + .withResultTag( x -> x.putInt( IColouredItem.NBT_COLOUR, colour.getHex() ) ), + new ResourceLocation( ComputerCraft.MOD_ID, "disk_" + (colour.ordinal() + 1) ) + ); } } @@ -111,7 +115,7 @@ public class RecipeGenerator extends RecipeProvider .unlockedBy( "has_items", inventoryChange( base.getItem(), upgrade.getCraftingItem().getItem() ) ) .save( - RecipeWrapper.wrap( ImpostorRecipe.SERIALIZER, add, result.getTag() ), + RecipeWrapper.wrap( ImpostorRecipe.SERIALIZER, add ).withResultTag( result.getTag() ), new ResourceLocation( ComputerCraft.MOD_ID, String.format( "turtle_%s/%s/%s", nameId, upgrade.getUpgradeID().getNamespace(), upgrade.getUpgradeID().getPath() ) ) @@ -146,7 +150,7 @@ public class RecipeGenerator extends RecipeProvider .unlockedBy( "has_items", inventoryChange( base.getItem(), upgrade.getCraftingItem().getItem() ) ) .save( - RecipeWrapper.wrap( ImpostorRecipe.SERIALIZER, add, result.getTag() ), + RecipeWrapper.wrap( ImpostorRecipe.SERIALIZER, add ).withResultTag( result.getTag() ), new ResourceLocation( ComputerCraft.MOD_ID, String.format( "pocket_%s/%s/%s", nameId, upgrade.getUpgradeID().getNamespace(), upgrade.getUpgradeID().getPath() ) ) @@ -190,6 +194,19 @@ public class RecipeGenerator extends RecipeProvider .unlockedBy( "has_components", inventoryChange( Items.REDSTONE, Items.GOLD_INGOT ) ) .save( add ); + ShapedRecipeBuilder + .shaped( Registry.ModItems.COMPUTER_ADVANCED.get() ) + .pattern( "###" ) + .pattern( "#C#" ) + .pattern( "# #" ) + .define( '#', Tags.Items.INGOTS_GOLD ) + .define( 'C', Registry.ModItems.COMPUTER_ADVANCED.get() ) + .unlockedBy( "has_components", inventoryChange( itemPredicate( Registry.ModItems.COMPUTER_NORMAL.get() ), itemPredicate( Tags.Items.INGOTS_GOLD ) ) ) + .save( + RecipeWrapper.wrap( ComputerUpgradeRecipe.SERIALIZER, add ).withExtraData( family( ComputerFamily.ADVANCED ) ), + new ResourceLocation( ComputerCraft.MOD_ID, "computer_advanced_upgrade" ) + ); + ShapedRecipeBuilder .shaped( Registry.ModBlocks.COMPUTER_COMMAND.get() ) .pattern( "###" ) @@ -201,6 +218,42 @@ public class RecipeGenerator extends RecipeProvider .unlockedBy( "has_components", inventoryChange( Blocks.COMMAND_BLOCK ) ) .save( add ); + ShapedRecipeBuilder + .shaped( Registry.ModBlocks.TURTLE_NORMAL.get() ) + .pattern( "###" ) + .pattern( "#C#" ) + .pattern( "#I#" ) + .define( '#', Tags.Items.INGOTS_IRON ) + .define( 'C', Registry.ModItems.COMPUTER_NORMAL.get() ) + .define( 'I', Tags.Items.CHESTS_WOODEN ) + .unlockedBy( "has_computer", inventoryChange( Registry.ModItems.COMPUTER_NORMAL.get() ) ) + .save( RecipeWrapper.wrap( TurtleRecipe.SERIALIZER, add ).withExtraData( family( ComputerFamily.NORMAL ) ) ); + + ShapedRecipeBuilder + .shaped( Registry.ModBlocks.TURTLE_ADVANCED.get() ) + .pattern( "###" ) + .pattern( "#C#" ) + .pattern( "#I#" ) + .define( '#', Tags.Items.INGOTS_GOLD ) + .define( 'C', Registry.ModItems.COMPUTER_ADVANCED.get() ) + .define( 'I', Tags.Items.CHESTS_WOODEN ) + .unlockedBy( "has_computer", inventoryChange( Registry.ModItems.COMPUTER_NORMAL.get() ) ) + .save( RecipeWrapper.wrap( TurtleRecipe.SERIALIZER, add ).withExtraData( family( ComputerFamily.ADVANCED ) ) ); + + ShapedRecipeBuilder + .shaped( Registry.ModBlocks.TURTLE_ADVANCED.get() ) + .pattern( "###" ) + .pattern( "#C#" ) + .pattern( " B " ) + .define( '#', Tags.Items.INGOTS_GOLD ) + .define( 'C', Registry.ModItems.COMPUTER_ADVANCED.get() ) + .define( 'B', Tags.Items.STORAGE_BLOCKS_GOLD ) + .unlockedBy( "has_components", inventoryChange( itemPredicate( Registry.ModItems.TURTLE_NORMAL.get() ), itemPredicate( Tags.Items.INGOTS_GOLD ) ) ) + .save( + RecipeWrapper.wrap( ComputerUpgradeRecipe.SERIALIZER, add ).withExtraData( family( ComputerFamily.ADVANCED ) ), + new ResourceLocation( ComputerCraft.MOD_ID, "turtle_advanced_upgrade" ) + ); + ShapedRecipeBuilder .shaped( Registry.ModBlocks.DISK_DRIVE.get() ) .pattern( "###" ) @@ -255,6 +308,19 @@ public class RecipeGenerator extends RecipeProvider .unlockedBy( "has_apple", inventoryChange( Items.GOLDEN_APPLE ) ) .save( add ); + ShapedRecipeBuilder + .shaped( Registry.ModItems.POCKET_COMPUTER_ADVANCED.get() ) + .pattern( "###" ) + .pattern( "#C#" ) + .pattern( "# #" ) + .define( '#', Tags.Items.INGOTS_GOLD ) + .define( 'C', Registry.ModItems.POCKET_COMPUTER_NORMAL.get() ) + .unlockedBy( "has_components", inventoryChange( itemPredicate( Registry.ModItems.POCKET_COMPUTER_NORMAL.get() ), itemPredicate( Tags.Items.INGOTS_GOLD ) ) ) + .save( + RecipeWrapper.wrap( ComputerUpgradeRecipe.SERIALIZER, add ).withExtraData( family( ComputerFamily.ADVANCED ) ), + new ResourceLocation( ComputerCraft.MOD_ID, "pocket_computer_advanced_upgrade" ) + ); + ShapedRecipeBuilder .shaped( Registry.ModBlocks.PRINTER.get() ) .pattern( "###" ) @@ -326,7 +392,8 @@ public class RecipeGenerator extends RecipeProvider .requires( Registry.ModItems.MONITOR_NORMAL.get() ) .unlockedBy( "has_monitor", inventoryChange( Registry.ModItems.MONITOR_NORMAL.get() ) ) .save( - RecipeWrapper.wrap( IRecipeSerializer.SHAPELESS_RECIPE, add, playerHead( "Cloudhunter", "6d074736-b1e9-4378-a99b-bd8777821c9c" ) ), + RecipeWrapper.wrap( IRecipeSerializer.SHAPELESS_RECIPE, add ) + .withResultTag( playerHead( "Cloudhunter", "6d074736-b1e9-4378-a99b-bd8777821c9c" ) ), new ResourceLocation( ComputerCraft.MOD_ID, "skull_cloudy" ) ); @@ -336,7 +403,8 @@ public class RecipeGenerator extends RecipeProvider .requires( Registry.ModItems.COMPUTER_ADVANCED.get() ) .unlockedBy( "has_computer", inventoryChange( Registry.ModItems.COMPUTER_ADVANCED.get() ) ) .save( - RecipeWrapper.wrap( IRecipeSerializer.SHAPELESS_RECIPE, add, playerHead( "dan200", "f3c8d69b-0776-4512-8434-d1b2165909eb" ) ), + RecipeWrapper.wrap( IRecipeSerializer.SHAPELESS_RECIPE, add ) + .withResultTag( playerHead( "dan200", "f3c8d69b-0776-4512-8434-d1b2165909eb" ) ), new ResourceLocation( ComputerCraft.MOD_ID, "skull_dan200" ) ); @@ -363,7 +431,7 @@ public class RecipeGenerator extends RecipeProvider private static InventoryChangeTrigger.Instance inventoryChange( ITag stack ) { - return InventoryChangeTrigger.Instance.hasItems( ItemPredicate.Builder.item().of( stack ).build() ); + return InventoryChangeTrigger.Instance.hasItems( itemPredicate( stack ) ); } private static InventoryChangeTrigger.Instance inventoryChange( IItemProvider... stack ) @@ -371,6 +439,21 @@ public class RecipeGenerator extends RecipeProvider return InventoryChangeTrigger.Instance.hasItems( stack ); } + private static InventoryChangeTrigger.Instance inventoryChange( ItemPredicate... items ) + { + return InventoryChangeTrigger.Instance.hasItems( items ); + } + + private static ItemPredicate itemPredicate( IItemProvider item ) + { + return ItemPredicate.Builder.item().of( item ).build(); + } + + private static ItemPredicate itemPredicate( ITag item ) + { + return ItemPredicate.Builder.item().of( item ).build(); + } + private static CompoundNBT playerHead( String name, String uuid ) { CompoundNBT owner = new CompoundNBT(); @@ -382,6 +465,11 @@ public class RecipeGenerator extends RecipeProvider return tag; } + private static Consumer family( ComputerFamily family ) + { + return json -> json.addProperty( "family", family.toString() ); + } + private static void addSpecial( Consumer add, SpecialRecipeSerializer special ) { CustomRecipeBuilder.special( special ).save( add, special.getRegistryName().toString() ); diff --git a/src/main/java/dan200/computercraft/data/RecipeWrapper.java b/src/main/java/dan200/computercraft/data/RecipeWrapper.java index 3be5d457a..22c53540e 100644 --- a/src/main/java/dan200/computercraft/data/RecipeWrapper.java +++ b/src/main/java/dan200/computercraft/data/RecipeWrapper.java @@ -14,78 +14,106 @@ import net.minecraft.util.ResourceLocation; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import java.util.ArrayList; +import java.util.List; import java.util.function.Consumer; /** * Adapter for recipes which overrides the serializer and adds custom item NBT. */ -public final class RecipeWrapper implements IFinishedRecipe +final class RecipeWrapper implements Consumer { - private final IFinishedRecipe recipe; - private final CompoundNBT resultData; + private final Consumer add; private final IRecipeSerializer serializer; + private final List> extend = new ArrayList<>( 0 ); - private RecipeWrapper( IFinishedRecipe recipe, CompoundNBT resultData, IRecipeSerializer serializer ) + RecipeWrapper( Consumer add, IRecipeSerializer serializer ) { - this.resultData = resultData; - this.recipe = recipe; + this.add = add; this.serializer = serializer; } - public static Consumer wrap( IRecipeSerializer serializer, Consumer original ) + public static RecipeWrapper wrap( IRecipeSerializer serializer, Consumer original ) { - return x -> original.accept( new RecipeWrapper( x, null, serializer ) ); + return new RecipeWrapper( original, serializer ); } - public static Consumer wrap( IRecipeSerializer serializer, Consumer original, CompoundNBT resultData ) + public RecipeWrapper withExtraData( Consumer extra ) { - return x -> original.accept( new RecipeWrapper( x, resultData, serializer ) ); + extend.add( extra ); + return this; } - public static Consumer wrap( IRecipeSerializer serializer, Consumer original, Consumer resultData ) + public RecipeWrapper withResultTag( @Nullable CompoundNBT resultTag ) + { + if( resultTag == null ) return this; + + extend.add( json -> { + JsonObject object = JSONUtils.getAsJsonObject( json, "result" ); + object.addProperty( "nbt", resultTag.toString() ); + } ); + return this; + } + + public RecipeWrapper withResultTag( Consumer resultTag ) { CompoundNBT tag = new CompoundNBT(); - resultData.accept( tag ); - return x -> original.accept( new RecipeWrapper( x, tag, serializer ) ); + resultTag.accept( tag ); + return withResultTag( tag ); } @Override - public void serializeRecipeData( @Nonnull JsonObject jsonObject ) + public void accept( IFinishedRecipe finishedRecipe ) { - recipe.serializeRecipeData( jsonObject ); + add.accept( new RecipeImpl( finishedRecipe, serializer, extend ) ); + } - if( resultData != null ) + private static final class RecipeImpl implements IFinishedRecipe + { + private final IFinishedRecipe recipe; + private final IRecipeSerializer serializer; + private final List> extend; + + private RecipeImpl( IFinishedRecipe recipe, IRecipeSerializer serializer, List> extend ) { - JsonObject object = JSONUtils.getAsJsonObject( jsonObject, "result" ); - object.addProperty( "nbt", resultData.toString() ); + this.recipe = recipe; + this.serializer = serializer; + this.extend = extend; + } + + @Override + public void serializeRecipeData( @Nonnull JsonObject jsonObject ) + { + recipe.serializeRecipeData( jsonObject ); + for( Consumer extender : extend ) extender.accept( jsonObject ); + } + + @Nonnull + @Override + public ResourceLocation getId() + { + return recipe.getId(); + } + + @Nonnull + @Override + public IRecipeSerializer getType() + { + return serializer; + } + + @Nullable + @Override + public JsonObject serializeAdvancement() + { + return recipe.serializeAdvancement(); + } + + @Nullable + @Override + public ResourceLocation getAdvancementId() + { + return recipe.getAdvancementId(); } } - - @Nonnull - @Override - public ResourceLocation getId() - { - return recipe.getId(); - } - - @Nonnull - @Override - public IRecipeSerializer getType() - { - return serializer; - } - - @Nullable - @Override - public JsonObject serializeAdvancement() - { - return recipe.serializeAdvancement(); - } - - @Nullable - @Override - public ResourceLocation getAdvancementId() - { - return recipe.getAdvancementId(); - } } diff --git a/src/main/resources/data/computercraft/advancements/recipes/turtle_advanced.json b/src/main/resources/data/computercraft/advancements/recipes/turtle_advanced.json deleted file mode 100644 index 77dc9d4e8..000000000 --- a/src/main/resources/data/computercraft/advancements/recipes/turtle_advanced.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "rewards": { - "recipes": [ "computercraft:turtle_advanced" ] - }, - "criteria": { - "has_advanced": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ { "item": "computercraft:computer_advanced" } ] - } - }, - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { "recipe": "computercraft:turtle_advanced" } - } - }, - "requirements": [ - [ - "has_advanced", - "has_the_recipe" - ] - ] -} diff --git a/src/main/resources/data/computercraft/advancements/recipes/turtle_normal.json b/src/main/resources/data/computercraft/advancements/recipes/turtle_normal.json deleted file mode 100644 index b3c9e4982..000000000 --- a/src/main/resources/data/computercraft/advancements/recipes/turtle_normal.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "rewards": { - "recipes": [ "computercraft:turtle_normal" ] - }, - "criteria": { - "has_normal": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ { "item": "computercraft:computer_normal" } ] - } - }, - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { "recipe": "computercraft:turtle_normal" } - } - }, - "requirements": [ - [ - "has_normal", - "has_the_recipe" - ] - ] -} diff --git a/src/main/resources/data/computercraft/recipes/computer_advanced_upgrade.json b/src/main/resources/data/computercraft/recipes/computer_advanced_upgrade.json deleted file mode 100644 index eb0b5c792..000000000 --- a/src/main/resources/data/computercraft/recipes/computer_advanced_upgrade.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "computercraft:computer_upgrade", - "pattern": [ - "###", - "#C#", - "# #" - ], - "key": { - "#": { "tag": "forge:ingots/gold" }, - "C": { "item": "computercraft:computer_normal" } - }, - "family": "advanced", - "result": { "item": "computercraft:computer_advanced" } -} diff --git a/src/main/resources/data/computercraft/recipes/pocket_computer_advanced_upgrade.json b/src/main/resources/data/computercraft/recipes/pocket_computer_advanced_upgrade.json deleted file mode 100644 index 3409ce78f..000000000 --- a/src/main/resources/data/computercraft/recipes/pocket_computer_advanced_upgrade.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "computercraft:computer_upgrade", - "pattern": [ - "###", - "#C#", - "# #" - ], - "key": { - "#": { "tag": "forge:ingots/gold" }, - "C": { "item": "computercraft:pocket_computer_normal" } - }, - "family": "advanced", - "result": { "item": "computercraft:pocket_computer_advanced" } -} diff --git a/src/main/resources/data/computercraft/recipes/turtle_advanced.json b/src/main/resources/data/computercraft/recipes/turtle_advanced.json deleted file mode 100644 index 1325043f6..000000000 --- a/src/main/resources/data/computercraft/recipes/turtle_advanced.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "computercraft:turtle", - "pattern": [ - "###", - "#C#", - "#I#" - ], - "key": { - "#": { "tag": "forge:ingots/gold" }, - "C": { "item": "computercraft:computer_advanced" }, - "I": { "tag": "forge:chests/wooden" } - }, - "family": "advanced", - "result": { "item": "computercraft:turtle_advanced" } -} diff --git a/src/main/resources/data/computercraft/recipes/turtle_advanced_upgrade.json b/src/main/resources/data/computercraft/recipes/turtle_advanced_upgrade.json deleted file mode 100644 index 294854de1..000000000 --- a/src/main/resources/data/computercraft/recipes/turtle_advanced_upgrade.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "computercraft:computer_upgrade", - "pattern": [ - "###", - "#C#", - " B " - ], - "key": { - "#": { "tag": "forge:ingots/gold" }, - "B": { "tag": "forge:storage_blocks/gold" }, - "C": { "item": "computercraft:turtle_normal" } - }, - "family": "advanced", - "result": { "item": "computercraft:turtle_advanced" } -} diff --git a/src/main/resources/data/computercraft/recipes/turtle_normal.json b/src/main/resources/data/computercraft/recipes/turtle_normal.json deleted file mode 100644 index 00a6cddc6..000000000 --- a/src/main/resources/data/computercraft/recipes/turtle_normal.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "computercraft:turtle", - "pattern": [ - "###", - "#C#", - "#I#" - ], - "key": { - "#": { "tag": "forge:ingots/iron" }, - "C": { "item": "computercraft:computer_normal" }, - "I": { "tag": "forge:chests/wooden" } - }, - "family": "normal", - "result": { "item": "computercraft:turtle_normal" } -} From 0c3de1087eaab54203054d8255f7784b28e642b4 Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Sat, 22 Oct 2022 11:55:30 +0100 Subject: [PATCH 2/2] 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 @@ minecraft { 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.IBakedModel; 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 final class TransformedModel 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 dan200.computercraft.shared.util.Colour; 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 final class ClientRegistry 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 @@ package dan200.computercraft.client.render; 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 class TileEntityTurtleRenderer extends TileEntityRenderer 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 class TileEntityTurtleRenderer extends TileEntityRenderer } } - 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 class TileEntityTurtleRenderer extends TileEntityRenderer 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 @@ public class TileEntityTurtleRenderer extends TileEntityRenderer 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 @@ public class TurtleSmartItemModel implements IBakedModel { 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 class Generators 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 @@ import javax.annotation.Nullable; 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.ITurtleAccess; 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 @@ import javax.annotation.Nonnull; 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 class TurtleModem extends AbstractTurtleUpgrade 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 class TurtleModem extends AbstractTurtleUpgrade 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.api.turtle.TurtleUpgradeType; 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 @@ import javax.annotation.Nonnull; 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" - } -}