diff --git a/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c b/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c index ca7d04a551..a31e8abad1 100644 --- a/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c +++ b/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c @@ -1,4 +1,4 @@ -// 1.20.1 2024-10-16T10:36:50.6126632 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] +// 1.20.1 2024-10-17T18:56:47.626034 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] 60bbdf92d2ac9824ea6144955c74043a6005f79d assets/create/blockstates/acacia_window.json 6a67703c2697d81b7dc83e9d72a66f9c9ff08383 assets/create/blockstates/acacia_window_pane.json c3ae87b62e81d8e9476eccd793bb1548d74c66a1 assets/create/blockstates/adjustable_chain_gearshift.json @@ -54,6 +54,7 @@ c23d7f691bf532d6b27317c0063289a8bd747de2 assets/create/blockstates/brown_postbox 1ffc38bf682e84aad4cb300c573375eb0cdcc434 assets/create/blockstates/brown_toolbox.json 440b29e1dffa4374ddc1aed444bff18a485bc1cb assets/create/blockstates/brown_valve_handle.json 2064534de4791b339fdcd4ef3a8129a2e233ec50 assets/create/blockstates/calcite_pillar.json +6a3e661d54423af7a8d642b813deb8f5331013c5 assets/create/blockstates/cardboard_block.json 060c957b28afed9f4e0954cbef7e80cbf4b99f58 assets/create/blockstates/cart_assembler.json fab98b93ad9b78312742daca83c2575db40fce98 assets/create/blockstates/chain_conveyor.json c7eca70054241944171b1d4ffcba0376b071ec62 assets/create/blockstates/chocolate.json @@ -609,8 +610,8 @@ b0d8f08968763a5f74e5cd5644377a76a9f39753 assets/create/blockstates/yellow_toolbo fe8c497aacc641c2f01cec90bba9f19e59cc2ed2 assets/create/blockstates/yellow_valve_handle.json e819e93fdcbe9fd9c050a052d2718ff3b3539365 assets/create/blockstates/zinc_block.json 64121dcb216381c83b4fe28aa361ea07c24c9ad0 assets/create/blockstates/zinc_ore.json -bb133028f134e0cf078a08fb468a6005f7d46c76 assets/create/lang/en_ud.json -119508739932781e5166384ab3ecdc82dd01760e assets/create/lang/en_us.json +1d3a9e827cc454562c86cc8c5ee596b78cfa7a57 assets/create/lang/en_ud.json +b6619ed3dcd9146aa7a567629455ef7c01146437 assets/create/lang/en_us.json a97e1060e00ae701a02e39cd4ef8054cf345fac4 assets/create/models/block/acacia_window.json 103e032c0b1a0a6a27c67da8c91179a564bd281c assets/create/models/block/acacia_window_pane_noside.json fb00b627abda76ad4fea867ca57dbfadd24fffa3 assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1768,6 +1769,7 @@ fce64539b36fc8a5ffa39d7a3f73765818437cbf assets/create/models/item/brown_seat.js 1db479848369140bb913ba09f3f1d994e4ac864c assets/create/models/item/builders_tea.json f5ff4e2ed2ea2e43b6d02f6a95ba02b2e4b611dc assets/create/models/item/calcite_pillar.json cc2692f7964f4266ecf00fcab176b1ef0b78673f assets/create/models/item/cardboard.json +607272f2b906fdffd46677d47a4e6ecb94184eff assets/create/models/item/cardboard_block.json 39eadb54cec52d9e2a087fc71ef83341688f2781 assets/create/models/item/cardboard_boots.json d6a3f139fca5ac6aff94d11d75fe239283bb4a09 assets/create/models/item/cardboard_chestplate.json 82236ea8e939c46f0d2c9142336190eca2a0425e assets/create/models/item/cardboard_helmet.json @@ -3080,6 +3082,7 @@ bfa0365507a888134c20b36af4bd7944263687f0 data/create/loot_tables/blocks/brown_po 588ae3d0da73eed3bc30cb28c583e7f8312d15bd data/create/loot_tables/blocks/brown_toolbox.json 7c7cf4c30786f6e0a699e2b3f9120343e53107f4 data/create/loot_tables/blocks/brown_valve_handle.json 06d1c478e4236210aa12b5911691868fef33bb5f data/create/loot_tables/blocks/calcite_pillar.json +3d65461b1fc2667f446aefa2853621c06068bb38 data/create/loot_tables/blocks/cardboard_block.json 515c839deea520b07b03f7ba65c4a7b22fdf5ba3 data/create/loot_tables/blocks/cart_assembler.json aadd8aa7f8433896bd4fea56f43e496cbc5be25a data/create/loot_tables/blocks/chain_conveyor.json fb4877d45df15be1a74378ab28f23fbf9d0657ef data/create/loot_tables/blocks/chute.json @@ -4351,9 +4354,10 @@ de1fc89be6a52473d526d3efe0204b9b8489058c data/forge/tags/blocks/glass_panes.json e475ad1c52bffedfc544e5331a87c1f5c45149fd data/forge/tags/blocks/ores_in_ground/deepslate.json 2f6068972e364599b6849dc46fcb0724d4219d53 data/forge/tags/blocks/ores_in_ground/stone.json 8a5988e68f3a41341b486784c29d00e16d5272f7 data/forge/tags/blocks/relocation_not_supported.json -b3af02a6fa3dc41bc3f4db933485f22b202deea3 data/forge/tags/blocks/storage_blocks.json +807ea01d3b028bd226ed0befc142cbd23647e998 data/forge/tags/blocks/storage_blocks.json 7d10cdf9e46a79753d4437c7bb958e3ab8bf0c89 data/forge/tags/blocks/storage_blocks/andesite_alloy.json 70bba470740dc7a77f51b4cb1747a105b62d4bde data/forge/tags/blocks/storage_blocks/brass.json +18f54179c6f809ff4aee792702fa35d3053e5dc4 data/forge/tags/blocks/storage_blocks/cardboard.json bcd593714f43bc6a0aefbd714c24db3cf9e71250 data/forge/tags/blocks/storage_blocks/raw_zinc.json 41b2a17b5ebcff5623e25dc6232f73cf9aa70387 data/forge/tags/blocks/storage_blocks/zinc.json 8140415f1c16f09167f41eeee25c09706a944be0 data/forge/tags/fluids/chocolate.json @@ -4393,9 +4397,10 @@ ef5256892a9d4167bf7371c7138a933a107a123a data/forge/tags/items/plates/copper.jso 07a6e69488ff6994a9ef1cca75b6e911bc3e3358 data/forge/tags/items/plates/obsidian.json 30496416fffaf4f845052a264023e64e52894ee7 data/forge/tags/items/raw_materials.json 30496416fffaf4f845052a264023e64e52894ee7 data/forge/tags/items/raw_materials/zinc.json -b3af02a6fa3dc41bc3f4db933485f22b202deea3 data/forge/tags/items/storage_blocks.json +807ea01d3b028bd226ed0befc142cbd23647e998 data/forge/tags/items/storage_blocks.json 7d10cdf9e46a79753d4437c7bb958e3ab8bf0c89 data/forge/tags/items/storage_blocks/andesite_alloy.json 70bba470740dc7a77f51b4cb1747a105b62d4bde data/forge/tags/items/storage_blocks/brass.json +18f54179c6f809ff4aee792702fa35d3053e5dc4 data/forge/tags/items/storage_blocks/cardboard.json bcd593714f43bc6a0aefbd714c24db3cf9e71250 data/forge/tags/items/storage_blocks/raw_zinc.json 41b2a17b5ebcff5623e25dc6232f73cf9aa70387 data/forge/tags/items/storage_blocks/zinc.json b69fcc7227d44fc000c8ab94524230f55b89aa27 data/forge/tags/items/stripped_logs.json @@ -4408,7 +4413,7 @@ c741ba83b562ae3459d7c4f2db69537f549ea411 data/forge/tags/items/tools/wrench.json 515a1c773e617dd7e38aa1b893acc7db2dd30e08 data/minecraft/tags/blocks/dripstone_replaceable_blocks.json e3321ff14704c031a2c16953b7e391f4f24dd70b data/minecraft/tags/blocks/impermeable.json 515a1c773e617dd7e38aa1b893acc7db2dd30e08 data/minecraft/tags/blocks/lush_ground_replaceable.json -5bfa11627f37364de2098753c85a589721cfa2af data/minecraft/tags/blocks/mineable/axe.json +f65bb63cc66aa72b5b9fa05dd88e2a69c8bf7d55 data/minecraft/tags/blocks/mineable/axe.json 1f8802b85d179bbd7f74ec37c6ffceb59eb4856c data/minecraft/tags/blocks/mineable/pickaxe.json 515a1c773e617dd7e38aa1b893acc7db2dd30e08 data/minecraft/tags/blocks/moss_replaceable.json 0c13aae0eeb99e89febe8dbe5e002af2ff843a9e data/minecraft/tags/blocks/needs_iron_tool.json diff --git a/src/generated/resources/.cache/82992cbf8f2794d83ac94034835eac0acd7915b9 b/src/generated/resources/.cache/82992cbf8f2794d83ac94034835eac0acd7915b9 index 9163e3154c..c0fbdb41d0 100644 --- a/src/generated/resources/.cache/82992cbf8f2794d83ac94034835eac0acd7915b9 +++ b/src/generated/resources/.cache/82992cbf8f2794d83ac94034835eac0acd7915b9 @@ -1,4 +1,4 @@ -// 1.20.1 2024-10-15T10:59:16.195561 Create's Standard Recipes +// 1.20.1 2024-10-17T18:56:47.6838794 Create's Standard Recipes a8cc4af26f6c7c45a9eef12e92af1452fe042454 data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank.json 2c2639c7b307ee7c7a4e97e5efebf496788998ad data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank_from_netherite.json 81dcf0cb1aa99e39bc7d1a386e07cad4cee7d8b9 data/create/advancements/recipes/combat/crafting/appliances/netherite_diving_boots.json @@ -188,6 +188,8 @@ cb416511a219d2bc5806c6880c01820a8b563b80 data/create/advancements/recipes/misc/c 8aa51bd8685a70f200506d3efd4e73ce9b2d7370 data/create/advancements/recipes/misc/crafting/materials/brass_ingot_from_compacting.json 9e703c5fa1bd44eb6581e745f06923d40126ada4 data/create/advancements/recipes/misc/crafting/materials/brass_ingot_from_decompacting.json 4cb9d1fc5289b11df4610a85aa2cd67877556b32 data/create/advancements/recipes/misc/crafting/materials/brass_nugget_from_decompacting.json +f07788c42f4c49d0b4fc7253742d95e94bd5346d data/create/advancements/recipes/misc/crafting/materials/cardboard_block.json +86439f388e88fe56d3931ab46fce5a111b2c15f4 data/create/advancements/recipes/misc/crafting/materials/cardboard_from_block.json ffcd3f0339794c782a8be8434cd79de15d0ab3cc data/create/advancements/recipes/misc/crafting/materials/copper_ingot.json 58c23978d7222951cba2bbf3020cd0c2c6f85ac9 data/create/advancements/recipes/misc/crafting/materials/copper_nugget.json d4879e7721bdbb6c7029ac88ff5684acec8223d6 data/create/advancements/recipes/misc/crafting/materials/electron_tube.json @@ -438,6 +440,8 @@ f9f94e5082e7971e55b25bc00ba86c3579b492aa data/create/recipes/crafting/materials/ ecd8581ad4a04cc1217133363bd15d76129cb651 data/create/recipes/crafting/materials/brass_ingot_from_compacting.json fe2f3c0722aa0f6b41ad0f497b9742eb856c0dd0 data/create/recipes/crafting/materials/brass_ingot_from_decompacting.json 941b2c1007c4b3afb6e141a754141de1b1c9a43a data/create/recipes/crafting/materials/brass_nugget_from_decompacting.json +4c92a1eadc2e5dfba9e871537671702ccf35368a data/create/recipes/crafting/materials/cardboard_block.json +cb1188148d18e456cecd33279aaf695787ddbf74 data/create/recipes/crafting/materials/cardboard_from_block.json d4d6664d05c7406b4f839413d4e3c60cf0347fb7 data/create/recipes/crafting/materials/copper_ingot.json 4863d3feda514d414962c1947abaa232ab3f6cd5 data/create/recipes/crafting/materials/copper_nugget.json 66c0b1d060395826c4a45082a03295b5df450801 data/create/recipes/crafting/materials/electron_tube.json diff --git a/src/generated/resources/assets/create/blockstates/cardboard_block.json b/src/generated/resources/assets/create/blockstates/cardboard_block.json new file mode 100644 index 0000000000..0ffaa202ae --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/cardboard_block.json @@ -0,0 +1,11 @@ +{ + "variants": { + "axis=x": { + "model": "create:block/cardboard_block", + "y": 90 + }, + "axis=z": { + "model": "create:block/cardboard_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index 98c8980107..8bc04f5eef 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -240,6 +240,7 @@ "block.create.brown_toolbox": "xoqןoo⟘ uʍoɹᗺ", "block.create.brown_valve_handle": "ǝןpuɐH ǝʌןɐΛ uʍoɹᗺ", "block.create.calcite_pillar": "ɹɐןןıԀ ǝʇıɔןɐƆ", + "block.create.cardboard_block": "pɹɐoqpɹɐƆ ɟo ʞɔoןᗺ", "block.create.cart_assembler": "ɹǝןqɯǝssⱯ ʇɹɐƆ", "block.create.chain_conveyor": "ɹoʎǝʌuoƆ uıɐɥƆ", "block.create.chocolate": "ǝʇɐןoɔoɥƆ", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index a92661ef16..b72f8c85cc 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -240,6 +240,7 @@ "block.create.brown_toolbox": "Brown Toolbox", "block.create.brown_valve_handle": "Brown Valve Handle", "block.create.calcite_pillar": "Calcite Pillar", + "block.create.cardboard_block": "Block of Cardboard", "block.create.cart_assembler": "Cart Assembler", "block.create.chain_conveyor": "Chain Conveyor", "block.create.chocolate": "Chocolate", diff --git a/src/generated/resources/assets/create/models/item/cardboard_block.json b/src/generated/resources/assets/create/models/item/cardboard_block.json new file mode 100644 index 0000000000..c39463f355 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/cardboard_block.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/cardboard_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/misc/crafting/materials/cardboard_block.json b/src/generated/resources/data/create/advancements/recipes/misc/crafting/materials/cardboard_block.json new file mode 100644 index 0000000000..fc13ed8ccc --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/misc/crafting/materials/cardboard_block.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "create:cardboard" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "create:crafting/materials/cardboard_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "create:crafting/materials/cardboard_block" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/misc/crafting/materials/cardboard_from_block.json b/src/generated/resources/data/create/advancements/recipes/misc/crafting/materials/cardboard_from_block.json new file mode 100644 index 0000000000..6585feb979 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/misc/crafting/materials/cardboard_from_block.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "create:cardboard" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "create:crafting/materials/cardboard_from_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "create:crafting/materials/cardboard_from_block" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/cardboard_block.json b/src/generated/resources/data/create/loot_tables/blocks/cardboard_block.json new file mode 100644 index 0000000000..edd4a2520b --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/cardboard_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:cardboard_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "create:blocks/cardboard_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/materials/cardboard_block.json b/src/generated/resources/data/create/recipes/crafting/materials/cardboard_block.json new file mode 100644 index 0000000000..1bc4b517f3 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/materials/cardboard_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "create:cardboard" + } + }, + "pattern": [ + "CC", + "CC" + ], + "result": { + "item": "create:cardboard_block" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/materials/cardboard_from_block.json b/src/generated/resources/data/create/recipes/crafting/materials/cardboard_from_block.json new file mode 100644 index 0000000000..8a7ef79073 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/materials/cardboard_from_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "create:cardboard_block" + } + ], + "result": { + "count": 4, + "item": "create:cardboard" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/storage_blocks.json b/src/generated/resources/data/forge/tags/blocks/storage_blocks.json index 14641f4514..3c03b7b1a9 100644 --- a/src/generated/resources/data/forge/tags/blocks/storage_blocks.json +++ b/src/generated/resources/data/forge/tags/blocks/storage_blocks.json @@ -4,6 +4,7 @@ "create:zinc_block", "create:andesite_alloy_block", "create:brass_block", + "create:cardboard_block", "create:experience_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/storage_blocks/cardboard.json b/src/generated/resources/data/forge/tags/blocks/storage_blocks/cardboard.json new file mode 100644 index 0000000000..10452a5013 --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/storage_blocks/cardboard.json @@ -0,0 +1,5 @@ +{ + "values": [ + "create:cardboard_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/storage_blocks.json b/src/generated/resources/data/forge/tags/items/storage_blocks.json index 14641f4514..3c03b7b1a9 100644 --- a/src/generated/resources/data/forge/tags/items/storage_blocks.json +++ b/src/generated/resources/data/forge/tags/items/storage_blocks.json @@ -4,6 +4,7 @@ "create:zinc_block", "create:andesite_alloy_block", "create:brass_block", + "create:cardboard_block", "create:experience_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/storage_blocks/cardboard.json b/src/generated/resources/data/forge/tags/items/storage_blocks/cardboard.json new file mode 100644 index 0000000000..10452a5013 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/storage_blocks/cardboard.json @@ -0,0 +1,5 @@ +{ + "values": [ + "create:cardboard_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json index 526f980687..15e384e308 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -130,6 +130,7 @@ "create:brown_seat", "create:green_seat", "create:red_seat", - "create:black_seat" + "create:black_seat", + "create:cardboard_block" ] } \ 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 9488a8934c..a9908de79b 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -54,6 +54,7 @@ import com.simibubi.create.content.contraptions.piston.MechanicalPistonBlock; import com.simibubi.create.content.contraptions.piston.MechanicalPistonHeadBlock; import com.simibubi.create.content.contraptions.piston.PistonExtensionPoleBlock; import com.simibubi.create.content.contraptions.pulley.PulleyBlock; +import com.simibubi.create.content.decoration.CardboardBlock; import com.simibubi.create.content.decoration.MetalLadderBlock; import com.simibubi.create.content.decoration.MetalScaffoldingBlock; import com.simibubi.create.content.decoration.TrainTrapdoorBlock; @@ -2466,6 +2467,20 @@ public class AllBlocks { .build() .lang("Block of Brass") .register(); + + public static final BlockEntry CARDBOARD_BLOCK = + REGISTRATE.block("cardboard_block", CardboardBlock::new) + .initialProperties(() -> Blocks.MUSHROOM_STEM) + .properties(p -> p.mapColor(MapColor.COLOR_BROWN) + .ignitedByLava()) + .transform(axeOnly()) + .blockstate(BlockStateGen.horizontalAxisBlockProvider(false)) + .tag(Tags.Blocks.STORAGE_BLOCKS) + .transform(tagBlockAndItem("storage_blocks/cardboard")) + .tag(Tags.Items.STORAGE_BLOCKS) + .build() + .lang("Block of Cardboard") + .register(); public static final BlockEntry EXPERIENCE_BLOCK = REGISTRATE.block("experience_block", ExperienceBlock::new) diff --git a/src/main/java/com/simibubi/create/AllItems.java b/src/main/java/com/simibubi/create/AllItems.java index 521e21ea92..582b25abc2 100644 --- a/src/main/java/com/simibubi/create/AllItems.java +++ b/src/main/java/com/simibubi/create/AllItems.java @@ -25,6 +25,7 @@ import com.simibubi.create.content.equipment.armor.AllArmorMaterials; import com.simibubi.create.content.equipment.armor.BacktankItem; import com.simibubi.create.content.equipment.armor.BacktankItem.BacktankBlockItem; import com.simibubi.create.content.equipment.armor.BaseArmorItem; +import com.simibubi.create.content.equipment.armor.CardboardHelmetItem; import com.simibubi.create.content.equipment.armor.DivingBootsItem; import com.simibubi.create.content.equipment.armor.DivingHelmetItem; import com.simibubi.create.content.equipment.blueprint.BlueprintItem; @@ -318,7 +319,7 @@ public class AllItems { CARDBOARD_HELMET = REGISTRATE .item("cardboard_helmet", - p -> new BaseArmorItem(AllArmorMaterials.CARDBOARD, ArmorItem.Type.HELMET, p, + p -> new CardboardHelmetItem(AllArmorMaterials.CARDBOARD, ArmorItem.Type.HELMET, p, Create.asResource("cardboard"))) .tag(forgeItemTag("armors/helmet")) .register(), diff --git a/src/main/java/com/simibubi/create/AllPartialModels.java b/src/main/java/com/simibubi/create/AllPartialModels.java index ed21ef548d..bd48c566b5 100644 --- a/src/main/java/com/simibubi/create/AllPartialModels.java +++ b/src/main/java/com/simibubi/create/AllPartialModels.java @@ -202,6 +202,7 @@ public class AllPartialModels { public static final List CONTRAPTION_CONTROLS_INDICATOR = new ArrayList<>(); public static final Map PACKAGES = new HashMap<>(); + public static final List PACKAGES_AS_LIST = new ArrayList<>(); public static final Map PACKAGE_RIGGING = new HashMap<>(); static { @@ -226,7 +227,9 @@ public class AllPartialModels { for (String size : new String[] { "12x12", "10x12", "12x10", "10x8" }) { ResourceLocation key = Create.asResource("cardboard_package_" + size); - PACKAGES.put(key, PartialModel.of(Create.asResource("item/packages/cardboard_" + size))); + PartialModel model = PartialModel.of(Create.asResource("item/packages/cardboard_" + size)); + PACKAGES.put(key, model); + PACKAGES_AS_LIST.add(model); PACKAGE_RIGGING.put(key, PartialModel.of(Create.asResource("item/packages/cardboard_" + size + "_rigging"))); } diff --git a/src/main/java/com/simibubi/create/content/decoration/CardboardBlock.java b/src/main/java/com/simibubi/create/content/decoration/CardboardBlock.java new file mode 100644 index 0000000000..1f47575e5f --- /dev/null +++ b/src/main/java/com/simibubi/create/content/decoration/CardboardBlock.java @@ -0,0 +1,59 @@ +package com.simibubi.create.content.decoration; + +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.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition.Builder; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.Property; + +public class CardboardBlock extends Block { + + public static final Property HORIZONTAL_AXIS = BlockStateProperties.HORIZONTAL_AXIS; + + public CardboardBlock(Properties pProperties) { + super(pProperties); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext pContext) { + return this.defaultBlockState() + .setValue(HORIZONTAL_AXIS, pContext.getHorizontalDirection() + .getAxis()); + } + + @Override + public int getFireSpreadSpeed(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { + return 100; + } + + @Override + public int getFlammability(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { + return 20; + } + + @Override + protected void createBlockStateDefinition(Builder builder) { + super.createBlockStateDefinition(builder.add(HORIZONTAL_AXIS)); + } + + @Override + public BlockState rotate(BlockState state, Rotation rot) { + return state.setValue(HORIZONTAL_AXIS, + rot.rotate(Direction.get(AxisDirection.POSITIVE, state.getValue(HORIZONTAL_AXIS))) + .getAxis()); + } + + @Override + public BlockState mirror(BlockState state, Mirror mirrorIn) { + return state; + } + +} diff --git a/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandlerClient.java b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandlerClient.java index 9ae57498f8..56eddb14f2 100644 --- a/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandlerClient.java +++ b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandlerClient.java @@ -1,23 +1,48 @@ package com.simibubi.create.content.equipment.armor; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; + +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.AllItems; import com.simibubi.create.AllPartialModels; import com.simibubi.create.content.logistics.box.PackageRenderer; +import dev.engine_room.flywheel.lib.model.baked.PartialModel; import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.event.TickEvent.Phase; +import net.minecraftforge.event.TickEvent.PlayerTickEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.registries.ForgeRegistries; @EventBusSubscriber(value = Dist.CLIENT) public class CardboardArmorHandlerClient { + private static final Cache BOXES_PLAYERS_ARE_HIDING_AS = CacheBuilder.newBuilder() + .expireAfterAccess(1, TimeUnit.SECONDS) + .build(); + + @SubscribeEvent + public static void keepCacheAliveDesignDespiteNotRendering(PlayerTickEvent event) { + if (event.phase == Phase.START) + return; + Player player = event.player; + if (!CardboardArmorHandler.testForStealth(player)) + return; + try { + getCurrentBoxIndex(player); + } catch (ExecutionException e) { + e.printStackTrace(); + } + } + @SubscribeEvent(priority = EventPriority.HIGH) public static void playerRendersAsBoxWhenSneaking(RenderPlayerEvent.Pre event) { Player player = event.getEntity(); @@ -39,10 +64,22 @@ public class CardboardArmorHandlerClient { Math.min(Math.abs(Mth.cos((AnimationTickHolder.getRenderTime() % 256) / 2.0f)) * 2 / 16f, movement * 5), 0); - float f = Mth.lerp(event.getPartialTick(), player.yRotO, player.getYRot()); - PackageRenderer.renderBox(player, -f + -90, ms, event.getMultiBufferSource(), event.getPackedLight(), - AllPartialModels.PACKAGES.get(ForgeRegistries.ITEMS.getKey(AllItems.CARDBOARD_PACKAGE_10x12.get()))); + float interpolatedYaw = Mth.lerp(event.getPartialTick(), player.yRotO, player.getYRot()); + + try { + PartialModel model = AllPartialModels.PACKAGES_AS_LIST.get(getCurrentBoxIndex(player)); + PackageRenderer.renderBox(player, -interpolatedYaw + -90, ms, event.getMultiBufferSource(), + event.getPackedLight(), model); + } catch (ExecutionException e) { + e.printStackTrace(); + } + ms.popPose(); } + private static Integer getCurrentBoxIndex(Player player) throws ExecutionException { + return BOXES_PLAYERS_ARE_HIDING_AS.get(player.getUUID(), + () -> player.level().random.nextInt(AllPartialModels.PACKAGES_AS_LIST.size())); + } + } diff --git a/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorStealthOverlay.java b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorStealthOverlay.java new file mode 100644 index 0000000000..40f49fa718 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorStealthOverlay.java @@ -0,0 +1,50 @@ +package com.simibubi.create.content.equipment.armor; + +import com.simibubi.create.Create; + +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; + +public class CardboardArmorStealthOverlay extends Gui implements IClientItemExtensions { + + public CardboardArmorStealthOverlay() { + super(Minecraft.getInstance(), Minecraft.getInstance() + .getItemRenderer()); + } + + private static final ResourceLocation PACKAGE_BLUR_LOCATION = Create.asResource("textures/misc/package_blur.png"); + + private static LerpedFloat opacity = LerpedFloat.linear() + .startWithValue(0) + .chase(0, 0.25f, Chaser.EXP); + + public static void clientTick() { + LocalPlayer player = Minecraft.getInstance().player; + if (player == null) + return; + + opacity.tickChaser(); + opacity.updateChaseTarget(CardboardArmorHandler.testForStealth(player) ? 1 : 0); + } + + @Override + public void renderHelmetOverlay(ItemStack stack, Player player, int width, int height, float partialTick) { + Minecraft mc = Minecraft.getInstance(); + float value = opacity.getValue(partialTick); + if (value == 0) + return; + screenWidth = width; + screenHeight = height; + renderTextureOverlay(new GuiGraphics(mc, mc.renderBuffers() + .bufferSource()), PACKAGE_BLUR_LOCATION, value); + } + +} diff --git a/src/main/java/com/simibubi/create/content/equipment/armor/CardboardHelmetItem.java b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardHelmetItem.java new file mode 100644 index 0000000000..efdf62aef9 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardHelmetItem.java @@ -0,0 +1,25 @@ +package com.simibubi.create.content.equipment.armor; + +import java.util.function.Consumer; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; + +public class CardboardHelmetItem extends BaseArmorItem { + + public CardboardHelmetItem(ArmorMaterial armorMaterial, Type type, Properties properties, + ResourceLocation textureLoc) { + super(armorMaterial, type, properties, textureLoc); + } + + @Override + @OnlyIn(Dist.CLIENT) + public void initializeClient(Consumer consumer) { + super.initializeClient(consumer); + consumer.accept(new CardboardArmorStealthOverlay()); + } + +} diff --git a/src/main/java/com/simibubi/create/content/equipment/tool/CardboardSwordItem.java b/src/main/java/com/simibubi/create/content/equipment/tool/CardboardSwordItem.java index 9c9e0bdbb6..7218155ca7 100644 --- a/src/main/java/com/simibubi/create/content/equipment/tool/CardboardSwordItem.java +++ b/src/main/java/com/simibubi/create/content/equipment/tool/CardboardSwordItem.java @@ -28,7 +28,10 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.player.PlayerInteractEvent.LeftClickBlock; +import net.minecraftforge.event.entity.player.PlayerInteractEvent.LeftClickBlock.Action; import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @EventBusSubscriber @@ -49,14 +52,22 @@ public class CardboardSwordItem extends SwordItem { } @Override - public boolean hurtEnemy(ItemStack pStack, LivingEntity pTarget, LivingEntity pAttacker) { - return super.hurtEnemy(pStack, pTarget, pAttacker); + public boolean onLeftClickEntity(ItemStack stack, Player player, Entity entity) { + AllSoundEvents.CARDBOARD_SWORD.playFrom(entity, 0.75f, 1.85f); + return super.onLeftClickEntity(stack, player, entity); } - @Override - public boolean onLeftClickEntity(ItemStack stack, Player player, Entity entity) { - AllSoundEvents.CARDBOARD_SWORD.playFrom(entity, 0.75f, 1.5f); - return super.onLeftClickEntity(stack, player, entity); + @SubscribeEvent + public static void cardboardSwordsMakeNoiseOnClick(LeftClickBlock event) { + ItemStack itemStack = event.getItemStack(); + if (!AllItems.CARDBOARD_SWORD.isIn(itemStack)) + return; + if (event.getAction() != Action.START) + return; + if (event.getSide() == LogicalSide.CLIENT) + AllSoundEvents.CARDBOARD_SWORD.playAt(event.getLevel(), event.getPos(), 0.5f, 1.85f, false); + else + AllSoundEvents.CARDBOARD_SWORD.play(event.getLevel(), event.getEntity(), event.getPos(), 0.5f, 1.85f); } @SubscribeEvent @@ -84,6 +95,7 @@ public class CardboardSwordItem extends SwordItem { if (knockbackStrength <= 0) return; + target.stopRiding(); target.knockback(knockbackStrength * 0.5F, Mth.sin(livingAttacker.getYRot() * Mth.DEG_TO_RAD), -Mth.cos(livingAttacker.getYRot() * Mth.DEG_TO_RAD)); if ((target.getClassification(false) == MobCategory.MISC 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 d3e7eac7dc..d8e500ee2b 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 @@ -14,6 +14,8 @@ import java.util.ArrayList; import java.util.List; import java.util.function.UnaryOperator; +import org.jetbrains.annotations.NotNull; + import com.google.common.base.Supplier; import com.google.common.collect.ImmutableList; import com.google.gson.JsonArray; @@ -59,8 +61,6 @@ import net.minecraftforge.common.crafting.conditions.ICondition; import net.minecraftforge.common.crafting.conditions.ModLoadedCondition; import net.minecraftforge.common.crafting.conditions.NotCondition; -import org.jetbrains.annotations.NotNull; - @SuppressWarnings("unused") public class StandardRecipeGen extends CreateRecipeProvider { @@ -115,6 +115,16 @@ public class StandardRecipeGen extends CreateRecipeProvider { .pattern("CCC") .pattern("CCC") .pattern("CCC")), + + CARDBOARD_BLOCK = create(AllBlocks.CARDBOARD_BLOCK).unlockedBy(AllItems.CARDBOARD::get) + .viaShaped(b -> b.define('C', AllItems.CARDBOARD.get()) + .pattern("CC") + .pattern("CC")), + + CARDBOARD_FROM_BLOCK = create(AllItems.CARDBOARD).withSuffix("_from_block") + .returns(4) + .unlockedBy(AllItems.CARDBOARD::get) + .viaShapeless(b -> b.requires(AllBlocks.CARDBOARD_BLOCK.get())), BRASS_COMPACTING = metalCompacting(ImmutableList.of(AllItems.BRASS_NUGGET, AllItems.BRASS_INGOT, AllBlocks.BRASS_BLOCK), diff --git a/src/main/java/com/simibubi/create/foundation/events/ClientEvents.java b/src/main/java/com/simibubi/create/foundation/events/ClientEvents.java index ae6ebd6085..d53893c04e 100644 --- a/src/main/java/com/simibubi/create/foundation/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/foundation/events/ClientEvents.java @@ -17,6 +17,7 @@ import com.simibubi.create.content.contraptions.render.ContraptionRenderInfoMana import com.simibubi.create.content.contraptions.wrench.RadialWrenchHandler; import com.simibubi.create.content.decoration.girder.GirderWrenchBehavior; import com.simibubi.create.content.equipment.armor.BacktankArmorLayer; +import com.simibubi.create.content.equipment.armor.CardboardArmorStealthOverlay; import com.simibubi.create.content.equipment.armor.DivingHelmetItem; import com.simibubi.create.content.equipment.armor.NetheriteBacktankFirstPersonRenderer; import com.simibubi.create.content.equipment.armor.NetheriteDivingHandler; @@ -183,6 +184,7 @@ public class ClientEvents { PackagePortTargetSelectionHandler.tick(); LogisticallyLinkedClientHandler.tick(); DisplayClothOverlayRenderer.tick(); + CardboardArmorStealthOverlay.clientTick(); } @SubscribeEvent diff --git a/src/main/resources/assets/create/models/block/cardboard_block.json b/src/main/resources/assets/create/models/block/cardboard_block.json new file mode 100644 index 0000000000..8a9476d965 --- /dev/null +++ b/src/main/resources/assets/create/models/block/cardboard_block.json @@ -0,0 +1,24 @@ +{ + "parent": "block/block", + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/cardboard_block_front", + "1": "create:block/cardboard_block_side", + "2": "create:block/cardboard_block_top", + "particle": "create:block/cardboard_block_side" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#2"}, + "down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#2"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/cardboard_block_front.png b/src/main/resources/assets/create/textures/block/cardboard_block_front.png new file mode 100644 index 0000000000..edf9b73fee Binary files /dev/null and b/src/main/resources/assets/create/textures/block/cardboard_block_front.png differ diff --git a/src/main/resources/assets/create/textures/block/cardboard_block_side.png b/src/main/resources/assets/create/textures/block/cardboard_block_side.png new file mode 100644 index 0000000000..b367d333e8 Binary files /dev/null and b/src/main/resources/assets/create/textures/block/cardboard_block_side.png differ diff --git a/src/main/resources/assets/create/textures/block/cardboard_block_top.png b/src/main/resources/assets/create/textures/block/cardboard_block_top.png new file mode 100644 index 0000000000..96fcdb8d99 Binary files /dev/null and b/src/main/resources/assets/create/textures/block/cardboard_block_top.png differ diff --git a/src/main/resources/assets/create/textures/misc/package_blur.png b/src/main/resources/assets/create/textures/misc/package_blur.png new file mode 100644 index 0000000000..4f302df51d Binary files /dev/null and b/src/main/resources/assets/create/textures/misc/package_blur.png differ diff --git a/src/main/resources/assets/create/textures/misc/package_blur.png.mcmeta b/src/main/resources/assets/create/textures/misc/package_blur.png.mcmeta new file mode 100644 index 0000000000..2077f3ce06 --- /dev/null +++ b/src/main/resources/assets/create/textures/misc/package_blur.png.mcmeta @@ -0,0 +1,6 @@ +{ + "texture": { + "blur": true + } +} +