diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index d42b193f0..a8f0b186a 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1061,6 +1061,7 @@ "create.minecart_coupling.removed": "Removed all couplings from minecart", "create.minecart_coupling.too_far": "Minecarts are too far apart", + "create.contraptions.moving_container": "Moving %1$s", "create.contraptions.movement_mode": "Movement Mode", "create.contraptions.movement_mode.move_place": "Always Place when Stopped", "create.contraptions.movement_mode.move_place_returned": "Place only in Starting Position", diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json new file mode 100644 index 000000000..7a6ffe049 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:copycat_panel_from_zinc_ingot_stonecutting" + ] + }, + "criteria": { + "has_zinc_ingot": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:zinc_ingot" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:copycat_panel_from_zinc_ingot_stonecutting" + } + } + }, + "requirements": [ + [ + "has_zinc_ingot", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json new file mode 100644 index 000000000..6e594aece --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:copycat_step_from_zinc_ingot_stonecutting" + ] + }, + "criteria": { + "has_zinc_ingot": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:zinc_ingot" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:copycat_step_from_zinc_ingot_stonecutting" + } + } + }, + "requirements": [ + [ + "has_zinc_ingot", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_backtank.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_backtank.json new file mode 100644 index 000000000..ebb5d2ee6 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_backtank.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/appliances/netherite_backtank" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:copper_backtank" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/appliances/netherite_backtank" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_boots.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_boots.json new file mode 100644 index 000000000..c6e3aec85 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_boots.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/appliances/netherite_diving_boots" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:copper_diving_boots" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/appliances/netherite_diving_boots" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_helmet.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_helmet.json new file mode 100644 index 000000000..450a9ca49 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_helmet.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/appliances/netherite_diving_helmet" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:copper_diving_helmet" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/appliances/netherite_diving_helmet" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/contraption_controls.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/contraption_controls.json new file mode 100644 index 000000000..69e0835f1 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/contraption_controls.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/kinetics/contraption_controls" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:andesite_alloy" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/kinetics/contraption_controls" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/elevator_pulley.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/elevator_pulley.json new file mode 100644 index 000000000..d6d780eed --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/elevator_pulley.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/kinetics/elevator_pulley" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "forge:ingots/brass" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/kinetics/elevator_pulley" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_slab_from_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_slab_from_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_slab_from_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_slab_from_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_stairs_from_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_stairs_from_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_stairs_from_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_stairs_from_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingles_from_plates_copper_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingles_from_plates_copper_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingles_from_plates_copper_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingles_from_plates_copper_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_slab_from_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_slab_from_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_slab_from_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_slab_from_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_stairs_from_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_stairs_from_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_stairs_from_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_stairs_from_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tiles_from_plates_copper_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tiles_from_plates_copper_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tiles_from_plates_copper_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tiles_from_plates_copper_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tiles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tiles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tiles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tiles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/brass_block_from_compacting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/brass_block_from_compacting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/brass_block_from_compacting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/brass_block_from_compacting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/raw_zinc_block.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/raw_zinc_block.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/raw_zinc_block.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/raw_zinc_block.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/rose_quartz_tilesfrom_conversion.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/rose_quartz_tilesfrom_conversion.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/rose_quartz_tilesfrom_conversion.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/rose_quartz_tilesfrom_conversion.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/small_rose_quartz_tilesfrom_conversion.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/small_rose_quartz_tilesfrom_conversion.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/small_rose_quartz_tilesfrom_conversion.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/small_rose_quartz_tilesfrom_conversion.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/zinc_block_from_compacting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/zinc_block_from_compacting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/zinc_block_from_compacting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/zinc_block_from_compacting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/rose_quartz_block_from_rose_quartz_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/rose_quartz_block_from_rose_quartz_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/rose_quartz_block_from_rose_quartz_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/rose_quartz_block_from_rose_quartz_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json b/src/generated/resources/data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json new file mode 100644 index 000000000..098515d72 --- /dev/null +++ b/src/generated/resources/data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "create:zinc_ingot" + }, + "result": "create:copycat_panel", + "count": 4 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json b/src/generated/resources/data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json new file mode 100644 index 000000000..851f7759c --- /dev/null +++ b/src/generated/resources/data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "create:zinc_ingot" + }, + "result": "create:copycat_step", + "count": 4 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/appliances/netherite_backtank.json b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_backtank.json new file mode 100644 index 000000000..ab3830a3c --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_backtank.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing", + "base": { + "item": "create:copper_backtank" + }, + "addition": { + "tag": "forge:ingots/netherite" + }, + "result": { + "item": "create:netherite_backtank" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_boots.json b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_boots.json new file mode 100644 index 000000000..82e8c9128 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_boots.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing", + "base": { + "item": "create:copper_diving_boots" + }, + "addition": { + "tag": "forge:ingots/netherite" + }, + "result": { + "item": "create:netherite_diving_boots" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_helmet.json b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_helmet.json new file mode 100644 index 000000000..7d8cae6d4 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_helmet.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing", + "base": { + "item": "create:copper_diving_helmet" + }, + "addition": { + "tag": "forge:ingots/netherite" + }, + "result": { + "item": "create:netherite_diving_helmet" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/contraption_controls.json b/src/generated/resources/data/create/recipes/crafting/kinetics/contraption_controls.json new file mode 100644 index 000000000..7ef868c4c --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/contraption_controls.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "B", + "C", + "I" + ], + "key": { + "B": { + "tag": "minecraft:buttons" + }, + "C": { + "item": "create:andesite_casing" + }, + "I": { + "item": "create:electron_tube" + } + }, + "result": { + "item": "create:contraption_controls" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/elevator_pulley.json b/src/generated/resources/data/create/recipes/crafting/kinetics/elevator_pulley.json new file mode 100644 index 000000000..b60facd72 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/elevator_pulley.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "B", + "C", + "I" + ], + "key": { + "B": { + "item": "create:brass_casing" + }, + "C": { + "item": "minecraft:dried_kelp_block" + }, + "I": { + "tag": "forge:plates/iron" + } + }, + "result": { + "item": "create:elevator_pulley" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/contraption_inventory_deny.json b/src/generated/resources/data/create/tags/blocks/contraption_inventory_deny.json new file mode 100644 index 000000000..5e8aecc98 --- /dev/null +++ b/src/generated/resources/data/create/tags/blocks/contraption_inventory_deny.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": [] +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 0cbae5f39..6d3ceabe4 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -1779,6 +1779,7 @@ public class AllBlocks { .transform(BuilderTransformers.copycat()) .onRegister(CreateRegistrate.blockModel(() -> CopycatStepModel::new)) .item() + .recipe((c, p) -> p.stonecutting(DataIngredient.items(AllItems.ZINC_INGOT), c::get, 4)) .transform(customItemModel("copycat_base", "step")) .register(); @@ -1787,6 +1788,7 @@ public class AllBlocks { .transform(BuilderTransformers.copycat()) .onRegister(CreateRegistrate.blockModel(() -> CopycatPanelModel::new)) .item() + .recipe((c, p) -> p.stonecutting(DataIngredient.items(AllItems.ZINC_INGOT), c::get, 4)) .transform(customItemModel("copycat_base", "panel")) .register(); @@ -2121,6 +2123,10 @@ public class AllBlocks { }); // Materials + + static { + REGISTRATE.creativeModeTab(() -> AllCreativeModeTabs.PALETTES_CREATIVE_TAB); + } public static final BlockEntry ZINC_ORE = REGISTRATE.block("zinc_ore", Block::new) .initialProperties(() -> Blocks.GOLD_ORE) diff --git a/src/main/java/com/simibubi/create/AllPartialModels.java b/src/main/java/com/simibubi/create/AllPartialModels.java index 4dafa66ff..8e01ad381 100644 --- a/src/main/java/com/simibubi/create/AllPartialModels.java +++ b/src/main/java/com/simibubi/create/AllPartialModels.java @@ -93,7 +93,7 @@ public class AllPartialModels { ARM_HEAD = block("mechanical_arm/head"), ARM_CLAW_BASE = block("mechanical_arm/claw_base"), ARM_CLAW_GRIP = block("mechanical_arm/claw_grip"), - MECHANICAL_PUMP_ARROW = block("mechanical_pump/arrow"), MECHANICAL_PUMP_COG = block("mechanical_pump/cog"), + MECHANICAL_PUMP_COG = block("mechanical_pump/cog"), FLUID_PIPE_CASING = block("fluid_pipe/casing"), FLUID_VALVE_POINTER = block("fluid_valve/pointer"), SPOUT_TOP = block("spout/top"), SPOUT_MIDDLE = block("spout/middle"), SPOUT_BOTTOM = block("spout/bottom"), diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index d3acc5c6d..5205fa6a8 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -110,7 +110,7 @@ public class AllShapes { .add(5, -1, 6, 11, 0, 8) .forHorizontal(SOUTH), PUMP = shape(2, 0, 2, 14, 5, 14).add(4, 0, 4, 12, 16, 12) - .add(3, 12, 3, 13, 16, 13) + .add(3, 11, 3, 13, 16, 13) .forDirectional(Direction.UP), CRUSHING_WHEEL_CONTROLLER_COLLISION = shape(0, 0, 0, 16, 13, 16).forDirectional(Direction.DOWN), diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index c28aa9fea..212140104 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -87,6 +87,7 @@ public class AllTags { WRENCH_PICKUP, COPYCAT_ALLOW, COPYCAT_DENY, + CONTRAPTION_INVENTORY_DENY, RELOCATION_NOT_SUPPORTED(FORGE), WG_STONE(FORGE), diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 78a253b1a..aa053074b 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -83,10 +83,9 @@ public class Create { public static final CreateRegistrate REGISTRATE = CreateRegistrate.create(ID); static { - // TODO 0.5.1: choose color palette REGISTRATE.setTooltipModifierFactory(item -> { - return new ItemDescription.Modifier(item, Palette.BLUE) - .andThen(TooltipModifier.mapNull(KineticStats.create(item))); + return new ItemDescription.Modifier(item, Palette.STANDARD_CREATE) + .andThen(TooltipModifier.mapNull(KineticStats.create(item))); }); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceBlockEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceBlockEntity.java index 082a7e97b..da30c9f61 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceBlockEntity.java @@ -84,7 +84,7 @@ public abstract class PortableStorageInterfaceBlockEntity extends SmartBlockEnti } } - transferTimer = Math.min(transferTimer, ANIMATION * 2 + getTransferTimeout()); + transferTimer = Math.min(transferTimer, ANIMATION * 2 + timeUnit); boolean timerCanDecrement = transferTimer > ANIMATION || transferTimer > 0 && keepAlive == 0 && (isVirtual() || !level.isClientSide || transferTimer != ANIMATION); @@ -180,7 +180,7 @@ public abstract class PortableStorageInterfaceBlockEntity extends SmartBlockEnti } public void startConnecting() { - transferTimer = getTransferTimeout() + ANIMATION * 2; + transferTimer = 6 + ANIMATION * 2; } public void onContentTransferred() { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java index dcf514392..077d21987 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java @@ -278,9 +278,12 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit InteractionHand interactionHand) { int indexOfSeat = contraption.getSeats() .indexOf(localPos); - if (indexOfSeat == -1 || AllItems.WRENCH.isIn(player.getItemInHand(interactionHand))) - return contraption.interactors.containsKey(localPos) && contraption.interactors.get(localPos) - .handlePlayerInteraction(player, interactionHand, localPos, this); + if (indexOfSeat == -1 || AllItems.WRENCH.isIn(player.getItemInHand(interactionHand))) { + if (contraption.interactors.containsKey(localPos)) + return contraption.interactors.get(localPos) + .handlePlayerInteraction(player, interactionHand, localPos, this); + return contraption.storage.handlePlayerStorageInteraction(contraption, player, localPos); + } if (player.isPassenger()) return false; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java index 8d41c67ea..b4333d0cb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java @@ -1,6 +1,7 @@ package com.simibubi.create.content.contraptions.components.structureMovement; import com.simibubi.create.AllBlockEntityTypes; +import com.simibubi.create.AllTags.AllBlockTags; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterBlockEntity; import com.simibubi.create.content.contraptions.processing.ProcessingInventory; import com.simibubi.create.content.logistics.block.inventories.BottomlessItemHandler; @@ -15,6 +16,7 @@ import net.minecraft.world.level.block.entity.BarrelBlockEntity; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.ChestBlockEntity; import net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; @@ -47,9 +49,30 @@ public class MountedStorage { if (be instanceof ItemVaultBlockEntity) return true; - LazyOptional capability = be.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY); - IItemHandler handler = capability.orElse(null); - return handler instanceof ItemStackHandler && !(handler instanceof ProcessingInventory); + try { + LazyOptional capability = be.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY); + IItemHandler handler = capability.orElse(null); + if (handler instanceof ItemStackHandler) + return !(handler instanceof ProcessingInventory); + return canUseModdedInventory(be, handler); + + } catch (Exception e) { + return false; + } + } + + public static boolean canUseModdedInventory(BlockEntity be, IItemHandler handler) { + if (!(handler instanceof IItemHandlerModifiable validItemHandler)) + return false; + BlockState blockState = be.getBlockState(); + if (AllBlockTags.CONTRAPTION_INVENTORY_DENY.matches(blockState)) + return false; + + // There doesn't appear to be much of a standard for tagging chests/barrels + String blockId = blockState.getBlock() + .getRegistryName() + .getPath(); + return blockId.endsWith("_chest") || blockId.endsWith("_barrel"); } public MountedStorage(BlockEntity be) { @@ -182,7 +205,7 @@ public class MountedStorage { public boolean isValid() { return valid; } - + public boolean canUseForFuel() { return !noFuel; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageInteraction.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageInteraction.java new file mode 100644 index 000000000..c9bd3a7ab --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageInteraction.java @@ -0,0 +1,68 @@ +package com.simibubi.create.content.contraptions.components.structureMovement; + +import java.util.List; +import java.util.function.Supplier; + +import com.google.common.collect.ImmutableList; +import com.simibubi.create.foundation.utility.Lang; + +import net.minecraft.network.chat.Component; +import net.minecraft.util.Mth; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ChestMenu; +import net.minecraft.world.inventory.MenuType; +import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.items.wrapper.RecipeWrapper; + +public class MountedStorageInteraction { + + public static final List> menus = ImmutableList.of(MenuType.GENERIC_9x1, MenuType.GENERIC_9x2, + MenuType.GENERIC_9x3, MenuType.GENERIC_9x4, MenuType.GENERIC_9x5, MenuType.GENERIC_9x6); + + public static MenuProvider createMenuProvider(Component displayName, IItemHandlerModifiable handler, + int slotCount, Supplier stillValid) { + int rows = Mth.clamp(slotCount / 9, 1, 6); + MenuType menuType = menus.get(rows - 1); + Component menuName = Lang.translateDirect("contraptions.moving_container", displayName); + + return new MenuProvider() { + + @Override + public AbstractContainerMenu createMenu(int pContainerId, Inventory pPlayerInventory, Player pPlayer) { + return new ChestMenu(menuType, pContainerId, pPlayerInventory, new StorageInteractionContainer(handler, stillValid), + rows); + } + + @Override + public Component getDisplayName() { + return menuName; + } + + }; + } + + public static class StorageInteractionContainer extends RecipeWrapper { + + private Supplier stillValid; + + public StorageInteractionContainer(IItemHandlerModifiable inv, Supplier stillValid) { + super(inv); + this.stillValid = stillValid; + } + + @Override + public boolean stillValid(Player player) { + return stillValid.get(); + } + + @Override + public int getMaxStackSize() { + return 64; + } + + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java index 507ef58ee..c7c416e38 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java @@ -6,27 +6,38 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.function.Supplier; import java.util.stream.Collectors; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption.ContraptionInvWrapper; import com.simibubi.create.content.contraptions.fluids.tank.FluidTankBlockEntity; import com.simibubi.create.foundation.fluid.CombinedTankWrapper; +import com.simibubi.create.foundation.utility.Components; import com.simibubi.create.foundation.utility.NBTHelper; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.nbt.Tag; +import net.minecraft.network.chat.Component; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.ChestBlock; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.properties.ChestType; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; +import net.minecraft.world.phys.Vec3; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidTank; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; import net.minecraftforge.fluids.capability.templates.FluidTank; import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.items.wrapper.CombinedInvWrapper; public class MountedStorageManager { @@ -202,4 +213,50 @@ public class MountedStorageManager { return fluidInventory; } + public boolean handlePlayerStorageInteraction(Contraption contraption, Player player, BlockPos localPos) { + if (player.level.isClientSide()) { + BlockEntity localBE = contraption.presentBlockEntities.get(localPos); + return MountedStorage.canUseAsStorage(localBE); + } + + MountedStorageManager storageManager = contraption.getStorageForSpawnPacket(); + MountedStorage storage = storageManager.storage.get(localPos); + if (storage == null || storage.getItemHandler() == null) + return false; + IItemHandlerModifiable handler = storage.getItemHandler(); + + StructureBlockInfo info = contraption.getBlocks() + .get(localPos); + if (info != null && info.state.hasProperty(ChestBlock.TYPE)) { + ChestType chestType = info.state.getValue(ChestBlock.TYPE); + Direction facing = info.state.getOptionalValue(ChestBlock.FACING) + .orElse(Direction.SOUTH); + Direction connectedDirection = + chestType == ChestType.LEFT ? facing.getClockWise() : facing.getCounterClockWise(); + + if (chestType != ChestType.SINGLE) { + MountedStorage storage2 = storageManager.storage.get(localPos.relative(connectedDirection)); + if (storage2 != null && storage2.getItemHandler() != null) + handler = chestType == ChestType.RIGHT ? new CombinedInvWrapper(handler, storage2.getItemHandler()) + : new CombinedInvWrapper(storage2.getItemHandler(), handler); + } + } + + int slotCount = handler.getSlots(); + if (slotCount == 0) + return false; + if (slotCount % 9 != 0) + return false; + + Supplier stillValid = () -> contraption.entity.isAlive() + && player.distanceToSqr(contraption.entity.toGlobalVector(Vec3.atCenterOf(localPos), 0)) < 64; + Component name = info != null ? info.state.getBlock() + .getName() : Components.literal("Container"); + player.openMenu(MountedStorageInteraction.createMenuProvider(name, handler, slotCount, stillValid)); + + Vec3 soundPos = contraption.entity.toGlobalVector(Vec3.atCenterOf(localPos), 0); + player.level.playSound(null, new BlockPos(soundPos), SoundEvents.BARREL_OPEN, SoundSource.BLOCKS, 0.75f, 1f); + return true; + } + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorContactBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorContactBlock.java index 319ef50e0..3b34d358e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorContactBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorContactBlock.java @@ -90,9 +90,13 @@ public class ElevatorContactBlock extends WrenchableDirectionalBlock if (pState.getValue(CALLING)) return; + ElevatorColumn elevatorColumn = ElevatorColumn.getOrCreate(pLevel, getColumnCoords(pLevel, pPos)); + callToContactAndUpdate(elevatorColumn, pState, pLevel, pPos); + } + + public void callToContactAndUpdate(ElevatorColumn elevatorColumn, BlockState pState, Level pLevel, BlockPos pPos) { pLevel.setBlock(pPos, pState.cycle(CALLING), 2); - ElevatorColumn elevatorColumn = ElevatorColumn.getOrCreate(pLevel, getColumnCoords(pLevel, pPos)); for (BlockPos otherPos : elevatorColumn.getContacts()) { if (otherPos.equals(pPos)) continue; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java index 0bc29f19d..001371986 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java @@ -1,6 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.elevator; -import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -41,7 +40,7 @@ public class ElevatorTargetFloorPacket extends SimplePacketBase { .getEntity(entityId); if (!(entityByID instanceof AbstractContraptionEntity ace)) return; - if (!(ace.getContraption()instanceof ElevatorContraption ec)) + if (!(ace.getContraption() instanceof ElevatorContraption ec)) return; if (ace.distanceToSqr(sender) > 50 * 50) return; @@ -53,18 +52,12 @@ public class ElevatorTargetFloorPacket extends SimplePacketBase { if (ec.isTargetUnreachable(targetY)) return; - for (BlockPos otherPos : elevatorColumn.getContacts()) { - BlockState otherState = level.getBlockState(otherPos); - if (!AllBlocks.ELEVATOR_CONTACT.has(otherState)) - continue; - level.setBlock(otherPos, otherState.setValue(ElevatorContactBlock.CALLING, otherPos.getY() == targetY), - 2); - AllBlocks.ELEVATOR_CONTACT.get() - .scheduleActivation(level, otherPos); - } + BlockPos pos = elevatorColumn.contactAt(targetY); + BlockState blockState = level.getBlockState(pos); + if (!(blockState.getBlock() instanceof ElevatorContactBlock ecb)) + return; - elevatorColumn.target(targetY); - elevatorColumn.markDirty(); + ecb.callToContactAndUpdate(elevatorColumn, blockState, level, pos); }); return true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java index d1961bf7b..1b6d3461f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java @@ -201,7 +201,7 @@ public class PipeConnection { particleSplashNextTick = false; } - float flowSpeed = 1 / 32f + Mth.clamp(pressure.get(flow.inbound) / 512f, 0, 1) * 31 / 32f; + float flowSpeed = 1 / 32f + Mth.clamp(pressure.get(flow.inbound) / 128f, 0, 1) * 31 / 32f; flow.progress.setValue(Math.min(flow.progress.getValue() + flowSpeed, 1)); if (flow.progress.getValue() >= 1) flow.complete = true; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java index 681d2cc17..fb0333cc3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java @@ -32,6 +32,7 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.ticks.TickPriority; @@ -107,20 +108,33 @@ public class PumpBlock extends DirectionalKineticBlock Player player = context.getPlayer(); toPlace = ProperWaterloggedBlock.withWater(level, toPlace, pos); - if (player != null && player.isSteppingCarefully()) - return toPlace; + Direction nearestLookingDirection = context.getNearestLookingDirection(); + Direction targetDirection = context.getPlayer() != null && context.getPlayer() + .isShiftKeyDown() ? nearestLookingDirection : nearestLookingDirection.getOpposite(); + Direction bestConnectedDirection = null; + double bestDistance = Double.MAX_VALUE; for (Direction d : Iterate.directions) { BlockPos adjPos = pos.relative(d); BlockState adjState = level.getBlockState(adjPos); if (!FluidPipeBlock.canConnectTo(level, adjPos, adjState, d)) continue; - toPlace = toPlace.setValue(FACING, d); - if (context.getClickedFace() == d.getOpposite()) - break; + double distance = Vec3.atLowerCornerOf(d.getNormal()) + .distanceTo(Vec3.atLowerCornerOf(targetDirection.getNormal())); + if (distance > bestDistance) + continue; + bestDistance = distance; + bestConnectedDirection = d; } - return toPlace; + if (bestConnectedDirection == null) + return toPlace; + if (bestConnectedDirection.getAxis() == targetDirection.getAxis()) + return toPlace; + if (player.isSteppingCarefully() && bestConnectedDirection.getAxis() != targetDirection.getAxis()) + return toPlace; + + return toPlace.setValue(FACING, bestConnectedDirection); } public static boolean isPump(BlockState state) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlockEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlockEntity.java index c1dfb23da..9bacc5d80 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlockEntity.java @@ -21,8 +21,6 @@ import com.simibubi.create.foundation.utility.BlockFace; import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -38,15 +36,14 @@ import net.minecraftforge.fluids.capability.IFluidHandler; public class PumpBlockEntity extends KineticBlockEntity { - LerpedFloat arrowDirection; Couple sidesToUpdate; boolean pressureUpdate; - boolean reversed; + + // Backcompat- flips any pump blockstate that loads with reversed=true + boolean scheduleFlip; public PumpBlockEntity(BlockEntityType typeIn, BlockPos pos, BlockState state) { super(typeIn, pos, state); - arrowDirection = LerpedFloat.linear() - .startWithValue(1); sidesToUpdate = Couple.create(MutableBoolean::new); } @@ -58,55 +55,36 @@ public class PumpBlockEntity extends KineticBlockEntity { registerAwardables(behaviours, AllAdvancements.PUMP); } - @Override - public void initialize() { - super.initialize(); - reversed = getSpeed() < 0; - } - @Override public void tick() { super.tick(); - float speed = getSpeed(); - if (level.isClientSide) { - if (speed == 0) - return; - arrowDirection.chase(speed >= 0 ? 1 : -1, .5f, Chaser.EXP); - arrowDirection.tickChaser(); - if (!isVirtual()) - return; + if (level.isClientSide && !isVirtual()) + return; + + if (scheduleFlip) { + level.setBlockAndUpdate(worldPosition, + getBlockState().setValue(PumpBlock.FACING, getBlockState().getValue(PumpBlock.FACING) + .getOpposite())); + scheduleFlip = false; } -// if (pressureUpdate) -// updatePressureChange(); - sidesToUpdate.forEachWithContext((update, isFront) -> { if (update.isFalse()) return; update.setFalse(); distributePressureTo(isFront ? getFront() : getFront().getOpposite()); }); - - if (speed == 0) - return; - if (speed < 0 != reversed) { - reversed = speed < 0; - updatePressureChange(); - return; - } } @Override public void onSpeedChanged(float previousSpeed) { super.onSpeedChanged(previousSpeed); - if (previousSpeed == getSpeed()) + if (Math.abs(previousSpeed) == Math.abs(getSpeed())) return; - if (speed != 0) { - reversed = speed < 0; + if (speed != 0) award(AllAdvancements.PUMP); - } if (level.isClientSide && !isVirtual()) return; @@ -126,6 +104,13 @@ public class PumpBlockEntity extends KineticBlockEntity { sidesToUpdate.forEach(MutableBoolean::setTrue); } + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + if (compound.getBoolean("Reversed")) + scheduleFlip = true; + } + protected void distributePressureTo(Direction side) { if (getSpeed() == 0) return; @@ -216,7 +201,7 @@ public class PumpBlockEntity extends KineticBlockEntity { float pressure = Math.abs(getSpeed()); for (Set set : validFaces.values()) { - int parallelBranches = set.size(); + int parallelBranches = Math.max(1, set.size() - 1); for (BlockFace face : set) { BlockPos pipePos = face.getPos(); Direction pipeSide = face.getFace(); @@ -309,18 +294,6 @@ public class PumpBlockEntity extends KineticBlockEntity { return FluidPropagator.isOpenEnd(world, blockFace.getPos(), face); } - @Override - public void write(CompoundTag compound, boolean clientPacket) { - compound.putBoolean("Reversed", reversed); - super.write(compound, clientPacket); - } - - @Override - protected void read(CompoundTag compound, boolean clientPacket) { - reversed = compound.getBoolean("Reversed"); - super.read(compound, clientPacket); - } - public void updatePipesOnSide(Direction side) { if (!isSideAccessible(side)) return; @@ -359,7 +332,7 @@ public class PumpBlockEntity extends KineticBlockEntity { } public boolean isPullingOnSide(boolean front) { - return front == reversed; + return !front; } class PumpFluidTransferBehaviour extends FluidTransportBehaviour { diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java index 37cf56e9f..14693ac31 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java @@ -3,74 +3,28 @@ package com.simibubi.create.content.contraptions.fluids; import com.jozufozu.flywheel.api.Instancer; import com.jozufozu.flywheel.api.MaterialManager; import com.jozufozu.flywheel.api.instance.DynamicInstance; -import com.jozufozu.flywheel.core.Materials; -import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.AllPartialModels; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.core.Direction; -import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; public class PumpCogInstance extends SingleRotatingInstance implements DynamicInstance { - private final ModelData[] arrows = new ModelData[2]; - private final Direction direction = blockState.getValue(PumpBlock.FACING); - - public PumpCogInstance(MaterialManager materialManager, PumpBlockEntity blockEntity) { - super(materialManager, blockEntity); - } - - @Override - public void init() { - super.init(); - - materialManager.defaultSolid() - .material(Materials.TRANSFORMED) - .getModel(AllPartialModels.MECHANICAL_PUMP_ARROW, blockState) - .createInstances(arrows); + public PumpCogInstance(MaterialManager materialManager, PumpBlockEntity blockEntity) { + super(materialManager, blockEntity); } + + @Override + public void beginFrame() {} @Override - public void beginFrame() { - float angle = Mth.lerp(blockEntity.arrowDirection.getValue(AnimationTickHolder.getPartialTicks()), 0, 90) - 90; - for (int i = 0, arrowsLength = arrows.length; i < arrowsLength; i++) { - arrows[i].loadIdentity() - .translate(getInstancePosition()) - .centre() - .rotateY(AngleHelper.horizontalAngle(direction) + 180) - .rotateX(-AngleHelper.verticalAngle(direction) - 90) - .unCentre() - .translate(.5, 14 / 16f, .5) - .rotateY(90 * i) - .rotateZ(angle) - .translateBack(.5, 14 / 16f, .5); - } - } - - @Override - public void updateLight() { - super.updateLight(); - relight(pos, arrows); - } - - @Override - protected Instancer getModel() { + protected Instancer getModel() { BlockState referenceState = blockEntity.getBlockState(); Direction facing = referenceState.getValue(BlockStateProperties.FACING); return getRotatingMaterial().getModel(AllPartialModels.MECHANICAL_PUMP_COG, referenceState, facing); } - @Override - public void remove() { - super.remove(); - - for (ModelData arrow : arrows) { - arrow.delete(); - } - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java index c9dd5777d..b9ff47060 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java @@ -1,20 +1,12 @@ package com.simibubi.create.content.contraptions.fluids; -import com.jozufozu.flywheel.backend.Backend; -import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllPartialModels; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.core.Direction; -import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.Vec3; public class PumpRenderer extends KineticBlockEntityRenderer { @@ -22,30 +14,6 @@ public class PumpRenderer extends KineticBlockEntityRenderer { super(context); } - @Override - protected void renderSafe(PumpBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, - int light, int overlay) { - super.renderSafe(be, partialTicks, ms, buffer, light, overlay); - if (Backend.canUseInstancing(be.getLevel())) return; - Vec3 rotationOffset = new Vec3(.5, 14 / 16f, .5); - BlockState blockState = be.getBlockState(); - float angle = Mth.lerp(be.arrowDirection.getValue(partialTicks), 0, 90) - 90; - SuperByteBuffer arrow = CachedBufferer.partial(AllPartialModels.MECHANICAL_PUMP_ARROW, blockState); - for (float yRot : new float[] { 0, 90 }) { - Direction direction = blockState.getValue(PumpBlock.FACING); - arrow.centre() - .rotateY(AngleHelper.horizontalAngle(direction) + 180) - .rotateX(-AngleHelper.verticalAngle(direction) - 90) - .unCentre() - .translate(rotationOffset) - .rotateY(yRot) - .rotateZ(angle) - .translateBack(rotationOffset) - .light(light) - .renderInto(ms, buffer.getBuffer(RenderType.solid())); - } - } - @Override protected SuperByteBuffer getRotatedModel(PumpBlockEntity be, BlockState state) { return CachedBufferer.partialFacing(AllPartialModels.MECHANICAL_PUMP_COG, state); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java index 62050a5c8..436e74a41 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java @@ -38,7 +38,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; -import net.minecraft.core.NonNullList; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -48,7 +47,6 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.UseOnContext; @@ -104,11 +102,6 @@ public class BeltBlock extends HorizontalKineticBlock implements IBE p_149666_2_) { - p_149666_2_.add(AllItems.BELT_CONNECTOR.asStack()); - } - @Override protected boolean areStatesKineticallyEquivalent(BlockState oldState, BlockState newState) { return super.areStatesKineticallyEquivalent(oldState, newState) diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java index 2e3884003..98cb323c2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java @@ -47,14 +47,14 @@ public class BeltConnectorItem extends BlockItem { public String getDescriptionId() { return getOrCreateDescriptionId(); } - + @Override - public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList p_150895_2_) { - if (p_150895_1_ == AllCreativeModeTabs.BASE_CREATIVE_TAB) - return; - super.fillItemCategory(p_150895_1_, p_150895_2_); + public void fillItemCategory(CreativeModeTab pGroup, NonNullList pItems) { + // See CogWheelBlock.fillItemCategory() + if (pGroup != AllCreativeModeTabs.BASE_CREATIVE_TAB) + super.fillItemCategory(pGroup, pItems); } - + @Nonnull @Override public InteractionResult useOn(UseOnContext context) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java index b0b11b568..9a148dbca 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java @@ -3,6 +3,8 @@ package com.simibubi.create.content.contraptions.relays.elementary; import javax.annotation.ParametersAreNonnullByDefault; import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllCreativeModeTabs; +import com.simibubi.create.AllItems; import com.simibubi.create.AllShapes; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock; @@ -14,10 +16,12 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; +import net.minecraft.core.NonNullList; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; @@ -60,6 +64,14 @@ public class CogWheelBlock extends AbstractSimpleShaftBlock implements ICogWheel return !isLarge; } + @Override + public void fillItemCategory(CreativeModeTab pTab, NonNullList pItems) { + super.fillItemCategory(pTab, pItems); + // Ensure the belt item is added after large cogwheels in the creative tab + if (AllBlocks.LARGE_COGWHEEL.is(this) && pTab == AllCreativeModeTabs.BASE_CREATIVE_TAB) + pItems.add(AllItems.BELT_CONNECTOR.asStack()); + } + @Override public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { return (isLarge ? AllShapes.LARGE_GEAR : AllShapes.SMALL_GEAR).get(state.getValue(AXIS)); diff --git a/src/main/java/com/simibubi/create/foundation/config/CLogistics.java b/src/main/java/com/simibubi/create/foundation/config/CLogistics.java index 49c60c5eb..a786847e3 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CLogistics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CLogistics.java @@ -3,7 +3,7 @@ package com.simibubi.create.foundation.config; public class CLogistics extends ConfigBase { public final ConfigInt defaultExtractionTimer = i(8, 1, "defaultExtractionTimer", Comments.defaultExtractionTimer); - public final ConfigInt psiTimeout = i(20, 1, "psiTimeout", Comments.psiTimeout); + public final ConfigInt psiTimeout = i(60, 1, "psiTimeout", Comments.psiTimeout); public final ConfigInt mechanicalArmRange = i(5, 1, "mechanicalArmRange", Comments.mechanicalArmRange); public final ConfigInt linkRange = i(256, 1, "linkRange", Comments.linkRange); public final ConfigInt displayLinkRange = i(64, 1, "displayLinkRange", Comments.displayLinkRange); diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java index 4c9b734ef..9f5342ffa 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java @@ -16,6 +16,7 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; import net.minecraftforge.common.Tags; @@ -184,5 +185,9 @@ public abstract class CreateRecipeProvider extends RecipeProvider { return AllItems.SHADOW_STEEL.get(); } + static Ingredient netherite() { + return Ingredient.of(AllTags.forgeItemTag("ingots/netherite")); + } + } } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index 701134bb1..c9b77db8c 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -38,6 +38,7 @@ import net.minecraft.data.recipes.ShapedRecipeBuilder; import net.minecraft.data.recipes.ShapelessRecipeBuilder; import net.minecraft.data.recipes.SimpleCookingRecipeBuilder; import net.minecraft.data.recipes.SpecialRecipeBuilder; +import net.minecraft.data.recipes.UpgradeRecipeBuilder; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; @@ -631,6 +632,22 @@ public class StandardRecipeGen extends CreateRecipeProvider { .pattern("C") .pattern("I")), + ELEVATOR_PULLEY = create(AllBlocks.ELEVATOR_PULLEY).unlockedByTag(I::brass) + .viaShaped(b -> b.define('B', I.brassCasing()) + .define('C', Items.DRIED_KELP_BLOCK) + .define('I', I.ironSheet()) + .pattern("B") + .pattern("C") + .pattern("I")), + + CONTRAPTION_CONTROLS = create(AllBlocks.CONTRAPTION_CONTROLS).unlockedBy(I::andesite) + .viaShaped(b -> b.define('B', ItemTags.BUTTONS) + .define('C', I.andesiteCasing()) + .define('I', I.electronTube()) + .pattern("B") + .pattern("C") + .pattern("I")), + EMPTY_BLAZE_BURNER = create(AllItems.EMPTY_BLAZE_BURNER).unlockedByTag(I::iron) .viaShaped(b -> b.define('A', Tags.Items.NETHERRACK) .define('I', I.ironSheet()) @@ -1036,7 +1053,13 @@ public class StandardRecipeGen extends CreateRecipeProvider { .viaShapeless(b -> b.requires(Ingredient.of(ItemTags.SMALL_FLOWERS), 2) .requires(Ingredient.of(Items.HORN_CORAL, Items.BRAIN_CORAL, Items.TUBE_CORAL, Items.BUBBLE_CORAL, Items.FIRE_CORAL)) - .requires(Items.BONE_MEAL)) + .requires(Items.BONE_MEAL)), + + NETHERITE_DIVING_HELMET = + create(AllItems.NETHERITE_DIVING_HELMET).viaSmithing(AllItems.COPPER_DIVING_HELMET, I.netherite()), + NETHERITE_BACKTANK = create(AllItems.NETHERITE_BACKTANK).viaSmithing(AllItems.COPPER_BACKTANK, I.netherite()), + NETHERITE_DIVING_BOOTS = + create(AllItems.NETHERITE_DIVING_BOOTS).viaSmithing(AllItems.COPPER_DIVING_BOOTS, I.netherite()) ; @@ -1274,6 +1297,18 @@ public class StandardRecipeGen extends CreateRecipeProvider { }); } + GeneratedRecipe viaSmithing(ItemEntry base, Ingredient upgradeMaterial) { + return register(consumer -> { + UpgradeRecipeBuilder b = + UpgradeRecipeBuilder.smithing(Ingredient.of(base.get()), upgradeMaterial, result.get() + .asItem()); + b.unlocks("has_item", inventoryTrigger(ItemPredicate.Builder.item() + .of(base.get()) + .build())); + b.save(consumer, createLocation("crafting")); + }); + } + private ResourceLocation createSimpleLocation(String recipeType) { return Create.asResource(recipeType + "/" + getRegistryName().getPath() + suffix); } diff --git a/src/main/java/com/simibubi/create/foundation/item/CreateCreativeModeTab.java b/src/main/java/com/simibubi/create/foundation/item/CreateCreativeModeTab.java index 2fdbbef70..b6d044554 100644 --- a/src/main/java/com/simibubi/create/foundation/item/CreateCreativeModeTab.java +++ b/src/main/java/com/simibubi/create/foundation/item/CreateCreativeModeTab.java @@ -1,6 +1,9 @@ package com.simibubi.create.foundation.item; +import java.util.Collection; + import com.simibubi.create.Create; +import com.tterrag.registrate.util.entry.RegistryEntry; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.ItemRenderer; @@ -24,25 +27,28 @@ public abstract class CreateCreativeModeTab extends CreativeModeTab { addItems(items, false); } + protected Collection> registeredItems() { + return Create.REGISTRATE.getAll(ForgeRegistries.ITEMS.getRegistryKey()); + } + public void addBlocks(NonNullList items) { - for (Item item : ForgeRegistries.ITEMS) { - if (item instanceof BlockItem) { - item.fillItemCategory(this, items); - } - } + for (RegistryEntry entry : registeredItems()) + if (entry.get() instanceof BlockItem blockItem) + blockItem.fillItemCategory(this, items); } public void addItems(NonNullList items, boolean specialItems) { - ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer(); + ItemRenderer itemRenderer = Minecraft.getInstance() + .getItemRenderer(); - for (Item item : ForgeRegistries.ITEMS) { - if (!(item instanceof BlockItem)) { - ItemStack stack = new ItemStack(item); - BakedModel model = itemRenderer.getModel(stack, null, null, 0); - if (model.isGui3d() == specialItems) { - item.fillItemCategory(this, items); - } - } + for (RegistryEntry entry : registeredItems()) { + Item item = entry.get(); + if (item instanceof BlockItem) + continue; + ItemStack stack = new ItemStack(item); + BakedModel model = itemRenderer.getModel(stack, null, null, 0); + if (model.isGui3d() == specialItems) + item.fillItemCategory(this, items); } } } diff --git a/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java b/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java index b0d8d4ecf..66227ec33 100644 --- a/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java +++ b/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java @@ -54,6 +54,10 @@ public class TooltipHelper { public static Style styleFromColor(ChatFormatting color) { return Style.EMPTY.applyFormat(color); } + + public static Style styleFromColor(int hex) { + return Style.EMPTY.withColor(hex); + } public static List cutStringTextComponent(String s, Palette palette) { return cutTextComponent(Components.literal(s), palette); @@ -140,6 +144,8 @@ public class TooltipHelper { } public record Palette(Style primary, Style highlight) { + public static final Palette STANDARD_CREATE = new Palette(styleFromColor(0xC9974C), styleFromColor(0xF1DD79)); + public static final Palette BLUE = ofColors(ChatFormatting.BLUE, ChatFormatting.AQUA); public static final Palette GREEN = ofColors(ChatFormatting.DARK_GREEN, ChatFormatting.GREEN); public static final Palette YELLOW = ofColors(ChatFormatting.GOLD, ChatFormatting.YELLOW); diff --git a/src/main/resources/assets/create/lang/default/interface.json b/src/main/resources/assets/create/lang/default/interface.json index 34a02972a..51f24b58f 100644 --- a/src/main/resources/assets/create/lang/default/interface.json +++ b/src/main/resources/assets/create/lang/default/interface.json @@ -182,6 +182,8 @@ "create.minecart_coupling.removed": "Removed all couplings from minecart", "create.minecart_coupling.too_far": "Minecarts are too far apart", + "create.contraptions.moving_container": "Moving %1$s", + "create.contraptions.movement_mode": "Movement Mode", "create.contraptions.movement_mode.move_place": "Always Place when Stopped", "create.contraptions.movement_mode.move_place_returned": "Place only in Starting Position", diff --git a/src/main/resources/assets/create/models/block/mechanical_pump/arrow.json b/src/main/resources/assets/create/models/block/mechanical_pump/arrow.json deleted file mode 100644 index 56ff46484..000000000 --- a/src/main/resources/assets/create/models/block/mechanical_pump/arrow.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create:block/large_wheels", - "textures": { - "4": "create:block/pump", - "particle": "create:block/fluid_pipe" - }, - "elements": [ - { - "from": [7, 11.5, 1.5], - "to": [9, 13.5, 2.5], - "rotation": {"angle": -45, "axis": "z", "origin": [8, 14.5, 9.5]}, - "faces": { - "north": {"uv": [12, 2, 14, 4], "rotation": 270, "texture": "#4"}, - "east": {"uv": [12, 2, 14, 3], "rotation": 270, "texture": "#4"}, - "south": {"uv": [14, 2, 12, 4], "rotation": 90, "texture": "#4"}, - "west": {"uv": [12, 3, 14, 4], "rotation": 90, "texture": "#4"}, - "up": {"uv": [12, 3, 14, 4], "texture": "#4"}, - "down": {"uv": [12, 2, 13, 4], "rotation": 90, "texture": "#4"} - } - }, - { - "from": [7, 11.5, 13.5], - "to": [9, 13.5, 14.5], - "rotation": {"angle": -45, "axis": "z", "origin": [8, 14.5, 6.5]}, - "faces": { - "north": {"uv": [14, 4, 12, 2], "rotation": 90, "texture": "#4"}, - "east": {"uv": [12, 3, 14, 2], "rotation": 270, "texture": "#4"}, - "south": {"uv": [12, 4, 14, 2], "rotation": 270, "texture": "#4"}, - "west": {"uv": [12, 4, 14, 3], "rotation": 90, "texture": "#4"}, - "up": {"uv": [12, 4, 14, 3], "texture": "#4"}, - "down": {"uv": [13, 2, 12, 4], "rotation": 90, "texture": "#4"} - } - }, - { - "from": [7, 13.5, 1.5], - "to": [11, 15.5, 2.5], - "rotation": {"angle": -45, "axis": "z", "origin": [8, 14.5, 9.5]}, - "faces": { - "north": {"uv": [14, 0, 16, 4], "rotation": 270, "texture": "#4"}, - "east": {"uv": [14, 0, 16, 1], "rotation": 270, "texture": "#4"}, - "south": {"uv": [16, 0, 14, 4], "rotation": 90, "texture": "#4"}, - "west": {"uv": [12, 3, 14, 4], "rotation": 270, "texture": "#4"}, - "up": {"uv": [15, 0, 16, 4], "rotation": 90, "texture": "#4"}, - "down": {"uv": [12, 0, 13, 4], "rotation": 270, "texture": "#4"} - } - }, - { - "from": [7, 13.5, 13.5], - "to": [11, 15.5, 14.5], - "rotation": {"angle": -45, "axis": "z", "origin": [8, 14.5, 6.5]}, - "faces": { - "north": {"uv": [16, 4, 14, 0], "rotation": 90, "texture": "#4"}, - "east": {"uv": [14, 1, 16, 0], "rotation": 270, "texture": "#4"}, - "south": {"uv": [14, 4, 16, 0], "rotation": 270, "texture": "#4"}, - "west": {"uv": [12, 4, 14, 3], "rotation": 270, "texture": "#4"}, - "up": {"uv": [16, 0, 15, 4], "rotation": 90, "texture": "#4"}, - "down": {"uv": [13, 0, 12, 4], "rotation": 270, "texture": "#4"} - } - }, - { - "name": "rod", - "from": [7.5, 13.5, 1], - "to": [8.5, 14.5, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [15.5, 21.5, 10]}, - "faces": { - "north": {"uv": [0, 15, 1, 16], "texture": "#4"}, - "east": {"uv": [0, 15, 14, 16], "texture": "#4"}, - "south": {"uv": [0, 15, 1, 16], "texture": "#4"}, - "west": {"uv": [0, 15, 14, 16], "texture": "#4"}, - "up": {"uv": [0, 15, 14, 16], "rotation": 90, "texture": "#4"}, - "down": {"uv": [0, 15, 14, 16], "rotation": 90, "texture": "#4"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 1, 1.25], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "translation": [2.5, -0.5, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, 180, 0], - "translation": [0, 1.75, -4.5], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "arrow", - "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_pump/block.json b/src/main/resources/assets/create/models/block/mechanical_pump/block.json index df7988ce9..8dd3ab9b7 100644 --- a/src/main/resources/assets/create/models/block/mechanical_pump/block.json +++ b/src/main/resources/assets/create/models/block/mechanical_pump/block.json @@ -37,17 +37,67 @@ }, { "name": "front", - "from": [3, 12, 3], + "from": [3, 11, 3], "to": [13, 16, 13], "rotation": {"angle": 0, "axis": "z", "origin": [8.33333, 8.5, 8]}, "faces": { - "north": {"uv": [12, 4, 16, 14], "rotation": 90, "texture": "#4"}, - "east": {"uv": [12, 4, 16, 14], "rotation": 90, "texture": "#4"}, - "south": {"uv": [12, 4, 16, 14], "rotation": 90, "texture": "#4"}, - "west": {"uv": [12, 4, 16, 14], "rotation": 90, "texture": "#4"}, + "north": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"}, + "east": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"}, + "south": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"}, + "west": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"}, "up": {"uv": [11, 11, 16, 16], "texture": "#2"}, "down": {"uv": [6, 11, 11, 16], "texture": "#2"} } + }, + { + "from": [5.85355, 13.25, 1.75], + "to": [9.85355, 15.25, 13.75], + "rotation": {"angle": 45, "axis": "z", "origin": [8.35355, 13.25, 7.75]}, + "faces": { + "north": {"uv": [16, 0, 12, 2], "texture": "#4"}, + "east": {"uv": [15, 0, 16, 2], "texture": "#4"}, + "south": {"uv": [12, 0, 16, 2], "texture": "#4"}, + "west": {"uv": [12, 0, 13, 2], "texture": "#4"}, + "up": {"uv": [12, 0, 16, 1], "texture": "#4"}, + "down": {"uv": [12, 1, 16, 2], "texture": "#4"} + } + }, + { + "from": [7.85355, 11.25, 1.75], + "to": [9.85355, 13.25, 13.75], + "rotation": {"angle": 45, "axis": "z", "origin": [8.35355, 13.25, 7.75]}, + "faces": { + "north": {"uv": [16, 2, 14, 4], "texture": "#4"}, + "east": {"uv": [15, 2, 16, 4], "texture": "#4"}, + "south": {"uv": [14, 2, 16, 4], "texture": "#4"}, + "west": {"uv": [14, 2, 15, 4], "texture": "#4"}, + "down": {"uv": [14, 3, 16, 4], "texture": "#4"} + } + }, + { + "from": [2.35355, 10.75, 7.75], + "to": [14.35355, 12.75, 9.75], + "rotation": {"angle": -45, "axis": "x", "origin": [8.35355, 13.25, 7.75]}, + "faces": { + "north": {"uv": [14, 2, 15, 4], "texture": "#4"}, + "east": {"uv": [16, 2, 14, 4], "texture": "#4"}, + "south": {"uv": [15, 2, 16, 4], "texture": "#4"}, + "west": {"uv": [14, 2, 16, 4], "texture": "#4"}, + "down": {"uv": [14, 3, 16, 4], "rotation": 270, "texture": "#4"} + } + }, + { + "from": [2.35355, 12.75, 5.75], + "to": [14.35355, 14.75, 9.75], + "rotation": {"angle": -45, "axis": "x", "origin": [8.35355, 13.25, 7.75]}, + "faces": { + "north": {"uv": [12, 0, 13, 2], "texture": "#4"}, + "east": {"uv": [16, 0, 12, 2], "texture": "#4"}, + "south": {"uv": [15, 0, 16, 2], "texture": "#4"}, + "west": {"uv": [12, 0, 16, 2], "texture": "#4"}, + "up": {"uv": [12, 0, 16, 1], "rotation": 90, "texture": "#4"}, + "down": {"uv": [12, 1, 16, 2], "rotation": 270, "texture": "#4"} + } } ], "display": { @@ -87,6 +137,10 @@ "origin": [8, 8, 8], "color": 0, "children": [0, 1, 2] - } + }, + 3, + 4, + 5, + 6 ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_pump/item.json b/src/main/resources/assets/create/models/block/mechanical_pump/item.json index c2dd84152..161c4910c 100644 --- a/src/main/resources/assets/create/models/block/mechanical_pump/item.json +++ b/src/main/resources/assets/create/models/block/mechanical_pump/item.json @@ -8,72 +8,6 @@ "particle": "create:block/pump" }, "elements": [ - { - "from": [1, 3, 1.5], - "to": [3, 5, 2.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 4, 8]}, - "faces": { - "north": {"uv": [12, 2, 14, 4], "texture": "#4"}, - "east": {"uv": [12, 2, 13, 4], "texture": "#4"}, - "south": {"uv": [14, 2, 12, 4], "texture": "#4"}, - "west": {"uv": [12, 3, 14, 4], "rotation": 270, "texture": "#4"}, - "up": {"uv": [12, 2, 14, 3], "rotation": 180, "texture": "#4"}, - "down": {"uv": [12, 3, 14, 4], "texture": "#4"} - } - }, - { - "from": [1, 3, 13.5], - "to": [3, 5, 14.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 4, 8]}, - "faces": { - "north": {"uv": [14, 4, 12, 2], "rotation": 180, "texture": "#4"}, - "east": {"uv": [13, 2, 12, 4], "texture": "#4"}, - "south": {"uv": [12, 4, 14, 2], "rotation": 180, "texture": "#4"}, - "west": {"uv": [12, 4, 14, 3], "rotation": 270, "texture": "#4"}, - "up": {"uv": [12, 3, 14, 2], "rotation": 180, "texture": "#4"}, - "down": {"uv": [12, 4, 14, 3], "texture": "#4"} - } - }, - { - "from": [-1, 3, 1.5], - "to": [1, 7, 2.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 4, 8]}, - "faces": { - "north": {"uv": [14, 0, 16, 4], "texture": "#4"}, - "east": {"uv": [12, 0, 13, 4], "rotation": 180, "texture": "#4"}, - "south": {"uv": [16, 0, 14, 4], "texture": "#4"}, - "west": {"uv": [15, 0, 16, 4], "texture": "#4"}, - "up": {"uv": [14, 0, 16, 1], "rotation": 180, "texture": "#4"}, - "down": {"uv": [12, 3, 14, 4], "rotation": 180, "texture": "#4"} - } - }, - { - "from": [-1, 3, 13.5], - "to": [1, 7, 14.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 4, 8]}, - "faces": { - "north": {"uv": [16, 4, 14, 0], "rotation": 180, "texture": "#4"}, - "east": {"uv": [13, 0, 12, 4], "rotation": 180, "texture": "#4"}, - "south": {"uv": [14, 4, 16, 0], "rotation": 180, "texture": "#4"}, - "west": {"uv": [16, 0, 15, 4], "texture": "#4"}, - "up": {"uv": [14, 1, 16, 0], "rotation": 180, "texture": "#4"}, - "down": {"uv": [12, 4, 14, 3], "rotation": 180, "texture": "#4"} - } - }, - { - "name": "rod", - "from": [2, 8, 1], - "to": [3, 9, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 16, 8]}, - "faces": { - "north": {"uv": [0, 15, 1, 16], "rotation": 90, "texture": "#4"}, - "east": {"uv": [0, 15, 14, 16], "texture": "#4"}, - "south": {"uv": [0, 15, 1, 16], "rotation": 270, "texture": "#4"}, - "west": {"uv": [0, 15, 14, 16], "texture": "#4"}, - "up": {"uv": [0, 15, 14, 16], "rotation": 270, "texture": "#4"}, - "down": {"uv": [0, 15, 14, 16], "rotation": 270, "texture": "#4"} - } - }, { "name": "Gear5", "from": [5.5, 7, -1], @@ -158,6 +92,20 @@ "down": {"uv": [11.5, 15.5, 15.5, 11.5], "texture": "#2"} } }, + { + "name": "front", + "from": [0.5, 3.5, 3], + "to": [5.5, 13.5, 13], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 180, "texture": "#2"}, + "east": {"uv": [6, 11, 11, 16], "rotation": 270, "texture": "#2"}, + "south": {"uv": [10.5, 2.5, 13, 7.5], "texture": "#2"}, + "west": {"uv": [11, 11, 16, 16], "rotation": 270, "texture": "#2"}, + "up": {"uv": [10.5, 2.5, 13, 7.5], "texture": "#2"}, + "down": {"uv": [10.5, 2.5, 13, 7.5], "texture": "#2"} + } + }, { "name": "back", "from": [11.5, 2.5, 2], @@ -173,17 +121,53 @@ } }, { - "name": "front", - "from": [0.5, 3.5, 3], - "to": [4.5, 13.5, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 10.5, 8]}, + "from": [1.70355, 6.15, 2], + "to": [3.70355, 10.15, 14], + "rotation": {"angle": 45, "axis": "z", "origin": [3.35355, 8.25, 7.75]}, "faces": { - "north": {"uv": [12, 4, 16, 14], "rotation": 180, "texture": "#4"}, - "east": {"uv": [6, 11, 11, 16], "rotation": 270, "texture": "#2"}, - "south": {"uv": [12, 4, 16, 14], "texture": "#4"}, - "west": {"uv": [11, 11, 16, 16], "rotation": 270, "texture": "#2"}, - "up": {"uv": [12, 4, 16, 14], "texture": "#4"}, - "down": {"uv": [12, 4, 16, 14], "texture": "#4"} + "north": {"uv": [16, 0, 12, 2], "rotation": 90, "texture": "#4"}, + "east": {"uv": [12, 1, 16, 2], "rotation": 270, "texture": "#4"}, + "south": {"uv": [12, 0, 16, 2], "rotation": 270, "texture": "#4"}, + "west": {"uv": [12, 0, 16, 1], "rotation": 270, "texture": "#4"}, + "up": {"uv": [15, 0, 16, 2], "rotation": 270, "texture": "#4"}, + "down": {"uv": [12, 0, 13, 2], "rotation": 270, "texture": "#4"} + } + }, + { + "from": [3.70355, 8.15, 2], + "to": [5.70355, 10.15, 14], + "rotation": {"angle": 45, "axis": "z", "origin": [3.35355, 8.25, 7.75]}, + "faces": { + "north": {"uv": [16, 2, 14, 4], "rotation": 90, "texture": "#4"}, + "east": {"uv": [14, 3, 16, 4], "rotation": 270, "texture": "#4"}, + "south": {"uv": [14, 2, 16, 4], "rotation": 270, "texture": "#4"}, + "up": {"uv": [15, 2, 16, 4], "rotation": 270, "texture": "#4"}, + "down": {"uv": [14, 2, 15, 4], "rotation": 270, "texture": "#4"} + } + }, + { + "from": [3.85355, 2.5, 7.75], + "to": [5.85355, 14.5, 9.75], + "rotation": {"angle": -45, "axis": "y", "origin": [3.35355, 8.25, 7.75]}, + "faces": { + "north": {"uv": [14, 2, 15, 4], "rotation": 90, "texture": "#4"}, + "east": {"uv": [14, 3, 16, 4], "rotation": 180, "texture": "#4"}, + "south": {"uv": [15, 2, 16, 4], "rotation": 270, "texture": "#4"}, + "up": {"uv": [16, 2, 14, 4], "rotation": 270, "texture": "#4"}, + "down": {"uv": [14, 2, 16, 4], "rotation": 270, "texture": "#4"} + } + }, + { + "from": [1.85355, 2.5, 5.75], + "to": [3.85355, 14.5, 9.75], + "rotation": {"angle": -45, "axis": "y", "origin": [3.35355, 8.25, 7.75]}, + "faces": { + "north": {"uv": [12, 0, 13, 2], "rotation": 90, "texture": "#4"}, + "east": {"uv": [12, 1, 16, 2], "rotation": 180, "texture": "#4"}, + "south": {"uv": [15, 0, 16, 2], "rotation": 270, "texture": "#4"}, + "west": {"uv": [12, 0, 16, 1], "texture": "#4"}, + "up": {"uv": [16, 0, 12, 2], "rotation": 270, "texture": "#4"}, + "down": {"uv": [12, 0, 16, 2], "rotation": 270, "texture": "#4"} } } ], @@ -220,22 +204,22 @@ }, "groups": [ { - "name": "arrow", + "name": "cogwheel", "origin": [8, 8, 8], "color": 0, "children": [0, 1, 2, 3, 4] }, - { - "name": "cogwheel", - "origin": [8, 8, 8], - "color": 0, - "children": [5, 6, 7, 8, 9] - }, { "name": "pump", "origin": [8, 8, 8], "color": 0, - "children": [10, 11, 12] + "children": [5, 6, 7] + }, + { + "name": "Arrow", + "origin": [8, 8, 8], + "color": 0, + "children": [8, 9, 10, 11] } ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/pipes.png b/src/main/resources/assets/create/textures/block/pipes.png index 790be85be..c9166a8b1 100644 Binary files a/src/main/resources/assets/create/textures/block/pipes.png and b/src/main/resources/assets/create/textures/block/pipes.png differ diff --git a/src/main/resources/assets/create/textures/block/pump.png b/src/main/resources/assets/create/textures/block/pump.png index 0f5a56bef..d7335ec98 100644 Binary files a/src/main/resources/assets/create/textures/block/pump.png and b/src/main/resources/assets/create/textures/block/pump.png differ