diff --git a/README.md b/README.md index f8c03ad57..d6ac10790 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,11 @@ If you want to help us with translations, we have opened a Crowdin project. Clic # Source Code ## Fabric -https://github.com/valentinlamine/CreateNuclearFabric +https://github.com/Create-Nuclear-Team/CreateNuclearFabric ## Forge -https://github.com/Giovanniricotta2002/CreateNuclearForge +https://github.com/Create-Nuclear-Team/CreateNuclearForge ## NeoForge diff --git a/run/banned-ips.json b/run/banned-ips.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/run/banned-ips.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/run/banned-players.json b/run/banned-players.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/run/banned-players.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/run/datapackTest/data/example/item_rod_types/material_blocks.json b/run/datapackTest/data/example/item_rod_types/material_blocks.json new file mode 100644 index 000000000..b80ced233 --- /dev/null +++ b/run/datapackTest/data/example/item_rod_types/material_blocks.json @@ -0,0 +1,9 @@ +{ + "items": [ + "minecraft:grass_block" + ], + "type": "FUEL", + "baseValueRod": 999999, + "lifeTime": 6000, + "proxyBonus": 999999 +} \ No newline at end of file diff --git a/run/datapackTest/pack.mcmeta b/run/datapackTest/pack.mcmeta new file mode 100644 index 000000000..dd3f4fb93 --- /dev/null +++ b/run/datapackTest/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 10, + "description": "Fortune on Ancient Debris" + } +} \ No newline at end of file diff --git a/run/eula.txt b/run/eula.txt new file mode 100644 index 000000000..51ab3fe8f --- /dev/null +++ b/run/eula.txt @@ -0,0 +1,3 @@ +#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA). +#Wed Feb 25 09:19:30 CET 2026 +eula=true diff --git a/run/ops.json b/run/ops.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/run/ops.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/run/server.properties b/run/server.properties new file mode 100644 index 000000000..13f483e91 --- /dev/null +++ b/run/server.properties @@ -0,0 +1,58 @@ +#Minecraft server properties +#Wed Feb 25 09:32:31 CET 2026 +enable-jmx-monitoring=false +rcon.port=25575 +level-seed= +gamemode=survival +enable-command-block=false +enable-query=false +generator-settings={} +enforce-secure-profile=true +level-name=world +motd=A Minecraft Server +query.port=25565 +pvp=true +generate-structures=true +max-chained-neighbor-updates=1000000 +difficulty=easy +network-compression-threshold=256 +max-tick-time=60000 +require-resource-pack=false +use-native-transport=true +max-players=20 +online-mode=true +enable-status=true +allow-flight=false +initial-disabled-packs= +broadcast-rcon-to-ops=true +view-distance=10 +server-ip= +resource-pack-prompt= +allow-nether=true +server-port=25565 +enable-rcon=false +sync-chunk-writes=true +op-permission-level=4 +prevent-proxy-connections=false +hide-online-players=false +resource-pack= +entity-broadcast-range-percentage=100 +simulation-distance=10 +rcon.password= +player-idle-timeout=0 +force-gamemode=false +rate-limit=0 +hardcore=false +white-list=false +broadcast-console-to-ops=true +spawn-npcs=true +spawn-animals=true +function-permission-level=2 +initial-enabled-packs=vanilla,fabric +level-type=minecraft\:normal +text-filtering-config= +spawn-monsters=true +enforce-whitelist=false +spawn-protection=16 +resource-pack-sha1= +max-world-size=29999984 diff --git a/run/servers.dat b/run/servers.dat index f0cc6233a..c9a90aaeb 100644 Binary files a/run/servers.dat and b/run/servers.dat differ diff --git a/run/whitelist.json b/run/whitelist.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/run/whitelist.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/run/world/DIM-1/data/raids.dat b/run/world/DIM-1/data/raids.dat new file mode 100644 index 000000000..5dbcef207 Binary files /dev/null and b/run/world/DIM-1/data/raids.dat differ diff --git a/run/world/DIM1/data/raids_end.dat b/run/world/DIM1/data/raids_end.dat new file mode 100644 index 000000000..5dbcef207 Binary files /dev/null and b/run/world/DIM1/data/raids_end.dat differ diff --git a/run/world/data/fabricRegistry.dat b/run/world/data/fabricRegistry.dat new file mode 100644 index 000000000..d733ddb5c Binary files /dev/null and b/run/world/data/fabricRegistry.dat differ diff --git a/run/world/data/raids.dat b/run/world/data/raids.dat new file mode 100644 index 000000000..5dbcef207 Binary files /dev/null and b/run/world/data/raids.dat differ diff --git a/run/world/data/random_sequences.dat b/run/world/data/random_sequences.dat new file mode 100644 index 000000000..3dac926c0 Binary files /dev/null and b/run/world/data/random_sequences.dat differ diff --git a/run/world/entities/r.-1.-1.mca b/run/world/entities/r.-1.-1.mca new file mode 100644 index 000000000..c20ae85eb Binary files /dev/null and b/run/world/entities/r.-1.-1.mca differ diff --git a/run/world/entities/r.-1.0.mca b/run/world/entities/r.-1.0.mca new file mode 100644 index 000000000..7c2fdeaad Binary files /dev/null and b/run/world/entities/r.-1.0.mca differ diff --git a/run/world/entities/r.0.-1.mca b/run/world/entities/r.0.-1.mca new file mode 100644 index 000000000..f1198e977 Binary files /dev/null and b/run/world/entities/r.0.-1.mca differ diff --git a/run/world/entities/r.0.0.mca b/run/world/entities/r.0.0.mca new file mode 100644 index 000000000..83c6dc184 Binary files /dev/null and b/run/world/entities/r.0.0.mca differ diff --git a/run/world/level.dat b/run/world/level.dat new file mode 100644 index 000000000..1d01747c8 Binary files /dev/null and b/run/world/level.dat differ diff --git a/run/world/level.dat_old b/run/world/level.dat_old new file mode 100644 index 000000000..0a62013b5 Binary files /dev/null and b/run/world/level.dat_old differ diff --git a/run/world/region/r.-1.-1.mca b/run/world/region/r.-1.-1.mca new file mode 100644 index 000000000..e3d242ffc Binary files /dev/null and b/run/world/region/r.-1.-1.mca differ diff --git a/run/world/region/r.-1.0.mca b/run/world/region/r.-1.0.mca new file mode 100644 index 000000000..850086ef8 Binary files /dev/null and b/run/world/region/r.-1.0.mca differ diff --git a/run/world/region/r.0.-1.mca b/run/world/region/r.0.-1.mca new file mode 100644 index 000000000..2fb36b0fa Binary files /dev/null and b/run/world/region/r.0.-1.mca differ diff --git a/run/world/region/r.0.0.mca b/run/world/region/r.0.0.mca new file mode 100644 index 000000000..fe8334755 Binary files /dev/null and b/run/world/region/r.0.0.mca differ diff --git a/run/world/session.lock b/run/world/session.lock new file mode 100644 index 000000000..0d7e5f854 --- /dev/null +++ b/run/world/session.lock @@ -0,0 +1 @@ +☃ \ No newline at end of file diff --git a/src/generated/resources/.cache/2836fde0a278179f4011f71abd2fd98902e1cd4f b/src/generated/resources/.cache/2836fde0a278179f4011f71abd2fd98902e1cd4f index 43f6c952e..3f7002e8a 100644 --- a/src/generated/resources/.cache/2836fde0a278179f4011f71abd2fd98902e1cd4f +++ b/src/generated/resources/.cache/2836fde0a278179f4011f71abd2fd98902e1cd4f @@ -1,402 +1,463 @@ -// 1.20.1 2025-08-21T15:07:03.1772506 Create Nuclear/Registrate Provider for createnuclear [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] -c53fd5df1d52d6e9919c9600e483697e8db75f4d data\createnuclear\advancements\recipes\building_blocks\cut_autunite_from_stone_types_autunite_stonecutting.json -0057844c28c996dceebfc28e95e0f022a26db0aa assets\createnuclear\models\block\polished_cut_autunite_stairs.json -baced15580735dd63848a96763f8c7ffe61f3376 assets\createnuclear\models\block\cut_autunite_wall_side.json -2b6958059c3a4c8aee7fb4c003feba12dd0ab252 assets\createnuclear\models\item\uranium_bucket.json -8cdcca32a87171e2c709e762165330b2f0389f90 assets\createnuclear\models\item\brown_cloth.json -aa5ee373a5c26e448661991291c3c063cbceb0f1 data\createnuclear\recipes\small_autunite_brick_wall.json -758591933d4e0c314b23457c7538631df928a0c5 data\minecraft\tags\blocks\azalea_root_replaceable.json -5a9a262da20c1b7053276c444bff017e73c923c9 assets\createnuclear\models\block\small_autunite_bricks_wall_side_tall.json -30b11d8da5d02a3e9cebb739b3b9efbee087573c assets\createnuclear\models\item\autunite_pillar.json -fbaa7584540ddc65d80ff6b38e9e54840448a15a data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_slab_recycling.json -d234edb3b6bc81b7300ee65722973b66db0b82d9 assets\createnuclear\models\block\uranium.json -ad33dca8ecf90a8bc1ebb61c2007af72c427e9ed assets\createnuclear\models\item\layered_autunite.json -f10bbdbab6112c58bebf2d98dc0ed3eb9370c09c assets\createnuclear\blockstates\lead_block.json -327ebe73a77656f0dc4f6e43f749c44e9f77cca0 data\createnuclear\tags\items\anti_radiation_boots_dye.json -7a59963e3fc6fd226e9d336ec8577d29bcc3128c data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_slab.json -ad7d418d3e8c49f2bb4929083f97eccc49add58c data\createnuclear\advancements\recipes\building_blocks\cut_autunite_wall_from_stone_types_autunite_stonecutting.json -0703dcb90ab1cbe58167c0872bd9e9950de99531 assets\createnuclear\models\item\pink_anti_radiation_helmet.json -72b0cec0c98e9ead9562ff0cc1231a5028e2a22f data\createnuclear\advancements\recipes\building_blocks\autunite_from_stone_types_autunite_stonecutting.json -288c9245496eb0020ace0481a4d4ac26df876063 assets\createnuclear\models\item\blue_anti_radiation_chestplate.json -6919e7571fa3bd76fa08b0a707f1f9367e203a49 assets\createnuclear\models\item\polished_cut_autunite_slab.json -bd7dd55600eb9ddebb17ac6932cf77f0538bfe02 data\createnuclear\recipes\polished_cut_autunite_wall_from_stone_types_autunite_stonecutting.json -63ec6c618a3a23eab4cab9c52d7d3250de9b516e assets\createnuclear\models\item\wolf_irradiated_spawn_egg.json -462d22ea4a021cc368721fdb841c8a9b9176c06d assets\createnuclear\blockstates\polished_cut_autunite_slab.json -76a9a39503654b94cbe01e249292ed280446bbb6 assets\createnuclear\blockstates\polished_cut_autunite_stairs.json -7ad41810138d7b55a5d9d0db0956cd255e879632 data\createnuclear\loot_tables\blocks\polished_cut_autunite.json -4799138766c26496b41807407a4b1ce2106cf7b7 assets\createnuclear\models\item\magenta_cloth.json -8241a75180c5634be558974bc09f15600261f67f assets\createnuclear\models\block\autunite_natural_3.json -8bdc2fabbfc9fcc7c2ad4a3273897659d90b95ab assets\createnuclear\models\item\yellowcake.json -aa8efeb48b11261953f7d90e6d7db38411550694 data\createnuclear\loot_tables\blocks\enriching_fire.json -16ebf77088c88bb57fed6faae5e470644e6ca9a6 data\c\tags\items\ingots\lead.json -0998d5a55f2dc10e85e83dd74bd91d4a3913f61f data\createnuclear\loot_tables\blocks\raw_uranium_block.json -2d0a3f0d2dd0fab5b73c7b8291a5eb3a7921157a assets\createnuclear\models\item\black_anti_radiation_leggings.json -113d87359e902ec9112e063f87adf5646cd01dbc data\createnuclear\loot_tables\blocks\deepslate_lead_ore.json -1e246d1862a801b2253595d7fac7717a0110ce79 assets\createnuclear\blockstates\cut_autunite_slab.json -244715a4f0f6a21d055b1de3307c303a5a885c1d assets\createnuclear\models\block\cut_autunite_bricks_wall_side.json -0404b0776198d68400029ea6b01a63e3ee3f1fad data\createnuclear\recipes\small_autunite_brick_stairs.json -f04d6df381ea8dfbcae8d4387a5a58e25ed325e9 data\createnuclear\recipes\cut_autunite_slab_from_stone_types_autunite_stonecutting.json -a108ac857c776255abc1631429c5ffabb3e2a8de assets\createnuclear\models\item\red_anti_radiation_chestplate.json -66071fa68e7cd7bb08ddc61d861799f9005bed50 data\minecraft\tags\blocks\mineable\axe.json -7f788334258cfb67dfbf716dbaf1b126376d1a14 assets\createnuclear\blockstates\cut_autunite_brick_stairs.json -1b0fefdf4f489b3e6c389c45ffd3918b10a50de0 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_slab_from_stone_types_autunite_stonecutting.json -2c3ca9fb7683d1edfdc2e4fcd4b25ab7f40c3ab6 data\createnuclear\loot_tables\blocks\polished_cut_autunite_wall.json -ba58a4c086d8937d6703795a9d80435c2d450e35 assets\createnuclear\models\item\raw_lead_block.json -d0f97d467c8a00a57ece37990ece8601a32c431d data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_slab_from_stone_types_autunite_stonecutting.json -7d3e368074b034e469543ea668953d675b4cfc77 data\minecraft\tags\blocks\mineable\shovel.json -7407bdb3685a15929a770b144d50cdc67c9c776f assets\createnuclear\blockstates\small_autunite_brick_wall.json -9b008029869830da5e8b8b2701e80a3a50945382 assets\createnuclear\models\item\small_autunite_bricks.json -7da7ddaac39353657166badddc16fe9eb79f1a27 assets\createnuclear\models\item\raw_lead.json -798287f6d78ee3d736022963d35a700f42cbdca9 assets\createnuclear\models\item\white_anti_radiation_chestplate.json -5027aa166900571aa2e4f50ad53869b595ff3426 assets\createnuclear\models\item\cut_autunite_slab.json -306f5731ab788fa3cf3d75a7edfcc68b9c20613a assets\createnuclear\models\item\enriched_yellowcake.json -4b7f84c18f56ce5d29ce0aec9244e433738b7179 data\createnuclear\recipes\small_autunite_brick_slab_from_stone_types_autunite_stonecutting.json -e6c8783178a6b59ce468e2f1c8af88353ad6e0ca assets\createnuclear\blockstates\reactor_frame.json -e74d31ed68a39baca7d719338fdfeb71a9cea9a4 data\createnuclear\recipes\polished_cut_autunite_wall.json -9d026f604e81ba3a5519e6ab1d7ce21d7d37df83 data\c\tags\items\chestplates.json -649fce08e620f39f776ab8ae8dcb17e0fd77c82f assets\createnuclear\models\item\lead_ingot.json -72f88d0ce0957c6e73603dc4c514dfb20798dbaa data\createnuclear\tags\blocks\fan_processing_catalysts\enriched.json -fdc9cf972cf27ce343d4f098ddcdc9a4e19d2404 data\createnuclear\tags\fluids\uranium.json -801940038556c52d0e10aec6d16430a99f31a385 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_slab.json -7bfc6778893ef6552c10e17e3489e201758d3a75 assets\createnuclear\blockstates\cut_autunite_brick_wall.json -bb8a46365f31a2e4b5440a47d1d22d122d0e973b data\createnuclear\recipes\cut_autunite_brick_slab_recycling.json -e76c0b96c978e266f39eca8e46cd5ba2388e1749 data\createnuclear\loot_tables\blocks\reactor_controller.json -65ae0b709f14ec4c018ab5548d91c3a53657f612 data\createnuclear\recipes\cut_autunite_brick_stairs_from_stone_types_autunite_stonecutting.json +// 1.20.1 2026-05-19T08:59:24.7835515 Create Nuclear/Registrate Provider for createnuclear [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] +4264bcbd283b0db714ef72fa85a11a14c9033aa8 data\c\tags\blocks\glass_blocks.json +c9757e3fd9841ee17366b1d88563df6ea8106513 assets\createnuclear\models\block\lead_ore.json +e3acc02d9c87edea70fb57e88e172209b2b17a3f assets\createnuclear\models\item\light_blue_anti_radiation_leggings.json +2524a52992895706ce195ac93ff8f668295b5a75 data\createnuclear\recipes\cut_autunite_slab_recycling.json +f3b5417e33bf6c166d8cffbf16ab0f9893e29c6d assets\createnuclear\models\item\light_blue_cloth.json +0632d6a6ba895efbfa6a347c9693240cc601e114 assets\createnuclear\models\block\small_autunite_bricks_wall_post.json +9819e80259d08c1518b30ee9d4cf5c18689d3efc data\createnuclear\recipes\autunite_pillar_from_stone_types_autunite_stonecutting.json +b5820f4051f471efa9b221712afe1070ed65de23 data\c\tags\items\uranium_ores.json +3968e8c8fabfbcda42d888f55269ab48746d2b3f data\c\tags\fluids\uranium.json +9b83b53d90891eaf7aa4693eafe2876a831e0be2 assets\createnuclear\models\item\small_autunite_brick_slab.json +deb69293fb543b333bf962a3522c47cf7e95015a data\createnuclear\loot_tables\blocks\nitrate_ore.json +420836e3d9085a4ace8a147c25c7bd5fb28b58a1 assets\createnuclear\models\item\thorium_rod.json 5fcc16c9a5ce0334e8a01ad9a1b345d20b5987f5 data\createnuclear\recipes\cut_autunite_stairs.json -327ebe73a77656f0dc4f6e43f749c44e9f77cca0 data\c\tags\items\boots.json -953491d658ba39add0f080137ebfafc9ac07ee1d assets\createnuclear\models\item\yellow_anti_radiation_helmet.json -af81c9ed277e6f3d0d9e48d413247debcc7b64be data\createnuclear\recipes\polished_cut_autunite_stairs.json -5c418f99d459390ecf2430958fa87eac5541b393 assets\createnuclear\models\item\enriching_campfire.json -b59b6afe006c0b7ae8053453eefd643a81a83257 data\createnuclear\tags\items\anti_radiation_helmet_full_dye.json -34078516fb6ce2269af6de5515b51cea41ba9ac3 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_stairs.json -dfea56e99288e64e5061c621e860fa314fc31e9d assets\createnuclear\models\item\cut_autunite_brick_stairs.json -39cc8882ac0d27137f33e51b5d5de8661935e1b6 data\c\tags\items\ingots\steel.json -a6f90dfcfc0659663335d4c80129ce41d0c8e47a assets\createnuclear\blockstates\deepslate_uranium_ore.json -b7a56e4ac63519df8fcefb9b18a2583991bd9f34 assets\createnuclear\models\item\red_anti_radiation_helmet.json -fc4d890be42f9f5cfdb89878f0c9092a223570c3 data\minecraft\tags\blocks\fire.json -9d026f604e81ba3a5519e6ab1d7ce21d7d37df83 data\createnuclear\tags\items\anti_radiation_chestplate_full_dye.json -af059cd55441441329347fbd569245b539b095db data\createnuclear\loot_tables\blocks\reactor_casing.json -2edba5af5bd8fd2c4b4cfd7216ac1730b82b5c96 data\createnuclear\recipes\polished_cut_autunite_slab_recycling.json -aa1f3455bb6fba50a9bf1b7ac6fbe6ffc364b0e2 data\createnuclear\recipes\cut_autunite_wall_from_stone_types_autunite_stonecutting.json -72af25b71ba1417c58137fce1070c09cc65a61b5 assets\createnuclear\models\item\orange_anti_radiation_helmet.json -2f6b85682c569527f9f538dae16526505ce5655a assets\createnuclear\models\block\autunite_pillar.json +aac10ee87aad15f943db97cbbf5bd1924baee84c data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_stairs_from_stone_types_autunite_stonecutting.json +e6c8783178a6b59ce468e2f1c8af88353ad6e0ca assets\createnuclear\blockstates\reactor_frame.json +b68221950ba50e3c11cdd6b58de2aafea83b07b5 data\createnuclear\recipes\cut_autunite_from_stone_types_autunite_stonecutting.json +4925fd5469c909ae1e212cb0279f534656ee93a4 assets\createnuclear\models\item\cyan_anti_radiation_helmet.json +9b77c4268b34088cf14bc923d7929fcf6348a9a0 data\c\tags\items\thorium_ores.json +370601b8e441849569260d35b2c3b2304f356881 data\c\tags\blocks\ores_in_ground\stone.json +9a589577d80aa23ac97312bda605b5512eff5167 assets\createnuclear\models\block\deepslate_lead_ore.json +6a60a08d3fe81debfdef44b0749eb706a900e0ab data\c\tags\fluids\nitrogen.json +2b6958059c3a4c8aee7fb4c003feba12dd0ab252 assets\createnuclear\models\item\uranium_bucket.json +56c308e675a047a3d28757377e61e5f79c6384e3 assets\createnuclear\blockstates\cut_autunite_stairs.json +b69e27fcd2261dc0fa0ec9cfc42786721ac6d2ae data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_wall_from_stone_types_autunite_stonecutting.json +76ca23065681dfd7f18dbbc5a65b8ab8bc40c20c data\createnuclear\loot_tables\blocks\enriched_soul_soil.json +5de0d26049f4b6a29c5812589d086947c0cdbbd6 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_slab_recycling.json 1efd45d810a6ddfd4cea0b1a66def1a4ac5bfed1 assets\createnuclear\blockstates\reactor_output.json -3036f3b383b40ca2021856366cd0f01cb279285b assets\createnuclear\models\item\black_cloth.json -b4ddee28d16f837d70e311c84748b18fe3cdc21a assets\createnuclear\models\item\green_anti_radiation_chestplate.json -e6e624e978fdacfa3cdd123d23d021f504308149 data\createnuclear\loot_tables\blocks\cut_autunite_stairs.json -35c8b46c14daa4da11187ddd916ac31020663819 assets\createnuclear\models\item\reactor_casing.json -3968e8c8fabfbcda42d888f55269ab48746d2b3f data\c\tags\fluids\uranium.json -589197f2c386dacb0193e0e101edafd39cd153ea data\minecraft\tags\blocks\slabs.json +55e956c815f423e5a94d1f113ba7301199f272f5 assets\createnuclear\models\item\nitrogen_bucket.json +8a7946c30f9f8f9c002a6651c6765724f4bc2055 data\createnuclear\recipes\layered_autunite_from_stone_types_autunite_stonecutting.json +39cc8882ac0d27137f33e51b5d5de8661935e1b6 data\c\tags\items\ingots\steel.json +f8d6743895a633a45eb0c565cb7f79aae9172175 assets\createnuclear\models\block\cut_autunite_bricks_wall_side_tall.json +4632057b0095db09030a54298c0d230be249bcc4 assets\createnuclear\models\block\reinforced_glass.json +2f306ea7c3e8809abc159f81f4b4b38885c7857b data\c\tags\blocks\storage_blocks\steel.json +2e30d8c1f56b02bd000509c2a6b32f4ff6c33290 assets\createnuclear\models\item\raw_uranium.json +af14c1a038ff14285b1d78dfbcab0a8e44df14e5 assets\createnuclear\models\item\orange_anti_radiation_leggings.json +d5fb5ebfe991980abfd6f1932575363d026d8859 data\createnuclear\loot_tables\blocks\polished_cut_autunite_slab.json +b5820f4051f471efa9b221712afe1070ed65de23 data\createnuclear\tags\items\uranium_ores.json ef76b3a3a97b5d1901d7e8ac17009381de418ab8 assets\createnuclear\models\item\reactor_blueprint_item.json -7b58158eb206dafbcdd23d07f9b0ce1101642aab assets\createnuclear\lang\en_ud.json -0632d6a6ba895efbfa6a347c9693240cc601e114 assets\createnuclear\models\block\small_autunite_bricks_wall_post.json -d61337a67071319320d75383a62ecac11c3222d1 assets\createnuclear\models\item\brown_anti_radiation_helmet.json -093bb2418968291015e9d3122755af3fd0b948d4 assets\createnuclear\models\block\small_autunite_bricks_wall_side.json -4ba33d2c02ffd3acdcfa5baf565542e4712eecbb data\c\tags\items\raw_materials.json -fba1a7bdb0835c034aa5ef52ebf589123d41b33e data\createnuclear\loot_tables\entities\irradiated_cat.json -5718b90c3480945d4949352a1ff40023dbf335d7 data\createnuclear\recipes\small_autunite_brick_slab_recycling.json -82a63e5c93daac9c5430ae77aa8d10b1bddbc2c7 assets\createnuclear\models\item\black_anti_radiation_helmet.json -4264bcbd283b0db714ef72fa85a11a14c9033aa8 data\c\tags\blocks\glass_blocks.json -16a24701834ac20900286c10afda2df6a2fc474e assets\createnuclear\models\item\reactor_output.json 63a629668c374e8fd66f018679913741a898502e data\c\tags\items\nuggets\steel.json -e7967751f132676cb1d523743adaac3aea1f0814 data\createnuclear\advancements\recipes\building_blocks\autunite_pillar_from_stone_types_autunite_stonecutting.json -27b53fb459fbe530a61ecefeb5140c1d96a002ae data\createnuclear\recipes\polished_cut_autunite_slab.json -40c4d56478534170e4d81d66fcb86a5726de3916 data\createnuclear\tags\blocks\lead_ores.json -63ec6c618a3a23eab4cab9c52d7d3250de9b516e assets\createnuclear\models\item\cat_irradiated_spawn_egg.json -3fc1094857b79873a966d6de2dc9ec3b711caadf assets\createnuclear\models\item\lead_ore.json -b68221950ba50e3c11cdd6b58de2aafea83b07b5 data\createnuclear\recipes\cut_autunite_from_stone_types_autunite_stonecutting.json -bd832947d219746d3264422bc4c82f6acdc5cc3e assets\createnuclear\models\item\cut_autunite_stairs.json -4632057b0095db09030a54298c0d230be249bcc4 assets\createnuclear\models\block\reinforced_glass.json -341c421cde507cf8b2327e868aa77efc1b750467 data\createnuclear\recipes\small_autunite_brick_slab.json -b5820f4051f471efa9b221712afe1070ed65de23 data\createnuclear\tags\blocks\uranium_ores.json -eae1421ac37a98d0fc795bab8f349906aed521dd assets\createnuclear\models\item\gray_anti_radiation_chestplate.json -73819b2283f45f3fdf7509ef458f3288f6329ca8 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_stairs_from_stone_types_autunite_stonecutting.json -b9d828959c4614caa4a0f3ac82f322dd538c6219 data\createnuclear\recipes\cut_autunite_brick_slab_from_stone_types_autunite_stonecutting.json -da62ba052c210cbd30582be1d0d526ed743f40e1 data\createnuclear\tags\items\anti_radiation_chestplate_dye.json -114178d84e51715bc7e81cec53fca931499f72e4 assets\createnuclear\models\item\light_gray_anti_radiation_leggings.json -9f81dccbba864441a1d76a5312216faa44e6e44b assets\createnuclear\models\item\pink_cloth.json -d4f7707716472a68bec5a7a59dd1c9c17a880de5 data\createnuclear\recipes\cut_autunite_wall.json -758591933d4e0c314b23457c7538631df928a0c5 data\minecraft\tags\blocks\lush_ground_replaceable.json -626c65938b0109839ff3f48fecabe659fe38a657 assets\createnuclear\models\item\orange_anti_radiation_chestplate.json -de649e8356e85e802df3e64df8fd663ce62ba16d assets\createnuclear\models\item\cyan_cloth.json -6729240e3a6cbda812d3feb8e287f743bd6b6de5 assets\createnuclear\models\block\cut_autunite_bricks_wall_post.json -1957f60ec3f75447412f505ea0c5b8ff2234fb4b data\minecraft\tags\blocks\needs_iron_tool.json -8d0e97cda9e4098e0aa8dca93445d3b52150dcfa assets\createnuclear\models\block\polished_cut_autunite_slab.json -9a589577d80aa23ac97312bda605b5512eff5167 assets\createnuclear\models\block\deepslate_lead_ore.json -e04b2604b50e4322fc9ac0688a7eb21a45d3441e assets\createnuclear\models\item\reactor_cooler.json -40c4d56478534170e4d81d66fcb86a5726de3916 data\c\tags\blocks\lead_ores.json -85fa54b0815ff1b72eb3aa36b4fba6abccb58e10 data\createnuclear\tags\items\anti_radiation_leggings_dye.json -95e992c1e1c881d0f00a234a5e6906b1a5dbf149 assets\createnuclear\models\item\cut_autunite_brick_wall.json -4ba33d2c02ffd3acdcfa5baf565542e4712eecbb data\c\tags\items\raw_ores.json -a4d5ee44c830e329034a46792280edea53343034 assets\createnuclear\models\block\uranium_ore.json -45bdc9cd3e000e844694cc53a1de3a5343915db9 data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_wall.json +66985b0b6ada3a7869e778b4e10203f7e732da4d data\c\tags\blocks\nitrate_ores.json +ab2a2b6038a5f6d841ec21a28db2e5e693d7ee82 data\createnuclear\loot_tables\blocks\deepslate_nitrate_ore.json +72f88d0ce0957c6e73603dc4c514dfb20798dbaa data\createnuclear\tags\blocks\fan_processing_catalysts\enriched.json +9d026f604e81ba3a5519e6ab1d7ce21d7d37df83 data\c\tags\items\chestplates.json +66ab1033aebea1383fe3f09c7468f4cd60d8aa25 data\createnuclear\loot_tables\blocks\raw_lead_block.json +2e364d92951412b2dd7d9fbb0209fc8f3194bcd5 assets\createnuclear\models\item\brown_anti_radiation_chestplate.json +5c418f99d459390ecf2430958fa87eac5541b393 assets\createnuclear\models\item\enriching_campfire.json +cf8b4d604330762358b21b6e079aaab1eb2987f4 assets\createnuclear\models\block\raw_lead_block.json +3c5ff75a6dc4ba05ac94e0f2435e88821cd848ee assets\createnuclear\blockstates\thorium_block.json +e94d3eb865d17234b18241d89acdec2b10a1d21a assets\createnuclear\models\block\small_autunite_bricks.json +4c985d77908c367245c3b4d56e1302a843522eff data\createnuclear\recipes\autunite_from_stone_types_autunite_stonecutting.json +48c0d8d35932fe1cdb00e5055caa6c1969a8e4cd data\createnuclear\loot_tables\blocks\small_autunite_bricks.json +a1970879fd57836f5ae5d23352cdca277095bc7d assets\createnuclear\models\item\yellow_cloth.json +d234edb3b6bc81b7300ee65722973b66db0b82d9 assets\createnuclear\models\block\uranium.json +a344807d7cb28cfadfd0a9b409c1e0e9184bd3b6 data\c\tags\items\dusts.json +fbaa7584540ddc65d80ff6b38e9e54840448a15a data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_slab_recycling.json +401811bf59cdb43ffb0c0bb5ba40eb954d7fa216 data\createnuclear\loot_tables\blocks\uranium_ore.json +7de7ad2844dbecbabb526b0030d9f701eeda7284 data\minecraft\tags\blocks\mineable\pickaxe.json +c18ba19db9bd7ff74fd240b6e35787b49facdd17 data\minecraft\tags\blocks\needs_iron_tool.json f99b30bd0cb3a8b78ed88a3a17b35b512c69ee06 assets\createnuclear\models\block\small_autunite_brick_stairs_outer.json -a0c45a5183b5590b7463a37f43051f5bdd56ad88 assets\createnuclear\blockstates\reactor_controller.json -76ca23065681dfd7f18dbbc5a65b8ab8bc40c20c data\createnuclear\loot_tables\blocks\enriched_soul_soil.json +528149130134a5b1d90552f22e1c856a2644a9dd assets\createnuclear\models\item\raw_thorium_block.json +ea04609e8b5c12a7805b1c564bca07fefd6d38ba assets\createnuclear\models\item\uranium_rod.json +c982468ef610a204620f31cf7bc9b19b4163489c assets\createnuclear\models\item\lime_anti_radiation_chestplate.json +16a24701834ac20900286c10afda2df6a2fc474e assets\createnuclear\models\item\reactor_output.json +0c682ff48601bf7f42c8561819ecede780664fbf assets\createnuclear\models\item\cut_autunite.json +9b77c4268b34088cf14bc923d7929fcf6348a9a0 data\createnuclear\tags\items\thorium_ores.json 4fae09cee3ae86760906501da0dba47acb035cf4 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_wall.json -84b9d23fadc9fd0a2e45fc3609f6bf16ecb1545d assets\createnuclear\models\item\cyan_anti_radiation_leggings.json -2f306ea7c3e8809abc159f81f4b4b38885c7857b data\c\tags\blocks\storage_blocks\steel.json -10aff7424eefd85e50269c66e60ae343043193cd data\createnuclear\loot_tables\blocks\cut_autunite_slab.json -fc4d890be42f9f5cfdb89878f0c9092a223570c3 data\minecraft\tags\blocks\dragon_transparent.json -3968e8c8fabfbcda42d888f55269ab48746d2b3f data\minecraft\tags\fluids\lava.json -d0f9a216114a583e097ef8369c4ed74f50270672 assets\createnuclear\models\item\green_anti_radiation_helmet.json +4ba33d2c02ffd3acdcfa5baf565542e4712eecbb data\c\tags\items\raw_ores.json +b636be722a513137e6ca68bdc6510c4a56a2296d assets\createnuclear\models\item\thorium_dust.json +d4df48b7d5c38d7cf0b9347c196024e11497ca00 assets\createnuclear\blockstates\small_autunite_brick_slab.json +a48d579af38beab6fc87d3b02a7ed902b25bdf16 assets\createnuclear\models\block\cut_autunite.json +a879d615112568a767b8142a646bb0db709d72d1 data\createnuclear\tags\fluids\thorium.json +ad7d418d3e8c49f2bb4929083f97eccc49add58c data\createnuclear\advancements\recipes\building_blocks\cut_autunite_wall_from_stone_types_autunite_stonecutting.json +29e33b0ffb75c6c2f2fc680ebd113eb39e6e665e data\createnuclear\tags\items\stone_types\autunite.json +f16b4fafe9693a2d4eaea0616aa1c01042430154 data\createnuclear\recipes\cut_autunite_brick_wall.json +3171211192a2b92005177fd1ee2ce7fbe2592b52 assets\createnuclear\models\item\purple_cloth.json +11d78b3caf55cd1bcdeed1ad53fcfdcb7133d2f6 assets\createnuclear\models\item\reactor_alarm.json +5718b90c3480945d4949352a1ff40023dbf335d7 data\createnuclear\recipes\small_autunite_brick_slab_recycling.json +3134eef054a6f9f461bf774630241414614a9109 assets\createnuclear\blockstates\thorium.json +29394a22ee8655dc22ea51563411505fbcfd2dab assets\createnuclear\models\block\autunite_natural_1.json +94dc8e72195da5aa505c6d5a3785ccfea30f7c05 data\createnuclear\loot_tables\blocks\steel_block.json +7960569836d3b7f0c50ff9a000253098f776a8f0 assets\createnuclear\models\item\white_anti_radiation_helmet.json +17ec52f71bd19239771c599ee80d9ffa073738af assets\createnuclear\models\item\lead_block.json +a892570aae7bbd46d02481c78816750bfe4f2c26 data\c\tags\blocks\storage_blocks\raw_lead.json +af059cd55441441329347fbd569245b539b095db data\createnuclear\loot_tables\blocks\reactor_casing.json +f628f8c7aa1e150ad2b5a3ce87dbe7f00b462e74 assets\createnuclear\blockstates\polished_cut_autunite_wall.json +e1e1e4bff55028860d776d8ecb992547fa12b1b5 assets\createnuclear\models\block\cut_autunite_stairs_inner.json +1eed8de7f7b90d46d3e4fb6a0e7e9abf10a8a78f assets\createnuclear\blockstates\polished_cut_autunite.json +771b416236bcc21f380e0f312c61803224987616 data\createnuclear\loot_tables\blocks\cut_autunite.json +244715a4f0f6a21d055b1de3307c303a5a885c1d assets\createnuclear\models\block\cut_autunite_bricks_wall_side.json +fc4d890be42f9f5cfdb89878f0c9092a223570c3 data\minecraft\tags\blocks\fire.json +576b0bf970ddbdd11ec06963e1d65e08e63d69e1 data\createnuclear\loot_tables\blocks\reactor_frame.json +9286e69b3a5215a17ccb178933c2f52a9adb847f assets\createnuclear\models\item\small_autunite_brick_wall.json d7adf3db99bd448091a0cea37a4e4d42299e53b3 data\minecraft\tags\entity_types\fall_damage_immune.json +c8289ec19cfc4732b23039bf9b92fe2c7b785f01 data\c\tags\blocks\storage_blocks\thorium.json +5db59637c8fdd94d90bc9748c10769eb54f97224 assets\createnuclear\blockstates\raw_thorium_block.json +bcb30dce2419ce1ec2e043eaff83df82ac8a4bec assets\createnuclear\models\item\steel_ingot.json +3b81b5b58b7ef985348cf511e609064a7171d7dc data\createnuclear\loot_tables\blocks\cut_autunite_bricks.json +e7967751f132676cb1d523743adaac3aea1f0814 data\createnuclear\advancements\recipes\building_blocks\autunite_pillar_from_stone_types_autunite_stonecutting.json +bf0f4c9c36c23aa7925ba2d752117e4a3839c080 data\c\tags\items\nuggets.json +aa1f3455bb6fba50a9bf1b7ac6fbe6ffc364b0e2 data\createnuclear\recipes\cut_autunite_wall_from_stone_types_autunite_stonecutting.json +af81c9ed277e6f3d0d9e48d413247debcc7b64be data\createnuclear\recipes\polished_cut_autunite_stairs.json +4d18b6f86e9ebcff28c08b9876f1819a067cd290 assets\createnuclear\models\item\lead_nugget.json +758591933d4e0c314b23457c7538631df928a0c5 data\minecraft\tags\blocks\moss_replaceable.json f7504d5f748fe938bf07d2eb5d0ba46bbfa0499d assets\createnuclear\blockstates\reinforced_glass.json -01f28c0e5958add19cf5dc3d8c24f4b5e40d75b0 data\minecraft\tags\blocks\walls.json -9e3c06e53c3bb29bd4fca943a6700e97e81a6705 assets\createnuclear\models\item\purple_anti_radiation_helmet.json -f8e44e53a7bc368d4c159769bb071eef6d28d856 assets\createnuclear\models\item\black_anti_radiation_chestplate.json -4fa87093074c0a325ea50ab2d3c9725a90a11e1c assets\createnuclear\models\block\polished_cut_autunite_slab_double.json -f3b5417e33bf6c166d8cffbf16ab0f9893e29c6d assets\createnuclear\models\item\light_blue_cloth.json +35c8b46c14daa4da11187ddd916ac31020663819 assets\createnuclear\models\item\reactor_casing.json +37af2b0b5eacf53995703344a45fb3f4d0efe1f9 data\createnuclear\loot_tables\blocks\reactor_output.json +bd832947d219746d3264422bc4c82f6acdc5cc3e assets\createnuclear\models\item\cut_autunite_stairs.json +0998d5a55f2dc10e85e83dd74bd91d4a3913f61f data\createnuclear\loot_tables\blocks\raw_uranium_block.json de2884054a21315d8b167f64b206be331d388420 assets\createnuclear\blockstates\uranium.json +d0f97d467c8a00a57ece37990ece8601a32c431d data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_slab_from_stone_types_autunite_stonecutting.json +acc76d4790d17214103b215a83ea0180bf8f0885 data\c\tags\items\armors.json +609c04d42448ccc99291c723c8b6741e870b46d4 assets\createnuclear\models\item\yellow_anti_radiation_chestplate.json 5cf183e5277aea7ac5eb2bfa88737db909c6244d assets\createnuclear\blockstates\deepslate_lead_ore.json -66071fa68e7cd7bb08ddc61d861799f9005bed50 data\minecraft\tags\blocks\campfires.json -771b416236bcc21f380e0f312c61803224987616 data\createnuclear\loot_tables\blocks\cut_autunite.json -bcb30dce2419ce1ec2e043eaff83df82ac8a4bec assets\createnuclear\models\item\steel_ingot.json -8205832fc48bd24351b4b433f92a70a533336f48 data\createnuclear\loot_tables\blocks\polished_cut_autunite_stairs.json -a8495d2cd5e38213683becaf1c84b2852f8b06f5 assets\createnuclear\models\block\autunite_natural_0.json -f16b4fafe9693a2d4eaea0616aa1c01042430154 data\createnuclear\recipes\cut_autunite_brick_wall.json -d9ae523c08cbbe274a598736a8a9fd510d78d484 assets\createnuclear\models\block\cut_autunite_slab.json -cb27df2e5ed459128cc7d83786c9f32d91242e56 assets\createnuclear\models\item\lime_anti_radiation_leggings.json -1fe1fbe15893fde78e15e2dd1815fbed53f2d846 data\minecraft\tags\blocks\mineable\pickaxe.json -f893c5dec42faf470d493c4b1c5c184cad842c32 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_wall_from_stone_types_autunite_stonecutting.json -7960569836d3b7f0c50ff9a000253098f776a8f0 assets\createnuclear\models\item\white_anti_radiation_helmet.json +4c5ade8688c0dfd0c3007c6bde5d52fb0a0f44cc assets\createnuclear\models\item\cooled_nitrogen_concentrate.json +12c70f138ee0f33cbf436315159f844426234e05 data\minecraft\tags\fluids\lava.json +f390b183f143546b21e10a1e29055a9709c0462f assets\createnuclear\blockstates\enriching_campfire.json 90a9c051a0c72398a1f052542620029275e6a676 assets\createnuclear\models\block\cut_autunite_brick_stairs_inner.json -4c0b115eb2a2f8d6e74c612fa6e1aa5b357e9185 assets\createnuclear\models\item\cut_autunite_wall.json -a251d75552efea796382a4124659f9d39606461b assets\createnuclear\models\block\polished_cut_autunite_stairs_outer.json -d3459552745c002eb95585853ddec7b638b4c11f assets\createnuclear\models\item\polished_cut_autunite_stairs.json -af14c1a038ff14285b1d78dfbcab0a8e44df14e5 assets\createnuclear\models\item\orange_anti_radiation_leggings.json -1fa4418198a079b6236b2f3e4b11a7f7d0fc6962 data\createnuclear\loot_tables\blocks\cut_autunite_brick_stairs.json -63ec6c618a3a23eab4cab9c52d7d3250de9b516e assets\createnuclear\models\item\chicken_irradiated_spawn_egg.json -f91f43a39c80f583f878ea1a0d944798c05f2388 data\createnuclear\loot_tables\entities\irradiated_wolf.json +87d377f10db85895f48aef426fa634141b509a57 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_stairs.json +85fa54b0815ff1b72eb3aa36b4fba6abccb58e10 data\createnuclear\tags\items\anti_radiation_leggings_dye.json +9f81dccbba864441a1d76a5312216faa44e6e44b assets\createnuclear\models\item\pink_cloth.json +54aa0a32f1eeedc5b78eb223ea01c3ff30ae365d assets\createnuclear\models\item\red_anti_radiation_leggings.json +3fcae9cce1819111bdab42b8b92a1468394db3b1 assets\createnuclear\models\block\polished_cut_autunite_wall_post.json +9b77c4268b34088cf14bc923d7929fcf6348a9a0 data\createnuclear\tags\blocks\thorium_ores.json +1a125ab1e392f50375ea2f4421adc8106c5ac7be assets\createnuclear\models\block\deepslate_nitrate_ore.json +5a2694d92c4708ca23ddfa67666ea26be66b9a45 assets\createnuclear\models\item\enriched_soul_soil.json +16ebf77088c88bb57fed6faae5e470644e6ca9a6 data\c\tags\items\ingots\lead.json +4bb891d8f069cf043de74c0cc9d16fcbcb49ee07 assets\createnuclear\models\block\cut_autunite_brick_stairs_outer.json +d51f9b307f2986ac086d32f48bd41e6dc4024348 data\createnuclear\loot_tables\blocks\small_autunite_brick_slab.json +113d87359e902ec9112e063f87adf5646cd01dbc data\createnuclear\loot_tables\blocks\deepslate_lead_ore.json +9333acc5ef34d03e00e0eaf24a3b48f2704a15c1 assets\createnuclear\models\block\thorium.json +1b0fefdf4f489b3e6c389c45ffd3918b10a50de0 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_slab_from_stone_types_autunite_stonecutting.json +a0c45a5183b5590b7463a37f43051f5bdd56ad88 assets\createnuclear\blockstates\reactor_controller.json +dfea56e99288e64e5061c621e860fa314fc31e9d assets\createnuclear\models\item\cut_autunite_brick_stairs.json +8d0e97cda9e4098e0aa8dca93445d3b52150dcfa assets\createnuclear\models\block\polished_cut_autunite_slab.json +539751a5a2a28445f570cb61b89b16c31e7d5ad0 assets\createnuclear\blockstates\nitrogen.json +953491d658ba39add0f080137ebfafc9ac07ee1d assets\createnuclear\models\item\yellow_anti_radiation_helmet.json +3fc1094857b79873a966d6de2dc9ec3b711caadf assets\createnuclear\models\item\lead_ore.json +4a04692c39cfad137877258b4443eb4bf5298423 assets\createnuclear\models\block\autunite_pillar_horizontal.json +2d0a3f0d2dd0fab5b73c7b8291a5eb3a7921157a assets\createnuclear\models\item\black_anti_radiation_leggings.json +62f405d930be8b534e863c8aac205687b943f3ef data\createnuclear\loot_tables\blocks\enriching_campfire.json +ce17b82389ca226bc9e55072ae0dab1ef049e96f assets\createnuclear\models\item\brown_anti_radiation_leggings.json +7cc60fa9a9bb958907f56b583e27c7f37af2a63e data\createnuclear\loot_tables\blocks\raw_thorium_block.json +a108ac857c776255abc1631429c5ffabb3e2a8de assets\createnuclear\models\item\red_anti_radiation_chestplate.json +4904ab86720357735b330a1a70d303d2218c31f6 assets\createnuclear\models\item\light_gray_anti_radiation_chestplate.json +40c4d56478534170e4d81d66fcb86a5726de3916 data\createnuclear\tags\items\lead_ores.json +2f6b85682c569527f9f538dae16526505ce5655a assets\createnuclear\models\block\autunite_pillar.json +84b9d23fadc9fd0a2e45fc3609f6bf16ecb1545d assets\createnuclear\models\item\cyan_anti_radiation_leggings.json +758591933d4e0c314b23457c7538631df928a0c5 data\minecraft\tags\blocks\azalea_root_replaceable.json +4ba33d2c02ffd3acdcfa5baf565542e4712eecbb data\c\tags\items\raw_materials.json +2c3ca9fb7683d1edfdc2e4fcd4b25ab7f40c3ab6 data\createnuclear\loot_tables\blocks\polished_cut_autunite_wall.json +8ed063e9486b9d6d830bba43a35a3b5dd07ea0a0 assets\createnuclear\models\item\light_gray_anti_radiation_helmet.json ebfe438f4284101e07538accdf15789d06140c94 data\createnuclear\recipes\cut_autunite_bricks_from_stone_types_autunite_stonecutting.json -8633aa61a16a7b249c4aea578a9520eca7347c3a assets\createnuclear\models\item\reactor_core.json -d4084e8b32d197db311b575a06023bb5fd5d8aba assets\createnuclear\models\block\cut_autunite_brick_slab_top.json -e94d3eb865d17234b18241d89acdec2b10a1d21a assets\createnuclear\models\block\small_autunite_bricks.json +5ad910a7a4ee066d98d1727988557725038f957e assets\createnuclear\models\item\magenta_anti_radiation_chestplate.json +1680cd795b322ba6afb9d2951ca53896dec66d3c data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_stairs.json +13cf1c4d8e2bd4ebe86dd9ca8e59da786f722a8b data\c\tags\items\ingots.json +f2761361591493b2f3848fdcd49252df6629f352 data\createnuclear\recipes\polished_cut_autunite_slab_from_stone_types_autunite_stonecutting.json +14043cfcb42894ebb0db2501929ba4cae9d8bd7d assets\createnuclear\models\block\cut_autunite_slab_top.json b9c915389ea6cf8338d20c48e908591f8baa2108 assets\createnuclear\blockstates\small_autunite_brick_stairs.json -2e30d8c1f56b02bd000509c2a6b32f4ff6c33290 assets\createnuclear\models\item\raw_uranium.json -17ec52f71bd19239771c599ee80d9ffa073738af assets\createnuclear\models\item\lead_block.json -9d3cfc1ffe781364a6d1d82d9415dad084185698 assets\createnuclear\models\item\reactor_input.json -8ed063e9486b9d6d830bba43a35a3b5dd07ea0a0 assets\createnuclear\models\item\light_gray_anti_radiation_helmet.json -4bb891d8f069cf043de74c0cc9d16fcbcb49ee07 assets\createnuclear\models\block\cut_autunite_brick_stairs_outer.json -5d06bc544bcbeb7443178d66955bb5101cf696da assets\createnuclear\blockstates\autunite_pillar.json -b025fcc911efa469caf74c78a59e9f79b0f652f8 data\c\tags\blocks\ores_in_ground\deepslate.json -223f7f4d8c7186b4749c21cbab27bbaf43c3d82d data\createnuclear\advancements\recipes\building_blocks\cut_autunite_slab_recycling.json -88c7cfbf28fdbe53241453e073722791c780de75 data\createnuclear\loot_tables\blocks\reinforced_glass.json +9e3c06e53c3bb29bd4fca943a6700e97e81a6705 assets\createnuclear\models\item\purple_anti_radiation_helmet.json +758591933d4e0c314b23457c7538631df928a0c5 data\minecraft\tags\blocks\dripstone_replaceable_blocks.json +1093b70dcd826156ba71b6a3264bcb66e3943166 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_stairs.json +561c9f9a4e153fc648a3c7224812c71c8ac2da5c assets\createnuclear\models\block\raw_uranium_block.json 6bdbdc93b69c388425345d6d1aeb862eed894e5a data\createnuclear\recipes\small_autunite_brick_wall_from_stone_types_autunite_stonecutting.json -460e9ac2c0a90607b74afc5823b737a2867a35e3 assets\createnuclear\models\block\polished_cut_autunite.json -a6043fb3c2b8e690bad0ae101ee21e3d483df194 data\createnuclear\tags\items\fuel.json -5ad910a7a4ee066d98d1727988557725038f957e assets\createnuclear\models\item\magenta_anti_radiation_chestplate.json -8a7946c30f9f8f9c002a6651c6765724f4bc2055 data\createnuclear\recipes\layered_autunite_from_stone_types_autunite_stonecutting.json -8825551315af6f5e82a7a3d96b547392642160fb assets\createnuclear\blockstates\reactor_cooler.json +0b3287844bc896069c05b250a7f9c2712b382a79 data\c\tags\items\thorium_dusts.json +73819b2283f45f3fdf7509ef458f3288f6329ca8 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_stairs_from_stone_types_autunite_stonecutting.json +d43ffb4c5491fcd8c98451649c3f4ceb271e8875 assets\createnuclear\models\item\cut_autunite_brick_slab.json +cb27df2e5ed459128cc7d83786c9f32d91242e56 assets\createnuclear\models\item\lime_anti_radiation_leggings.json +94fbc4170e0aebba53f00f5828089a25bf683c4c assets\createnuclear\models\item\nitrate.json +9d026f604e81ba3a5519e6ab1d7ce21d7d37df83 data\createnuclear\tags\items\anti_radiation_chestplate_full_dye.json +013d8020ec673d6d480e6599706ed5e9598e46e1 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_wall.json +76a9a39503654b94cbe01e249292ed280446bbb6 assets\createnuclear\blockstates\polished_cut_autunite_stairs.json +913dfa33a312cd9a08d6d1194d0f7af40d4c5856 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_slab_recycling.json +63aaf78c3e0c16c2f37b069c5392e3d1a93ac058 assets\createnuclear\blockstates\raw_uranium_block.json +88c7cfbf28fdbe53241453e073722791c780de75 data\createnuclear\loot_tables\blocks\reinforced_glass.json +66071fa68e7cd7bb08ddc61d861799f9005bed50 data\minecraft\tags\blocks\mineable\axe.json +4db93da70d6a7549155201b7d9d68355449652ac assets\createnuclear\models\item\red_cloth.json +0232233443f2f7c7c638642a6319fffb0536c617 data\c\tags\items\nuggets\lead.json +f04d6df381ea8dfbcae8d4387a5a58e25ed325e9 data\createnuclear\recipes\cut_autunite_slab_from_stone_types_autunite_stonecutting.json +727ecb6fede8ea32a0371c8a3e0ca9adc0cbc15a data\createnuclear\recipes\small_autunite_bricks_from_stone_types_autunite_stonecutting.json +e7121a329daab2859a4fbe971cea9ce1d3ab0b56 assets\createnuclear\models\item\deepslate_nitrate_ore.json +aa8efeb48b11261953f7d90e6d7db38411550694 data\createnuclear\loot_tables\blocks\enriching_fire.json db666ffaca36edc9e246e225f225c1e87604dd88 data\createnuclear\loot_tables\blocks\cut_autunite_brick_wall.json -6793dd91b730f4c9abea29215de16cd0751d8cbd assets\createnuclear\models\block\deepslate_uranium_ore.json -514930b644ce61263808d0c2d087fb211698aadc data\createnuclear\tags\entity_types\irradiated_immune.json -47f627eaccbd07bf81d1c45f95ebcc88994ad757 assets\createnuclear\models\block\steel_block.json -e7e05a64ade7d10ed54cbb2637dc04e1631ba48f data\minecraft\tags\items\stairs.json -29e33b0ffb75c6c2f2fc680ebd113eb39e6e665e data\createnuclear\tags\items\stone_types\autunite.json -8ded4051daf417cb802b5327ef0e92d361dcb298 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_slab.json -104ab85c7f23d9239608603e6cb2227bc60b585f assets\createnuclear\models\item\green_cloth.json -40c4d56478534170e4d81d66fcb86a5726de3916 data\createnuclear\tags\items\lead_ores.json -54aa0a32f1eeedc5b78eb223ea01c3ff30ae365d assets\createnuclear\models\item\red_anti_radiation_leggings.json -e3acc02d9c87edea70fb57e88e172209b2b17a3f assets\createnuclear\models\item\light_blue_anti_radiation_leggings.json -aeb3e734225d8180128e7a26a9480661a6b8d13f data\c\tags\items\dusts.json -047c75651f6c6d8888fcfb1416e67dcb91f3dd99 assets\createnuclear\models\item\purple_anti_radiation_leggings.json -5e91eecf2e5def0f863b5d7d9b3625a62e4de7af assets\createnuclear\models\item\magenta_anti_radiation_leggings.json -75bd474d73be3c041ceb82627cc438b2775e9b1b assets\createnuclear\models\item\gray_cloth.json -741e53f404a88b4aa7bf6e8246bbe3cf1d6404b5 assets\createnuclear\models\block\polished_cut_autunite_stairs_inner.json -b20e1b4dd0745ead1aa2248a91df5dde465e0938 assets\createnuclear\models\item\lime_cloth.json -b5820f4051f471efa9b221712afe1070ed65de23 data\c\tags\blocks\uranium_ores.json -9286e69b3a5215a17ccb178933c2f52a9adb847f assets\createnuclear\models\item\small_autunite_brick_wall.json +de9b4dee9580161263fa8020d326ac5fe4e38ed4 assets\createnuclear\models\block\raw_thorium_block.json +300b8a29d6a440a60320133481041671dde65448 assets\createnuclear\blockstates\lead_ore.json +ac0d262ec298e481314387399c378ecd454e20cc data\createnuclear\loot_tables\blocks\deepslate_uranium_ore.json +98dd6f667ccef1f8f1d332b42b146a6c0bbfb0db assets\createnuclear\blockstates\layered_autunite.json +c89faea80c49534a09d92dbb5dede6b06f76a300 data\minecraft\tags\blocks\needs_diamond_tool.json +8fbcd34624f6dab2ceb86f7ef273509ba23851ce data\createnuclear\loot_tables\blocks\deepslate_thorium_ore.json +e7e05a64ade7d10ed54cbb2637dc04e1631ba48f data\minecraft\tags\blocks\stairs.json +4b0492cf73c071f13538ce485419e46a164c99c7 assets\createnuclear\models\item\steel_nugget.json +ee9510875a49164a5930fcbfa596400bf1ecf200 data\c\tags\blocks\storage_blocks\raw_uranium.json +b0cfc64250ce727ba39807bc1560b36497f294be data\createnuclear\loot_tables\blocks\reactor_alarm.json +e76c0b96c978e266f39eca8e46cd5ba2388e1749 data\createnuclear\loot_tables\blocks\reactor_controller.json +7bfc6778893ef6552c10e17e3489e201758d3a75 assets\createnuclear\blockstates\cut_autunite_brick_wall.json +63ec6c618a3a23eab4cab9c52d7d3250de9b516e assets\createnuclear\models\item\chicken_irradiated_spawn_egg.json +54952e66d01bab998590dad4ce7fccbd87d6e335 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_wall.json +b59b6afe006c0b7ae8053453eefd643a81a83257 data\createnuclear\tags\items\anti_radiation_helmet_full_dye.json +e74d31ed68a39baca7d719338fdfeb71a9cea9a4 data\createnuclear\recipes\polished_cut_autunite_wall.json +3aa34b484b1eb135c9e2fcd3db675aa8d7927951 assets\createnuclear\models\item\cyan_anti_radiation_chestplate.json d1c3b78d9f91661325e2cad286789b5330052efa data\createnuclear\advancements\recipes\building_blocks\cut_autunite_stairs_from_stone_types_autunite_stonecutting.json -f628f8c7aa1e150ad2b5a3ce87dbe7f00b462e74 assets\createnuclear\blockstates\polished_cut_autunite_wall.json -4db93da70d6a7549155201b7d9d68355449652ac assets\createnuclear\models\item\red_cloth.json -561c9f9a4e153fc648a3c7224812c71c8ac2da5c assets\createnuclear\models\block\raw_uranium_block.json -e1b8fdc0555a1fdabda54f66cca868e444d1110b assets\createnuclear\models\block\enriched_soul_soil.json -95a90d9d9a553448c878dfdf4b153ceada923030 data\createnuclear\loot_tables\blocks\reactor_cooler.json -01f28c0e5958add19cf5dc3d8c24f4b5e40d75b0 data\minecraft\tags\items\walls.json -e02c005625f9ab199ba04201152973e016b16831 assets\createnuclear\models\item\magenta_anti_radiation_helmet.json +9712377d41a7153cb07638e33dd02e880609d249 assets\createnuclear\models\item\thorium_bucket.json +e04b2604b50e4322fc9ac0688a7eb21a45d3441e assets\createnuclear\models\item\reactor_cooler.json +f28efa9fb383b86c770b8c7344fc30f6ab9200d3 data\createnuclear\loot_tables\blocks\cut_autunite_wall.json +d4084e8b32d197db311b575a06023bb5fd5d8aba assets\createnuclear\models\block\cut_autunite_brick_slab_top.json +b4ddee28d16f837d70e311c84748b18fe3cdc21a assets\createnuclear\models\item\green_anti_radiation_chestplate.json +798287f6d78ee3d736022963d35a700f42cbdca9 assets\createnuclear\models\item\white_anti_radiation_chestplate.json +fba1c32ae3c38d735ebb0b4c3912afc8f9e9cde4 assets\createnuclear\models\item\anti_radiation_boots.json +00308a5c640b2ec21ad96b313789a2ec28cff516 assets\createnuclear\models\item\green_anti_radiation_leggings.json +093bb2418968291015e9d3122755af3fd0b948d4 assets\createnuclear\models\block\small_autunite_bricks_wall_side.json af0ce4256f68076af5c6a6da9faa98919eeb0a1c assets\createnuclear\models\item\light_blue_anti_radiation_chestplate.json +4799138766c26496b41807407a4b1ce2106cf7b7 assets\createnuclear\models\item\magenta_cloth.json +3cd68ad698668475f66c2d72f997106d018fe2ee data\createnuclear\recipes\cut_autunite_brick_stairs.json +aeb3e734225d8180128e7a26a9480661a6b8d13f data\c\tags\items\coal_dusts.json +8825551315af6f5e82a7a3d96b547392642160fb assets\createnuclear\blockstates\reactor_cooler.json +8205832fc48bd24351b4b433f92a70a533336f48 data\createnuclear\loot_tables\blocks\polished_cut_autunite_stairs.json +29394a22ee8655dc22ea51563411505fbcfd2dab assets\createnuclear\models\item\autunite.json +5e91eecf2e5def0f863b5d7d9b3625a62e4de7af assets\createnuclear\models\item\magenta_anti_radiation_leggings.json 561bc88d72d71741bdc9edc320f19361dd167ed0 data\createnuclear\advancements\recipes\building_blocks\small_autunite_bricks_from_stone_types_autunite_stonecutting.json -0bfedb8324af8797150b1faf2c2b50856d1b4ace data\createnuclear\recipes\cut_autunite_slab.json -9db8f06cd9b1d7a9c2d94e652f00a7588398571c data\createnuclear\loot_tables\blocks\lead_ore.json -aaaec4ffcc3c247e506af0f01d9205c4214da9c6 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_slab.json -3aa34b484b1eb135c9e2fcd3db675aa8d7927951 assets\createnuclear\models\item\cyan_anti_radiation_chestplate.json -9b83b53d90891eaf7aa4693eafe2876a831e0be2 assets\createnuclear\models\item\small_autunite_brick_slab.json -5bad8990f31085232b63b11d295b90b581af9a82 assets\createnuclear\models\item\raw_uranium_block.json -78240d0c081d144592e76af622d0c9929569db17 assets\createnuclear\models\item\graphene.json -4014ab450bb5de0522690577486f2fbbc334de9c data\createnuclear\loot_tables\blocks\small_autunite_brick_stairs.json -ca78dd6ec5e706cf97e1dca2656c0cc70d70c7d1 data\createnuclear\recipes\polished_cut_autunite_from_stone_types_autunite_stonecutting.json -4925fd5469c909ae1e212cb0279f534656ee93a4 assets\createnuclear\models\item\cyan_anti_radiation_helmet.json -b5d03bd4b800741cb96a95835567b67df0de2507 data\c\tags\items\leggings.json -ce9ecb359f206dd797854e06594ac4ec27b7f675 data\createnuclear\tags\items\anti_radiation_armor.json -0c682ff48601bf7f42c8561819ecede780664fbf assets\createnuclear\models\item\cut_autunite.json +fdc9cf972cf27ce343d4f098ddcdc9a4e19d2404 data\createnuclear\tags\fluids\uranium.json +9b008029869830da5e8b8b2701e80a3a50945382 assets\createnuclear\models\item\small_autunite_bricks.json +34c28d31d8b93699cc6ffab724d9c51670c0f3e2 assets\createnuclear\models\item\deepslate_lead_ore.json +f10bbdbab6112c58bebf2d98dc0ed3eb9370c09c assets\createnuclear\blockstates\lead_block.json +0703dcb90ab1cbe58167c0872bd9e9950de99531 assets\createnuclear\models\item\pink_anti_radiation_helmet.json +ed7fef54fcaf191778ffdb588ed62fa72ec892b4 assets\createnuclear\models\block\nitrate_ore.json +9cd62ff9cbce5c4a5293c7bfcb9c8c35d68ea91e data\createnuclear\recipes\polished_cut_autunite_stairs_from_stone_types_autunite_stonecutting.json +e40db55eb02cdbedc6f4dc52786069c74b267ada data\createnuclear\recipes\cut_autunite_brick_wall_from_stone_types_autunite_stonecutting.json +b7a56e4ac63519df8fcefb9b18a2583991bd9f34 assets\createnuclear\models\item\red_anti_radiation_helmet.json +66985b0b6ada3a7869e778b4e10203f7e732da4d data\c\tags\items\nitrate_ores.json +0079feed24ecb922c8d3a069a359352818699399 data\c\tags\blocks\ores.json +e4edd1e8b7aecc00e45f4c154b302d3581e18ce9 assets\createnuclear\blockstates\deepslate_thorium_ore.json +f8e44e53a7bc368d4c159769bb071eef6d28d856 assets\createnuclear\models\item\black_anti_radiation_chestplate.json +701594ffe2ab302af89c3a0e63172cabfca6f9c6 data\createnuclear\tags\entity_types\irradiated_immune.json +72b0cec0c98e9ead9562ff0cc1231a5028e2a22f data\createnuclear\advancements\recipes\building_blocks\autunite_from_stone_types_autunite_stonecutting.json +047d097f30f9586494547715d07271c6994acd18 assets\createnuclear\models\item\coal_dust.json +4f8c53495e492dd89f7bf6ca280498a72a5eb7f3 data\createnuclear\tags\blocks\reactor_casing.json +95e992c1e1c881d0f00a234a5e6906b1a5dbf149 assets\createnuclear\models\item\cut_autunite_brick_wall.json +01f28c0e5958add19cf5dc3d8c24f4b5e40d75b0 data\minecraft\tags\blocks\walls.json +7f788334258cfb67dfbf716dbaf1b126376d1a14 assets\createnuclear\blockstates\cut_autunite_brick_stairs.json +e66dc779ab853aecc35e6ccfba5d9dba78cd0574 assets\createnuclear\models\item\gray_anti_radiation_leggings.json +d2344e98247b3302a5b5eb4731e4deee480c215e data\c\tags\items\rods.json +7ad41810138d7b55a5d9d0db0956cd255e879632 data\createnuclear\loot_tables\blocks\polished_cut_autunite.json +b20aeafcdcd235c7d89067d5331b823535b82522 assets\createnuclear\models\item\yellow_anti_radiation_leggings.json +9d2613725484de94788ba5075854eb225eaa4936 assets\createnuclear\models\block\thorium_block.json +65ae0b709f14ec4c018ab5548d91c3a53657f612 data\createnuclear\recipes\cut_autunite_brick_stairs_from_stone_types_autunite_stonecutting.json +1e42471def4f88f8bb4b40755c72f5f713a19f30 assets\createnuclear\models\item\nitrate_ore.json +5a9a262da20c1b7053276c444bff017e73c923c9 assets\createnuclear\models\block\small_autunite_bricks_wall_side_tall.json +7d3e368074b034e469543ea668953d675b4cfc77 data\createnuclear\tags\blocks\uranium_fire_base_blocks.json +758591933d4e0c314b23457c7538631df928a0c5 data\minecraft\tags\blocks\lush_ground_replaceable.json +b55bed46ad4f1bb4ad57275b109b4f81c53e8219 data\c\tags\items\nuggets\thorium.json +5d06bc544bcbeb7443178d66955bb5101cf696da assets\createnuclear\blockstates\autunite_pillar.json +fc4d890be42f9f5cfdb89878f0c9092a223570c3 data\minecraft\tags\blocks\dragon_transparent.json +8718c7e7cce27e299611ee34792cdb59f3434e39 data\createnuclear\loot_tables\blocks\small_autunite_brick_wall.json +33bd84e37cc034cdd6d6516af77f944b7399f3fa assets\createnuclear\models\item\light_gray_cloth.json +60b37c01bc3e885a25ce9b1aff4f8cb44e98f759 assets\createnuclear\models\item\deepslate_thorium_ore.json +6919e7571fa3bd76fa08b0a707f1f9367e203a49 assets\createnuclear\models\item\polished_cut_autunite_slab.json be48e04b069441c8593aab5e9bf78f4edc2dd249 data\createnuclear\loot_tables\blocks\reactor_input.json -1680cd795b322ba6afb9d2951ca53896dec66d3c data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_stairs.json -ed88d15d2f1a4af012371d523fb3b95bcedfad28 assets\createnuclear\models\item\blue_anti_radiation_leggings.json -cfc8b9126dc3fe3b993c5e6201533aecc07989c3 assets\createnuclear\models\item\orange_cloth.json -e11c7fa5830b0877af69bb18e650d2b1e6f90027 assets\createnuclear\blockstates\enriched_soul_soil.json -daa4fad27f07fd72cb25a524464edea9efe771b7 data\createnuclear\loot_tables\blocks\reactor_core.json +9db8f06cd9b1d7a9c2d94e652f00a7588398571c data\createnuclear\loot_tables\blocks\lead_ore.json +327ebe73a77656f0dc4f6e43f749c44e9f77cca0 data\createnuclear\tags\items\anti_radiation_boots_dye.json +47f627eaccbd07bf81d1c45f95ebcc88994ad757 assets\createnuclear\models\block\steel_block.json +a251d75552efea796382a4124659f9d39606461b assets\createnuclear\models\block\polished_cut_autunite_stairs_outer.json +5b375444ac5057e63776f4991589c57824574b4a assets\createnuclear\blockstates\cut_autunite.json +3036f3b383b40ca2021856366cd0f01cb279285b assets\createnuclear\models\item\black_cloth.json c8f256466f41355ad0958ddde5e1f911dfad6fe1 assets\createnuclear\blockstates\enriching_fire.json -4b86d48cdf03dcfaa383552881a7f52b7bebe9c5 data\createnuclear\recipes\cut_autunite_brick_slab.json -3c0e762c21fa4fa5724f5570c190e89d247ee71b assets\createnuclear\models\item\graphite_rod.json -3171211192a2b92005177fd1ee2ce7fbe2592b52 assets\createnuclear\models\item\purple_cloth.json -739bc3c205a9cc4fad9c092a094dd76ef03a4188 assets\createnuclear\models\item\reactor_controller.json -9819e80259d08c1518b30ee9d4cf5c18689d3efc data\createnuclear\recipes\autunite_pillar_from_stone_types_autunite_stonecutting.json -40c4d56478534170e4d81d66fcb86a5726de3916 data\c\tags\items\lead_ores.json -acc76d4790d17214103b215a83ea0180bf8f0885 data\createnuclear\tags\items\all_anti_radiation_armors.json -b950ac6ca2df77ffe3abd02e13c38567602e5536 assets\createnuclear\models\block\polished_cut_autunite_wall_side_tall.json -758591933d4e0c314b23457c7538631df928a0c5 data\minecraft\tags\blocks\dripstone_replaceable_blocks.json -efe2ad634ad8b801a8fa69f45516b30157b46771 data\createnuclear\loot_tables\blocks\lead_block.json -fd642aefed8f59f5575c96ad1a0251e7773f3909 assets\createnuclear\models\block\lead_block.json -acc76d4790d17214103b215a83ea0180bf8f0885 data\c\tags\items\armors.json -f390b183f143546b21e10a1e29055a9709c0462f assets\createnuclear\blockstates\enriching_campfire.json -528834e2d20914c30db28e8fb63e020e17cb1215 data\c\tags\items\nuggets.json -7d3e368074b034e469543ea668953d675b4cfc77 data\createnuclear\tags\blocks\uranium_fire_base_blocks.json -072d33301f6734db5108d78731686fc34b32c6c3 assets\createnuclear\models\block\small_autunite_brick_stairs_inner.json -fba1c32ae3c38d735ebb0b4c3912afc8f9e9cde4 assets\createnuclear\models\item\anti_radiation_boots.json -98dd6f667ccef1f8f1d332b42b146a6c0bbfb0db assets\createnuclear\blockstates\layered_autunite.json -e66dc779ab853aecc35e6ccfba5d9dba78cd0574 assets\createnuclear\models\item\gray_anti_radiation_leggings.json -5f04c3e30c77925cd01bbe0d75ff704388488ebf data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_slab_from_stone_types_autunite_stonecutting.json -63aaf78c3e0c16c2f37b069c5392e3d1a93ac058 assets\createnuclear\blockstates\raw_uranium_block.json -2524a52992895706ce195ac93ff8f668295b5a75 data\createnuclear\recipes\cut_autunite_slab_recycling.json +0404b0776198d68400029ea6b01a63e3ee3f1fad data\createnuclear\recipes\small_autunite_brick_stairs.json +664db32ecb461bb1a8774d71d4d7168cfa56803c assets\createnuclear\blockstates\small_autunite_bricks.json +1fa4418198a079b6236b2f3e4b11a7f7d0fc6962 data\createnuclear\loot_tables\blocks\cut_autunite_brick_stairs.json +8bdc2fabbfc9fcc7c2ad4a3273897659d90b95ab assets\createnuclear\models\item\yellowcake.json +d3459552745c002eb95585853ddec7b638b4c11f assets\createnuclear\models\item\polished_cut_autunite_stairs.json +ad989d89e7b80a30e0860fb0f1418013fe3355d2 assets\createnuclear\models\block\polished_cut_autunite_wall_side.json +31283971103bb25159e8b049b63dfbc408e87d23 assets\createnuclear\models\item\white_anti_radiation_leggings.json +bd84328028cb729d48f38ccc449f14be1d7acfb5 data\createnuclear\recipes\small_autunite_brick_stairs_from_stone_types_autunite_stonecutting.json +66985b0b6ada3a7869e778b4e10203f7e732da4d data\createnuclear\tags\items\nitrate_ores.json +4014ab450bb5de0522690577486f2fbbc334de9c data\createnuclear\loot_tables\blocks\small_autunite_brick_stairs.json +0b2c76c9cff305eacfdfb57c4b703f94ca6dc903 assets\createnuclear\blockstates\autunite.json +b5820f4051f471efa9b221712afe1070ed65de23 data\c\tags\blocks\uranium_ores.json +7a59963e3fc6fd226e9d336ec8577d29bcc3128c data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_slab.json +05c9937ab6b920dfbbab6c78d115cc0bff6b8d22 assets\createnuclear\models\block\cut_autunite_wall_post.json +a4d5ee44c830e329034a46792280edea53343034 assets\createnuclear\models\block\uranium_ore.json +d4f7707716472a68bec5a7a59dd1c9c17a880de5 data\createnuclear\recipes\cut_autunite_wall.json +ff034ab58f58173907a90512873a2ab4ae91bdd2 data\createnuclear\tags\fluids\nitrogen.json +ba89776428914de9e6a4d068ae695ddc5d7a4881 assets\createnuclear\blockstates\deepslate_nitrate_ore.json +1c9953bedf6cec725a6db7a199d826dcdfe9dfa7 assets\createnuclear\blockstates\reactor_alarm.json +104ab85c7f23d9239608603e6cb2227bc60b585f assets\createnuclear\models\item\green_cloth.json +7407bdb3685a15929a770b144d50cdc67c9c776f assets\createnuclear\blockstates\small_autunite_brick_wall.json +8cdcca32a87171e2c709e762165330b2f0389f90 assets\createnuclear\models\item\brown_cloth.json +fdfef0166930c6b75e4fde4f9cd18d8c9d43dc0d data\c\tags\blocks\ores_in_ground\deepslate.json +6d1c45b12d9e783e63849d15aa29d507266bd1bb assets\createnuclear\models\block\cut_autunite_stairs_outer.json +306f5731ab788fa3cf3d75a7edfcc68b9c20613a assets\createnuclear\models\item\enriched_yellowcake.json +e27878149b45eefa8673f2b86b6f491e2ed7a80f assets\createnuclear\models\block\thorium_ore.json 78a9e80073512a111cb936a516d290a824846ff2 assets\createnuclear\models\item\reinforced_glass.json -b59b6afe006c0b7ae8053453eefd643a81a83257 data\c\tags\items\helmets.json -1a35a3a0cf6a0202eb8244d26647e8e277cf8fd3 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_stairs_from_stone_types_autunite_stonecutting.json -e586818bacf371908fa8eb2a548f2f89e1dbc7d3 data\c\tags\items\ingots.json -d51f9b307f2986ac086d32f48bd41e6dc4024348 data\createnuclear\loot_tables\blocks\small_autunite_brick_slab.json -b69e27fcd2261dc0fa0ec9cfc42786721ac6d2ae data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_wall_from_stone_types_autunite_stonecutting.json -1093b70dcd826156ba71b6a3264bcb66e3943166 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_stairs.json -d43ffb4c5491fcd8c98451649c3f4ceb271e8875 assets\createnuclear\models\item\cut_autunite_brick_slab.json +496e7d40f96d28015e8dd1c787d4620e090ad965 assets\createnuclear\models\block\small_autunite_brick_slab_top.json +462d22ea4a021cc368721fdb841c8a9b9176c06d assets\createnuclear\blockstates\polished_cut_autunite_slab.json +5027aa166900571aa2e4f50ad53869b595ff3426 assets\createnuclear\models\item\cut_autunite_slab.json +a021646becb7b6411eddd86644e5b17c8365582c data\createnuclear\loot_tables\blocks\autunite.json +34078516fb6ce2269af6de5515b51cea41ba9ac3 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_stairs.json +6729240e3a6cbda812d3feb8e287f743bd6b6de5 assets\createnuclear\models\block\cut_autunite_bricks_wall_post.json +24311c6915bd9c1c5a048ac9e0e2bc6d18acefa6 data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_from_stone_types_autunite_stonecutting.json +9ca6bfd52c21d95693cf555e964795d30fea3294 data\c\tags\items\raw_materials\lead.json +b5d03bd4b800741cb96a95835567b67df0de2507 data\createnuclear\tags\items\anti_radiation_leggings_full_dye.json +047c75651f6c6d8888fcfb1416e67dcb91f3dd99 assets\createnuclear\models\item\purple_anti_radiation_leggings.json +aa25f5b606f2bb75315c68020fe402573867d8fc assets\createnuclear\blockstates\reactor_core.json +e6e624e978fdacfa3cdd123d23d021f504308149 data\createnuclear\loot_tables\blocks\cut_autunite_stairs.json 11220bd60ab51e05a978a8322511c224d15bf886 assets\createnuclear\models\item\cut_autunite_bricks.json -ac0d262ec298e481314387399c378ecd454e20cc data\createnuclear\loot_tables\blocks\deepslate_uranium_ore.json -71bbf3a4c34d499581bc7d0bb8fee63d2441c903 assets\createnuclear\models\item\light_blue_anti_radiation_helmet.json -2d8f5d7d7babd2b02ae836846e62daabf84de427 data\createnuclear\loot_tables\entities\irradiated_chicken.json -4264bcbd283b0db714ef72fa85a11a14c9033aa8 data\c\tags\items\glass_blocks.json -29394a22ee8655dc22ea51563411505fbcfd2dab assets\createnuclear\models\block\autunite_natural_1.json -8718c7e7cce27e299611ee34792cdb59f3434e39 data\createnuclear\loot_tables\blocks\small_autunite_brick_wall.json -727ecb6fede8ea32a0371c8a3e0ca9adc0cbc15a data\createnuclear\recipes\small_autunite_bricks_from_stone_types_autunite_stonecutting.json 42cfe17c0aa332a7553f031b2f710c94a8848091 assets\createnuclear\blockstates\reactor_casing.json -e40db55eb02cdbedc6f4dc52786069c74b267ada data\createnuclear\recipes\cut_autunite_brick_wall_from_stone_types_autunite_stonecutting.json -33bd84e37cc034cdd6d6516af77f944b7399f3fa assets\createnuclear\models\item\light_gray_cloth.json -f8d6743895a633a45eb0c565cb7f79aae9172175 assets\createnuclear\models\block\cut_autunite_bricks_wall_side_tall.json -a1970879fd57836f5ae5d23352cdca277095bc7d assets\createnuclear\models\item\yellow_cloth.json -297b7824fc2eea67ef47760da549f73e93424b60 data\createnuclear\loot_tables\blocks\layered_autunite.json -c88d66c0a041c51ee8089e5596169dc6c353fb13 assets\createnuclear\models\item\gray_anti_radiation_helmet.json -b20aeafcdcd235c7d89067d5331b823535b82522 assets\createnuclear\models\item\yellow_anti_radiation_leggings.json -6d4c64c8eb26caa6a9bb0ed794907b5eccb20838 data\createnuclear\advancements\recipes\building_blocks\layered_autunite_from_stone_types_autunite_stonecutting.json -37af2b0b5eacf53995703344a45fb3f4d0efe1f9 data\createnuclear\loot_tables\blocks\reactor_output.json -b5d03bd4b800741cb96a95835567b67df0de2507 data\createnuclear\tags\items\anti_radiation_leggings_full_dye.json -3b81b5b58b7ef985348cf511e609064a7171d7dc data\createnuclear\loot_tables\blocks\cut_autunite_bricks.json 9e4f83de1ca7a9ab5363f43fc7c3f7f4ec6164d5 assets\createnuclear\models\block\autunite_natural_2.json -ddb01d2586a37fd31cc463ef9e6864cd6fabae4f data\c\tags\blocks\storage_blocks\lead.json -14043cfcb42894ebb0db2501929ba4cae9d8bd7d assets\createnuclear\models\block\cut_autunite_slab_top.json -0232233443f2f7c7c638642a6319fffb0536c617 data\c\tags\items\nuggets\lead.json -f402fda858988cbb5e1a6a623cb15a6c76ac7f54 assets\createnuclear\blockstates\cut_autunite_bricks.json -e4a795c7efcfa306ac6772e2b8a23a3afc52c0ec assets\createnuclear\models\block\cut_autunite_brick_stairs.json -87d377f10db85895f48aef426fa634141b509a57 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_stairs.json -16749c98d03d4ab79af8aabf0464efc8525e9079 data\c\tags\items\rods.json -681a801a88c73d8eb9427815a49eb8124262ed35 data\c\tags\blocks\ores_in_ground\stone.json -62f405d930be8b534e863c8aac205687b943f3ef data\createnuclear\loot_tables\blocks\enriching_campfire.json +62b7087350b0a9af9007b848c7f619a730e90693 data\createnuclear\loot_tables\blocks\autunite_pillar.json +4d85657105612ca5525a14791c3e07cf6bd239b8 assets\createnuclear\models\item\white_cloth.json +66071fa68e7cd7bb08ddc61d861799f9005bed50 data\minecraft\tags\blocks\campfires.json +a6f90dfcfc0659663335d4c80129ce41d0c8e47a assets\createnuclear\blockstates\deepslate_uranium_ore.json +330efaa38d86d13a020bee4dc5f3c073f61a2bec data\createnuclear\tags\items\cloth.json +75bd474d73be3c041ceb82627cc438b2775e9b1b assets\createnuclear\models\item\gray_cloth.json +40c4d56478534170e4d81d66fcb86a5726de3916 data\createnuclear\tags\blocks\lead_ores.json +97e114201f7e047d37463705b5da62e29b8191d7 data\createnuclear\tags\items\fuel.json +63ec6c618a3a23eab4cab9c52d7d3250de9b516e assets\createnuclear\models\item\wolf_irradiated_spawn_egg.json +b59b6afe006c0b7ae8053453eefd643a81a83257 data\c\tags\items\helmets.json +58c3279f0d6dfe7b88f5a85bfce6c1d683bbe2b4 assets\createnuclear\models\item\raw_thorium.json +739bc3c205a9cc4fad9c092a094dd76ef03a4188 assets\createnuclear\models\item\reactor_controller.json +d5acc57be1c8ccc3e61c40cf11856933d35803b3 assets\createnuclear\models\block\reactor_alarm.json +c8479fd99df3917545c86ee3ea9bfe981bf762e7 assets\createnuclear\blockstates\nitrate_ore.json +341c421cde507cf8b2327e868aa77efc1b750467 data\createnuclear\recipes\small_autunite_brick_slab.json 8a23702b05296c8af5014d6aa6e9265ded85c7d9 data\createnuclear\tags\items\anti_radiation_helmet_dye.json +57c846a957e9250bc45f2f1091bf3f78b2a77344 assets\createnuclear\blockstates\steel_block.json +63ec6c618a3a23eab4cab9c52d7d3250de9b516e assets\createnuclear\models\item\cat_irradiated_spawn_egg.json +26b718d481625238a5ff718ee027dcddd29a2e98 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_wall_from_stone_types_autunite_stonecutting.json +ca51dccdb6e5558d6688286632e581fe7e48ca7d data\c\tags\blocks\storage_blocks\raw_thorium.json +98d386985f7c185f1acab25b9d606828f788769f assets\createnuclear\blockstates\cut_autunite_wall.json +01f28c0e5958add19cf5dc3d8c24f4b5e40d75b0 data\minecraft\tags\items\walls.json +50c312969d1f3f0c5fad27639ba3f95d0853cb14 assets\createnuclear\models\item\lime_anti_radiation_helmet.json +e11c7fa5830b0877af69bb18e650d2b1e6f90027 assets\createnuclear\blockstates\enriched_soul_soil.json +9d3cfc1ffe781364a6d1d82d9415dad084185698 assets\createnuclear\models\item\reactor_input.json +6c63ff92f764da7ce92a99149bf2bf43c23e3727 assets\createnuclear\models\item\thorium_ingot.json +72af25b71ba1417c58137fce1070c09cc65a61b5 assets\createnuclear\models\item\orange_anti_radiation_helmet.json +4c0b115eb2a2f8d6e74c612fa6e1aa5b357e9185 assets\createnuclear\models\item\cut_autunite_wall.json +1a94175ac43837cddcff6761b2d1c69de53c19e8 data\create\tags\blocks\safe_nbt.json +b5d03bd4b800741cb96a95835567b67df0de2507 data\c\tags\items\leggings.json +e7e05a64ade7d10ed54cbb2637dc04e1631ba48f data\minecraft\tags\items\stairs.json +fba1a7bdb0835c034aa5ef52ebf589123d41b33e data\createnuclear\loot_tables\entities\irradiated_cat.json +f402fda858988cbb5e1a6a623cb15a6c76ac7f54 assets\createnuclear\blockstates\cut_autunite_bricks.json +20a57f470b6d6ce6822c61da93e09e95bad6deee assets\createnuclear\models\block\nitrogen.json +4b86d48cdf03dcfaa383552881a7f52b7bebe9c5 data\createnuclear\recipes\cut_autunite_brick_slab.json +126657f82888c7b7b9e2338dfec05a7f80b1080d assets\createnuclear\models\item\nitrogen_concentrate.json +78240d0c081d144592e76af622d0c9929569db17 assets\createnuclear\models\item\graphene.json +801940038556c52d0e10aec6d16430a99f31a385 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_slab.json +2d0c4071223fd38069cfdac403b33bd2925d6750 assets\createnuclear\models\block\small_autunite_brick_slab.json +b20e1b4dd0745ead1aa2248a91df5dde465e0938 assets\createnuclear\models\item\lime_cloth.json 3b03793c0f5786f258c593e0b140cd6bd10c3b7b assets\createnuclear\models\item\uranium_powder.json -a48d579af38beab6fc87d3b02a7ed902b25bdf16 assets\createnuclear\models\block\cut_autunite.json -b6c3a22d368bd0796b004ac27b8e453a16e7d14c assets\createnuclear\models\item\polished_cut_autunite_wall.json -7f33b090f2821bdeb07b2938b1618ad3f309248f assets\createnuclear\models\item\steel_block.json -6d3410aa77b41ada9809f246f1d1a1a982449736 assets\createnuclear\models\item\polished_cut_autunite.json -4904ab86720357735b330a1a70d303d2218c31f6 assets\createnuclear\models\item\light_gray_anti_radiation_chestplate.json -9ca6bfd52c21d95693cf555e964795d30fea3294 data\c\tags\items\raw_materials\lead.json +53ff3d1499d8de1d96a482b213064b8345fab039 assets\createnuclear\lang\en_ud.json b8574d7ee3d3e733dab79700062554cf4b58bd6f assets\createnuclear\models\item\blue_anti_radiation_helmet.json -c982468ef610a204620f31cf7bc9b19b4163489c assets\createnuclear\models\item\lime_anti_radiation_chestplate.json -d4df48b7d5c38d7cf0b9347c196024e11497ca00 assets\createnuclear\blockstates\small_autunite_brick_slab.json -013d8020ec673d6d480e6599706ed5e9598e46e1 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_wall.json -31283971103bb25159e8b049b63dfbc408e87d23 assets\createnuclear\models\item\white_anti_radiation_leggings.json -9cd62ff9cbce5c4a5293c7bfcb9c8c35d68ea91e data\createnuclear\recipes\polished_cut_autunite_stairs_from_stone_types_autunite_stonecutting.json -1eed8de7f7b90d46d3e4fb6a0e7e9abf10a8a78f assets\createnuclear\blockstates\polished_cut_autunite.json -4d49f9151293582741edc0d935f3130547cf5360 assets\createnuclear\models\block\cut_autunite_bricks.json -56c308e675a047a3d28757377e61e5f79c6384e3 assets\createnuclear\blockstates\cut_autunite_stairs.json -05c9937ab6b920dfbbab6c78d115cc0bff6b8d22 assets\createnuclear\models\block\cut_autunite_wall_post.json -4a04692c39cfad137877258b4443eb4bf5298423 assets\createnuclear\models\block\autunite_pillar_horizontal.json -4d85657105612ca5525a14791c3e07cf6bd239b8 assets\createnuclear\models\item\white_cloth.json -b5820f4051f471efa9b221712afe1070ed65de23 data\c\tags\items\uranium_ores.json -300b8a29d6a440a60320133481041671dde65448 assets\createnuclear\blockstates\lead_ore.json -fd3f90dca34f1e977a85015acd4efaca5835e288 data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_slab_from_stone_types_autunite_stonecutting.json -29394a22ee8655dc22ea51563411505fbcfd2dab assets\createnuclear\models\item\autunite.json -45223d8e65c235302e923cda583fff09cb4ab156 assets\createnuclear\models\item\pink_anti_radiation_chestplate.json -047d097f30f9586494547715d07271c6994acd18 assets\createnuclear\models\item\coal_dust.json -b9b18c9a633527a817ba9745a818980ff35836b5 assets\createnuclear\models\block\small_autunite_brick_stairs.json -ad989d89e7b80a30e0860fb0f1418013fe3355d2 assets\createnuclear\models\block\polished_cut_autunite_wall_side.json -98d386985f7c185f1acab25b9d606828f788769f assets\createnuclear\blockstates\cut_autunite_wall.json -8408a3894e9ca6e45e738b81f0a1932a0b2f86a5 assets\createnuclear\models\block\layered_autunite.json +1e246d1862a801b2253595d7fac7717a0110ce79 assets\createnuclear\blockstates\cut_autunite_slab.json +cfc8b9126dc3fe3b993c5e6201533aecc07989c3 assets\createnuclear\models\item\orange_cloth.json +fd642aefed8f59f5575c96ad1a0251e7773f3909 assets\createnuclear\models\block\lead_block.json +86d99549567048667239096badcb4249d6dddf2b assets\createnuclear\models\item\purple_anti_radiation_chestplate.json +aa5ee373a5c26e448661991291c3c063cbceb0f1 data\createnuclear\recipes\small_autunite_brick_wall.json +7da7ddaac39353657166badddc16fe9eb79f1a27 assets\createnuclear\models\item\raw_lead.json +d9ae523c08cbbe274a598736a8a9fd510d78d484 assets\createnuclear\models\block\cut_autunite_slab.json +30b11d8da5d02a3e9cebb739b3b9efbee087573c assets\createnuclear\models\item\autunite_pillar.json +297b7824fc2eea67ef47760da549f73e93424b60 data\createnuclear\loot_tables\blocks\layered_autunite.json +de649e8356e85e802df3e64df8fd663ce62ba16d assets\createnuclear\models\item\cyan_cloth.json +da62ba052c210cbd30582be1d0d526ed743f40e1 data\createnuclear\tags\items\anti_radiation_chestplate_dye.json +d27756ff19777014f664b5cfc9b80c13133496f0 data\c\tags\items\ingots\thorium.json +6aab787de0caf399f8b76b94c64d850e5d55c757 assets\createnuclear\models\block\polished_cut_autunite_slab_top.json +6d4c64c8eb26caa6a9bb0ed794907b5eccb20838 data\createnuclear\advancements\recipes\building_blocks\layered_autunite_from_stone_types_autunite_stonecutting.json +2edba5af5bd8fd2c4b4cfd7216ac1730b82b5c96 data\createnuclear\recipes\polished_cut_autunite_slab_recycling.json +baced15580735dd63848a96763f8c7ffe61f3376 assets\createnuclear\models\block\cut_autunite_wall_side.json +45bdc9cd3e000e844694cc53a1de3a5343915db9 data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_wall.json +71bbf3a4c34d499581bc7d0bb8fee63d2441c903 assets\createnuclear\models\item\light_blue_anti_radiation_helmet.json +e1b8fdc0555a1fdabda54f66cca868e444d1110b assets\createnuclear\models\block\enriched_soul_soil.json +4557f548df100ae1d05e3b5711797225f6a39673 assets\createnuclear\blockstates\uranium_ore.json +65a9ec40fb01cbbfac1588bfcff178857fdea922 data\createnuclear\tags\items\cooler.json +460e9ac2c0a90607b74afc5823b737a2867a35e3 assets\createnuclear\models\block\polished_cut_autunite.json +9406d849d15177816752e57ab26568e18523391d assets\createnuclear\blockstates\reactor_input.json f66edf8ef01d16ee116ac71e742bea54e98e1724 assets\createnuclear\models\block\cut_autunite_stairs.json -5f99ed9ddf35d0c0759d24b9f28d37501f5001f0 data\c\tags\blocks\ores.json -3a5955f81eeed80e907bf8e2ee4df14fe42843f0 assets\createnuclear\models\item\blue_cloth.json -496e7d40f96d28015e8dd1c787d4620e090ad965 assets\createnuclear\models\block\small_autunite_brick_slab_top.json -aa25f5b606f2bb75315c68020fe402573867d8fc assets\createnuclear\blockstates\reactor_core.json -5b375444ac5057e63776f4991589c57824574b4a assets\createnuclear\blockstates\cut_autunite.json -4c985d77908c367245c3b4d56e1302a843522eff data\createnuclear\recipes\autunite_from_stone_types_autunite_stonecutting.json -3fcae9cce1819111bdab42b8b92a1468394db3b1 assets\createnuclear\models\block\polished_cut_autunite_wall_post.json -24311c6915bd9c1c5a048ac9e0e2bc6d18acefa6 data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_from_stone_types_autunite_stonecutting.json -54952e66d01bab998590dad4ce7fccbd87d6e335 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_wall.json -66ab1033aebea1383fe3f09c7468f4cd60d8aa25 data\createnuclear\loot_tables\blocks\raw_lead_block.json -4d18b6f86e9ebcff28c08b9876f1819a067cd290 assets\createnuclear\models\item\lead_nugget.json -bd84328028cb729d48f38ccc449f14be1d7acfb5 data\createnuclear\recipes\small_autunite_brick_stairs_from_stone_types_autunite_stonecutting.json +114178d84e51715bc7e81cec53fca931499f72e4 assets\createnuclear\models\item\light_gray_anti_radiation_leggings.json +cd15b5be0dca5f621266b157b424ac37dac859dd assets\createnuclear\models\block\cut_autunite_wall_side_tall.json +3c0e762c21fa4fa5724f5570c190e89d247ee71b assets\createnuclear\models\item\graphite_rod.json +954086bd19e91b833a263d3da33bb59903ce153f assets\createnuclear\models\item\thorium_ore.json +e02c005625f9ab199ba04201152973e016b16831 assets\createnuclear\models\item\magenta_anti_radiation_helmet.json 3e80ef1d80473c73a723d3c4b5c1409c7998d70f assets\createnuclear\models\item\small_autunite_brick_stairs.json -7b15a9300d0f6d106e589db3dcd3294781d0bdca assets\createnuclear\models\item\uranium_ore.json -664db32ecb461bb1a8774d71d4d7168cfa56803c assets\createnuclear\blockstates\small_autunite_bricks.json -609c04d42448ccc99291c723c8b6741e870b46d4 assets\createnuclear\models\item\yellow_anti_radiation_chestplate.json -34c28d31d8b93699cc6ffab724d9c51670c0f3e2 assets\createnuclear\models\item\deepslate_lead_ore.json -d5fb5ebfe991980abfd6f1932575363d026d8859 data\createnuclear\loot_tables\blocks\polished_cut_autunite_slab.json -b88d65e7a3393caeaed8d504bf6c4615767371aa assets\createnuclear\blockstates\cut_autunite_brick_slab.json -00308a5c640b2ec21ad96b313789a2ec28cff516 assets\createnuclear\models\item\green_anti_radiation_leggings.json -cf8b4d604330762358b21b6e079aaab1eb2987f4 assets\createnuclear\models\block\raw_lead_block.json -4557f548df100ae1d05e3b5711797225f6a39673 assets\createnuclear\blockstates\uranium_ore.json -758591933d4e0c314b23457c7538631df928a0c5 data\minecraft\tags\blocks\moss_replaceable.json -b5820f4051f471efa9b221712afe1070ed65de23 data\createnuclear\tags\items\uranium_ores.json +643a4d44b491a84d0d26e1a8944dffc40e83ce14 assets\createnuclear\blockstates\thorium_ore.json +78dddba8b92a17605f682501eb959743f216f720 assets\createnuclear\lang\en_us.json +d0f9a216114a583e097ef8369c4ed74f50270672 assets\createnuclear\models\item\green_anti_radiation_helmet.json +4b7f84c18f56ce5d29ce0aec9244e433738b7179 data\createnuclear\recipes\small_autunite_brick_slab_from_stone_types_autunite_stonecutting.json +95a90d9d9a553448c878dfdf4b153ceada923030 data\createnuclear\loot_tables\blocks\reactor_cooler.json +8241a75180c5634be558974bc09f15600261f67f assets\createnuclear\models\block\autunite_natural_3.json 4132d0cc3bca17631674ee463ca4f09dbd3f3f17 data\createnuclear\recipes\cut_autunite_stairs_from_stone_types_autunite_stonecutting.json -e7e05a64ade7d10ed54cbb2637dc04e1631ba48f data\minecraft\tags\blocks\stairs.json -f28efa9fb383b86c770b8c7344fc30f6ab9200d3 data\createnuclear\loot_tables\blocks\cut_autunite_wall.json -ee9510875a49164a5930fcbfa596400bf1ecf200 data\c\tags\blocks\storage_blocks\raw_uranium.json -0b2c76c9cff305eacfdfb57c4b703f94ca6dc903 assets\createnuclear\blockstates\autunite.json -4b0492cf73c071f13538ce485419e46a164c99c7 assets\createnuclear\models\item\steel_nugget.json -86d99549567048667239096badcb4249d6dddf2b assets\createnuclear\models\item\purple_anti_radiation_chestplate.json -f2761361591493b2f3848fdcd49252df6629f352 data\createnuclear\recipes\polished_cut_autunite_slab_from_stone_types_autunite_stonecutting.json -6d1c45b12d9e783e63849d15aa29d507266bd1bb assets\createnuclear\models\block\cut_autunite_stairs_outer.json -5de0d26049f4b6a29c5812589d086947c0cdbbd6 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_slab_recycling.json -ce17b82389ca226bc9e55072ae0dab1ef049e96f assets\createnuclear\models\item\brown_anti_radiation_leggings.json -5a2694d92c4708ca23ddfa67666ea26be66b9a45 assets\createnuclear\models\item\enriched_soul_soil.json -201dee71325516ff8cbc05b8689c6031b3703e94 assets\createnuclear\lang\en_us.json -57c846a957e9250bc45f2f1091bf3f78b2a77344 assets\createnuclear\blockstates\steel_block.json -e1e1e4bff55028860d776d8ecb992547fa12b1b5 assets\createnuclear\models\block\cut_autunite_stairs_inner.json -cd15b5be0dca5f621266b157b424ac37dac859dd assets\createnuclear\models\block\cut_autunite_wall_side_tall.json +8ded4051daf417cb802b5327ef0e92d361dcb298 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_slab.json +ed88d15d2f1a4af012371d523fb3b95bcedfad28 assets\createnuclear\models\item\blue_anti_radiation_leggings.json +0bfedb8324af8797150b1faf2c2b50856d1b4ace data\createnuclear\recipes\cut_autunite_slab.json +b5820f4051f471efa9b221712afe1070ed65de23 data\createnuclear\tags\blocks\uranium_ores.json +b9b18c9a633527a817ba9745a818980ff35836b5 assets\createnuclear\models\block\small_autunite_brick_stairs.json +4fa87093074c0a325ea50ab2d3c9725a90a11e1c assets\createnuclear\models\block\polished_cut_autunite_slab_double.json +4d49f9151293582741edc0d935f3130547cf5360 assets\createnuclear\models\block\cut_autunite_bricks.json +901f577d86272dac78635dc4231da7d6711877f0 assets\createnuclear\models\item\reactor_frame.json +bd7dd55600eb9ddebb17ac6932cf77f0538bfe02 data\createnuclear\recipes\polished_cut_autunite_wall_from_stone_types_autunite_stonecutting.json +ca78dd6ec5e706cf97e1dca2656c0cc70d70c7d1 data\createnuclear\recipes\polished_cut_autunite_from_stone_types_autunite_stonecutting.json +589197f2c386dacb0193e0e101edafd39cd153ea data\minecraft\tags\items\slabs.json +66985b0b6ada3a7869e778b4e10203f7e732da4d data\createnuclear\tags\blocks\nitrate_ores.json +3a5955f81eeed80e907bf8e2ee4df14fe42843f0 assets\createnuclear\models\item\blue_cloth.json +c53fd5df1d52d6e9919c9600e483697e8db75f4d data\createnuclear\advancements\recipes\building_blocks\cut_autunite_from_stone_types_autunite_stonecutting.json +7f33b090f2821bdeb07b2938b1618ad3f309248f assets\createnuclear\models\item\steel_block.json +072d33301f6734db5108d78731686fc34b32c6c3 assets\createnuclear\models\block\small_autunite_brick_stairs_inner.json +eae1421ac37a98d0fc795bab8f349906aed521dd assets\createnuclear\models\item\gray_anti_radiation_chestplate.json +10aff7424eefd85e50269c66e60ae343043193cd data\createnuclear\loot_tables\blocks\cut_autunite_slab.json +f91f43a39c80f583f878ea1a0d944798c05f2388 data\createnuclear\loot_tables\entities\irradiated_wolf.json e5ce9ec90cc899a20b84697b8d9ada9a455d56bf data\c\tags\items\raw_materials\uranium.json -48c0d8d35932fe1cdb00e5055caa6c1969a8e4cd data\createnuclear\loot_tables\blocks\small_autunite_bricks.json -65a9ec40fb01cbbfac1588bfcff178857fdea922 data\createnuclear\tags\items\cooler.json -2e364d92951412b2dd7d9fbb0209fc8f3194bcd5 assets\createnuclear\models\item\brown_anti_radiation_chestplate.json +6793dd91b730f4c9abea29215de16cd0751d8cbd assets\createnuclear\models\block\deepslate_uranium_ore.json +27b53fb459fbe530a61ecefeb5140c1d96a002ae data\createnuclear\recipes\polished_cut_autunite_slab.json +daa4fad27f07fd72cb25a524464edea9efe771b7 data\createnuclear\loot_tables\blocks\reactor_core.json +10453354af3c17390f7b6eb2eaa7109eae3988c3 data\createnuclear\loot_tables\blocks\thorium_block.json +626c65938b0109839ff3f48fecabe659fe38a657 assets\createnuclear\models\item\orange_anti_radiation_chestplate.json +fd3f90dca34f1e977a85015acd4efaca5835e288 data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_slab_from_stone_types_autunite_stonecutting.json +efe2ad634ad8b801a8fa69f45516b30157b46771 data\createnuclear\loot_tables\blocks\lead_block.json +b88d65e7a3393caeaed8d504bf6c4615767371aa assets\createnuclear\blockstates\cut_autunite_brick_slab.json +a8495d2cd5e38213683becaf1c84b2852f8b06f5 assets\createnuclear\models\block\autunite_natural_0.json +aaaec4ffcc3c247e506af0f01d9205c4214da9c6 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_slab.json 8195d52278bf58414faaaec6067905635aaa29d5 assets\createnuclear\blockstates\raw_lead_block.json -899878a42333d8b90ef7114acbc3eac55cc919ea data\minecraft\tags\blocks\needs_diamond_tool.json -c9757e3fd9841ee17366b1d88563df6ea8106513 assets\createnuclear\models\block\lead_ore.json -576b0bf970ddbdd11ec06963e1d65e08e63d69e1 data\createnuclear\loot_tables\blocks\reactor_frame.json -901f577d86272dac78635dc4231da7d6711877f0 assets\createnuclear\models\item\reactor_frame.json -913dfa33a312cd9a08d6d1194d0f7af40d4c5856 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_slab_recycling.json -a021646becb7b6411eddd86644e5b17c8365582c data\createnuclear\loot_tables\blocks\autunite.json -50c312969d1f3f0c5fad27639ba3f95d0853cb14 assets\createnuclear\models\item\lime_anti_radiation_helmet.json -1a94175ac43837cddcff6761b2d1c69de53c19e8 data\create\tags\blocks\safe_nbt.json -62b7087350b0a9af9007b848c7f619a730e90693 data\createnuclear\loot_tables\blocks\autunite_pillar.json -a892570aae7bbd46d02481c78816750bfe4f2c26 data\c\tags\blocks\storage_blocks\raw_lead.json -94dc8e72195da5aa505c6d5a3785ccfea30f7c05 data\createnuclear\loot_tables\blocks\steel_block.json -26b718d481625238a5ff718ee027dcddd29a2e98 data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_wall_from_stone_types_autunite_stonecutting.json -aac10ee87aad15f943db97cbbf5bd1924baee84c data\createnuclear\advancements\recipes\building_blocks\polished_cut_autunite_stairs_from_stone_types_autunite_stonecutting.json +900719d49cec9385da31bb392649c65f4297288c data\createnuclear\loot_tables\entities\irradiated_cow.json +8633aa61a16a7b249c4aea578a9520eca7347c3a assets\createnuclear\models\item\reactor_core.json +7d3e368074b034e469543ea668953d675b4cfc77 data\minecraft\tags\blocks\mineable\shovel.json +327ebe73a77656f0dc4f6e43f749c44e9f77cca0 data\c\tags\items\boots.json +af0dd245292fd2952c37e2d81bfff0a34f8aa5f6 assets\createnuclear\models\item\pink_anti_radiation_leggings.json +ce9ecb359f206dd797854e06594ac4ec27b7f675 data\createnuclear\tags\items\anti_radiation_armor.json +741e53f404a88b4aa7bf6e8246bbe3cf1d6404b5 assets\createnuclear\models\block\polished_cut_autunite_stairs_inner.json +288c9245496eb0020ace0481a4d4ac26df876063 assets\createnuclear\models\item\blue_anti_radiation_chestplate.json +40c4d56478534170e4d81d66fcb86a5726de3916 data\c\tags\items\lead_ores.json +ba58a4c086d8937d6703795a9d80435c2d450e35 assets\createnuclear\models\item\raw_lead_block.json +589197f2c386dacb0193e0e101edafd39cd153ea data\minecraft\tags\blocks\slabs.json +bb8a46365f31a2e4b5440a47d1d22d122d0e973b data\createnuclear\recipes\cut_autunite_brick_slab_recycling.json +4be8262da5a9789bafa641fec2ae0fb5cb8570e1 data\createnuclear\loot_tables\blocks\thorium_ore.json +40c4d56478534170e4d81d66fcb86a5726de3916 data\c\tags\blocks\lead_ores.json +1a35a3a0cf6a0202eb8244d26647e8e277cf8fd3 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_stairs_from_stone_types_autunite_stonecutting.json +5bad8990f31085232b63b11d295b90b581af9a82 assets\createnuclear\models\item\raw_uranium_block.json +f893c5dec42faf470d493c4b1c5c184cad842c32 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_brick_wall_from_stone_types_autunite_stonecutting.json +ddb01d2586a37fd31cc463ef9e6864cd6fabae4f data\c\tags\blocks\storage_blocks\lead.json +acc76d4790d17214103b215a83ea0180bf8f0885 data\createnuclear\tags\items\all_anti_radiation_armors.json +45223d8e65c235302e923cda583fff09cb4ab156 assets\createnuclear\models\item\pink_anti_radiation_chestplate.json +0057844c28c996dceebfc28e95e0f022a26db0aa assets\createnuclear\models\block\polished_cut_autunite_stairs.json +b950ac6ca2df77ffe3abd02e13c38567602e5536 assets\createnuclear\models\block\polished_cut_autunite_wall_side_tall.json +b6c3a22d368bd0796b004ac27b8e453a16e7d14c assets\createnuclear\models\item\polished_cut_autunite_wall.json +d4ec5a600b482636195c7ba0c915ed5d78e8c880 assets\createnuclear\models\item\thorium_block.json +b9d828959c4614caa4a0f3ac82f322dd538c6219 data\createnuclear\recipes\cut_autunite_brick_slab_from_stone_types_autunite_stonecutting.json +6fa74ed345ab06422eca4c254f9108b4dfabfd78 assets\createnuclear\models\block\deepslate_thorium_ore.json +4264bcbd283b0db714ef72fa85a11a14c9033aa8 data\c\tags\items\glass_blocks.json 1ec4bd12e3fd4303800a758a2b791e30a04e5960 data\createnuclear\advancements\recipes\building_blocks\cut_autunite_bricks_from_stone_types_autunite_stonecutting.json -ea04609e8b5c12a7805b1c564bca07fefd6d38ba assets\createnuclear\models\item\uranium_rod.json +2d8f5d7d7babd2b02ae836846e62daabf84de427 data\createnuclear\loot_tables\entities\irradiated_chicken.json +fe44d1ed2b4100ec32dda43274a085166706485d assets\createnuclear\models\item\thorium_nugget.json +c88d66c0a041c51ee8089e5596169dc6c353fb13 assets\createnuclear\models\item\gray_anti_radiation_helmet.json +dc2d4d289cbc255c2403e6b9222903a8340df64b data\c\tags\fluids\thorium.json +82a63e5c93daac9c5430ae77aa8d10b1bddbc2c7 assets\createnuclear\models\item\black_anti_radiation_helmet.json +c470ac7f3b34c8da456f221d81b45292f0657e36 assets\createnuclear\models\block\cut_autunite_brick_slab.json +9b77c4268b34088cf14bc923d7929fcf6348a9a0 data\c\tags\blocks\thorium_ores.json +649fce08e620f39f776ab8ae8dcb17e0fd77c82f assets\createnuclear\models\item\lead_ingot.json +7b15a9300d0f6d106e589db3dcd3294781d0bdca assets\createnuclear\models\item\uranium_ore.json +5f04c3e30c77925cd01bbe0d75ff704388488ebf data\createnuclear\advancements\recipes\building_blocks\small_autunite_brick_slab_from_stone_types_autunite_stonecutting.json +6d3410aa77b41ada9809f246f1d1a1a982449736 assets\createnuclear\models\item\polished_cut_autunite.json +223f7f4d8c7186b4749c21cbab27bbaf43c3d82d data\createnuclear\advancements\recipes\building_blocks\cut_autunite_slab_recycling.json +8408a3894e9ca6e45e738b81f0a1932a0b2f86a5 assets\createnuclear\models\block\layered_autunite.json +e4a795c7efcfa306ac6772e2b8a23a3afc52c0ec assets\createnuclear\models\block\cut_autunite_brick_stairs.json feae7c8978bcce63f2eeb2ad6ed6a7ef53cbc13e data\createnuclear\loot_tables\blocks\cut_autunite_brick_slab.json -589197f2c386dacb0193e0e101edafd39cd153ea data\minecraft\tags\items\slabs.json -af0dd245292fd2952c37e2d81bfff0a34f8aa5f6 assets\createnuclear\models\item\pink_anti_radiation_leggings.json -330efaa38d86d13a020bee4dc5f3c073f61a2bec data\createnuclear\tags\items\cloth.json -6aab787de0caf399f8b76b94c64d850e5d55c757 assets\createnuclear\models\block\polished_cut_autunite_slab_top.json 1f160865067749c0bed163a84a61581631294141 assets\createnuclear\models\item\deepslate_uranium_ore.json -c470ac7f3b34c8da456f221d81b45292f0657e36 assets\createnuclear\models\block\cut_autunite_brick_slab.json -9406d849d15177816752e57ab26568e18523391d assets\createnuclear\blockstates\reactor_input.json -3cd68ad698668475f66c2d72f997106d018fe2ee data\createnuclear\recipes\cut_autunite_brick_stairs.json -401811bf59cdb43ffb0c0bb5ba40eb954d7fa216 data\createnuclear\loot_tables\blocks\uranium_ore.json -aeb3e734225d8180128e7a26a9480661a6b8d13f data\c\tags\items\coal_dusts.json -2d0c4071223fd38069cfdac403b33bd2925d6750 assets\createnuclear\models\block\small_autunite_brick_slab.json +d61337a67071319320d75383a62ecac11c3222d1 assets\createnuclear\models\item\brown_anti_radiation_helmet.json +ad33dca8ecf90a8bc1ebb61c2007af72c427e9ed assets\createnuclear\models\item\layered_autunite.json diff --git a/src/generated/resources/.cache/5a34b29ec4d8a06e1e209d57e402a991866435fb b/src/generated/resources/.cache/5a34b29ec4d8a06e1e209d57e402a991866435fb index f7a9adc1f..638c3a91a 100644 --- a/src/generated/resources/.cache/5a34b29ec4d8a06e1e209d57e402a991866435fb +++ b/src/generated/resources/.cache/5a34b29ec4d8a06e1e209d57e402a991866435fb @@ -1,20 +1,25 @@ -// 1.20.1 2025-08-21T15:07:03.2176525 Create Nuclear/CreateNuclear's Processing Recipes -57154e35ebb09170bb39f5b3a72ecd49182697f2 data\createnuclear\recipes\crushing\granite.json -607980178060555690388cdb2325b69156878012 data\createnuclear\recipes\crushing\charcoal.json +// 1.20.1 2026-05-19T08:59:24.792569 Create Nuclear/CreateNuclear's Processing Recipes +f97962f3170eca979e349fbdadce0ef5c975a370 data\createnuclear\recipes\compacting\thorium_fluid_to_thorium_ingot.json +e42be7d17c5e057e62c4b1176cbf43319a157f51 data\createnuclear\recipes\enriched\enriched_yellowcake.json +f2d3a2dbcb9135e31261cc8408f11cd07038a826 data\createnuclear\recipes\item_application\reactor_input_from_hopper_and_reactor_casing.json 4516b5574960b0f83f2c191949e62d85039028c7 data\createnuclear\recipes\compacting\uranium_fluid_to_yellowcake.json -91c07d7804d0960aaa17a6258f00f1731ca458f5 data\createnuclear\recipes\item_application\reactor_output_from_shaft_and_reactor_casing.json -4ee934a60476e0d3d0d77297406d8d6aea65af2c data\createnuclear\recipes\splashing\crushed_raw_lead.json +67669cbcdec63040521549e652b7d87ce3b23c26 data\createnuclear\recipes\crushing\raw_uranium_block.json 51c9c30c20607c363e2f55de770bf936bf9538f1 data\createnuclear\recipes\mixing\steel.json +607980178060555690388cdb2325b69156878012 data\createnuclear\recipes\crushing\charcoal.json +545d5a2c00694740dd47d1df53bcdbb4abbe87ff data\createnuclear\recipes\mixing\liquid_nitrogen.json 74555eb2cce0827f99dc5c4ff91362bdaecad725 data\createnuclear\recipes\enriched\enriching_campfire.json -94e6ba2d5f151fbf98d3a652275b5ea2fbd1d769 data\createnuclear\recipes\crushing\raw_uranium_block.json -1b03ca5007b5749783944c4e77ca7b7976034682 data\createnuclear\recipes\mixing\uranium_fluid.json -e42be7d17c5e057e62c4b1176cbf43319a157f51 data\createnuclear\recipes\enriched\enriched_yellowcake.json -21e5370f3ce9120f8ca1425a95a8c50790877f9b data\createnuclear\recipes\pressing\graphene.json -24c35af7a9dc3d740f3200bdd1ad96ad125df00a data\createnuclear\recipes\crushing\coal.json -a19aa8fe76e6c69683e4e33ee3526ec8d3c6b607 data\createnuclear\recipes\crushing\raw_lead.json -3f530b7bf9b6dc229c96f7e47ee48e46136f1f29 data\createnuclear\recipes\crushing\raw_copper.json efbef3e0726b9384c60c033143ca13e684acabf1 data\createnuclear\recipes\item_application\reactor_casing_from_steel_and_brass_casing.json -3b0bd8d00165a6b9fe25684a5aefc3b2c37898d4 data\createnuclear\recipes\crushing\crushed_raw_uranium.json -5613aa5cd61f77be2a80d3d785223351af98758c data\createnuclear\recipes\crushing\raw_zinc.json +3a2d71e0f485f7f7d3204e95e5817d2956c9d632 data\createnuclear\recipes\mixing\nitrate.json +f1ca6b38da55719fa5012e0942e44a44981935c1 data\createnuclear\recipes\crushing\raw_lead.json +24c35af7a9dc3d740f3200bdd1ad96ad125df00a data\createnuclear\recipes\crushing\coal.json +91c07d7804d0960aaa17a6258f00f1731ca458f5 data\createnuclear\recipes\item_application\reactor_output_from_shaft_and_reactor_casing.json 6cb73e79475790b219fcd59290d61f773f750e77 data\createnuclear\recipes\crushing\raw_lead_block.json -f2d3a2dbcb9135e31261cc8408f11cd07038a826 data\createnuclear\recipes\item_application\reactor_input_from_hopper_and_reactor_casing.json +5613aa5cd61f77be2a80d3d785223351af98758c data\createnuclear\recipes\crushing\raw_zinc.json +21e5370f3ce9120f8ca1425a95a8c50790877f9b data\createnuclear\recipes\pressing\graphene.json +4a75ec28fb15eae3d59324685d5d3523e1e19e28 data\createnuclear\recipes\splashing\crushed_raw_lead.json +3f530b7bf9b6dc229c96f7e47ee48e46136f1f29 data\createnuclear\recipes\crushing\raw_copper.json +06b5e0508b2297b5070234f4e2ec5a9b70c69c79 data\createnuclear\recipes\mixing\thorium_fluid.json +1a9fba05693010595a98dfaa8893fb778c27b84c data\createnuclear\recipes\crushing\raw_thorium.json +b30e8150263d60763dc539802491251cab90eca5 data\createnuclear\recipes\crushing\raw_uranium.json +5e69a3e37fbdf9ffe2ad2913e686bf62954bec01 data\createnuclear\recipes\mixing\uranium_fluid.json +57154e35ebb09170bb39f5b3a72ecd49182697f2 data\createnuclear\recipes\crushing\granite.json diff --git a/src/generated/resources/.cache/9caf9393084497e1b8aa454367d4b0afa97137ba b/src/generated/resources/.cache/9caf9393084497e1b8aa454367d4b0afa97137ba index 64a4b7615..1afa1ec92 100644 --- a/src/generated/resources/.cache/9caf9393084497e1b8aa454367d4b0afa97137ba +++ b/src/generated/resources/.cache/9caf9393084497e1b8aa454367d4b0afa97137ba @@ -1,28 +1,28 @@ -// 1.20.1 2025-08-21T15:07:03.2333515 Create Nuclear/Create Nuclear Advancements -4f963ff2f6c09a0272c25ebdb46423700e5256eb data\createnuclear\advancements\reactor_input.json -91aab6f0a18aee167c63a3aece5fa9778cf52b0b data\createnuclear\advancements\reinforced_glass.json -5a41894d2428fb7297b98a6b78925a17af2a3095 data\createnuclear\advancements\uranium_liquid.json -8e89393b2e396243d12cf5b29e283ab97c814519 data\createnuclear\advancements\graphite_rod.json -384b002f95b70c595cedc692ed219d45931f1f5b data\createnuclear\advancements\anti_radiation_armor.json -46f6044ed5c777f9fe08f7957c3d26e39d69f3c5 data\createnuclear\advancements\reactor_casing.json +// 1.20.1 2026-05-19T08:59:24.7935683 Create Nuclear/Create Nuclear Advancements fe81bbd052ebe4a70c48912b47e12ed4e4523d1d data\createnuclear\advancements\automatic_uranium.json -2c2cfb8724f39fc5e101a34dce08de6e33f6d1f8 data\createnuclear\advancements\dye_anti_radiation_armor.json -a44ae76ec00fae36f7df13e43f20ebe389b416d5 data\createnuclear\advancements\steel_ingot.json -07047ca35a1e75dfe3f7885ad8b5a63ce53e1b34 data\createnuclear\advancements\reactor_frame.json -06d1bfea924a4ea35ce78937adcab967cce02b67 data\createnuclear\advancements\uranium_rod.json -842add59177cc7aec1b55102ec0495a522ced05c data\createnuclear\advancements\reactor_cooler.json -01ac168072fa666f64148113ae806ec0b5ea5158 data\createnuclear\advancements\uranium_powder.json -fb039aef2e300f0f4eb946b8367e154a1772cc90 data\createnuclear\advancements\full_anti_radiation_armor.json -0ac2cb2226f212b6c56c2f05dfa882b46f066f6f data\createnuclear\advancements\raw_uranium.json -bf6947708102180f9cd08e31305253774187d763 data\createnuclear\advancements\reactor_controller.json -e9f9668d36ebd431502b20296f774c83a1d050f0 data\createnuclear\advancements\raw_lead.json 7f34bd9000a575b4d1790c745f164a054afc3986 data\createnuclear\advancements\yellowcake.json +8e89393b2e396243d12cf5b29e283ab97c814519 data\createnuclear\advancements\graphite_rod.json +95a8f2e9970f421bd1df1cfd13b9ce807127898a data\createnuclear\advancements\eated_yellowcake.json +0ac2cb2226f212b6c56c2f05dfa882b46f066f6f data\createnuclear\advancements\raw_uranium.json a7b50865e9c0a441d749bf386f38e0a9dd69e5c8 data\createnuclear\advancements\root.json -bffbc5007ddb20829768a122cc514f84c2dee1e0 data\createnuclear\advancements\graphene.json +e9d8bd7f04cac0f3ea72a02a5cdc4cc98f728d98 data\createnuclear\advancements\reactor_blueprint.json +f88401b0664256c3b2cb35c018f8f738b60bc3e9 data\createnuclear\advancements\reactor_core.json +842add59177cc7aec1b55102ec0495a522ced05c data\createnuclear\advancements\reactor_cooler.json +06d1bfea924a4ea35ce78937adcab967cce02b67 data\createnuclear\advancements\uranium_rod.json +07047ca35a1e75dfe3f7885ad8b5a63ce53e1b34 data\createnuclear\advancements\reactor_frame.json 2e8127a4546d680ab502c6e3c71f49d8df2b1b18 data\createnuclear\advancements\coal_dust.json 07e0edb7519c4e755446e95086487f5c8bbbbb17 data\createnuclear\advancements\lead_ingot.json +01ac168072fa666f64148113ae806ec0b5ea5158 data\createnuclear\advancements\uranium_powder.json +5a41894d2428fb7297b98a6b78925a17af2a3095 data\createnuclear\advancements\uranium_liquid.json eda669191bc6149e3feee4a2b9b25b64e1d7da60 data\createnuclear\advancements\enriched_yellowcake.json -e9d8bd7f04cac0f3ea72a02a5cdc4cc98f728d98 data\createnuclear\advancements\reactor_blueprint.json -f88401b0664256c3b2cb35c018f8f738b60bc3e9 data\createnuclear\advancements\reactor_core.json -95a8f2e9970f421bd1df1cfd13b9ce807127898a data\createnuclear\advancements\eated_yellowcake.json +2c2cfb8724f39fc5e101a34dce08de6e33f6d1f8 data\createnuclear\advancements\dye_anti_radiation_armor.json +4f963ff2f6c09a0272c25ebdb46423700e5256eb data\createnuclear\advancements\reactor_input.json +e9f9668d36ebd431502b20296f774c83a1d050f0 data\createnuclear\advancements\raw_lead.json +91aab6f0a18aee167c63a3aece5fa9778cf52b0b data\createnuclear\advancements\reinforced_glass.json +bf6947708102180f9cd08e31305253774187d763 data\createnuclear\advancements\reactor_controller.json +384b002f95b70c595cedc692ed219d45931f1f5b data\createnuclear\advancements\anti_radiation_armor.json +a44ae76ec00fae36f7df13e43f20ebe389b416d5 data\createnuclear\advancements\steel_ingot.json b19a554150aa4d9dee594574e310c436d7bfc66d data\createnuclear\advancements\reactor_output.json +46f6044ed5c777f9fe08f7957c3d26e39d69f3c5 data\createnuclear\advancements\reactor_casing.json +bffbc5007ddb20829768a122cc514f84c2dee1e0 data\createnuclear\advancements\graphene.json +fb039aef2e300f0f4eb946b8367e154a1772cc90 data\createnuclear\advancements\full_anti_radiation_armor.json diff --git a/src/generated/resources/.cache/bb671ee907e6bf3198dcafcb73fbef1cc4250115 b/src/generated/resources/.cache/bb671ee907e6bf3198dcafcb73fbef1cc4250115 index 8d6924bd4..e0822446b 100644 --- a/src/generated/resources/.cache/bb671ee907e6bf3198dcafcb73fbef1cc4250115 +++ b/src/generated/resources/.cache/bb671ee907e6bf3198dcafcb73fbef1cc4250115 @@ -1,123 +1,129 @@ -// 1.20.1 2025-08-21T15:07:03.2048701 Create Nuclear/CreateNuclear's Standard Recipes -469c457450342dcd5f973a56cc598c6f49740f30 data\createnuclear\recipes\crafting\items\armors\yellow_anti_radiation_leggings.json -4e906e85482d81e1a9a14dc275063d3124226a4c data\createnuclear\advancements\recipes\combat\crafting\items\armors\black_anti_radiation_leggings.json -e16241f452e526d76f0dae2eff6f045c18207a47 data\createnuclear\advancements\recipes\combat\crafting\items\armors\magenta_anti_radiation_leggings.json -a4acc984e78d371129cd22b178d2d2283e0da053 data\createnuclear\recipes\crafting\items\armors\white_anti_radiation_leggings.json -093b544f5a3af2001350d6d1d9f61b25ac525426 data\createnuclear\advancements\recipes\combat\crafting\items\armors\magenta_anti_radiation_chestplate.json -3228f1fddbad9df530e3566e11c93612c5d2c7d9 data\createnuclear\advancements\recipes\combat\crafting\items\armors\gray_anti_radiation_helmet.json +// 1.20.1 2026-05-19T08:59:24.7915525 Create Nuclear/CreateNuclear's Standard Recipes +3afd628342fa1ef5bf3711783f2ffdd46c293781 data\createnuclear\recipes\crafting\items\armors\lime_anti_radiation_leggings.json +e1a3bf67fbdf820fcf7081f7a81144715b17117d data\createnuclear\advancements\recipes\combat\crafting\items\armors\green_anti_radiation_helmet.json +6f6851e442fb5a3a7e793353ab15ed634726596d data\createnuclear\advancements\recipes\combat\crafting\items\armors\magenta_anti_radiation_helmet.json +c79a6b01a59b85fe35918ca866b7b2ed91494d2b data\createnuclear\advancements\recipes\misc\crafting\reactor\reinforced_glass.json +a323a086a8eeb7fd6c321c1a5e3fa9e195e01219 data\createnuclear\advancements\recipes\combat\crafting\items\armors\blue_anti_radiation_helmet.json +ab68583b2306fa848ced652d196f2ec004187383 data\createnuclear\recipes\crafting\items\armors\yellow_anti_radiation_helmet.json +067475701d6f059793c064718b7bba4b939ce380 data\createnuclear\advancements\recipes\misc\crafting\white_cloth_wool.json +c001b8f8162dae60eeb8e1fd87432c5a75218684 data\createnuclear\recipes\crafting\items\armors\gray_anti_radiation_chestplate.json +763367822029eb0a59cd1e99c0563a62b9ad5fff data\createnuclear\recipes\crafting\materials\lead_block_from_compacting.json +2d6927d58c2b5d8ebb08fc7cd711fa713c9e8a95 data\createnuclear\advancements\recipes\combat\crafting\items\armors\pink_anti_radiation_helmet.json +908a0bc9a7be42c1e471cda2106b2103f0f66792 data\createnuclear\recipes\crafting\materials\raw_lead_block.json +cff53fa04178252ee9d878ccd38dca35581492ce data\createnuclear\recipes\crafting\items\armors\black_anti_radiation_chestplate.json +73f69d87aca3a193f127ed371b8b69ce697a247d data\createnuclear\recipes\crafting\items\armors\blue_anti_radiation_chestplate.json +63ca32b3a05e868ff44bb49a2c1a510915b37adf data\createnuclear\recipes\crafting\items\armors\white_anti_radiation_helmet.json +2b42b1e49e18e3d73eafdd29f3577ce40b23651d data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_gray_anti_radiation_chestplate.json +07b14d85ffaea9c7dabdec31738cef8b1053c668 data\createnuclear\recipes\crafting\items\armors\lime_anti_radiation_chestplate.json +ec4ce62303b8742338ed314f6b413d3f512169e2 data\createnuclear\recipes\crafting\items\armors\magenta_anti_radiation_leggings.json +6a95ed5743555ac26a0c008aa8ae0694e3abf811 data\createnuclear\advancements\recipes\combat\crafting\items\armors\orange_anti_radiation_leggings.json +8ee5858eabbd21c145ee9318cc0042790ec07818 data\createnuclear\advancements\recipes\misc\crafting\materials\lead_ingot_from_compacting.json 1b9c77ea0b66bc07238764f99754bf5f79ffa66e data\createnuclear\recipes\crafting\items\armors\green_anti_radiation_helmet.json +3b4d3ca6af2e9301c6868ed3a1103cda5f308bc3 data\createnuclear\advancements\recipes\combat\crafting\items\armors\cyan_anti_radiation_helmet.json 3a3331bf48286bd50d6011974158bfdefa4d66d0 data\createnuclear\advancements\recipes\combat\crafting\items\armors\orange_anti_radiation_chestplate.json -f97cdac2db61fc9a726bbe3498419d864cdf8abc data\createnuclear\advancements\recipes\combat\crafting\items\armors\blue_anti_radiation_leggings.json -0f090ddbc9878b2351702930660ba4e83030a6f8 data\createnuclear\advancements\recipes\combat\crafting\items\armors\red_anti_radiation_chestplate.json -994c303b720b9195df5332abdb6035fc0663d86b data\createnuclear\advancements\recipes\combat\crafting\items\armors\black_anti_radiation_chestplate.json -8ee5858eabbd21c145ee9318cc0042790ec07818 data\createnuclear\advancements\recipes\misc\crafting\materials\lead_ingot_from_compacting.json -5dd5684432c91fdd07623d522ac2e107a4d2df23 data\createnuclear\recipes\crafting\items\armors\red_anti_radiation_chestplate.json -812b089fafc87c65ea8a5a7145c60019a7602e03 data\createnuclear\recipes\crafting\items\armors\magenta_anti_radiation_helmet.json -b12cea6cfb392255f884069510c585833eda0bae data\createnuclear\recipes\crafting\materials\raw_uranium_block.json +f94ee3b4f8e546f6535b846025cfbf30dbcf1ed4 data\createnuclear\recipes\crafting\materials\thorium_block_from_compacting.json +a98dc6de94e6658d78ec28b77959ae9cb17b1d58 data\createnuclear\advancements\recipes\misc\crafting\white_cloth.json +12c8eb0914e0bda155f3f59479ed0e5d3fccdb7c data\createnuclear\advancements\recipes\combat\crafting\items\armors\green_anti_radiation_chestplate.json +ed07500454925b5bc3dad77a150b52ccd54c5bae data\createnuclear\recipes\crafting\items\armors\purple_anti_radiation_leggings.json +699231d5d03e73dcc95decab094b8544263f1052 data\createnuclear\recipes\crafting\items\armors\light_blue_anti_radiation_leggings.json +8978bafbd0fc5dc9bcb1789c78f0a9b398bd8d1c data\createnuclear\advancements\recipes\combat\crafting\items\armors\yellow_anti_radiation_leggings.json +b4005bc3aa9c3e7f45d4832decb2058d61ed915c data\createnuclear\recipes\crafting\materials\lead_ingot_from_compacting.json +509b9f4b998463b86c1a100f7e5167ad5930ee80 data\createnuclear\advancements\recipes\combat\crafting\items\armors\white_anti_radiation_leggings.json +fe8357257943ae803cc83073121ba6f8c3e0fb92 data\createnuclear\advancements\recipes\misc\crafting\materials\raw_thorium_block.json +cc7ad595e0ff1112343e6ae4cdda8f2578840f45 data\createnuclear\advancements\recipes\combat\crafting\items\armors\pink_anti_radiation_leggings.json +04d992393d6f955bdda89dc07d61fab2d66c0d36 data\createnuclear\recipes\crafting\items\armors\lime_anti_radiation_helmet.json +f02c5b5af3d1b0bbe43a82d9c436741fac7dc2ac data\createnuclear\recipes\crafting\items\armors\pink_anti_radiation_chestplate.json +7f508e15e3247db84ea79ba8b2277b4fbe333303 data\createnuclear\recipes\crafting\materials\steel_block_from_compacting.json 85db10fc44697b8c4ad9267551717797f222f131 data\createnuclear\recipes\crafting\reactor\reinforced_glass.json -67f468384edc92f1aef22d0054a5dbc13eb1b4fd data\createnuclear\recipes\crafting\items\armors\light_blue_anti_radiation_helmet.json -0d18d5730629dddb6398d750fb89ae19f21d8381 data\createnuclear\recipes\crafting\items\armors\brown_anti_radiation_chestplate.json -6f6851e442fb5a3a7e793353ab15ed634726596d data\createnuclear\advancements\recipes\combat\crafting\items\armors\magenta_anti_radiation_helmet.json -e0df305b6d46f1d3b5baea85fb39be7e82e7be8e data\createnuclear\advancements\recipes\misc\crafting\materials\lead_block_from_compacting.json -9b2664087ac82627aeeb14fb5dbb50bbc2716886 data\createnuclear\recipes\crafting\items\armors\magenta_anti_radiation_chestplate.json -908a0bc9a7be42c1e471cda2106b2103f0f66792 data\createnuclear\recipes\crafting\materials\raw_lead_block.json -0e245ffb2c01d133a740897414f82e0f4d75f50b data\createnuclear\recipes\crafting\items\armors\light_gray_anti_radiation_leggings.json +a5218ae1f12e54e46948f8629d91836bc09d2bf4 data\createnuclear\recipes\crafting\items\armors\purple_anti_radiation_helmet.json +168fe8b428a33458cdf5c5b9cb85053affb96d7e data\createnuclear\advancements\recipes\combat\crafting\items\armors\red_anti_radiation_leggings.json +abe7615eecf997d50be6277a314e33a003063c6f data\createnuclear\recipes\crafting\items\armors\blue_anti_radiation_leggings.json 52a6d0f042c4a300e590a02b30b9b708959233c2 data\createnuclear\recipes\crafting\items\armors\anti_radiation_boots.json +27992c8cebd3d4ab9a6ed2ce55fde6d0243dd4c0 data\createnuclear\advancements\recipes\combat\crafting\items\armors\orange_anti_radiation_helmet.json +994c303b720b9195df5332abdb6035fc0663d86b data\createnuclear\advancements\recipes\combat\crafting\items\armors\black_anti_radiation_chestplate.json bb959aa1f3bef83f433d6e1ca305b572bab95c07 data\createnuclear\recipes\crafting\items\armors\pink_anti_radiation_leggings.json +b4dd5829fae921996952457959a61dda55bdbbca data\createnuclear\advancements\recipes\misc\crafting\materials\steel_ingot_from_compacting.json +d83b932abf96d0bf883e05fdf32f4e69cca82876 data\createnuclear\recipes\crafting\items\armors\light_blue_anti_radiation_chestplate.json +e0df305b6d46f1d3b5baea85fb39be7e82e7be8e data\createnuclear\advancements\recipes\misc\crafting\materials\lead_block_from_compacting.json +331a193e94975dac747ae3bb4df9727fad563ffa data\createnuclear\recipes\crafting\items\armors\cyan_anti_radiation_leggings.json +25189930d9c797d81baf28fe5d77f82c55ee69c4 data\createnuclear\advancements\recipes\misc\crafting\materials\thorium_block_from_compacting.json +3f9fdfd5005908d39ffcbde70a4a86db8b7d7063 data\createnuclear\recipes\crafting\items\armors\green_anti_radiation_leggings.json +bac128a811bb492f39fc589cbed2867bc0b88cde data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_gray_anti_radiation_helmet.json +0ec2fe6d8589411004193dfcc0e3bcdea2686062 data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_blue_anti_radiation_leggings.json +05b373972e61144dbf54a0e20950084ed424ce13 data\createnuclear\recipes\crafting\items\armors\orange_anti_radiation_leggings.json +0e245ffb2c01d133a740897414f82e0f4d75f50b data\createnuclear\recipes\crafting\items\armors\light_gray_anti_radiation_leggings.json +29b25f8a89494c04f77b15ce319c22850a817634 data\createnuclear\recipes\crafting\items\armors\gray_anti_radiation_leggings.json +14c4e84f482b327c8b652f1b7beccfd1a61ba0e3 data\createnuclear\advancements\recipes\misc\crafting\materials\thorium_ingot_from_compacting.json +94e1a4f0ba9ad6fc87ad791e33b2f6f5e5563d48 data\createnuclear\advancements\recipes\combat\crafting\items\armors\gray_anti_radiation_chestplate.json +b12cea6cfb392255f884069510c585833eda0bae data\createnuclear\recipes\crafting\materials\raw_uranium_block.json +9b2664087ac82627aeeb14fb5dbb50bbc2716886 data\createnuclear\recipes\crafting\items\armors\magenta_anti_radiation_chestplate.json +daa804f6bb553d688dbcf88375ed898e76a92e1b data\createnuclear\recipes\crafting\items\armors\cyan_anti_radiation_helmet.json +cbdfabe7026f2903ebbe13ace568f7a31e88529d data\createnuclear\recipes\crafting\items\armors\yellow_anti_radiation_chestplate.json +a836c836c92ae745d2a43a608f4a8e59f9d50ac6 data\createnuclear\advancements\recipes\combat\crafting\items\armors\brown_anti_radiation_helmet.json +812b089fafc87c65ea8a5a7145c60019a7602e03 data\createnuclear\recipes\crafting\items\armors\magenta_anti_radiation_helmet.json +48e8029910318fe0d6a770d0a441a2a71ba6dba1 data\createnuclear\advancements\recipes\combat\crafting\items\armors\red_anti_radiation_helmet.json +d730353b357123969efc6a4d16d7ffa52bb45e08 data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_blue_anti_radiation_helmet.json 9e0d506ccef1be90fdfa8a3ac5629f8dcf3b5c47 data\createnuclear\recipes\crafting\items\armors\purple_anti_radiation_chestplate.json -6a95ed5743555ac26a0c008aa8ae0694e3abf811 data\createnuclear\advancements\recipes\combat\crafting\items\armors\orange_anti_radiation_leggings.json -27b3ee83696450dd6cf899f8ba9cba175026a9b0 data\createnuclear\advancements\recipes\misc\crafting\materials\raw_uranium_block.json -ec4ce62303b8742338ed314f6b413d3f512169e2 data\createnuclear\recipes\crafting\items\armors\magenta_anti_radiation_leggings.json +b79e3653da4afec06b8fa7d885ecd3dec04fef28 data\createnuclear\recipes\crafting\items\armors\red_anti_radiation_helmet.json c0937becc0181dc35309ede6b0242fa4ea65c2ba data\createnuclear\advancements\recipes\combat\crafting\items\armors\lime_anti_radiation_leggings.json -a5218ae1f12e54e46948f8629d91836bc09d2bf4 data\createnuclear\recipes\crafting\items\armors\purple_anti_radiation_helmet.json +f1038223c2188506b256f90075f5bbb6b6bf66b5 data\createnuclear\recipes\crafting\items\armors\green_anti_radiation_chestplate.json +ba54b29bac45eb1bf2540cf30963b3672e89e46f data\createnuclear\recipes\crafting\items\armors\black_anti_radiation_helmet.json 2033f2859713c27e945069e6b831665a3fda414a data\createnuclear\advancements\recipes\combat\crafting\items\armors\anti_radiation_boots.json -b4005bc3aa9c3e7f45d4832decb2058d61ed915c data\createnuclear\recipes\crafting\materials\lead_ingot_from_compacting.json -48a67eae5e2240f8c1867a01939b55c9e1db0f34 data\createnuclear\recipes\crafting\items\armors\white_anti_radiation_chestplate.json -05b373972e61144dbf54a0e20950084ed424ce13 data\createnuclear\recipes\crafting\items\armors\orange_anti_radiation_leggings.json -ef9d304a52950c2f241ed965c1c5e2ca87feeaac data\createnuclear\advancements\recipes\combat\crafting\items\armors\white_anti_radiation_helmet.json -1ca46718d29476420c4ebfd171e36e76770c79b6 data\createnuclear\advancements\recipes\combat\crafting\items\armors\yellow_anti_radiation_helmet.json -8978bafbd0fc5dc9bcb1789c78f0a9b398bd8d1c data\createnuclear\advancements\recipes\combat\crafting\items\armors\yellow_anti_radiation_leggings.json -a98dc6de94e6658d78ec28b77959ae9cb17b1d58 data\createnuclear\advancements\recipes\misc\crafting\white_cloth.json -a836c836c92ae745d2a43a608f4a8e59f9d50ac6 data\createnuclear\advancements\recipes\combat\crafting\items\armors\brown_anti_radiation_helmet.json -2e66d1ed8fb018bd2a5258109c7ce6bd1494dbf7 data\createnuclear\advancements\recipes\combat\crafting\items\armors\black_anti_radiation_helmet.json -699231d5d03e73dcc95decab094b8544263f1052 data\createnuclear\recipes\crafting\items\armors\light_blue_anti_radiation_leggings.json +a4acc984e78d371129cd22b178d2d2283e0da053 data\createnuclear\recipes\crafting\items\armors\white_anti_radiation_leggings.json +f8d04e8cd6b0b22f26d5886aa3c30245ff004b58 data\createnuclear\advancements\recipes\combat\crafting\items\armors\cyan_anti_radiation_chestplate.json 749b8127db160264925c9117d1282fdfceded98d data\createnuclear\recipes\crafting\enriched_soul_soil.json -57c5aa211ece7e9ada6b82fa7847afec334fd423 data\createnuclear\advancements\recipes\combat\crafting\items\armors\purple_anti_radiation_leggings.json -2d6927d58c2b5d8ebb08fc7cd711fa713c9e8a95 data\createnuclear\advancements\recipes\combat\crafting\items\armors\pink_anti_radiation_helmet.json -7cbf45e149ec6e64f2cb88d9db2b2601bd15ca07 data\createnuclear\recipes\crafting\items\armors\light_gray_anti_radiation_helmet.json -0ec2fe6d8589411004193dfcc0e3bcdea2686062 data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_blue_anti_radiation_leggings.json -73f69d87aca3a193f127ed371b8b69ce697a247d data\createnuclear\recipes\crafting\items\armors\blue_anti_radiation_chestplate.json +3d11adcfb69f725935f0385542ed3d3de8766b1a data\createnuclear\recipes\crafting\items\armors\brown_anti_radiation_helmet.json e2e1b7757c9a7b70d334a9e8a145d87275f7edab data\createnuclear\advancements\recipes\combat\crafting\items\armors\brown_anti_radiation_chestplate.json +ab0727c5e77f77dc4b1c654a769c2c658c5dcfa9 data\createnuclear\advancements\recipes\combat\crafting\items\armors\blue_anti_radiation_chestplate.json +57c5aa211ece7e9ada6b82fa7847afec334fd423 data\createnuclear\advancements\recipes\combat\crafting\items\armors\purple_anti_radiation_leggings.json +6448e20ca204341c228829500b98c9b44f48f00c data\createnuclear\advancements\recipes\combat\crafting\items\armors\lime_anti_radiation_chestplate.json +48a67eae5e2240f8c1867a01939b55c9e1db0f34 data\createnuclear\recipes\crafting\items\armors\white_anti_radiation_chestplate.json +2e66d1ed8fb018bd2a5258109c7ce6bd1494dbf7 data\createnuclear\advancements\recipes\combat\crafting\items\armors\black_anti_radiation_helmet.json e90476696332dc219d98c13a7cdef5fae159c820 data\createnuclear\advancements\recipes\combat\crafting\items\armors\gray_anti_radiation_leggings.json -f02c5b5af3d1b0bbe43a82d9c436741fac7dc2ac data\createnuclear\recipes\crafting\items\armors\pink_anti_radiation_chestplate.json -763367822029eb0a59cd1e99c0563a62b9ad5fff data\createnuclear\recipes\crafting\materials\lead_block_from_compacting.json -abe7615eecf997d50be6277a314e33a003063c6f data\createnuclear\recipes\crafting\items\armors\blue_anti_radiation_leggings.json -82f918d8c04e6510b8b502e2f391a93e9f6c225c data\createnuclear\advancements\recipes\combat\crafting\items\armors\green_anti_radiation_leggings.json +d222771ad3dde39d390e8d89d95918bb523eec93 data\createnuclear\advancements\recipes\combat\crafting\items\armors\yellow_anti_radiation_chestplate.json 4bb3279f43b0bd71f048d2d6a5fba2a0954cd3a1 data\createnuclear\recipes\crafting\materials\steel_ingot_from_compacting.json -331a193e94975dac747ae3bb4df9727fad563ffa data\createnuclear\recipes\crafting\items\armors\cyan_anti_radiation_leggings.json -3afd628342fa1ef5bf3711783f2ffdd46c293781 data\createnuclear\recipes\crafting\items\armors\lime_anti_radiation_leggings.json -196b4d108c5820872c874b04e61f58a31bf7b0c5 data\createnuclear\recipes\crafting\items\armors\blue_anti_radiation_helmet.json -ad1d0952c9de12a2edd2e896e9eec84bc21688a0 data\createnuclear\recipes\crafting\items\armors\pink_anti_radiation_helmet.json -f5f0df957d0b27ddeb2ef237a4e06d23f524add4 data\createnuclear\advancements\recipes\combat\crafting\items\armors\purple_anti_radiation_helmet.json -b4dd5829fae921996952457959a61dda55bdbbca data\createnuclear\advancements\recipes\misc\crafting\materials\steel_ingot_from_compacting.json -3d11adcfb69f725935f0385542ed3d3de8766b1a data\createnuclear\recipes\crafting\items\armors\brown_anti_radiation_helmet.json -d60a68616656058b58e1c8f9245dc6ea19db02fb data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_blue_anti_radiation_chestplate.json -631fcbd8c4bb12ea9468987ed1dabe35be735360 data\createnuclear\recipes\crafting\items\armors\light_gray_anti_radiation_chestplate.json +82b6dd2147d79978722fd54c58a7e8b956d6b469 data\createnuclear\advancements\recipes\misc\crafting\materials\steel_block_from_compacting.json +72ef0d5b23b72afb7d23d9528c75c8348bbf4e5e data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_gray_anti_radiation_leggings.json +4f4256d4c68aec54c665ee724d10acce54b53da9 data\createnuclear\recipes\crafting\reactor_blueprint_item.json +0d18d5730629dddb6398d750fb89ae19f21d8381 data\createnuclear\recipes\crafting\items\armors\brown_anti_radiation_chestplate.json +358bcedf79e0571d4632994b03abd2f5f537a7ed data\createnuclear\recipes\crafting\items\armors\red_anti_radiation_leggings.json +cb9b704b223388feb25d9e79f06211dec00f18f9 data\createnuclear\recipes\crafting\materials\raw_thorium_block.json a33a72734494a840500cac70cede78971116ddf5 data\createnuclear\recipes\crafting\white_cloth.json -94e1a4f0ba9ad6fc87ad791e33b2f6f5e5563d48 data\createnuclear\advancements\recipes\combat\crafting\items\armors\gray_anti_radiation_chestplate.json +1ca46718d29476420c4ebfd171e36e76770c79b6 data\createnuclear\advancements\recipes\combat\crafting\items\armors\yellow_anti_radiation_helmet.json eaf984d1126a240016bb6d32c08c673deadf2c3a data\createnuclear\advancements\recipes\misc\crafting\enriched_soul_soil.json -d222771ad3dde39d390e8d89d95918bb523eec93 data\createnuclear\advancements\recipes\combat\crafting\items\armors\yellow_anti_radiation_chestplate.json -2b42b1e49e18e3d73eafdd29f3577ce40b23651d data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_gray_anti_radiation_chestplate.json -4f4256d4c68aec54c665ee724d10acce54b53da9 data\createnuclear\recipes\crafting\reactor_blueprint_item.json -6448e20ca204341c228829500b98c9b44f48f00c data\createnuclear\advancements\recipes\combat\crafting\items\armors\lime_anti_radiation_chestplate.json -04d992393d6f955bdda89dc07d61fab2d66c0d36 data\createnuclear\recipes\crafting\items\armors\lime_anti_radiation_helmet.json -d730353b357123969efc6a4d16d7ffa52bb45e08 data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_blue_anti_radiation_helmet.json -1ba594546ae02b28e04218a9e2a1f01834ee5a84 data\createnuclear\advancements\recipes\combat\crafting\items\armors\lime_anti_radiation_helmet.json -cc7ad595e0ff1112343e6ae4cdda8f2578840f45 data\createnuclear\advancements\recipes\combat\crafting\items\armors\pink_anti_radiation_leggings.json -a323a086a8eeb7fd6c321c1a5e3fa9e195e01219 data\createnuclear\advancements\recipes\combat\crafting\items\armors\blue_anti_radiation_helmet.json -168fe8b428a33458cdf5c5b9cb85053affb96d7e data\createnuclear\advancements\recipes\combat\crafting\items\armors\red_anti_radiation_leggings.json -ffca0fb212a8a89c18d88df891c0024cb57d7234 data\createnuclear\advancements\recipes\misc\crafting\enriching_campfire.json -f1038223c2188506b256f90075f5bbb6b6bf66b5 data\createnuclear\recipes\crafting\items\armors\green_anti_radiation_chestplate.json -29b25f8a89494c04f77b15ce319c22850a817634 data\createnuclear\recipes\crafting\items\armors\gray_anti_radiation_leggings.json -171e699955d12b2f3be1568ae499da0031931e92 data\createnuclear\advancements\recipes\combat\crafting\items\armors\cyan_anti_radiation_leggings.json -7721066162bdcf17657b1b39211598a828ca5af5 data\createnuclear\recipes\crafting\items\armors\orange_anti_radiation_chestplate.json -ab0727c5e77f77dc4b1c654a769c2c658c5dcfa9 data\createnuclear\advancements\recipes\combat\crafting\items\armors\blue_anti_radiation_chestplate.json -c001b8f8162dae60eeb8e1fd87432c5a75218684 data\createnuclear\recipes\crafting\items\armors\gray_anti_radiation_chestplate.json -d83b932abf96d0bf883e05fdf32f4e69cca82876 data\createnuclear\recipes\crafting\items\armors\light_blue_anti_radiation_chestplate.json -72ef0d5b23b72afb7d23d9528c75c8348bbf4e5e data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_gray_anti_radiation_leggings.json -27992c8cebd3d4ab9a6ed2ce55fde6d0243dd4c0 data\createnuclear\advancements\recipes\combat\crafting\items\armors\orange_anti_radiation_helmet.json -ab68583b2306fa848ced652d196f2ec004187383 data\createnuclear\recipes\crafting\items\armors\yellow_anti_radiation_helmet.json -daa804f6bb553d688dbcf88375ed898e76a92e1b data\createnuclear\recipes\crafting\items\armors\cyan_anti_radiation_helmet.json 0814388bdbb057df472225eb2e98dbf8d7f6319a data\createnuclear\advancements\recipes\combat\crafting\items\armors\purple_anti_radiation_chestplate.json -e1a3bf67fbdf820fcf7081f7a81144715b17117d data\createnuclear\advancements\recipes\combat\crafting\items\armors\green_anti_radiation_helmet.json -7f508e15e3247db84ea79ba8b2277b4fbe333303 data\createnuclear\recipes\crafting\materials\steel_block_from_compacting.json -f8d04e8cd6b0b22f26d5886aa3c30245ff004b58 data\createnuclear\advancements\recipes\combat\crafting\items\armors\cyan_anti_radiation_chestplate.json -358bcedf79e0571d4632994b03abd2f5f537a7ed data\createnuclear\recipes\crafting\items\armors\red_anti_radiation_leggings.json -ef33f7b93a05e14bf5bca48a943793e08811dd1b data\createnuclear\advancements\recipes\combat\crafting\items\armors\brown_anti_radiation_leggings.json -82b6dd2147d79978722fd54c58a7e8b956d6b469 data\createnuclear\advancements\recipes\misc\crafting\materials\steel_block_from_compacting.json -bac128a811bb492f39fc589cbed2867bc0b88cde data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_gray_anti_radiation_helmet.json bbaa600617117f4f18276a2b3a0e3f39662fab8c data\createnuclear\advancements\recipes\misc\crafting\materials\raw_lead_block.json +82f918d8c04e6510b8b502e2f391a93e9f6c225c data\createnuclear\advancements\recipes\combat\crafting\items\armors\green_anti_radiation_leggings.json +f5f0df957d0b27ddeb2ef237a4e06d23f524add4 data\createnuclear\advancements\recipes\combat\crafting\items\armors\purple_anti_radiation_helmet.json +631fcbd8c4bb12ea9468987ed1dabe35be735360 data\createnuclear\recipes\crafting\items\armors\light_gray_anti_radiation_chestplate.json +4e9f01c53d1a445f0841eeed1311cf5674ce42b1 data\createnuclear\recipes\crafting\items\armors\orange_anti_radiation_helmet.json 48b8b4c54feb36b0a06e923c0b405ebbf516aca2 data\createnuclear\advancements\recipes\combat\crafting\items\armors\pink_anti_radiation_chestplate.json -7f0ae8e89121c9f7177383446a17e8b62b33c8fb data\createnuclear\recipes\crafting\enriching_campfire.json -93e75639c60d69067daddecfb2fa480a8e2040c4 data\createnuclear\recipes\crafting\white_cloth_wool.json -3f9fdfd5005908d39ffcbde70a4a86db8b7d7063 data\createnuclear\recipes\crafting\items\armors\green_anti_radiation_leggings.json -ba54b29bac45eb1bf2540cf30963b3672e89e46f data\createnuclear\recipes\crafting\items\armors\black_anti_radiation_helmet.json +9ce5e8d836bd92901422ab74a3f8746ba3f47d40 data\createnuclear\advancements\recipes\combat\crafting\items\armors\white_anti_radiation_chestplate.json +f97cdac2db61fc9a726bbe3498419d864cdf8abc data\createnuclear\advancements\recipes\combat\crafting\items\armors\blue_anti_radiation_leggings.json 76c5cc8d7455da3e2cb8acf974bcff027f03faac data\createnuclear\recipes\crafting\items\armors\gray_anti_radiation_helmet.json -5002eb664a011705632befab37a7626b6ef17940 data\createnuclear\recipes\crafting\items\armors\cyan_anti_radiation_chestplate.json -cff53fa04178252ee9d878ccd38dca35581492ce data\createnuclear\recipes\crafting\items\armors\black_anti_radiation_chestplate.json -cbdfabe7026f2903ebbe13ace568f7a31e88529d data\createnuclear\recipes\crafting\items\armors\yellow_anti_radiation_chestplate.json -b79e3653da4afec06b8fa7d885ecd3dec04fef28 data\createnuclear\recipes\crafting\items\armors\red_anti_radiation_helmet.json -63ca32b3a05e868ff44bb49a2c1a510915b37adf data\createnuclear\recipes\crafting\items\armors\white_anti_radiation_helmet.json -b5768e13db8aea8ba9e89dd0717521c981c5aab8 data\createnuclear\recipes\crafting\items\armors\brown_anti_radiation_leggings.json -48e8029910318fe0d6a770d0a441a2a71ba6dba1 data\createnuclear\advancements\recipes\combat\crafting\items\armors\red_anti_radiation_helmet.json -067475701d6f059793c064718b7bba4b939ce380 data\createnuclear\advancements\recipes\misc\crafting\white_cloth_wool.json +469c457450342dcd5f973a56cc598c6f49740f30 data\createnuclear\recipes\crafting\items\armors\yellow_anti_radiation_leggings.json +93e75639c60d69067daddecfb2fa480a8e2040c4 data\createnuclear\recipes\crafting\white_cloth_wool.json +196b4d108c5820872c874b04e61f58a31bf7b0c5 data\createnuclear\recipes\crafting\items\armors\blue_anti_radiation_helmet.json +e16241f452e526d76f0dae2eff6f045c18207a47 data\createnuclear\advancements\recipes\combat\crafting\items\armors\magenta_anti_radiation_leggings.json +3228f1fddbad9df530e3566e11c93612c5d2c7d9 data\createnuclear\advancements\recipes\combat\crafting\items\armors\gray_anti_radiation_helmet.json 38ffb78d5dc99dd095226e6e559f87635ffdd984 data\createnuclear\recipes\crafting\items\armors\black_anti_radiation_leggings.json -07b14d85ffaea9c7dabdec31738cef8b1053c668 data\createnuclear\recipes\crafting\items\armors\lime_anti_radiation_chestplate.json -c79a6b01a59b85fe35918ca866b7b2ed91494d2b data\createnuclear\advancements\recipes\misc\crafting\reactor\reinforced_glass.json +d60a68616656058b58e1c8f9245dc6ea19db02fb data\createnuclear\advancements\recipes\combat\crafting\items\armors\light_blue_anti_radiation_chestplate.json +ad1d0952c9de12a2edd2e896e9eec84bc21688a0 data\createnuclear\recipes\crafting\items\armors\pink_anti_radiation_helmet.json +1ba594546ae02b28e04218a9e2a1f01834ee5a84 data\createnuclear\advancements\recipes\combat\crafting\items\armors\lime_anti_radiation_helmet.json +5dd5684432c91fdd07623d522ac2e107a4d2df23 data\createnuclear\recipes\crafting\items\armors\red_anti_radiation_chestplate.json +0f090ddbc9878b2351702930660ba4e83030a6f8 data\createnuclear\advancements\recipes\combat\crafting\items\armors\red_anti_radiation_chestplate.json +171e699955d12b2f3be1568ae499da0031931e92 data\createnuclear\advancements\recipes\combat\crafting\items\armors\cyan_anti_radiation_leggings.json +ffca0fb212a8a89c18d88df891c0024cb57d7234 data\createnuclear\advancements\recipes\misc\crafting\enriching_campfire.json +ef9d304a52950c2f241ed965c1c5e2ca87feeaac data\createnuclear\advancements\recipes\combat\crafting\items\armors\white_anti_radiation_helmet.json +1ac468d9e91fe322390aa0f95e118a663c91eb10 data\createnuclear\recipes\crafting\materials\thorium_ingot_from_compacting.json +ef33f7b93a05e14bf5bca48a943793e08811dd1b data\createnuclear\advancements\recipes\combat\crafting\items\armors\brown_anti_radiation_leggings.json +67f468384edc92f1aef22d0054a5dbc13eb1b4fd data\createnuclear\recipes\crafting\items\armors\light_blue_anti_radiation_helmet.json +b5768e13db8aea8ba9e89dd0717521c981c5aab8 data\createnuclear\recipes\crafting\items\armors\brown_anti_radiation_leggings.json +7cbf45e149ec6e64f2cb88d9db2b2601bd15ca07 data\createnuclear\recipes\crafting\items\armors\light_gray_anti_radiation_helmet.json +7721066162bdcf17657b1b39211598a828ca5af5 data\createnuclear\recipes\crafting\items\armors\orange_anti_radiation_chestplate.json +27b3ee83696450dd6cf899f8ba9cba175026a9b0 data\createnuclear\advancements\recipes\misc\crafting\materials\raw_uranium_block.json +4e906e85482d81e1a9a14dc275063d3124226a4c data\createnuclear\advancements\recipes\combat\crafting\items\armors\black_anti_radiation_leggings.json +7f0ae8e89121c9f7177383446a17e8b62b33c8fb data\createnuclear\recipes\crafting\enriching_campfire.json bf50e5103f335c3e8e389922fa05a31531374f46 data\createnuclear\advancements\recipes\misc\crafting\reactor_blueprint_item.json -12c8eb0914e0bda155f3f59479ed0e5d3fccdb7c data\createnuclear\advancements\recipes\combat\crafting\items\armors\green_anti_radiation_chestplate.json -3b4d3ca6af2e9301c6868ed3a1103cda5f308bc3 data\createnuclear\advancements\recipes\combat\crafting\items\armors\cyan_anti_radiation_helmet.json -4e9f01c53d1a445f0841eeed1311cf5674ce42b1 data\createnuclear\recipes\crafting\items\armors\orange_anti_radiation_helmet.json -9ce5e8d836bd92901422ab74a3f8746ba3f47d40 data\createnuclear\advancements\recipes\combat\crafting\items\armors\white_anti_radiation_chestplate.json -ed07500454925b5bc3dad77a150b52ccd54c5bae data\createnuclear\recipes\crafting\items\armors\purple_anti_radiation_leggings.json -509b9f4b998463b86c1a100f7e5167ad5930ee80 data\createnuclear\advancements\recipes\combat\crafting\items\armors\white_anti_radiation_leggings.json +5002eb664a011705632befab37a7626b6ef17940 data\createnuclear\recipes\crafting\items\armors\cyan_anti_radiation_chestplate.json +093b544f5a3af2001350d6d1d9f61b25ac525426 data\createnuclear\advancements\recipes\combat\crafting\items\armors\magenta_anti_radiation_chestplate.json diff --git a/src/generated/resources/.cache/caff3fea0cfc3288a78b91fffd04e30c57e6f18d b/src/generated/resources/.cache/caff3fea0cfc3288a78b91fffd04e30c57e6f18d index 3e7b28c1d..dba861ff4 100644 --- a/src/generated/resources/.cache/caff3fea0cfc3288a78b91fffd04e30c57e6f18d +++ b/src/generated/resources/.cache/caff3fea0cfc3288a78b91fffd04e30c57e6f18d @@ -1,17 +1,21 @@ -// 1.20.1 2025-08-21T15:07:03.2018308 Create Nuclear/CreateNuclear's Blasting Recipes -165a3c45b53d0a94149f26300f609c2fd7c688f1 data\createnuclear\recipes\smelting\lead_ingot_for_crushed_lead.json +// 1.20.1 2026-05-19T08:59:24.7905537 Create Nuclear/CreateNuclear's Blasting Recipes +d7cfc6f1ff4d39df0df526ec3723e8d18d198945 data\createnuclear\advancements\recipes\misc\smelting\raw_uranium_for_uranium_ore.json 978cc9d92268673050da5697482f4013a63a65f1 data\createnuclear\recipes\blasting\raw_uranium_for_uranium_ore.json +b2ec2f955ece9110bf315a2773b70999e268f81d data\createnuclear\recipes\blasting\lead_ingot_for_lead_ore.json +50ad5192e1c95871f5c808adb0d3c710bd7a32b9 data\createnuclear\advancements\recipes\misc\smelting\lead_ingot_for_raw_lead.json 0c347228b63702ba70d4257c4b5642133fb8e5b8 data\createnuclear\advancements\recipes\misc\smelting\lead_ingot_for_lead_ore.json +165a3c45b53d0a94149f26300f609c2fd7c688f1 data\createnuclear\recipes\smelting\lead_ingot_for_crushed_lead.json 93fe12ad36a99451009518d71ac105969a1ef2aa data\createnuclear\recipes\smelting\raw_uranium_for_uranium_ore.json -50ad5192e1c95871f5c808adb0d3c710bd7a32b9 data\createnuclear\advancements\recipes\misc\smelting\lead_ingot_for_raw_lead.json -4121c89708b0b069ece6dd9356dd3865af602779 data\createnuclear\recipes\smelting\lead_ingot_for_lead_ore.json -d7cfc6f1ff4d39df0df526ec3723e8d18d198945 data\createnuclear\advancements\recipes\misc\smelting\raw_uranium_for_uranium_ore.json -f420fef64e8fb3ad9664b452107d468166904e7b data\createnuclear\advancements\recipes\misc\smelting\lead_ingot_for_crushed_lead.json +203072b1b00fca38c88c3c7d9141ce044e1cded3 data\createnuclear\advancements\recipes\misc\blasting\nitrogen_concentrate_for_nitrogen_concentrate.json +ad4541bf1f0994177d3f6ae830abb279c4d222f3 data\createnuclear\recipes\smelting\nitrogen_concentrate_for_nitrogen_concentrate.json +81d8cea03902c9db50f71d8327cacc72da077f9d data\createnuclear\advancements\recipes\misc\blasting\lead_ingot_for_crushed_lead.json 932672d0475e9c82d033d395ee12010e9f3d6828 data\createnuclear\recipes\blasting\lead_ingot_for_crushed_lead.json -b2ec2f955ece9110bf315a2773b70999e268f81d data\createnuclear\recipes\blasting\lead_ingot_for_lead_ore.json -ce857398ef3d501ad5724a7df00ea2a5acb4e38e data\createnuclear\advancements\recipes\misc\blasting\lead_ingot_for_raw_lead.json 09ea2c51cea1408eb4e994bb884d8bfadc2a3dc7 data\createnuclear\recipes\blasting\lead_ingot_for_raw_lead.json -81d8cea03902c9db50f71d8327cacc72da077f9d data\createnuclear\advancements\recipes\misc\blasting\lead_ingot_for_crushed_lead.json -0cb0e35b14a83085aa5868116e23fb4fb81c1234 data\createnuclear\recipes\smelting\lead_ingot_for_raw_lead.json -605ccb2acc7e944ddbce2e962af3278e47a04627 data\createnuclear\advancements\recipes\misc\blasting\raw_uranium_for_uranium_ore.json 14b3abbc5d9b1950f65ef1cc03f79a36c8820efc data\createnuclear\advancements\recipes\misc\blasting\lead_ingot_for_lead_ore.json +605ccb2acc7e944ddbce2e962af3278e47a04627 data\createnuclear\advancements\recipes\misc\blasting\raw_uranium_for_uranium_ore.json +ce857398ef3d501ad5724a7df00ea2a5acb4e38e data\createnuclear\advancements\recipes\misc\blasting\lead_ingot_for_raw_lead.json +f420fef64e8fb3ad9664b452107d468166904e7b data\createnuclear\advancements\recipes\misc\smelting\lead_ingot_for_crushed_lead.json +4121c89708b0b069ece6dd9356dd3865af602779 data\createnuclear\recipes\smelting\lead_ingot_for_lead_ore.json +0cb0e35b14a83085aa5868116e23fb4fb81c1234 data\createnuclear\recipes\smelting\lead_ingot_for_raw_lead.json +4e49562ac3d71b9c1648649ac94858df73b1b2f6 data\createnuclear\advancements\recipes\misc\smelting\nitrogen_concentrate_for_nitrogen_concentrate.json +ecfe4877ed719c02863e50a2de99a54bca0a6672 data\createnuclear\recipes\blasting\nitrogen_concentrate_for_nitrogen_concentrate.json diff --git a/src/generated/resources/.cache/e3c4d5ef571d7a8df5e371b7f64547dcbcefa47e b/src/generated/resources/.cache/e3c4d5ef571d7a8df5e371b7f64547dcbcefa47e index b96b96edf..023997aa2 100644 --- a/src/generated/resources/.cache/e3c4d5ef571d7a8df5e371b7f64547dcbcefa47e +++ b/src/generated/resources/.cache/e3c4d5ef571d7a8df5e371b7f64547dcbcefa47e @@ -1,7 +1,11 @@ -// 1.20.1 2025-08-21T15:07:03.1926638 Create Nuclear/CreateNuclear Generated Registry Entries -b0e1ee7314412507fd7346cb48b29d105f6186ad data\createnuclear\worldgen\configured_feature\uranium_ore.json -2f6b17e72a83c6515b317cf32c2cc9f7d83a591c data\createnuclear\worldgen\placed_feature\uranium_ore.json +// 1.20.1 2026-05-19T08:59:24.7895544 Create Nuclear/CreateNuclear Generated Registry Entries +2bfcf674ef549b5973603efb2306836f62a7651a data\createnuclear\worldgen\configured_feature\nitrate_ore.json b68555f371c9700aa4ecfa9370b010de8fe25b60 data\createnuclear\worldgen\configured_feature\lead_ore.json -996d44aaf9778c9dc4d1aa43a5665637ef4e179b data\createnuclear\worldgen\placed_feature\lead_ore.json -4f11c0a518c0de7857919983fc638ba551c6630a data\createnuclear\worldgen\configured_feature\striated_ores_overworld.json +b0e1ee7314412507fd7346cb48b29d105f6186ad data\createnuclear\worldgen\configured_feature\uranium_ore.json +a7c1eaed73b717684553c50e7e09eacb7ebed2d1 data\createnuclear\worldgen\placed_feature\thorium_ore.json +fb2aaefed69ac20e91415056babc79a9542a5571 data\createnuclear\worldgen\configured_feature\thorium_ore.json cc85909071cab20eacbe2c34887c6ed6a02dc51e data\createnuclear\worldgen\placed_feature\striated_ores_overworld.json +4f11c0a518c0de7857919983fc638ba551c6630a data\createnuclear\worldgen\configured_feature\striated_ores_overworld.json +996d44aaf9778c9dc4d1aa43a5665637ef4e179b data\createnuclear\worldgen\placed_feature\lead_ore.json +2f6b17e72a83c6515b317cf32c2cc9f7d83a591c data\createnuclear\worldgen\placed_feature\uranium_ore.json +7ec8294ed98a34f6018df1faf6d05c76eb662add data\createnuclear\worldgen\placed_feature\nitrate_ore.json diff --git a/src/generated/resources/.cache/efe56b4f24314a4583a23fc29486a7e2771cc1ee b/src/generated/resources/.cache/efe56b4f24314a4583a23fc29486a7e2771cc1ee index 971773896..d69dd1b51 100644 --- a/src/generated/resources/.cache/efe56b4f24314a4583a23fc29486a7e2771cc1ee +++ b/src/generated/resources/.cache/efe56b4f24314a4583a23fc29486a7e2771cc1ee @@ -1,47 +1,51 @@ -// 1.20.1 2025-08-21T15:07:03.2389626 Create Nuclear/CreateNuclear's Shapeless Recipes -0963a19bb89ddbbd20079a0c2c02f7f83697563c data\createnuclear\recipes\shapeless\raw_uranium_from_decompacting.json -59b98fa258e358bd45be744cc1c70a1d3c6003ff data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\pink_cloth.json -41106df4ff80c468a24dbabac260cb606ae1a127 data\createnuclear\advancements\recipes\misc\shapeless\lead_ingot_from_decompacting.json -ab94d1c13af2e4bef0c92b8486108940180d3f9d data\createnuclear\recipes\shapeless\cloth\light_gray_cloth.json -d02fe65c0c4f06b58fa7565d7254902de5018e8b data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\black_cloth.json -1d9bec5a7790640dea00d4fdd986251732ad4af3 data\createnuclear\advancements\recipes\misc\shapeless\steel_ingot_from_decompacting.json -cdd6de83eccb34f7bc4f38c6a92a32a74b7b3ff7 data\createnuclear\recipes\shapeless\cloth\green_cloth.json +// 1.20.1 2026-05-19T08:59:24.7935683 Create Nuclear/CreateNuclear's Shapeless Recipes +ad27b00d2e96fdcb14551f562b875941857acbd5 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\lime_cloth.json +e6ec8d394df502aa1dcebd16d1ed0275f92e9d2a data\createnuclear\recipes\shapeless\cloth\brown_cloth.json +6e2025f558ef2d3ec8f7d666db94485873307089 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\green_cloth.json +1b83c7eb41d6e8e31a52845497ecc3c8aa3481b5 data\createnuclear\advancements\recipes\misc\shapeless\raw_lead_from_decompacting.json c2759d16b714c77a3deb93d55de67e5bfa24a2f0 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\magenta_cloth.json -eb4fb3f444c01fa65c951f89f6381ddc24b917c0 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\cyan_cloth.json 54fa61448a4b09c025353426f635cf411e01f25b data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\gray_cloth.json -fa041c5a7e252bed6dc4636a45e5857d7e14dcb1 data\createnuclear\recipes\shapeless\cloth\purple_cloth.json +908db808fbda28124967010f91007ae3d32e5a86 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\red_cloth.json +8e194709b50fd2ca2ef2138b5d2528e092b45e4f data\createnuclear\recipes\shapeless\reactor_blueprint_item_clear.json +946c506e1a893e5160093c6f96d8cef59b897fa2 data\createnuclear\recipes\shapeless\lead_ingot_from_decompacting.json +cea8045f8f5fae828c41c0fae8236cb4560b3d61 data\createnuclear\recipes\shapeless\steel_ingot_from_decompacting.json d6be8ab92dd0caa9df946afb83868ce278c2c437 data\createnuclear\recipes\shapeless\cloth\pink_cloth.json -2d315d82efde22d511e339baec628babdce5767f data\createnuclear\recipes\shapeless\cloth\white_cloth.json +ee9f6e45a6c733f1ce2a702c868b60a0d96bbb13 data\createnuclear\recipes\shapeless\raw_lead_from_decompacting.json +ab94d1c13af2e4bef0c92b8486108940180d3f9d data\createnuclear\recipes\shapeless\cloth\light_gray_cloth.json +0963a19bb89ddbbd20079a0c2c02f7f83697563c data\createnuclear\recipes\shapeless\raw_uranium_from_decompacting.json 3bebcd85a99be0ddec8db66c5734232ac4bbd2ad data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\brown_cloth.json +a68afd8036c827e4ee599ad27d3ef0d4466f69b3 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\purple_cloth.json +c18ef9568592104904be5dc42f9d38ca1b347229 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\light_blue_cloth.json +e753607c45ff4f46c663da36fefc54e5a6e29e6d data\createnuclear\advancements\recipes\misc\shapeless\raw_thorium_from_decompacting.json +887cfc7346e0791157a15a2afd3dae39dac8a82d data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\white_cloth.json +d02fe65c0c4f06b58fa7565d7254902de5018e8b data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\black_cloth.json +1d9bec5a7790640dea00d4fdd986251732ad4af3 data\createnuclear\advancements\recipes\misc\shapeless\steel_ingot_from_decompacting.json +106b21181a49e73524be22319ba318719b7db0c9 data\createnuclear\recipes\shapeless\steel_nugget_from_decompacting.json +8d0f363323584bcdefe7803e9057f252b63fd12d data\createnuclear\recipes\shapeless\cloth\cyan_cloth.json +fe147f38895f8b99412c53a6f7530a1e9575003c data\createnuclear\recipes\shapeless\cloth\light_blue_cloth.json 8a53d33912301211518a4b6a371030f6fcd7532f data\createnuclear\advancements\recipes\misc\shapeless\raw_uranium_from_decompacting.json -1a375cc75482d67851f1e31863c3541f227b079b data\createnuclear\advancements\recipes\misc\shapeless\lead_nugget_from_decompacting.json +e0e977da29462d2fc41b669d1cc0a05186922c02 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\light_gray_cloth.json +c863e58a1e11f9b8a925b08b321d45f76cb96de4 data\createnuclear\recipes\shapeless\cloth\red_cloth.json bbc2714fa8586db7d42db2c1e4375accd7c264d2 data\createnuclear\recipes\shapeless\cloth\orange_cloth.json -60137204646376fdf562001f9897514412059be4 data\createnuclear\recipes\shapeless\lead_nugget_from_decompacting.json -cea8045f8f5fae828c41c0fae8236cb4560b3d61 data\createnuclear\recipes\shapeless\steel_ingot_from_decompacting.json +2cd96d4f78b81393bff120448e9a14235cf2376b data\createnuclear\recipes\shapeless\cloth\lime_cloth.json +9690e12858db1c546576ce70847e723c005f814e data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\blue_cloth.json +8f4c8eabbc94a8562646b19d969aac1df83c7456 data\createnuclear\recipes\shapeless\raw_thorium_from_decompacting.json fac232af7ba0edf6cf8e0f018cf53678457e652e data\createnuclear\recipes\shapeless\cloth\yellow_cloth.json +eb4fb3f444c01fa65c951f89f6381ddc24b917c0 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\cyan_cloth.json 7375d898c4722c94e6cbe35db70723fb58d13bf1 data\createnuclear\advancements\recipes\misc\shapeless\steel_nugget_from_decompacting.json +60137204646376fdf562001f9897514412059be4 data\createnuclear\recipes\shapeless\lead_nugget_from_decompacting.json +968c113480a37fe3c6f8f37d46528d428eaef3ad data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\yellow_cloth.json +2d315d82efde22d511e339baec628babdce5767f data\createnuclear\recipes\shapeless\cloth\white_cloth.json +86f89b475c96b9bd9f0fda3688c83126eaedd2c8 data\createnuclear\recipes\shapeless\thorium_ingot_from_decompacting.json +cdd6de83eccb34f7bc4f38c6a92a32a74b7b3ff7 data\createnuclear\recipes\shapeless\cloth\green_cloth.json +59b98fa258e358bd45be744cc1c70a1d3c6003ff data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\pink_cloth.json 32912304d34e199c89195c6f92fbc8d32d08045d data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\orange_cloth.json +ed9ab20ee581416a581c8bb9ebb773bb09b56204 data\createnuclear\advancements\recipes\misc\shapeless\thorium_ingot_from_decompacting.json +a22692736ff403a44bca8ef34b5f97a855eb0a7a data\createnuclear\recipes\shapeless\cloth\magenta_cloth.json +1713ce33da8ce2fd0145e9921cab615d31fa5e66 data\createnuclear\recipes\shapeless\cloth\black_cloth.json fff014f30a041fad100ceefcf70ed9e8a00c318c data\createnuclear\recipes\shapeless\cloth\gray_cloth.json -8d0f363323584bcdefe7803e9057f252b63fd12d data\createnuclear\recipes\shapeless\cloth\cyan_cloth.json -908db808fbda28124967010f91007ae3d32e5a86 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\red_cloth.json +41106df4ff80c468a24dbabac260cb606ae1a127 data\createnuclear\advancements\recipes\misc\shapeless\lead_ingot_from_decompacting.json 5a7e80738122d1b84d6dcdd8ab664db2fe01e47e data\createnuclear\advancements\recipes\misc\shapeless\reactor_blueprint_item_clear.json -968c113480a37fe3c6f8f37d46528d428eaef3ad data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\yellow_cloth.json -c863e58a1e11f9b8a925b08b321d45f76cb96de4 data\createnuclear\recipes\shapeless\cloth\red_cloth.json -e0e977da29462d2fc41b669d1cc0a05186922c02 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\light_gray_cloth.json -6e2025f558ef2d3ec8f7d666db94485873307089 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\green_cloth.json -1b83c7eb41d6e8e31a52845497ecc3c8aa3481b5 data\createnuclear\advancements\recipes\misc\shapeless\raw_lead_from_decompacting.json +fa041c5a7e252bed6dc4636a45e5857d7e14dcb1 data\createnuclear\recipes\shapeless\cloth\purple_cloth.json 0d0c71a2b494a34439cb2d7873b31083b07877b0 data\createnuclear\recipes\shapeless\cloth\blue_cloth.json -8e194709b50fd2ca2ef2138b5d2528e092b45e4f data\createnuclear\recipes\shapeless\reactor_blueprint_item_clear.json -106b21181a49e73524be22319ba318719b7db0c9 data\createnuclear\recipes\shapeless\steel_nugget_from_decompacting.json -9690e12858db1c546576ce70847e723c005f814e data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\blue_cloth.json -fe147f38895f8b99412c53a6f7530a1e9575003c data\createnuclear\recipes\shapeless\cloth\light_blue_cloth.json -c18ef9568592104904be5dc42f9d38ca1b347229 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\light_blue_cloth.json -887cfc7346e0791157a15a2afd3dae39dac8a82d data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\white_cloth.json -2cd96d4f78b81393bff120448e9a14235cf2376b data\createnuclear\recipes\shapeless\cloth\lime_cloth.json -1713ce33da8ce2fd0145e9921cab615d31fa5e66 data\createnuclear\recipes\shapeless\cloth\black_cloth.json -ee9f6e45a6c733f1ce2a702c868b60a0d96bbb13 data\createnuclear\recipes\shapeless\raw_lead_from_decompacting.json -a22692736ff403a44bca8ef34b5f97a855eb0a7a data\createnuclear\recipes\shapeless\cloth\magenta_cloth.json -ad27b00d2e96fdcb14551f562b875941857acbd5 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\lime_cloth.json -a68afd8036c827e4ee599ad27d3ef0d4466f69b3 data\createnuclear\advancements\recipes\building_blocks\shapeless\cloth\purple_cloth.json -e6ec8d394df502aa1dcebd16d1ed0275f92e9d2a data\createnuclear\recipes\shapeless\cloth\brown_cloth.json -946c506e1a893e5160093c6f96d8cef59b897fa2 data\createnuclear\recipes\shapeless\lead_ingot_from_decompacting.json +1a375cc75482d67851f1e31863c3541f227b079b data\createnuclear\advancements\recipes\misc\shapeless\lead_nugget_from_decompacting.json diff --git a/src/generated/resources/.cache/f48828140818f0edcf7c5d090b055d8ce4418717 b/src/generated/resources/.cache/f48828140818f0edcf7c5d090b055d8ce4418717 index f831adebc..f707881e8 100644 --- a/src/generated/resources/.cache/f48828140818f0edcf7c5d090b055d8ce4418717 +++ b/src/generated/resources/.cache/f48828140818f0edcf7c5d090b055d8ce4418717 @@ -1,5 +1,5 @@ -// 1.20.1 2025-08-21T15:07:03.1987832 Create Nuclear/CreateNuclear ArchEx compat +// 1.20.1 2026-05-19T08:59:24.7905537 Create Nuclear/CreateNuclear ArchEx compat +f2b0562dea438f3e331130c05b4a54618a8d3a83 staticdata\architecture_extensions\small_autunite_bricks.json 82930f5781f050ccd336dfedc86a4238a21fd54b staticdata\architecture_extensions\cut_autunite_bricks.json -393bc881543756a5e6feb828cc378b32a0b11d06 staticdata\architecture_extensions\polished_cut_autunite.json a6dc0af406f0f3b56e0e4ad21d21240ba3448212 staticdata\architecture_extensions\cut_autunite.json -f2b0562dea438f3e331130c05b4a54618a8d3a83 staticdata\architecture_extensions\small_autunite_bricks.json +393bc881543756a5e6feb828cc378b32a0b11d06 staticdata\architecture_extensions\polished_cut_autunite.json diff --git a/src/generated/resources/.cache/f4ef39297628ab4a0380da73a3d89fec9c61a321 b/src/generated/resources/.cache/f4ef39297628ab4a0380da73a3d89fec9c61a321 index 970b069a1..14be99652 100644 --- a/src/generated/resources/.cache/f4ef39297628ab4a0380da73a3d89fec9c61a321 +++ b/src/generated/resources/.cache/f4ef39297628ab4a0380da73a3d89fec9c61a321 @@ -1,7 +1,9 @@ -// 1.20.1 2025-08-21T15:07:03.2135616 Create Nuclear/CreateNuclair's Mechanical Crafting Recipes +// 1.20.1 2026-05-19T08:59:24.792569 Create Nuclear/CreateNuclair's Mechanical Crafting Recipes 0a1d26105f14cb2a01b18b9f050c900412f917fb data\createnuclear\recipes\mechanical_crafting\uranium_rod.json -906d44706d5949b2e2b5ef94bda210a364f528a7 data\createnuclear\recipes\mechanical_crafting\reactor_frame.json 06a71c19a7ed16464775e4e3767b092c00210a9a data\createnuclear\recipes\mechanical_crafting\reactor_core.json -29f8180140877a1482d0e80240ddeda84f8bd46a data\createnuclear\recipes\mechanical_crafting\graphite_rod.json 85f68439da9d4bb70d1308b7b64db0e30fec9e51 data\createnuclear\recipes\mechanical_crafting\reactor_controller.json +906d44706d5949b2e2b5ef94bda210a364f528a7 data\createnuclear\recipes\mechanical_crafting\reactor_frame.json 3288fbf9a31dd2ca64b1ea3fceed6551cdae0ad6 data\createnuclear\recipes\mechanical_crafting\reactor_cooler.json +8c54a31da5c5b76cd5036a1bfda4b74a112afe16 data\createnuclear\recipes\mechanical_crafting\reactor_alarm.json +af50bab9d3d0c105bd2a94d6be26666e6edb6aa7 data\createnuclear\recipes\mechanical_crafting\thorium_rod.json +29f8180140877a1482d0e80240ddeda84f8bd46a data\createnuclear\recipes\mechanical_crafting\graphite_rod.json diff --git a/src/generated/resources/assets/createnuclear/blockstates/deepslate_nitrate_ore.json b/src/generated/resources/assets/createnuclear/blockstates/deepslate_nitrate_ore.json new file mode 100644 index 000000000..0b75136ad --- /dev/null +++ b/src/generated/resources/assets/createnuclear/blockstates/deepslate_nitrate_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createnuclear:block/deepslate_nitrate_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/blockstates/deepslate_thorium_ore.json b/src/generated/resources/assets/createnuclear/blockstates/deepslate_thorium_ore.json new file mode 100644 index 000000000..9effc25d3 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/blockstates/deepslate_thorium_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createnuclear:block/deepslate_thorium_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/blockstates/nitrate_ore.json b/src/generated/resources/assets/createnuclear/blockstates/nitrate_ore.json new file mode 100644 index 000000000..2f14544eb --- /dev/null +++ b/src/generated/resources/assets/createnuclear/blockstates/nitrate_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createnuclear:block/nitrate_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/blockstates/nitrogen.json b/src/generated/resources/assets/createnuclear/blockstates/nitrogen.json new file mode 100644 index 000000000..113fb23f2 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/blockstates/nitrogen.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createnuclear:block/nitrogen" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/blockstates/raw_thorium_block.json b/src/generated/resources/assets/createnuclear/blockstates/raw_thorium_block.json new file mode 100644 index 000000000..626939bb5 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/blockstates/raw_thorium_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createnuclear:block/raw_thorium_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/blockstates/reactor_alarm.json b/src/generated/resources/assets/createnuclear/blockstates/reactor_alarm.json new file mode 100644 index 000000000..1a4f20323 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/blockstates/reactor_alarm.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createnuclear:block/reactor_alarm" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/blockstates/thorium.json b/src/generated/resources/assets/createnuclear/blockstates/thorium.json new file mode 100644 index 000000000..007ce08d8 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/blockstates/thorium.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createnuclear:block/thorium" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/blockstates/thorium_block.json b/src/generated/resources/assets/createnuclear/blockstates/thorium_block.json new file mode 100644 index 000000000..cb8fa6377 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/blockstates/thorium_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createnuclear:block/thorium_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/blockstates/thorium_ore.json b/src/generated/resources/assets/createnuclear/blockstates/thorium_ore.json new file mode 100644 index 000000000..c976ca170 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/blockstates/thorium_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createnuclear:block/thorium_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/lang/en_ud.json b/src/generated/resources/assets/createnuclear/lang/en_ud.json index 15044dfeb..b830024a8 100644 --- a/src/generated/resources/assets/createnuclear/lang/en_ud.json +++ b/src/generated/resources/assets/createnuclear/lang/en_ud.json @@ -68,6 +68,8 @@ "block.createnuclear.cut_autunite_stairs": "sɹıɐʇS ǝʇıunʇnⱯ ʇnƆ", "block.createnuclear.cut_autunite_wall": "ןןɐM ǝʇıunʇnⱯ ʇnƆ", "block.createnuclear.deepslate_lead_ore": "ǝɹO pɐǝꞀ ǝʇɐןsdǝǝᗡ", + "block.createnuclear.deepslate_nitrate_ore": "ǝɹO ǝʇɐɹʇıN ǝʇɐןsdǝǝᗡ", + "block.createnuclear.deepslate_thorium_ore": "ǝɹO ɯnıɹoɥ⟘ ǝʇɐןsdǝǝᗡ", "block.createnuclear.deepslate_uranium_ore": "ǝɹO ɯnıuɐɹ∩ ǝʇɐןsdǝǝᗡ", "block.createnuclear.enriched_soul_soil": "ןıoS ןnoS pǝɥɔıɹuƎ", "block.createnuclear.enriched_soul_soil.tooltip.summary": "˙‾ǝɹıɟ uǝǝɹb‾ ɐ ǝʞɐɯ oʇ ʇsnظ ɹo ǝɹıɟdɯɐɔ pǝɥɔıɹuǝ ‾ʇɟɐɹɔ‾ oʇ pǝsn ǝq uɐƆ˙‾ǝɹıɟ pǝɥɔıɹuǝ‾ ǝʇɐǝɹɔ oɥʍ ʞɔoןq ‾ʎןuo‾ ǝɥ⟘", @@ -76,12 +78,16 @@ "block.createnuclear.layered_autunite": "ǝʇıunʇnⱯ pǝɹǝʎɐꞀ", "block.createnuclear.lead_block": "ʞɔoןᗺ pɐǝꞀ", "block.createnuclear.lead_ore": "ǝɹO pɐǝꞀ", + "block.createnuclear.nitrate_ore": "ǝɹO ǝʇɐɹʇıN", + "block.createnuclear.nitrogen": "uǝboɹʇıN", "block.createnuclear.polished_cut_autunite": "ǝʇıunʇnⱯ ʇnƆ pǝɥsıןoԀ", "block.createnuclear.polished_cut_autunite_slab": "qɐןS ǝʇıunʇnⱯ ʇnƆ pǝɥsıןoԀ", "block.createnuclear.polished_cut_autunite_stairs": "sɹıɐʇS ǝʇıunʇnⱯ ʇnƆ pǝɥsıןoԀ", "block.createnuclear.polished_cut_autunite_wall": "ןןɐM ǝʇıunʇnⱯ ʇnƆ pǝɥsıןoԀ", "block.createnuclear.raw_lead_block": "ʞɔoןᗺ pɐǝꞀ ʍɐᴚ", + "block.createnuclear.raw_thorium_block": "ʞɔoןᗺ ɯnıɹoɥ⟘ ʍɐᴚ", "block.createnuclear.raw_uranium_block": "ʞɔoןᗺ ɯnıuɐɹ∩ ʍɐᴚ", + "block.createnuclear.reactor_alarm": "ɯɹɐןⱯ ɹoʇɔɐǝᴚ", "block.createnuclear.reactor_casing": "buısɐƆ ɹoʇɔɐǝᴚ", "block.createnuclear.reactor_casing.tooltip.summary": "‾ɹoʇɔɐǝɹ‾ ǝɥʇ pןınq oʇ pǝsn ‾ʞɔoןᗺ‾", "block.createnuclear.reactor_controller": "ɹǝןןoɹʇuoƆ ɹoʇɔɐǝᴚ", @@ -108,6 +114,9 @@ "block.createnuclear.small_autunite_brick_wall": "ןןɐM ʞɔıɹᗺ ǝʇıunʇnⱯ ןןɐɯS", "block.createnuclear.small_autunite_bricks": "sʞɔıɹᗺ ǝʇıunʇnⱯ ןןɐɯS", "block.createnuclear.steel_block": "ʞɔoןᗺ ןǝǝʇS", + "block.createnuclear.thorium": "ɯnıɹoɥ⟘", + "block.createnuclear.thorium_block": "ʞɔoןᗺ ɯnıɹoɥ⟘", + "block.createnuclear.thorium_ore": "ǝɹO ɯnıɹoɥ⟘", "block.createnuclear.uranium": "ɯnıuɐɹ∩", "block.createnuclear.uranium_ore": "ǝɹO ɯnıuɐɹ∩", "create.recipe.fan_enriched.fan": "ǝɹıℲ pǝɥɔıɹuƎ puıɥǝq uɐℲ", @@ -140,7 +149,10 @@ "emi.category.createnuclear.fan_enriched": "buıɥɔıɹuƎ ʞןnᗺ", "entity.createnuclear.irradiated_cat": "ʇɐƆ pǝʇɐıpɐɹɹI", "entity.createnuclear.irradiated_chicken": "uǝʞɔıɥƆ pǝʇɐıpɐɹɹI", + "entity.createnuclear.irradiated_cow": "ʍoƆ pǝʇɐıpɐɹɹI", "entity.createnuclear.irradiated_wolf": "ɟןoM pǝʇɐıpɐɹɹI", + "fluid.createnuclear.nitrogen": "uǝboɹʇıN pınbıꞀ", + "fluid.createnuclear.thorium": "ɯnıɹoɥ⟘ pınbıꞀ", "fluid.createnuclear.uranium": "ɯnıuɐɹ∩ pınbıꞀ", "gui.createnuclear.reactor_controller.title": "ɹǝןןoɹʇuoƆ ɹoʇɔɐǝᴚ", "gui.createnuclear.reactor_input.title": "ǝbɐɹoʇS ʇnduI ɹoʇɔɐǝᴚ", @@ -160,6 +172,7 @@ "item.createnuclear.cat_irradiated_spawn_egg": "bbƎ uʍɐdS ʇɐƆ pǝʇɐıpɐɹɹI", "item.createnuclear.chicken_irradiated_spawn_egg": "bbƎ uʍɐdS uǝʞɔıɥƆ pǝʇɐıpɐɹɹI", "item.createnuclear.coal_dust": "ʇsnᗡ ןɐoƆ", + "item.createnuclear.cooled_nitrogen_concentrate": "ǝʇɐɹʇuǝɔuoƆ uǝboɹʇıN pǝןooƆ", "item.createnuclear.cyan_anti_radiation_chestplate": "ǝʇɐןdʇsǝɥƆ uoıʇɐıpɐᴚ ıʇuⱯ uɐʎƆ", "item.createnuclear.cyan_anti_radiation_helmet": "ʇǝɯןǝH uoıʇɐıpɐᴚ ıʇuⱯ uɐʎƆ", "item.createnuclear.cyan_anti_radiation_leggings": "sbuıbbǝꞀ uoıʇɐıpɐᴚ ıʇuⱯ uɐʎƆ", @@ -194,6 +207,9 @@ "item.createnuclear.magenta_anti_radiation_helmet": "ʇǝɯןǝH uoıʇɐıpɐᴚ ıʇuⱯ ɐʇuǝbɐW", "item.createnuclear.magenta_anti_radiation_leggings": "sbuıbbǝꞀ uoıʇɐıpɐᴚ ıʇuⱯ ɐʇuǝbɐW", "item.createnuclear.magenta_cloth": "ɥʇoןƆ ɐʇuǝbɐW", + "item.createnuclear.nitrate": "ǝʇɐɹʇıN", + "item.createnuclear.nitrogen_bucket": "ʇǝʞɔnᗺ uǝboɹʇıN", + "item.createnuclear.nitrogen_concentrate": "ǝʇɐɹʇuǝɔuoƆ uǝboɹʇıN", "item.createnuclear.orange_anti_radiation_chestplate": "ǝʇɐןdʇsǝɥƆ uoıʇɐıpɐᴚ ıʇuⱯ ǝbuɐɹO", "item.createnuclear.orange_anti_radiation_helmet": "ʇǝɯןǝH uoıʇɐıpɐᴚ ıʇuⱯ ǝbuɐɹO", "item.createnuclear.orange_anti_radiation_leggings": "sbuıbbǝꞀ uoıʇɐıpɐᴚ ıʇuⱯ ǝbuɐɹO", @@ -207,6 +223,7 @@ "item.createnuclear.purple_anti_radiation_leggings": "sbuıbbǝꞀ uoıʇɐıpɐᴚ ıʇuⱯ ǝןdɹnԀ", "item.createnuclear.purple_cloth": "ɥʇoןƆ ǝןdɹnԀ", "item.createnuclear.raw_lead": "pɐǝꞀ ʍɐᴚ", + "item.createnuclear.raw_thorium": "ɯnıɹoɥ⟘ ʍɐᴚ", "item.createnuclear.raw_uranium": "ɯnıuɐɹ∩ ʍɐᴚ", "item.createnuclear.reactor_blueprint_item": "ʇuıɹdǝnןᗺ ɹoʇɔɐǝᴚ", "item.createnuclear.reactor_blueprint_item.tooltip.behaviour1": "˙ʇı ןןıɟ oʇ ʞɔıןɔ ‾ʇɥbıᴚ‾", @@ -220,6 +237,11 @@ "item.createnuclear.red_cloth": "ɥʇoןƆ pǝᴚ", "item.createnuclear.steel_ingot": "ʇobuI ןǝǝʇS", "item.createnuclear.steel_nugget": "ʇǝbbnN ןǝǝʇS", + "item.createnuclear.thorium_bucket": "ʇǝʞɔnᗺ ɯnıɹoɥ⟘", + "item.createnuclear.thorium_dust": "ʇsnᗡ ɯnıɹoɥ⟘", + "item.createnuclear.thorium_ingot": "ʇobuI ɯnıɹoɥ⟘", + "item.createnuclear.thorium_nugget": "ʇǝbbnN ɯnıɹoɥ⟘", + "item.createnuclear.thorium_rod": "poᴚ ɯnıɹoɥ⟘", "item.createnuclear.uranium_bucket": "ʇǝʞɔnᗺ ɯnıuɐɹ∩", "item.createnuclear.uranium_powder": "ɹǝpʍoԀ ɯnıuɐɹ∩", "item.createnuclear.uranium_rod": "poᴚ ɯnıuɐɹ∩", diff --git a/src/generated/resources/assets/createnuclear/lang/en_us.json b/src/generated/resources/assets/createnuclear/lang/en_us.json index e61b8a568..442b45eb3 100644 --- a/src/generated/resources/assets/createnuclear/lang/en_us.json +++ b/src/generated/resources/assets/createnuclear/lang/en_us.json @@ -68,6 +68,8 @@ "block.createnuclear.cut_autunite_stairs": "Cut Autunite Stairs", "block.createnuclear.cut_autunite_wall": "Cut Autunite Wall", "block.createnuclear.deepslate_lead_ore": "Deepslate Lead Ore", + "block.createnuclear.deepslate_nitrate_ore": "Deepslate Nitrate Ore", + "block.createnuclear.deepslate_thorium_ore": "Deepslate Thorium Ore", "block.createnuclear.deepslate_uranium_ore": "Deepslate Uranium Ore", "block.createnuclear.enriched_soul_soil": "Enriched Soul Soil", "block.createnuclear.enriched_soul_soil.tooltip.summary": "The _only_ block who create _enriched fire_.Can be used to _craft_ enriched campfire or just to make a _green fire_.", @@ -76,12 +78,16 @@ "block.createnuclear.layered_autunite": "Layered Autunite", "block.createnuclear.lead_block": "Lead Block", "block.createnuclear.lead_ore": "Lead Ore", + "block.createnuclear.nitrate_ore": "Nitrate Ore", + "block.createnuclear.nitrogen": "Nitrogen", "block.createnuclear.polished_cut_autunite": "Polished Cut Autunite", "block.createnuclear.polished_cut_autunite_slab": "Polished Cut Autunite Slab", "block.createnuclear.polished_cut_autunite_stairs": "Polished Cut Autunite Stairs", "block.createnuclear.polished_cut_autunite_wall": "Polished Cut Autunite Wall", "block.createnuclear.raw_lead_block": "Raw Lead Block", + "block.createnuclear.raw_thorium_block": "Raw Thorium Block", "block.createnuclear.raw_uranium_block": "Raw Uranium Block", + "block.createnuclear.reactor_alarm": "Reactor Alarm", "block.createnuclear.reactor_casing": "Reactor Casing", "block.createnuclear.reactor_casing.tooltip.summary": "_Block_ used to build the _reactor_", "block.createnuclear.reactor_controller": "Reactor Controller", @@ -108,6 +114,9 @@ "block.createnuclear.small_autunite_brick_wall": "Small Autunite Brick Wall", "block.createnuclear.small_autunite_bricks": "Small Autunite Bricks", "block.createnuclear.steel_block": "Steel Block", + "block.createnuclear.thorium": "Thorium", + "block.createnuclear.thorium_block": "Thorium Block", + "block.createnuclear.thorium_ore": "Thorium Ore", "block.createnuclear.uranium": "Uranium", "block.createnuclear.uranium_ore": "Uranium Ore", "create.recipe.fan_enriched.fan": "Fan behind Enriched Fire", @@ -140,7 +149,10 @@ "emi.category.createnuclear.fan_enriched": "Bulk Enriching", "entity.createnuclear.irradiated_cat": "Irradiated Cat", "entity.createnuclear.irradiated_chicken": "Irradiated Chicken", + "entity.createnuclear.irradiated_cow": "Irradiated Cow", "entity.createnuclear.irradiated_wolf": "Irradiated Wolf", + "fluid.createnuclear.nitrogen": "Liquid Nitrogen", + "fluid.createnuclear.thorium": "Liquid Thorium", "fluid.createnuclear.uranium": "Liquid Uranium", "gui.createnuclear.reactor_controller.title": "Reactor Controller", "gui.createnuclear.reactor_input.title": "Reactor Input Storage", @@ -160,6 +172,7 @@ "item.createnuclear.cat_irradiated_spawn_egg": "Irradiated Cat Spawn Egg", "item.createnuclear.chicken_irradiated_spawn_egg": "Irradiated Chicken Spawn Egg", "item.createnuclear.coal_dust": "Coal Dust", + "item.createnuclear.cooled_nitrogen_concentrate": "Cooled Nitrogen Concentrate", "item.createnuclear.cyan_anti_radiation_chestplate": "Cyan Anti Radiation Chestplate", "item.createnuclear.cyan_anti_radiation_helmet": "Cyan Anti Radiation Helmet", "item.createnuclear.cyan_anti_radiation_leggings": "Cyan Anti Radiation Leggings", @@ -194,6 +207,9 @@ "item.createnuclear.magenta_anti_radiation_helmet": "Magenta Anti Radiation Helmet", "item.createnuclear.magenta_anti_radiation_leggings": "Magenta Anti Radiation Leggings", "item.createnuclear.magenta_cloth": "Magenta Cloth", + "item.createnuclear.nitrate": "Nitrate", + "item.createnuclear.nitrogen_bucket": "Nitrogen Bucket", + "item.createnuclear.nitrogen_concentrate": "Nitrogen Concentrate", "item.createnuclear.orange_anti_radiation_chestplate": "Orange Anti Radiation Chestplate", "item.createnuclear.orange_anti_radiation_helmet": "Orange Anti Radiation Helmet", "item.createnuclear.orange_anti_radiation_leggings": "Orange Anti Radiation Leggings", @@ -207,6 +223,7 @@ "item.createnuclear.purple_anti_radiation_leggings": "Purple Anti Radiation Leggings", "item.createnuclear.purple_cloth": "Purple Cloth", "item.createnuclear.raw_lead": "Raw Lead", + "item.createnuclear.raw_thorium": "Raw Thorium", "item.createnuclear.raw_uranium": "Raw Uranium", "item.createnuclear.reactor_blueprint_item": "Reactor Blueprint", "item.createnuclear.reactor_blueprint_item.tooltip.behaviour1": "_Right_ click to fill it.", @@ -220,6 +237,11 @@ "item.createnuclear.red_cloth": "Red Cloth", "item.createnuclear.steel_ingot": "Steel Ingot", "item.createnuclear.steel_nugget": "Steel Nugget", + "item.createnuclear.thorium_bucket": "Thorium Bucket", + "item.createnuclear.thorium_dust": "Thorium Dust", + "item.createnuclear.thorium_ingot": "Thorium Ingot", + "item.createnuclear.thorium_nugget": "Thorium Nugget", + "item.createnuclear.thorium_rod": "Thorium Rod", "item.createnuclear.uranium_bucket": "Uranium Bucket", "item.createnuclear.uranium_powder": "Uranium Powder", "item.createnuclear.uranium_rod": "Uranium Rod", diff --git a/src/generated/resources/assets/createnuclear/models/block/deepslate_nitrate_ore.json b/src/generated/resources/assets/createnuclear/models/block/deepslate_nitrate_ore.json new file mode 100644 index 000000000..7af5e2f28 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/block/deepslate_nitrate_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createnuclear:block/deepslate_nitrate_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/block/deepslate_thorium_ore.json b/src/generated/resources/assets/createnuclear/models/block/deepslate_thorium_ore.json new file mode 100644 index 000000000..8ba7752a6 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/block/deepslate_thorium_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createnuclear:block/deepslate_thorium_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/block/nitrate_ore.json b/src/generated/resources/assets/createnuclear/models/block/nitrate_ore.json new file mode 100644 index 000000000..575456042 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/block/nitrate_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createnuclear:block/nitrate_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/block/nitrogen.json b/src/generated/resources/assets/createnuclear/models/block/nitrogen.json new file mode 100644 index 000000000..a48ca03d1 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/block/nitrogen.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "createnuclear:fluid/nitrogen_still" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/block/raw_thorium_block.json b/src/generated/resources/assets/createnuclear/models/block/raw_thorium_block.json new file mode 100644 index 000000000..9301beef3 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/block/raw_thorium_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createnuclear:block/raw_thorium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/block/reactor_alarm.json b/src/generated/resources/assets/createnuclear/models/block/reactor_alarm.json new file mode 100644 index 000000000..e78ea0f3b --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/block/reactor_alarm.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createnuclear:block/reactor_alarm" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/block/thorium.json b/src/generated/resources/assets/createnuclear/models/block/thorium.json new file mode 100644 index 000000000..5a6ef097c --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/block/thorium.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "createnuclear:fluid/thorium_still" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/block/thorium_block.json b/src/generated/resources/assets/createnuclear/models/block/thorium_block.json new file mode 100644 index 000000000..1295cc9f7 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/block/thorium_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createnuclear:block/thorium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/block/thorium_ore.json b/src/generated/resources/assets/createnuclear/models/block/thorium_ore.json new file mode 100644 index 000000000..bc948d220 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/block/thorium_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createnuclear:block/thorium_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/cooled_nitrogen_concentrate.json b/src/generated/resources/assets/createnuclear/models/item/cooled_nitrogen_concentrate.json new file mode 100644 index 000000000..e122350fb --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/cooled_nitrogen_concentrate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/cooled_nitrogen_concentrate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/deepslate_nitrate_ore.json b/src/generated/resources/assets/createnuclear/models/item/deepslate_nitrate_ore.json new file mode 100644 index 000000000..d0f8ebb37 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/deepslate_nitrate_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createnuclear:block/deepslate_nitrate_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/deepslate_thorium_ore.json b/src/generated/resources/assets/createnuclear/models/item/deepslate_thorium_ore.json new file mode 100644 index 000000000..c7a358aea --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/deepslate_thorium_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createnuclear:block/deepslate_thorium_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/nitrate.json b/src/generated/resources/assets/createnuclear/models/item/nitrate.json new file mode 100644 index 000000000..b5e84b43b --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/nitrate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/nitrate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/nitrate_ore.json b/src/generated/resources/assets/createnuclear/models/item/nitrate_ore.json new file mode 100644 index 000000000..47e5d8735 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/nitrate_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createnuclear:block/nitrate_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/nitrogen_bucket.json b/src/generated/resources/assets/createnuclear/models/item/nitrogen_bucket.json new file mode 100644 index 000000000..8b1e966d2 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/nitrogen_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/nitrogen_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/nitrogen_concentrate.json b/src/generated/resources/assets/createnuclear/models/item/nitrogen_concentrate.json new file mode 100644 index 000000000..80476cb24 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/nitrogen_concentrate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/nitrogen_concentrate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/raw_thorium.json b/src/generated/resources/assets/createnuclear/models/item/raw_thorium.json new file mode 100644 index 000000000..82bb96b89 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/raw_thorium.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/raw_thorium" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/raw_thorium_block.json b/src/generated/resources/assets/createnuclear/models/item/raw_thorium_block.json new file mode 100644 index 000000000..b75c1958f --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/raw_thorium_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createnuclear:block/raw_thorium_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/reactor_alarm.json b/src/generated/resources/assets/createnuclear/models/item/reactor_alarm.json new file mode 100644 index 000000000..889a06efb --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/reactor_alarm.json @@ -0,0 +1,3 @@ +{ + "parent": "createnuclear:block/reactor_alarm" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/thorium_block.json b/src/generated/resources/assets/createnuclear/models/item/thorium_block.json new file mode 100644 index 000000000..94d3fcb85 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/thorium_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createnuclear:block/thorium_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/thorium_bucket.json b/src/generated/resources/assets/createnuclear/models/item/thorium_bucket.json new file mode 100644 index 000000000..2a48a3431 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/thorium_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/thorium_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/thorium_dust.json b/src/generated/resources/assets/createnuclear/models/item/thorium_dust.json new file mode 100644 index 000000000..7c6ab4d85 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/thorium_dust.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/thorium_dust" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/thorium_ingot.json b/src/generated/resources/assets/createnuclear/models/item/thorium_ingot.json new file mode 100644 index 000000000..3cfe5d773 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/thorium_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/thorium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/thorium_nugget.json b/src/generated/resources/assets/createnuclear/models/item/thorium_nugget.json new file mode 100644 index 000000000..3389988a9 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/thorium_nugget.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/thorium_nugget" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/thorium_ore.json b/src/generated/resources/assets/createnuclear/models/item/thorium_ore.json new file mode 100644 index 000000000..c0ce70ce8 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/thorium_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createnuclear:block/thorium_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createnuclear/models/item/thorium_rod.json b/src/generated/resources/assets/createnuclear/models/item/thorium_rod.json new file mode 100644 index 000000000..9f31f8ad1 --- /dev/null +++ b/src/generated/resources/assets/createnuclear/models/item/thorium_rod.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createnuclear:item/thorium_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/blocks/nitrate_ores.json b/src/generated/resources/data/c/tags/blocks/nitrate_ores.json new file mode 100644 index 000000000..26fea5065 --- /dev/null +++ b/src/generated/resources/data/c/tags/blocks/nitrate_ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:deepslate_nitrate_ore", + "createnuclear:nitrate_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/blocks/ores.json b/src/generated/resources/data/c/tags/blocks/ores.json index 39f7de7fc..a5ed690dd 100644 --- a/src/generated/resources/data/c/tags/blocks/ores.json +++ b/src/generated/resources/data/c/tags/blocks/ores.json @@ -3,7 +3,11 @@ "values": [ "createnuclear:deepslate_uranium_ore", "createnuclear:uranium_ore", + "createnuclear:deepslate_nitrate_ore", + "createnuclear:nitrate_ore", "createnuclear:deepslate_lead_ore", - "createnuclear:lead_ore" + "createnuclear:lead_ore", + "createnuclear:deepslate_thorium_ore", + "createnuclear:thorium_ore" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/blocks/ores_in_ground/deepslate.json b/src/generated/resources/data/c/tags/blocks/ores_in_ground/deepslate.json index 2ec5b63f2..a9ec4f748 100644 --- a/src/generated/resources/data/c/tags/blocks/ores_in_ground/deepslate.json +++ b/src/generated/resources/data/c/tags/blocks/ores_in_ground/deepslate.json @@ -2,6 +2,8 @@ "replace": false, "values": [ "createnuclear:deepslate_uranium_ore", - "createnuclear:deepslate_lead_ore" + "createnuclear:deepslate_nitrate_ore", + "createnuclear:deepslate_lead_ore", + "createnuclear:deepslate_thorium_ore" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/blocks/ores_in_ground/stone.json b/src/generated/resources/data/c/tags/blocks/ores_in_ground/stone.json index 9beda380a..15dc02c1e 100644 --- a/src/generated/resources/data/c/tags/blocks/ores_in_ground/stone.json +++ b/src/generated/resources/data/c/tags/blocks/ores_in_ground/stone.json @@ -2,6 +2,8 @@ "replace": false, "values": [ "createnuclear:uranium_ore", - "createnuclear:lead_ore" + "createnuclear:nitrate_ore", + "createnuclear:lead_ore", + "createnuclear:thorium_ore" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/blocks/storage_blocks/raw_thorium.json b/src/generated/resources/data/c/tags/blocks/storage_blocks/raw_thorium.json new file mode 100644 index 000000000..d1cfd879b --- /dev/null +++ b/src/generated/resources/data/c/tags/blocks/storage_blocks/raw_thorium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "createnuclear:raw_thorium_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/blocks/storage_blocks/thorium.json b/src/generated/resources/data/c/tags/blocks/storage_blocks/thorium.json new file mode 100644 index 000000000..2e4c8dcf9 --- /dev/null +++ b/src/generated/resources/data/c/tags/blocks/storage_blocks/thorium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "createnuclear:thorium_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/blocks/thorium_ores.json b/src/generated/resources/data/c/tags/blocks/thorium_ores.json new file mode 100644 index 000000000..a93fa2d8d --- /dev/null +++ b/src/generated/resources/data/c/tags/blocks/thorium_ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:deepslate_thorium_ore", + "createnuclear:thorium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/fluids/nitrogen.json b/src/generated/resources/data/c/tags/fluids/nitrogen.json new file mode 100644 index 000000000..1161d83e0 --- /dev/null +++ b/src/generated/resources/data/c/tags/fluids/nitrogen.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#createnuclear:nitrogen" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/fluids/thorium.json b/src/generated/resources/data/c/tags/fluids/thorium.json new file mode 100644 index 000000000..c20f3b20d --- /dev/null +++ b/src/generated/resources/data/c/tags/fluids/thorium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#createnuclear:thorium" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/items/dusts.json b/src/generated/resources/data/c/tags/items/dusts.json index 5d96240c9..5dbafbcec 100644 --- a/src/generated/resources/data/c/tags/items/dusts.json +++ b/src/generated/resources/data/c/tags/items/dusts.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "createnuclear:coal_dust" + "createnuclear:coal_dust", + "createnuclear:thorium_dust" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/items/ingots.json b/src/generated/resources/data/c/tags/items/ingots.json index b5c4df1e6..d29ee735c 100644 --- a/src/generated/resources/data/c/tags/items/ingots.json +++ b/src/generated/resources/data/c/tags/items/ingots.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "createnuclear:thorium_ingot", "createnuclear:steel_ingot", "createnuclear:lead_ingot" ] diff --git a/src/generated/resources/data/c/tags/items/ingots/thorium.json b/src/generated/resources/data/c/tags/items/ingots/thorium.json new file mode 100644 index 000000000..9985ac1da --- /dev/null +++ b/src/generated/resources/data/c/tags/items/ingots/thorium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "createnuclear:thorium_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/items/nitrate_ores.json b/src/generated/resources/data/c/tags/items/nitrate_ores.json new file mode 100644 index 000000000..26fea5065 --- /dev/null +++ b/src/generated/resources/data/c/tags/items/nitrate_ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:deepslate_nitrate_ore", + "createnuclear:nitrate_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/items/nuggets.json b/src/generated/resources/data/c/tags/items/nuggets.json index 66c3482da..e782ead4d 100644 --- a/src/generated/resources/data/c/tags/items/nuggets.json +++ b/src/generated/resources/data/c/tags/items/nuggets.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "createnuclear:thorium_nugget", "createnuclear:lead_nugget", "createnuclear:steel_nugget" ] diff --git a/src/generated/resources/data/c/tags/items/nuggets/thorium.json b/src/generated/resources/data/c/tags/items/nuggets/thorium.json new file mode 100644 index 000000000..c1d2f4970 --- /dev/null +++ b/src/generated/resources/data/c/tags/items/nuggets/thorium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "createnuclear:thorium_nugget" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/items/rods.json b/src/generated/resources/data/c/tags/items/rods.json index 39115e3a4..75c478896 100644 --- a/src/generated/resources/data/c/tags/items/rods.json +++ b/src/generated/resources/data/c/tags/items/rods.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "createnuclear:thorium_rod", "createnuclear:uranium_rod", "createnuclear:graphite_rod" ] diff --git a/src/generated/resources/data/c/tags/items/thorium_dusts.json b/src/generated/resources/data/c/tags/items/thorium_dusts.json new file mode 100644 index 000000000..120f1834b --- /dev/null +++ b/src/generated/resources/data/c/tags/items/thorium_dusts.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "createnuclear:thorium_dust" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/items/thorium_ores.json b/src/generated/resources/data/c/tags/items/thorium_ores.json new file mode 100644 index 000000000..a93fa2d8d --- /dev/null +++ b/src/generated/resources/data/c/tags/items/thorium_ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:deepslate_thorium_ore", + "createnuclear:thorium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/advancements/recipes/misc/blasting/nitrogen_concentrate_for_nitrogen_concentrate.json b/src/generated/resources/data/createnuclear/advancements/recipes/misc/blasting/nitrogen_concentrate_for_nitrogen_concentrate.json new file mode 100644 index 000000000..54f00179d --- /dev/null +++ b/src/generated/resources/data/createnuclear/advancements/recipes/misc/blasting/nitrogen_concentrate_for_nitrogen_concentrate.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "createnuclear:nitrate" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createnuclear:blasting/nitrogen_concentrate_for_nitrogen_concentrate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createnuclear:blasting/nitrogen_concentrate_for_nitrogen_concentrate" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/advancements/recipes/misc/crafting/materials/raw_thorium_block.json b/src/generated/resources/data/createnuclear/advancements/recipes/misc/crafting/materials/raw_thorium_block.json new file mode 100644 index 000000000..00882b06e --- /dev/null +++ b/src/generated/resources/data/createnuclear/advancements/recipes/misc/crafting/materials/raw_thorium_block.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "createnuclear:raw_thorium" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createnuclear:crafting/materials/raw_thorium_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createnuclear:crafting/materials/raw_thorium_block" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/advancements/recipes/misc/crafting/materials/thorium_block_from_compacting.json b/src/generated/resources/data/createnuclear/advancements/recipes/misc/crafting/materials/thorium_block_from_compacting.json new file mode 100644 index 000000000..b2e3d78c3 --- /dev/null +++ b/src/generated/resources/data/createnuclear/advancements/recipes/misc/crafting/materials/thorium_block_from_compacting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "createnuclear:thorium_ingot" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createnuclear:crafting/materials/thorium_block_from_compacting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createnuclear:crafting/materials/thorium_block_from_compacting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/advancements/recipes/misc/crafting/materials/thorium_ingot_from_compacting.json b/src/generated/resources/data/createnuclear/advancements/recipes/misc/crafting/materials/thorium_ingot_from_compacting.json new file mode 100644 index 000000000..2d6a59efb --- /dev/null +++ b/src/generated/resources/data/createnuclear/advancements/recipes/misc/crafting/materials/thorium_ingot_from_compacting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "createnuclear:thorium_nugget" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createnuclear:crafting/materials/thorium_ingot_from_compacting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createnuclear:crafting/materials/thorium_ingot_from_compacting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/advancements/recipes/misc/shapeless/raw_thorium_from_decompacting.json b/src/generated/resources/data/createnuclear/advancements/recipes/misc/shapeless/raw_thorium_from_decompacting.json new file mode 100644 index 000000000..e3374f374 --- /dev/null +++ b/src/generated/resources/data/createnuclear/advancements/recipes/misc/shapeless/raw_thorium_from_decompacting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "createnuclear:raw_thorium" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createnuclear:shapeless/raw_thorium_from_decompacting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createnuclear:shapeless/raw_thorium_from_decompacting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/advancements/recipes/misc/shapeless/thorium_ingot_from_decompacting.json b/src/generated/resources/data/createnuclear/advancements/recipes/misc/shapeless/thorium_ingot_from_decompacting.json new file mode 100644 index 000000000..f8f3e2f7f --- /dev/null +++ b/src/generated/resources/data/createnuclear/advancements/recipes/misc/shapeless/thorium_ingot_from_decompacting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "createnuclear:thorium_ingot" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createnuclear:shapeless/thorium_ingot_from_decompacting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createnuclear:shapeless/thorium_ingot_from_decompacting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/advancements/recipes/misc/smelting/nitrogen_concentrate_for_nitrogen_concentrate.json b/src/generated/resources/data/createnuclear/advancements/recipes/misc/smelting/nitrogen_concentrate_for_nitrogen_concentrate.json new file mode 100644 index 000000000..09ddb6b1f --- /dev/null +++ b/src/generated/resources/data/createnuclear/advancements/recipes/misc/smelting/nitrogen_concentrate_for_nitrogen_concentrate.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": [ + "createnuclear:nitrate" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createnuclear:smelting/nitrogen_concentrate_for_nitrogen_concentrate" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createnuclear:smelting/nitrogen_concentrate_for_nitrogen_concentrate" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/loot_tables/blocks/deepslate_nitrate_ore.json b/src/generated/resources/data/createnuclear/loot_tables/blocks/deepslate_nitrate_ore.json new file mode 100644 index 000000000..68e7454f0 --- /dev/null +++ b/src/generated/resources/data/createnuclear/loot_tables/blocks/deepslate_nitrate_ore.json @@ -0,0 +1,50 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createnuclear:deepslate_nitrate_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createnuclear:nitrate" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "createnuclear:blocks/deepslate_nitrate_ore" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/loot_tables/blocks/deepslate_thorium_ore.json b/src/generated/resources/data/createnuclear/loot_tables/blocks/deepslate_thorium_ore.json new file mode 100644 index 000000000..5761a5175 --- /dev/null +++ b/src/generated/resources/data/createnuclear/loot_tables/blocks/deepslate_thorium_ore.json @@ -0,0 +1,50 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createnuclear:deepslate_thorium_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createnuclear:raw_thorium" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "createnuclear:blocks/deepslate_thorium_ore" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/loot_tables/blocks/nitrate_ore.json b/src/generated/resources/data/createnuclear/loot_tables/blocks/nitrate_ore.json new file mode 100644 index 000000000..fc8fa8380 --- /dev/null +++ b/src/generated/resources/data/createnuclear/loot_tables/blocks/nitrate_ore.json @@ -0,0 +1,50 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createnuclear:nitrate_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createnuclear:raw_uranium" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "createnuclear:blocks/nitrate_ore" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/loot_tables/blocks/raw_thorium_block.json b/src/generated/resources/data/createnuclear/loot_tables/blocks/raw_thorium_block.json new file mode 100644 index 000000000..cb40bb6af --- /dev/null +++ b/src/generated/resources/data/createnuclear/loot_tables/blocks/raw_thorium_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createnuclear:raw_thorium_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "createnuclear:blocks/raw_thorium_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/loot_tables/blocks/reactor_alarm.json b/src/generated/resources/data/createnuclear/loot_tables/blocks/reactor_alarm.json new file mode 100644 index 000000000..3a46c7a09 --- /dev/null +++ b/src/generated/resources/data/createnuclear/loot_tables/blocks/reactor_alarm.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createnuclear:reactor_alarm" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "createnuclear:blocks/reactor_alarm" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/loot_tables/blocks/thorium_block.json b/src/generated/resources/data/createnuclear/loot_tables/blocks/thorium_block.json new file mode 100644 index 000000000..346c8684d --- /dev/null +++ b/src/generated/resources/data/createnuclear/loot_tables/blocks/thorium_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createnuclear:thorium_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "createnuclear:blocks/thorium_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/loot_tables/blocks/thorium_ore.json b/src/generated/resources/data/createnuclear/loot_tables/blocks/thorium_ore.json new file mode 100644 index 000000000..e8bd67036 --- /dev/null +++ b/src/generated/resources/data/createnuclear/loot_tables/blocks/thorium_ore.json @@ -0,0 +1,50 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createnuclear:thorium_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createnuclear:raw_thorium" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "createnuclear:blocks/thorium_ore" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/loot_tables/entities/irradiated_cow.json b/src/generated/resources/data/createnuclear/loot_tables/entities/irradiated_cow.json new file mode 100644 index 000000000..43e6419a1 --- /dev/null +++ b/src/generated/resources/data/createnuclear/loot_tables/entities/irradiated_cow.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "createnuclear:entities/irradiated_cow" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/blasting/nitrogen_concentrate_for_nitrogen_concentrate.json b/src/generated/resources/data/createnuclear/recipes/blasting/nitrogen_concentrate_for_nitrogen_concentrate.json new file mode 100644 index 000000000..5394b287d --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/blasting/nitrogen_concentrate_for_nitrogen_concentrate.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.1, + "ingredient": { + "item": "createnuclear:nitrate" + }, + "result": "createnuclear:nitrogen_concentrate" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/blasting/raw_uranium_for_uranium_ore.json b/src/generated/resources/data/createnuclear/recipes/blasting/raw_uranium_for_uranium_ore.json index c170a2b90..47dcf5c88 100644 --- a/src/generated/resources/data/createnuclear/recipes/blasting/raw_uranium_for_uranium_ore.json +++ b/src/generated/resources/data/createnuclear/recipes/blasting/raw_uranium_for_uranium_ore.json @@ -4,7 +4,7 @@ "cookingtime": 100, "experience": 0.1, "ingredient": { - "tag": "createnuclear:uranium_ores" + "tag": "createnuclear:disabled_uranium_ores" }, "result": "createnuclear:raw_uranium" } \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/compacting/thorium_fluid_to_thorium_ingot.json b/src/generated/resources/data/createnuclear/recipes/compacting/thorium_fluid_to_thorium_ingot.json new file mode 100644 index 000000000..a12aaa21a --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/compacting/thorium_fluid_to_thorium_ingot.json @@ -0,0 +1,15 @@ +{ + "type": "create:compacting", + "ingredients": [ + { + "amount": 8100, + "fluid": "createnuclear:thorium", + "nbt": {} + } + ], + "results": [ + { + "item": "createnuclear:thorium_ingot" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/crafting/materials/raw_thorium_block.json b/src/generated/resources/data/createnuclear/recipes/crafting/materials/raw_thorium_block.json new file mode 100644 index 000000000..d46caa757 --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/crafting/materials/raw_thorium_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "R": { + "item": "createnuclear:raw_thorium" + } + }, + "pattern": [ + "RRR", + "RRR", + "RRR" + ], + "result": { + "item": "createnuclear:raw_thorium_block" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/crafting/materials/thorium_block_from_compacting.json b/src/generated/resources/data/createnuclear/recipes/crafting/materials/thorium_block_from_compacting.json new file mode 100644 index 000000000..6ccdc747f --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/crafting/materials/thorium_block_from_compacting.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "c:ingots/thorium" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "item": "createnuclear:thorium_block" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/crafting/materials/thorium_ingot_from_compacting.json b/src/generated/resources/data/createnuclear/recipes/crafting/materials/thorium_ingot_from_compacting.json new file mode 100644 index 000000000..73ab0d338 --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/crafting/materials/thorium_ingot_from_compacting.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "tag": "c:nuggets/thorium" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "item": "createnuclear:thorium_ingot" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/crushing/raw_lead.json b/src/generated/resources/data/createnuclear/recipes/crushing/raw_lead.json index 7cb6b6f19..db996a01b 100644 --- a/src/generated/resources/data/createnuclear/recipes/crushing/raw_lead.json +++ b/src/generated/resources/data/createnuclear/recipes/crushing/raw_lead.json @@ -9,6 +9,11 @@ "results": [ { "item": "create:crushed_raw_lead" + }, + { + "chance": 0.75, + "count": 18, + "item": "create:experience_nugget" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/crushing/raw_thorium.json b/src/generated/resources/data/createnuclear/recipes/crushing/raw_thorium.json new file mode 100644 index 000000000..0db2ec01f --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/crushing/raw_thorium.json @@ -0,0 +1,15 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "createnuclear:raw_thorium" + } + ], + "processingTime": 250, + "results": [ + { + "chance": 0.5, + "item": "createnuclear:thorium_dust" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/crushing/crushed_raw_uranium.json b/src/generated/resources/data/createnuclear/recipes/crushing/raw_uranium.json similarity index 81% rename from src/generated/resources/data/createnuclear/recipes/crushing/crushed_raw_uranium.json rename to src/generated/resources/data/createnuclear/recipes/crushing/raw_uranium.json index 208b0ae6e..12b9d5851 100644 --- a/src/generated/resources/data/createnuclear/recipes/crushing/crushed_raw_uranium.json +++ b/src/generated/resources/data/createnuclear/recipes/crushing/raw_uranium.json @@ -2,7 +2,7 @@ "type": "create:crushing", "ingredients": [ { - "item": "create:crushed_raw_uranium" + "item": "createnuclear:raw_uranium" } ], "processingTime": 250, diff --git a/src/generated/resources/data/createnuclear/recipes/crushing/raw_uranium_block.json b/src/generated/resources/data/createnuclear/recipes/crushing/raw_uranium_block.json index 430ce2e3f..6ac87f68a 100644 --- a/src/generated/resources/data/createnuclear/recipes/crushing/raw_uranium_block.json +++ b/src/generated/resources/data/createnuclear/recipes/crushing/raw_uranium_block.json @@ -13,7 +13,7 @@ }, { "chance": 0.75, - "count": 18, + "count": 2, "item": "create:experience_nugget" } ] diff --git a/src/generated/resources/data/createnuclear/recipes/mechanical_crafting/reactor_alarm.json b/src/generated/resources/data/createnuclear/recipes/mechanical_crafting/reactor_alarm.json new file mode 100644 index 000000000..6f4f5c67d --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/mechanical_crafting/reactor_alarm.json @@ -0,0 +1,28 @@ +{ + "type": "create:mechanical_crafting", + "acceptMirrored": true, + "key": { + "C": { + "item": "minecraft:clock" + }, + "N": { + "item": "minecraft:note_block" + }, + "R": { + "item": "minecraft:repeater" + }, + "S": { + "item": "createnuclear:steel_block" + } + }, + "pattern": [ + "SSSSS", + "SNRNS", + "SRCRS", + "SNRNS", + "SSSSS" + ], + "result": { + "item": "createnuclear:reactor_alarm" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/mechanical_crafting/thorium_rod.json b/src/generated/resources/data/createnuclear/recipes/mechanical_crafting/thorium_rod.json new file mode 100644 index 000000000..9b22c3ff4 --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/mechanical_crafting/thorium_rod.json @@ -0,0 +1,19 @@ +{ + "type": "create:mechanical_crafting", + "acceptMirrored": true, + "key": { + "T": { + "item": "createnuclear:thorium_ingot" + } + }, + "pattern": [ + " T", + " T ", + " T ", + " T ", + "T " + ], + "result": { + "item": "createnuclear:thorium_rod" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/mixing/liquid_nitrogen.json b/src/generated/resources/data/createnuclear/recipes/mixing/liquid_nitrogen.json new file mode 100644 index 000000000..4b09ccc1b --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/mixing/liquid_nitrogen.json @@ -0,0 +1,18 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "item": "createnuclear:cooled_nitrogen_concentrate" + }, + { + "item": "minecraft:ice" + } + ], + "processingTime": 20, + "results": [ + { + "amount": 1000, + "fluid": "createnuclear:nitrogen" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/mixing/nitrate.json b/src/generated/resources/data/createnuclear/recipes/mixing/nitrate.json new file mode 100644 index 000000000..570a9ff29 --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/mixing/nitrate.json @@ -0,0 +1,19 @@ +{ + "type": "create:mixing", + "ingredients": [ + { + "tag": "create:stone_types/limestone" + } + ], + "processingTime": 250, + "results": [ + { + "chance": 0.6, + "item": "createnuclear:nitrate" + }, + { + "chance": 0.4, + "item": "createnuclear:lead_nugget" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/mixing/thorium_fluid.json b/src/generated/resources/data/createnuclear/recipes/mixing/thorium_fluid.json new file mode 100644 index 000000000..2337d2d77 --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/mixing/thorium_fluid.json @@ -0,0 +1,15 @@ +{ + "type": "create:mixing", + "heatRequirement": "heated", + "ingredients": [ + { + "item": "createnuclear:thorium_dust" + } + ], + "results": [ + { + "amount": 2025, + "fluid": "createnuclear:thorium" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/mixing/uranium_fluid.json b/src/generated/resources/data/createnuclear/recipes/mixing/uranium_fluid.json index 9d36836c8..bb4c9c835 100644 --- a/src/generated/resources/data/createnuclear/recipes/mixing/uranium_fluid.json +++ b/src/generated/resources/data/createnuclear/recipes/mixing/uranium_fluid.json @@ -1,5 +1,6 @@ { "type": "create:mixing", + "heatRequirement": "heated", "ingredients": [ { "item": "createnuclear:uranium_powder" diff --git a/src/generated/resources/data/createnuclear/recipes/shapeless/raw_thorium_from_decompacting.json b/src/generated/resources/data/createnuclear/recipes/shapeless/raw_thorium_from_decompacting.json new file mode 100644 index 000000000..dd797c679 --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/shapeless/raw_thorium_from_decompacting.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "createnuclear:raw_thorium_block" + } + ], + "result": { + "count": 9, + "item": "createnuclear:raw_thorium" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/shapeless/thorium_ingot_from_decompacting.json b/src/generated/resources/data/createnuclear/recipes/shapeless/thorium_ingot_from_decompacting.json new file mode 100644 index 000000000..e6418161b --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/shapeless/thorium_ingot_from_decompacting.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "createnuclear:thorium_block" + } + ], + "result": { + "count": 9, + "item": "createnuclear:thorium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/smelting/nitrogen_concentrate_for_nitrogen_concentrate.json b/src/generated/resources/data/createnuclear/recipes/smelting/nitrogen_concentrate_for_nitrogen_concentrate.json new file mode 100644 index 000000000..ebc4487cb --- /dev/null +++ b/src/generated/resources/data/createnuclear/recipes/smelting/nitrogen_concentrate_for_nitrogen_concentrate.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "createnuclear:nitrate" + }, + "result": "createnuclear:nitrogen_concentrate" +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/smelting/raw_uranium_for_uranium_ore.json b/src/generated/resources/data/createnuclear/recipes/smelting/raw_uranium_for_uranium_ore.json index f415f6865..0a9046273 100644 --- a/src/generated/resources/data/createnuclear/recipes/smelting/raw_uranium_for_uranium_ore.json +++ b/src/generated/resources/data/createnuclear/recipes/smelting/raw_uranium_for_uranium_ore.json @@ -4,7 +4,7 @@ "cookingtime": 200, "experience": 0.1, "ingredient": { - "tag": "createnuclear:uranium_ores" + "tag": "createnuclear:disabled_uranium_ores" }, "result": "createnuclear:raw_uranium" } \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/recipes/splashing/crushed_raw_lead.json b/src/generated/resources/data/createnuclear/recipes/splashing/crushed_raw_lead.json index b17bbe302..7d2b23708 100644 --- a/src/generated/resources/data/createnuclear/recipes/splashing/crushed_raw_lead.json +++ b/src/generated/resources/data/createnuclear/recipes/splashing/crushed_raw_lead.json @@ -9,10 +9,6 @@ { "count": 9, "item": "createnuclear:lead_nugget" - }, - { - "chance": 0.5, - "item": "create:experience_nugget" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/tags/blocks/nitrate_ores.json b/src/generated/resources/data/createnuclear/tags/blocks/nitrate_ores.json new file mode 100644 index 000000000..26fea5065 --- /dev/null +++ b/src/generated/resources/data/createnuclear/tags/blocks/nitrate_ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:deepslate_nitrate_ore", + "createnuclear:nitrate_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/tags/blocks/reactor_casing.json b/src/generated/resources/data/createnuclear/tags/blocks/reactor_casing.json new file mode 100644 index 000000000..95966e967 --- /dev/null +++ b/src/generated/resources/data/createnuclear/tags/blocks/reactor_casing.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:reinforced_glass", + "createnuclear:reactor_casing" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/tags/blocks/thorium_ores.json b/src/generated/resources/data/createnuclear/tags/blocks/thorium_ores.json new file mode 100644 index 000000000..a93fa2d8d --- /dev/null +++ b/src/generated/resources/data/createnuclear/tags/blocks/thorium_ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:deepslate_thorium_ore", + "createnuclear:thorium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/tags/entity_types/irradiated_immune.json b/src/generated/resources/data/createnuclear/tags/entity_types/irradiated_immune.json index abc7ad12a..f78e7e006 100644 --- a/src/generated/resources/data/createnuclear/tags/entity_types/irradiated_immune.json +++ b/src/generated/resources/data/createnuclear/tags/entity_types/irradiated_immune.json @@ -3,6 +3,7 @@ "values": [ "createnuclear:irradiated_cat", "createnuclear:irradiated_chicken", + "createnuclear:irradiated_cow", "createnuclear:irradiated_wolf" ] } \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/tags/fluids/nitrogen.json b/src/generated/resources/data/createnuclear/tags/fluids/nitrogen.json new file mode 100644 index 000000000..4b0018a67 --- /dev/null +++ b/src/generated/resources/data/createnuclear/tags/fluids/nitrogen.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:flowing_nitrogen", + "createnuclear:nitrogen" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/tags/fluids/thorium.json b/src/generated/resources/data/createnuclear/tags/fluids/thorium.json new file mode 100644 index 000000000..ee1b4086e --- /dev/null +++ b/src/generated/resources/data/createnuclear/tags/fluids/thorium.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:flowing_thorium", + "createnuclear:thorium" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/tags/items/fuel.json b/src/generated/resources/data/createnuclear/tags/items/fuel.json index ced19cbc6..271cd7ad6 100644 --- a/src/generated/resources/data/createnuclear/tags/items/fuel.json +++ b/src/generated/resources/data/createnuclear/tags/items/fuel.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "createnuclear:thorium_rod", "createnuclear:uranium_rod" ] } \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/tags/items/nitrate_ores.json b/src/generated/resources/data/createnuclear/tags/items/nitrate_ores.json new file mode 100644 index 000000000..26fea5065 --- /dev/null +++ b/src/generated/resources/data/createnuclear/tags/items/nitrate_ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:deepslate_nitrate_ore", + "createnuclear:nitrate_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/tags/items/thorium_ores.json b/src/generated/resources/data/createnuclear/tags/items/thorium_ores.json new file mode 100644 index 000000000..a93fa2d8d --- /dev/null +++ b/src/generated/resources/data/createnuclear/tags/items/thorium_ores.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "createnuclear:deepslate_thorium_ore", + "createnuclear:thorium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/worldgen/configured_feature/nitrate_ore.json b/src/generated/resources/data/createnuclear/worldgen/configured_feature/nitrate_ore.json new file mode 100644 index 000000000..060aa2e86 --- /dev/null +++ b/src/generated/resources/data/createnuclear/worldgen/configured_feature/nitrate_ore.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 7, + "targets": [ + { + "state": { + "Name": "createnuclear:nitrate_ore", + "Properties": { + "lit": "false" + } + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "createnuclear:deepslate_nitrate_ore", + "Properties": { + "lit": "false" + } + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/worldgen/configured_feature/thorium_ore.json b/src/generated/resources/data/createnuclear/worldgen/configured_feature/thorium_ore.json new file mode 100644 index 000000000..132e2ed28 --- /dev/null +++ b/src/generated/resources/data/createnuclear/worldgen/configured_feature/thorium_ore.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 7, + "targets": [ + { + "state": { + "Name": "createnuclear:thorium_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "createnuclear:deepslate_thorium_ore" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/worldgen/placed_feature/nitrate_ore.json b/src/generated/resources/data/createnuclear/worldgen/placed_feature/nitrate_ore.json new file mode 100644 index 000000000..b51f90e8c --- /dev/null +++ b/src/generated/resources/data/createnuclear/worldgen/placed_feature/nitrate_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "createnuclear:nitrate_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 64 + }, + "min_inclusive": { + "absolute": -64 + } + } + }, + { + "type": "createnuclear:config_filter" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createnuclear/worldgen/placed_feature/thorium_ore.json b/src/generated/resources/data/createnuclear/worldgen/placed_feature/thorium_ore.json new file mode 100644 index 000000000..ea7061622 --- /dev/null +++ b/src/generated/resources/data/createnuclear/worldgen/placed_feature/thorium_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "createnuclear:thorium_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 32 + }, + "min_inclusive": { + "absolute": -64 + } + } + }, + { + "type": "createnuclear:config_filter" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index 73740c2cc..de29cbbd8 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -3,12 +3,19 @@ "values": [ "createnuclear:deepslate_uranium_ore", "createnuclear:uranium_ore", + "createnuclear:deepslate_nitrate_ore", + "createnuclear:nitrate_ore", "createnuclear:deepslate_lead_ore", "createnuclear:lead_ore", + "createnuclear:deepslate_thorium_ore", + "createnuclear:thorium_ore", "createnuclear:raw_uranium_block", "createnuclear:raw_lead_block", + "createnuclear:raw_thorium_block", "createnuclear:lead_block", + "createnuclear:thorium_block", "createnuclear:steel_block", + "createnuclear:reactor_alarm", "createnuclear:reactor_output", "createnuclear:enriching_campfire", "createnuclear:reactor_controller", diff --git a/src/generated/resources/data/minecraft/tags/blocks/needs_diamond_tool.json b/src/generated/resources/data/minecraft/tags/blocks/needs_diamond_tool.json index dfbb35abb..7a0e8f8d7 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/needs_diamond_tool.json +++ b/src/generated/resources/data/minecraft/tags/blocks/needs_diamond_tool.json @@ -3,7 +3,12 @@ "values": [ "createnuclear:deepslate_uranium_ore", "createnuclear:uranium_ore", + "createnuclear:deepslate_nitrate_ore", + "createnuclear:nitrate_ore", + "createnuclear:deepslate_thorium_ore", + "createnuclear:thorium_ore", "createnuclear:raw_uranium_block", + "createnuclear:raw_thorium_block", "createnuclear:enriched_soul_soil", "createnuclear:reactor_output", "createnuclear:reactor_controller", diff --git a/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json b/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json index 336fa54c2..a0f179372 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json +++ b/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json @@ -3,6 +3,8 @@ "values": [ "createnuclear:deepslate_uranium_ore", "createnuclear:uranium_ore", + "createnuclear:deepslate_nitrate_ore", + "createnuclear:nitrate_ore", "createnuclear:deepslate_lead_ore", "createnuclear:lead_ore", "createnuclear:raw_lead_block" diff --git a/src/generated/resources/data/minecraft/tags/fluids/lava.json b/src/generated/resources/data/minecraft/tags/fluids/lava.json index 5c710e29d..e8c257c3a 100644 --- a/src/generated/resources/data/minecraft/tags/fluids/lava.json +++ b/src/generated/resources/data/minecraft/tags/fluids/lava.json @@ -1,6 +1,8 @@ { "replace": false, "values": [ - "#createnuclear:uranium" + "#createnuclear:uranium", + "#createnuclear:thorium", + "#createnuclear:nitrogen" ] } \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/CNBlockEntityTypes.java b/src/main/java/net/nuclearteam/createnuclear/CNBlockEntityTypes.java index 9dc73db79..2600e2aff 100644 --- a/src/main/java/net/nuclearteam/createnuclear/CNBlockEntityTypes.java +++ b/src/main/java/net/nuclearteam/createnuclear/CNBlockEntityTypes.java @@ -1,14 +1,21 @@ package net.nuclearteam.createnuclear; import com.simibubi.create.content.kinetics.base.HalfShaftInstance; +import com.simibubi.create.foundation.data.SharedProperties; import com.tterrag.registrate.util.entry.BlockEntityEntry; +import com.tterrag.registrate.util.entry.BlockEntry; +import net.minecraft.world.level.block.Block; import net.nuclearteam.createnuclear.content.enriching.campfire.EnrichingCampfireBlockEntity; +import net.nuclearteam.createnuclear.content.multiblock.alarm.ReactorAlarmEntity; import net.nuclearteam.createnuclear.content.multiblock.casing.ReactorCasingBlockEntity; import net.nuclearteam.createnuclear.content.multiblock.controller.ReactorControllerBlockEntity; import net.nuclearteam.createnuclear.content.multiblock.core.ReactorCoreBlockEntity; import net.nuclearteam.createnuclear.content.multiblock.input.ReactorInputEntity; import net.nuclearteam.createnuclear.content.multiblock.output.ReactorOutputEntity; import net.nuclearteam.createnuclear.content.multiblock.output.ReactorOutputRenderer; +import net.nuclearteam.createnuclear.content.test.TestBlockEntity; + +import static com.simibubi.create.foundation.data.TagGen.pickaxeOnly; public class CNBlockEntityTypes { @@ -29,6 +36,11 @@ public class CNBlockEntityTypes { .renderer(() -> ReactorOutputRenderer::new) .register(); + public static final BlockEntityEntry REACTOR_ALARM = + CreateNuclear.REGISTRATE.blockEntity("reactor_alarm", ReactorAlarmEntity::new) + .validBlocks(CNBlocks.REACTOR_ALARM) + .register(); + public static final BlockEntityEntry ENRICHING_CAMPFIRE_BLOCK = CreateNuclear.REGISTRATE.blockEntity("enriching_campfire_block", EnrichingCampfireBlockEntity::new) .validBlocks(CNBlocks.ENRICHING_CAMPFIRE) @@ -44,7 +56,6 @@ public class CNBlockEntityTypes { .validBlocks(CNBlocks.REACTOR_CORE) .register(); - public static void register() { } } diff --git a/src/main/java/net/nuclearteam/createnuclear/CNBlocks.java b/src/main/java/net/nuclearteam/createnuclear/CNBlocks.java index b21d57fc7..aa40a6b5a 100644 --- a/src/main/java/net/nuclearteam/createnuclear/CNBlocks.java +++ b/src/main/java/net/nuclearteam/createnuclear/CNBlocks.java @@ -28,6 +28,7 @@ import net.nuclearteam.createnuclear.content.enriching.campfire.EnrichingCampfireBlock; import net.nuclearteam.createnuclear.content.enriching.fire.EnrichingFireBlock; import net.nuclearteam.createnuclear.content.multiblock.casing.ReactorCasingBlock; +import net.nuclearteam.createnuclear.content.multiblock.alarm.ReactorAlarm; import net.nuclearteam.createnuclear.content.multiblock.controller.ReactorControllerBlock; import net.nuclearteam.createnuclear.content.multiblock.controller.ReactorControllerGenerator; import net.nuclearteam.createnuclear.content.multiblock.cooler.ReactorCoolerBlock; @@ -39,6 +40,7 @@ import net.nuclearteam.createnuclear.content.multiblock.output.ReactorOutput; import net.nuclearteam.createnuclear.content.multiblock.output.ReactorOutputGenerator; import net.nuclearteam.createnuclear.content.multiblock.reinforced.ReinforcedGlassBlock; +import net.nuclearteam.createnuclear.content.nitrateOre.NitrateOreBlock; import net.nuclearteam.createnuclear.content.uraniumOre.UraniumOreBlock; import net.nuclearteam.createnuclear.CNTags.CNBlockTags; import net.nuclearteam.createnuclear.CNTags.CNItemTags; @@ -97,6 +99,52 @@ public class CNBlocks { .build() .register(); + public static final BlockEntry DEEPSLATE_NITRATE_ORE = + CreateNuclear.REGISTRATE.block("deepslate_nitrate_ore", NitrateOreBlock::new) + .initialProperties(CNBlocks::getDiamondOre) + .properties(NitrateOreBlock.litBlockEmission()) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + lt.applyExplosionDecay(b, LootItem.lootTableItem(CNItems.NITRATE) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)) + )))) + .tag(BlockTags.NEEDS_DIAMOND_TOOL, + BlockTags.NEEDS_IRON_TOOL, + CNTags.forgeBlockTag("ores"), + CNTags.forgeBlockTag("ores_in_ground/deepslate"), + CNTags.forgeBlockTag("nitrate_ores"), + CNBlockTags.NITRATE_ORES.tag + ) + .item() + .tag(CNItemTags.NITRATE_ORES.tag, + CNTags.forgeItemTag("nitrate_ores")) + .build() + .register(); + + public static final BlockEntry NITRATE_ORE = + CreateNuclear.REGISTRATE.block("nitrate_ore", NitrateOreBlock::new) + .initialProperties(SharedProperties::stone) + .properties(NitrateOreBlock.litBlockEmission()) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + lt.applyExplosionDecay(b, LootItem.lootTableItem(CNItems.RAW_URANIUM) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)) + )))) + .tag(BlockTags.NEEDS_DIAMOND_TOOL, + BlockTags.NEEDS_IRON_TOOL, + CNTags.forgeBlockTag("ores"), + CNTags.forgeBlockTag("ores_in_ground/stone"), + CNTags.forgeBlockTag("nitrate_ores"), + CNBlockTags.NITRATE_ORES.tag + ) + .item() + .tag(CNItemTags.NITRATE_ORES.tag, + CNTags.forgeItemTag("nitrate_ores")) + .build() + .register(); + public static final BlockEntry DEEPSLATE_LEAD_ORE = CreateNuclear.REGISTRATE.block("deepslate_lead_ore", Block::new) .initialProperties(CNBlocks::getDiamondOre) @@ -139,6 +187,49 @@ public class CNBlocks { .build() .register(); + public static final BlockEntry DEEPSLATE_THORIUM_ORE = + CreateNuclear.REGISTRATE.block("deepslate_thorium_ore", Block::new) + .initialProperties(CNBlocks::getDiamondOre) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + lt.applyExplosionDecay(b, LootItem.lootTableItem(CNItems.RAW_THORIUM) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)) + )))) + .tag(BlockTags.NEEDS_DIAMOND_TOOL, + CNTags.forgeBlockTag("ores"), + CNTags.forgeBlockTag("ores_in_ground/deepslate"), + CNTags.forgeBlockTag("thorium_ores"), + CNBlockTags.THORIUM_ORES.tag + ) + .item() + .tag(CNItemTags.THORIUM_ORES.tag, + CNTags.forgeItemTag("thorium_ores")) + .build() + .register(); + + public static final BlockEntry THORIUM_ORE = + CreateNuclear.REGISTRATE.block("thorium_ore", Block::new) + .initialProperties(SharedProperties::stone) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + lt.applyExplosionDecay(b, LootItem.lootTableItem(CNItems.RAW_THORIUM) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)) + )))) + .tag(BlockTags.NEEDS_DIAMOND_TOOL, + CNTags.forgeBlockTag("ores"), + CNTags.forgeBlockTag("ores_in_ground/stone"), + CNTags.forgeBlockTag("thorium_ores"), + CNBlockTags.THORIUM_ORES.tag + ) + .item() + .tag(CNItemTags.THORIUM_ORES.tag, + CNTags.forgeItemTag("thorium_ores")) + .build() + .register(); + + public static final BlockEntry RAW_URANIUM_BLOCK = CreateNuclear.REGISTRATE.block("raw_uranium_block", Block::new) .initialProperties(SharedProperties::stone) @@ -157,6 +248,15 @@ public class CNBlocks { CNTags.forgeBlockTag("storage_blocks/raw_lead")) .register(); + public static final BlockEntry RAW_THORIUM_BLOCK = + CreateNuclear.REGISTRATE.block("raw_thorium_block", Block::new) + .initialProperties(SharedProperties::stone) + .simpleItem() + .transform(pickaxeOnly()) + .tag(BlockTags.NEEDS_DIAMOND_TOOL, + CNTags.forgeBlockTag("storage_blocks/raw_thorium")) + .register(); + public static final BlockEntry LEAD_BLOCK = CreateNuclear.REGISTRATE.block("lead_block", Block::new) .initialProperties(SharedProperties::stone) @@ -165,6 +265,14 @@ public class CNBlocks { .tag(CNTags.forgeBlockTag("storage_blocks/lead")) .register(); + public static final BlockEntry THORIUM_BLOCK = + CreateNuclear.REGISTRATE.block("thorium_block", Block::new) + .initialProperties(SharedProperties::stone) + .simpleItem() + .transform(pickaxeOnly()) + .tag(CNTags.forgeBlockTag("storage_blocks/thorium")) + .register(); + public static final BlockEntry STEEL_BLOCK = CreateNuclear.REGISTRATE.block("steel_block", Block::new) .initialProperties(SharedProperties::stone) @@ -173,6 +281,14 @@ public class CNBlocks { .tag(CNTags.forgeBlockTag("storage_blocks/steel")) .register(); + public static final BlockEntry REACTOR_ALARM = + CreateNuclear.REGISTRATE.block("reactor_alarm", ReactorAlarm::new) + .properties(p -> p.explosionResistance(3F).destroyTime(4F)) + .initialProperties(SharedProperties::stone) + .simpleItem() + .transform(pickaxeOnly()) + .register(); + public static final BlockEntry ENRICHED_SOUL_SOIL = CreateNuclear.REGISTRATE.block("enriched_soul_soil", Block::new) .initialProperties(CNBlocks::getSoulSoil) @@ -248,12 +364,16 @@ public class CNBlocks { .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(CNSpriteShifts.REACTOR_GLASS))) .onRegister(casingConnectivity((block,cc) -> cc.makeCasing(block, CNSpriteShifts.REACTOR_GLASS))) .loot(RegistrateBlockLootTables::dropWhenSilkTouch) - .tag(CNTags.forgeBlockTag("glass_blocks")) + .tag( + CNTags.forgeBlockTag("glass_blocks"), + CNBlockTags.REACTOR_CASING.tag + ) .item() .tag(CNTags.forgeItemTag("glass_blocks")) .build() .register(); + public static final BlockEntry REACTOR_OUTPUT = CreateNuclear.REGISTRATE.block("reactor_output", ReactorOutput::new) .properties(p -> p.explosionResistance(6F).destroyTime(4F)) @@ -364,7 +484,7 @@ public class CNBlocks { .build())) .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(CNSpriteShifts.REACTOR_CASING))) .onRegister(casingConnectivity((block,cc) -> cc.makeCasing(block, CNSpriteShifts.REACTOR_CASING))) - .tag(BlockTags.NEEDS_DIAMOND_TOOL) + .tag(BlockTags.NEEDS_DIAMOND_TOOL, CNBlockTags.REACTOR_CASING.tag) .simpleItem() .transform(pickaxeOnly()) .register(); @@ -418,9 +538,6 @@ public class CNBlocks { .transform(customItemModel()) .register(); - /*public static final BlockEntry TEST_EVENT_TRIGGER_BLOCK = CreateNuclear.REGISTRATE.block("test_event_trigger_block", EventTriggerBlock::new) - .simpleItem() - .register();*/ public static Block getSoulSoil() { return Blocks.SOUL_SOIL; diff --git a/src/main/java/net/nuclearteam/createnuclear/CNEntityType.java b/src/main/java/net/nuclearteam/createnuclear/CNEntityType.java index 54628c806..e9f002a73 100644 --- a/src/main/java/net/nuclearteam/createnuclear/CNEntityType.java +++ b/src/main/java/net/nuclearteam/createnuclear/CNEntityType.java @@ -15,6 +15,9 @@ import net.nuclearteam.createnuclear.content.contraptions.irradiated.chicken.IrradiatedChicken; import net.nuclearteam.createnuclear.content.contraptions.irradiated.chicken.IrradiatedChickenModel; import net.nuclearteam.createnuclear.content.contraptions.irradiated.chicken.IrradiatedChickenRenderer; +import net.nuclearteam.createnuclear.content.contraptions.irradiated.cow.IrradiatedCow; +import net.nuclearteam.createnuclear.content.contraptions.irradiated.cow.IrradiatedCowModel; +import net.nuclearteam.createnuclear.content.contraptions.irradiated.cow.IrradiatedCowRenderer; import net.nuclearteam.createnuclear.content.contraptions.irradiated.wolf.IrradiatedWolf; import net.nuclearteam.createnuclear.content.contraptions.irradiated.wolf.IrradiatedWolfModel; import net.nuclearteam.createnuclear.content.contraptions.irradiated.wolf.IrradiatedWolfRenderer; @@ -41,6 +44,16 @@ public class CNEntityType { .attributes(IrradiatedChicken::createAttributes) .register(); + public static final EntityEntry IRRADIATED_COW = CreateNuclear.REGISTRATE + .entity("irradiated_cow", IrradiatedCow::new, MobCategory.CREATURE) + .loot((tb, e) -> tb.add(e, LootTable.lootTable())) + .tag(CNTags.CNEntityTypeTags.IRRADIATED_IMMUNE.tag) + .properties(b -> b.dimensions(EntityDimensions.scalable(0.4f, 0.7f))) + .lang("Irradiated Cow") + .renderer(() -> IrradiatedCowRenderer::new) + .attributes(IrradiatedCow::createAttributes) + .register(); + public static final EntityEntry IRRADIATED_WOLF = CreateNuclear.REGISTRATE .entity("irradiated_wolf", IrradiatedWolf::new, MobCategory.CREATURE) .loot((tb, e) -> tb.add(e, LootTable.lootTable())) @@ -57,6 +70,7 @@ public static void registerModelLayer() { EntityModelLayerRegistry.registerModelLayer(CNModelLayers.IRRADIATED_CAT, IrradiatedCatModel::createBodyLayer); EntityModelLayerRegistry.registerModelLayer(CNModelLayers.IRRADIATED_CHICKEN, IrradiatedChickenModel::createBodyLayer); EntityModelLayerRegistry.registerModelLayer(CNModelLayers.IRRADIATED_WOLF, IrradiatedWolfModel::getTexturedModelData); + EntityModelLayerRegistry.registerModelLayer(CNModelLayers.IRRADIATED_COW, IrradiatedCowModel::createBodyLayer); } public static void registerCNMod() { diff --git a/src/main/java/net/nuclearteam/createnuclear/CNFluids.java b/src/main/java/net/nuclearteam/createnuclear/CNFluids.java index e09296639..b3d1383ef 100644 --- a/src/main/java/net/nuclearteam/createnuclear/CNFluids.java +++ b/src/main/java/net/nuclearteam/createnuclear/CNFluids.java @@ -31,6 +31,26 @@ public class CNFluids { .tag(CNFluidTags.URANIUM.tag) .register(); + public static final FluidEntry THORIUM = CreateNuclear.REGISTRATE.fluid("thorium", CreateNuclear.asResource("fluid/thorium_still"), CreateNuclear.asResource("fluid/thorium_flow")) + .fluidAttributes(() -> new CreateNuclearAttributeHandler("fluid.createnuclear.thorium", 2500, 1600)) + .fluidProperties(p -> p.levelDecreasePerBlock(2) + .tickRate(15) + .flowSpeed(6) + .blastResistance(100f)) + .lang("Liquid Thorium") + .tag(CNFluidTags.THORIUM.tag) + .register(); + + public static final FluidEntry LIQUID_NITROGEN = CreateNuclear.REGISTRATE.fluid("nitrogen", CreateNuclear.asResource("fluid/nitrogen_still"), CreateNuclear.asResource("fluid/nitrogen_flow")) + .fluidAttributes(() -> new CreateNuclearAttributeHandler("fluid.createnuclear.nitrogen", 2500, 1600)) + .fluidProperties(p -> p.levelDecreasePerBlock(2) + .tickRate(15) + .flowSpeed(6) + .blastResistance(100f)) + .lang("Liquid Nitrogen") + .tag(CNFluidTags.NITROGEN.tag) + .register(); + public static void register() { } @@ -96,5 +116,28 @@ public static void registerFluidInteractions() { false ) ); + // Thorium + water interaction + FluidInteractionManager.addRule( + CNFluids.THORIUM.get(), + new FluidInteractionRule( + 100, + fs -> fs.is(FluidTags.WATER), + true, AUTUNITE, + ctx -> {}, + false + ) + ); + + // Thorium + lava interaction + FluidInteractionManager.addRule( + CNFluids.THORIUM.get(), + new FluidInteractionRule( + 100, + fs -> fs.is(FluidTags.LAVA), + true, AUTUNITE, + ctx -> {}, + false + ) + ); } } diff --git a/src/main/java/net/nuclearteam/createnuclear/CNItems.java b/src/main/java/net/nuclearteam/createnuclear/CNItems.java index 7bdbcd4f0..a1a96e841 100644 --- a/src/main/java/net/nuclearteam/createnuclear/CNItems.java +++ b/src/main/java/net/nuclearteam/createnuclear/CNItems.java @@ -21,16 +21,17 @@ import net.nuclearteam.createnuclear.content.multiblock.bluePrintItem.ReactorBluePrint; import net.nuclearteam.createnuclear.foundation.utility.TextUtils; import net.nuclearteam.createnuclear.CNTags.CNItemTags; +import net.nuclearteam.createnuclear.content.effects.RadiationItem; @SuppressWarnings("unused") public class CNItems { - public static final ItemEntry + public static final ItemEntry URANIUM_POWDER = CreateNuclear.REGISTRATE - .item("uranium_powder", Item::new) + .item("uranium_powder", RadiationItem::new) .register(), YELLOWCAKE = CreateNuclear.REGISTRATE - .item("yellowcake", Item::new) + .item("yellowcake", RadiationItem::new) .properties(p -> p.food(new FoodProperties.Builder() .nutrition(20) .saturationMod(0.3F) @@ -42,7 +43,7 @@ public class CNItems { .register(), ENRICHED_YELLOWCAKE = CreateNuclear.REGISTRATE - .item("enriched_yellowcake", Item::new) + .item("enriched_yellowcake", RadiationItem::new) .register(), COAL_DUST = CreateNuclear.REGISTRATE @@ -54,13 +55,37 @@ public class CNItems { .item("graphene", Item::new) .register(), + RAW_THORIUM = CreateNuclear.REGISTRATE + .item("raw_thorium", Item::new) + .register(), + + THORIUM_INGOT = CreateNuclear.REGISTRATE + .item("thorium_ingot", Item::new) + .tag(CNTags.forgeItemTag("ingots"), CNTags.forgeItemTag("ingots/thorium")) + .register(), + + THORIUM_DUST = CreateNuclear.REGISTRATE + .item("thorium_dust", Item::new) + .tag(CNTags.forgeItemTag("dusts"), CNTags.forgeItemTag("thorium_dusts")) + .register(), + + THORIUM_NUGGET = CreateNuclear.REGISTRATE + .item("thorium_nugget", Item::new) + .tag(CNTags.forgeItemTag("nuggets"), CNTags.forgeItemTag("nuggets/thorium")) + .register(), + + THORIUM_ROD = CreateNuclear.REGISTRATE + .item("thorium_rod", Item::new) + .tag(CNTags.forgeItemTag("rods"), CNItemTags.FUEL.tag) + .register(), + STEEL_INGOT = CreateNuclear.REGISTRATE .item("steel_ingot", Item::new) .tag(CNTags.forgeItemTag("ingots"), CNTags.forgeItemTag("ingots/steel")) .register(), RAW_URANIUM = CreateNuclear.REGISTRATE - .item("raw_uranium", Item::new) + .item("raw_uranium", RadiationItem::new) .tag(CNTags.forgeItemTag("raw_ores"), CNTags.forgeItemTag("raw_materials"), CNTags.forgeItemTag("raw_materials/uranium")) .register(), @@ -69,6 +94,7 @@ public class CNItems { .tag(CNTags.forgeItemTag("raw_ores"), CNTags.forgeItemTag("raw_materials"), CNTags.forgeItemTag("raw_materials/lead")) .register(), + LEAD_INGOT = CreateNuclear.REGISTRATE .item("lead_ingot", Item::new) .tag(CNTags.forgeItemTag("ingots"), CNTags.forgeItemTag("ingots/lead")) @@ -85,14 +111,28 @@ public class CNItems { .register(), URANIUM_ROD = CreateNuclear.REGISTRATE - .item("uranium_rod", Item::new) + .item("uranium_rod", RadiationItem::new) .tag(CNTags.forgeItemTag("rods"), CNItemTags.FUEL.tag) .register(), + GRAPHITE_ROD = CreateNuclear.REGISTRATE - .item("graphite_rod", Item::new) + .item("graphite_rod", RadiationItem::new) .tag(CNTags.forgeItemTag("rods"), CNItemTags.COOLER.tag) + .register(), + + NITRATE = CreateNuclear.REGISTRATE + .item("nitrate", Item::new) + .register(), + + NITROGEN_CONCENTRATE = CreateNuclear.REGISTRATE + .item("nitrogen_concentrate", Item::new) + .register(), + + COOLED_NITROGEN_CONCENTRATE = CreateNuclear.REGISTRATE + .item("cooled_nitrogen_concentrate", Item::new) .register() + ; public static final Helmet.DyeItemHelmetList ANTI_RADIATION_HELMETS = new Helmet.DyeItemHelmetList<>(color -> { diff --git a/src/main/java/net/nuclearteam/createnuclear/CNPackets.java b/src/main/java/net/nuclearteam/createnuclear/CNPackets.java index 061669a09..35bf57af1 100644 --- a/src/main/java/net/nuclearteam/createnuclear/CNPackets.java +++ b/src/main/java/net/nuclearteam/createnuclear/CNPackets.java @@ -12,6 +12,7 @@ import net.nuclearteam.createnuclear.CreateNuclear; import net.nuclearteam.createnuclear.content.multiblock.bluePrintItem.ReactorBluePrintPacket; import net.nuclearteam.createnuclear.content.multiblock.controller.EventTriggerPacket; +import net.nuclearteam.createnuclear.content.multiblock.itemRods.ItemRodTypeManager; import static com.simibubi.create.foundation.networking.SimplePacketBase.NetworkDirection; import static com.simibubi.create.foundation.networking.SimplePacketBase.NetworkDirection.PLAY_TO_CLIENT; @@ -27,6 +28,7 @@ public enum CNPackets { // To client TRIGGER_EVENT_TEXT_OVERLAY(EventTriggerPacket.class, EventTriggerPacket::new, PLAY_TO_CLIENT), + SYNC_ITEM_ROD_TYPES(ItemRodTypeManager.SyncPacket.class, ItemRodTypeManager.SyncPacket::new, PLAY_TO_CLIENT), ; public static final ResourceLocation CHANNEL_NAME = CreateNuclear.asResource("main"); diff --git a/src/main/java/net/nuclearteam/createnuclear/CNParticleTypes.java b/src/main/java/net/nuclearteam/createnuclear/CNParticleTypes.java new file mode 100644 index 000000000..b3ccff2c6 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/CNParticleTypes.java @@ -0,0 +1,71 @@ +package net.nuclearteam.createnuclear; + +import com.simibubi.create.foundation.particle.ICustomParticleData; +import com.simibubi.create.foundation.utility.Lang; +import io.github.fabricators_of_create.porting_lib.util.LazyRegistrar; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.ParticleEngine; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.ParticleType; +import net.minecraft.core.registries.BuiltInRegistries; +import net.nuclearteam.createnuclear.content.particles.IrradiatedParticlesData; + +import java.util.function.Supplier; + +public enum CNParticleTypes { + IRRADIATED_PARTICLES(IrradiatedParticlesData::new) + ; + + private final ParticleEntry entry; + + CNParticleTypes(Supplier> typeFactory) { + String name = Lang.asId(name()); + entry = new ParticleEntry<>(name, typeFactory); + } + + public static void register() { + ParticleEntry.REGISTER.register(); + } + + @Environment(EnvType.CLIENT) + public static void registerFactories() { + ParticleEngine particles = Minecraft.getInstance().particleEngine; + for (CNParticleTypes particle : values()) + particle.entry.registerFactory(particles); + } + + public ParticleType get() { + return entry.object; + } + + public String parameter() { + return entry.name; + } + + + private static class ParticleEntry { + private static final LazyRegistrar> REGISTER = LazyRegistrar.create(BuiltInRegistries.PARTICLE_TYPE, CreateNuclear.MOD_ID); + + private final String name; + private final Supplier> typeFactory; + private final ParticleType object; + + public ParticleEntry(String name, Supplier> typeFactory) { + this.name = name; + this.typeFactory = typeFactory; + + object = this.typeFactory.get().createType(); + REGISTER.register(name, () -> object); + } + + @Environment(EnvType.CLIENT) + public void registerFactory(ParticleEngine particles) { + typeFactory.get() + .register(object, particles); + } + + } + +} diff --git a/src/main/java/net/nuclearteam/createnuclear/CNSoundEvents.java b/src/main/java/net/nuclearteam/createnuclear/CNSoundEvents.java new file mode 100644 index 000000000..c8e0dc04c --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/CNSoundEvents.java @@ -0,0 +1,385 @@ +package net.nuclearteam.createnuclear; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.simibubi.create.AllSoundEvents; +import com.simibubi.create.AllSoundEvents.ConfiguredSoundEvent; +import com.simibubi.create.AllSoundEvents.SoundEntry; +import com.simibubi.create.Create; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.CachedOutput; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.DataProvider; +import net.minecraft.data.PackOutput; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; + +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.function.BiConsumer; +import java.util.function.Supplier; + +public class CNSoundEvents { + + public static final Map ALL = new HashMap<>(); + + public static final SoundEntry + REACTOR_CASING_BREAD = create("reactor_casing", "break") + .subtitle("Break Reactor Casing") + .category(SoundSource.BLOCKS) + .build(), + + REACTOR_CASING_STEP = create("reactor_casing", "step") + .subtitle("Step on Reactor Casing") + .category(SoundSource.BLOCKS) + .build(), + + REACTOR_CASING_PLACE = create("reactor_casing", "place") + .subtitle("Place Reactor Casing") + .category(SoundSource.BLOCKS) + .build(), + + REACTOR_CASING_HIT = create("reactor_casing", "hit") + .subtitle("Hit Reactor Casing") + .category(SoundSource.BLOCKS) + .build(), + + REACTOR_CASING_FALL = create("reactor_casing", "fall") + .subtitle("Reactor Casing Fall") + .category(SoundSource.BLOCKS) + .build(), + + REACTOR_ALARM = create("reactor_alarm") + .subtitle("Reactor Alarm") + .category(SoundSource.BLOCKS) + .build(), + + NUCLEAR_EXPLOSION = create("nuclear_explosion") + .subtitle("Nuclear Explosion") + .category(SoundSource.AMBIENT) + .build(), + + LARGE_NUCLEAR_EXPLOSION = create("large_nuclear_explosion") + .subtitle("Large Nuclear Explosion") + .category(SoundSource.AMBIENT) + .build(), + + NUCLEAR_EXPLOSION_RINGING = create("nuclear_explosion_ringing") + .subtitle("Nuclear Explosion Ringing") + .category(SoundSource.AMBIENT) + .build(), + + NUCLEAR_EXPLOSION_RUMBLE = create("nuclear_explosion_rumble") + .subtitle("Nuclear Explosion Rumble") + .category(SoundSource.AMBIENT) + .build() + ; + + + private static SoundEntryBuilder create(String... pathParts) { + String name = String.join("_", pathParts); + return create(CreateNuclear.asResource(name)); + } + + private static SoundEntryBuilder create(ResourceLocation id) { + return new SoundEntryBuilder(id); + } + + public static void prepare() { + for (SoundEntry entry : ALL.values()) entry.prepare(); + } + + public static void register() { + for (SoundEntry entry : ALL.values()) + entry.register(); + } + + public static void provideLang(BiConsumer consumer) { + for (SoundEntry entry : ALL.values()) + if (entry.hasSubtitle()) + consumer.accept(entry.getSubtitleKey(), entry.getSubtitle()); + } + + public static DataProvider provider(FabricDataOutput output) { + return new CNSoundEvents.SoundEntryProvider(output); + } + + + public static void playItemPickup(Player player) { + player.level() + .playSound(null, player.blockPosition(), SoundEvents.ITEM_PICKUP, SoundSource.PLAYERS, .2f, + 1f + player.level().random.nextFloat()); + } + + private static class SoundEntryProvider implements DataProvider { + + private PackOutput output; + + public SoundEntryProvider(PackOutput output) { + this.output = output; + } + + @Override + public CompletableFuture run(CachedOutput cache) { + return generate(output.getOutputFolder(), cache); + } + + @Override + public String getName() { + return "Create's Custom Sounds"; + } + + public CompletableFuture generate(Path path, CachedOutput cache) { + path = path.resolve("assets/createnuclear"); + JsonObject json = new JsonObject(); + ALL.entrySet() + .stream() + .sorted(Map.Entry.comparingByKey()) + .forEach(entry -> { + entry.getValue() + .write(json); + }); + return DataProvider.saveStable(cache, json, path.resolve("sounds.json")); + } + } + + public record ConfiguredSoundEvent(Supplier event, float volume, float pitch) { + } + + + public static class SoundEntryBuilder { + + protected ResourceLocation id; + protected String subtitle = "unregistered"; + protected SoundSource category = SoundSource.BLOCKS; + protected List wrappedEvents; + protected List variants; + protected int attenuationDistance; + + public SoundEntryBuilder(ResourceLocation id) { + wrappedEvents = new ArrayList<>(); + variants = new ArrayList<>(); + this.id = id; + } + + public SoundEntryBuilder subtitle(String subtitle) { + this.subtitle = subtitle; + return this; + } + + public SoundEntryBuilder attenuationDistance(int distance) { + this.attenuationDistance = distance; + return this; + } + + public SoundEntryBuilder noSubtitle() { + this.subtitle = null; + return this; + } + + public SoundEntryBuilder category(SoundSource category) { + this.category = category; + return this; + } + + public SoundEntryBuilder addVariant(String name) { + return addVariant(Create.asResource(name)); + } + + public SoundEntryBuilder addVariant(ResourceLocation id) { + variants.add(id); + return this; + } + + public SoundEntryBuilder playExisting(Supplier event, float volume, float pitch) { + wrappedEvents.add(new ConfiguredSoundEvent(event, volume, pitch)); + return this; + } + + // fabric: holders are not suppliers + public SoundEntryBuilder playExisting(Holder event, float volume, float pitch) { + return playExisting(event::value, volume, pitch); + } + + public SoundEntryBuilder playExisting(SoundEvent event, float volume, float pitch) { + return playExisting(() -> event, volume, pitch); + } + + public SoundEntryBuilder playExisting(SoundEvent event) { + return playExisting(event, 1, 1); + } + + public SoundEntryBuilder playExisting(Holder event) { + return playExisting(event::value, 1, 1); + } + + public SoundEntry build() { + SoundEntry entry = + wrappedEvents.isEmpty() ? new CustomSoundEntry(id, variants, subtitle, category, attenuationDistance) + : new WrappedSoundEntry(id, subtitle, wrappedEvents, category, attenuationDistance); + ALL.put(entry.getId(), entry); + return entry; + } + + } + + private static class CustomSoundEntry extends SoundEntry { + + protected List variants; + protected SoundEvent event; + + public CustomSoundEntry(ResourceLocation id, List variants, String subtitle, + SoundSource category, int attenuationDistance) { + super(id, subtitle, category, attenuationDistance); + this.variants = variants; + } + + @Override + public void prepare() { + event = SoundEvent.createVariableRangeEvent(id); + } + + @Override + public void register() { + Registry.register(BuiltInRegistries.SOUND_EVENT, event.getLocation(), event); + } + + @Override + public SoundEvent getMainEvent() { + return event; + } + + @Override + public void write(JsonObject json) { + JsonObject entry = new JsonObject(); + JsonArray list = new JsonArray(); + + JsonObject s = new JsonObject(); + s.addProperty("name", id.toString()); + s.addProperty("type", "file"); + if (attenuationDistance != 0) + s.addProperty("attenuation_distance", attenuationDistance); + list.add(s); + + for (ResourceLocation variant : variants) { + s = new JsonObject(); + s.addProperty("name", variant.toString()); + s.addProperty("type", "file"); + if (attenuationDistance != 0) + s.addProperty("attenuation_distance", attenuationDistance); + list.add(s); + } + + entry.add("sounds", list); + if (hasSubtitle()) + entry.addProperty("subtitle", getSubtitleKey()); + json.add(id.getPath(), entry); + } + + @Override + public void play(Level world, Player entity, double x, double y, double z, float volume, float pitch) { + world.playSound(entity, x, y, z, event, category, volume, pitch); + } + + @Override + public void playAt(Level world, double x, double y, double z, float volume, float pitch, boolean fade) { + world.playLocalSound(x, y, z, event, category, volume, pitch, fade); + } + + } + + private static class WrappedSoundEntry extends SoundEntry { + + private List wrappedEvents; + private List compiledEvents; + + public WrappedSoundEntry(ResourceLocation id, String subtitle, + List wrappedEvents, SoundSource category, int attenuationDistance) { + super(id, subtitle, category, attenuationDistance); + this.wrappedEvents = wrappedEvents; + compiledEvents = new ArrayList<>(); + } + + @Override + public void prepare() { + for (int i = 0; i < wrappedEvents.size(); i++) { + ConfiguredSoundEvent wrapped = wrappedEvents.get(i); + ResourceLocation location = getIdOf(i); + SoundEvent event = SoundEvent.createVariableRangeEvent(location); + compiledEvents.add(new CNSoundEvents.WrappedSoundEntry.CompiledSoundEvent(event, wrapped.volume(), wrapped.pitch())); + } + } + + @Override + public void register() { + for (CNSoundEvents.WrappedSoundEntry.CompiledSoundEvent event : compiledEvents) { + Registry.register(BuiltInRegistries.SOUND_EVENT, event.event.getLocation(), event.event); + } + } + + @Override + public SoundEvent getMainEvent() { + return compiledEvents.get(0) + .event(); + } + + protected ResourceLocation getIdOf(int i) { + return new ResourceLocation(id.getNamespace(), i == 0 ? id.getPath() : id.getPath() + "_compounded_" + i); + } + + @Override + public void write(JsonObject json) { + for (int i = 0; i < wrappedEvents.size(); i++) { + ConfiguredSoundEvent event = wrappedEvents.get(i); + JsonObject entry = new JsonObject(); + JsonArray list = new JsonArray(); + JsonObject s = new JsonObject(); + s.addProperty("name", event.event() + .get() + .getLocation() + .toString()); + s.addProperty("type", "event"); + if (attenuationDistance != 0) + s.addProperty("attenuation_distance", attenuationDistance); + list.add(s); + entry.add("sounds", list); + if (i == 0 && hasSubtitle()) + entry.addProperty("subtitle", getSubtitleKey()); + json.add(getIdOf(i).getPath(), entry); + } + } + + @Override + public void play(Level world, Player entity, double x, double y, double z, float volume, float pitch) { + for (CNSoundEvents.WrappedSoundEntry.CompiledSoundEvent event : compiledEvents) { + world.playSound(entity, x, y, z, event.event(), category, event.volume() * volume, + event.pitch() * pitch); + } + } + + @Override + public void playAt(Level world, double x, double y, double z, float volume, float pitch, boolean fade) { + for (CNSoundEvents.WrappedSoundEntry.CompiledSoundEvent event : compiledEvents) { + world.playLocalSound(x, y, z, event.event(), category, event.volume() * volume, + event.pitch() * pitch, fade); + } + } + + private record CompiledSoundEvent(SoundEvent event, float volume, float pitch) { + } + + } + +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/CNTags.java b/src/main/java/net/nuclearteam/createnuclear/CNTags.java index b33a51313..0f54f2d81 100644 --- a/src/main/java/net/nuclearteam/createnuclear/CNTags.java +++ b/src/main/java/net/nuclearteam/createnuclear/CNTags.java @@ -62,6 +62,8 @@ public enum NameSpace { public enum CNFluidTags { URANIUM, + THORIUM, + NITROGEN, ; public final TagKey tag; @@ -104,6 +106,9 @@ public enum CNBlockTags { ENRICHING_FIRE_BASE_BLOCKS("uranium_fire_base_blocks"), URANIUM_ORES, LEAD_ORES, + THORIUM_ORES, + REACTOR_CASING, + NITRATE_ORES ; public final TagKey tag; @@ -156,6 +161,8 @@ public enum CNItemTags { COOLER, URANIUM_ORES, LEAD_ORES, + THORIUM_ORES, + NITRATE_ORES, ANTI_RADIATION_HELMET_DYE, ANTI_RADIATION_CHESTPLATE_DYE, ANTI_RADIATION_LEGGINGS_DYE, diff --git a/src/main/java/net/nuclearteam/createnuclear/CreateNuclear.java b/src/main/java/net/nuclearteam/createnuclear/CreateNuclear.java index 26e86e983..a3d9db230 100644 --- a/src/main/java/net/nuclearteam/createnuclear/CreateNuclear.java +++ b/src/main/java/net/nuclearteam/createnuclear/CreateNuclear.java @@ -11,9 +11,12 @@ import net.nuclearteam.createnuclear.content.decoration.palettes.CNPaletteStoneTypes; import net.nuclearteam.createnuclear.content.kinetics.fan.processing.CNFanProcessingTypes; +import net.nuclearteam.createnuclear.content.test.TestPropa; +import net.nuclearteam.createnuclear.content.multiblock.itemRods.BuiltinRodTypes; import net.nuclearteam.createnuclear.foundation.advancement.CNAdvancement; import net.nuclearteam.createnuclear.foundation.advancement.CNTriggers; import net.nuclearteam.createnuclear.foundation.data.CreateNuclearRegistrate; +import net.nuclearteam.createnuclear.foundation.events.CommonEvents; import net.nuclearteam.createnuclear.infrastructure.config.CNConfigs; import net.nuclearteam.createnuclear.infrastructure.worldgen.CNBiomeModifiers; import net.nuclearteam.createnuclear.infrastructure.worldgen.CNPlacementModifiers; @@ -34,8 +37,11 @@ public class CreateNuclear implements ModInitializer { .andThen(TooltipModifier.mapNull(KineticStats.create(item)))); } + public static final TestPropa TEST_PROPA = new TestPropa(); + @Override public void onInitialize() { + CNSoundEvents.prepare(); CNEffects.register(); CNItems.registerCNItems(); CNBlocks.registerCNBlocks(); @@ -45,6 +51,7 @@ public void onInitialize() { CNCreativeModeTabs.register(); CNFluids.register(); CNTags.register(); + CommonEvents.register(); CNPackets.registerPackets(); CNPackets.getChannel().initServerListener(); CNPotions.init(); @@ -52,6 +59,8 @@ public void onInitialize() { REGISTRATE.register(); POTION_REGISTRATE.register(); + + CNParticleTypes.register(); CNRecipeTypes.register(); CNPlacementModifiers.register(); @@ -59,6 +68,7 @@ public void onInitialize() { CNPotions.registerPotionRecipes(); CNFluids.registerFluidInteractions(); + BuiltinRodTypes.register(); CNAdvancement.register(); CNTriggers.register(); diff --git a/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/CNModelLayers.java b/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/CNModelLayers.java index d36c3133a..1e422dc8f 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/CNModelLayers.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/CNModelLayers.java @@ -13,6 +13,7 @@ public class CNModelLayers { public static final ModelLayerLocation IRRADIATED_CHICKEN = register("irradiated_chicken"); public static final ModelLayerLocation IRRADIATED_WOLF = register("irradiated_wolf"); public static final ModelLayerLocation IRRADIATED_CAT = register("irradiated_cat"); + public static final ModelLayerLocation IRRADIATED_COW = register("irradiated_cow"); private static ModelLayerLocation register(String path) { return register(path, "main"); diff --git a/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/cow/IrradiatedCow.java b/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/cow/IrradiatedCow.java new file mode 100644 index 000000000..20daeddc9 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/cow/IrradiatedCow.java @@ -0,0 +1,130 @@ +package net.nuclearteam.createnuclear.content.contraptions.irradiated.cow; + +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.Mth; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.*; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.goal.*; +import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.level.pathfinder.BlockPathTypes; +import net.minecraft.world.phys.Vec3; + +import net.nuclearteam.createnuclear.CNEntityType; +import org.jetbrains.annotations.Nullable; + +import javax.annotation.ParametersAreNonnullByDefault; + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +@SuppressWarnings("unused") +public class IrradiatedCow extends Animal { + private static final Ingredient FOOD_ITEMS = Ingredient.of( + Items.WHEAT + ); + public IrradiatedCow(EntityType entityType, Level level) { + super(entityType, level); + this.setPathfindingMalus(BlockPathTypes.WATER, 0.0F); + } + + @Override + protected void registerGoals() { + this.goalSelector.addGoal(0, new FloatGoal(this)); + this.goalSelector.addGoal(1, new PanicGoal(this, 1.4)); + this.goalSelector.addGoal(2, new BreedGoal(this, 1.0)); + this.goalSelector.addGoal(3, new TemptGoal(this, 1.0, FOOD_ITEMS, false)); + this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.1)); + this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 1.0)); + this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F)); + this.goalSelector.addGoal(7, new RandomLookAroundGoal(this)); + } + @Override + protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) { + return this.isBaby() ? dimensions.height * 0.85F : dimensions.height * 0.92F; + } + + public static AttributeSupplier.Builder createAttributes() { + return Mob.createMobAttributes() + .add(Attributes.MAX_HEALTH, 4.0) + .add(Attributes.MOVEMENT_SPEED, 0.25); + } + @Override + public void aiStep() { + super.aiStep(); + Vec3 vec3 = this.getDeltaMovement(); + if (!this.onGround() && vec3.y < 0.0) { + this.setDeltaMovement(vec3.multiply(1.0, 0.6, 1.0)); + } + + } + + @Override + protected SoundEvent getAmbientSound() { + return SoundEvents.COW_AMBIENT; + } + @Override + protected SoundEvent getHurtSound(DamageSource damageSource) { + return SoundEvents.COW_HURT; + } + @Override + protected SoundEvent getDeathSound() { + return SoundEvents.COW_DEATH; + } + + @Override + protected void playStepSound(BlockPos pos, BlockState state) { + this.playSound(SoundEvents.COW_STEP, 0.15F, 1.0F); + } + + @Nullable + public IrradiatedCow getBreedOffspring(ServerLevel level, AgeableMob otherParent) { + return CNEntityType.IRRADIATED_COW.create(level); + } + + @Override + public boolean isFood(ItemStack stack) { + return FOOD_ITEMS.test(stack); + } + + @Override + public int getExperienceReward() { + return super.getExperienceReward(); + } + + @Override + public void readAdditionalSaveData(CompoundTag compound) { + super.readAdditionalSaveData(compound); + } + + @Override + public void addAdditionalSaveData(CompoundTag compound) { + super.addAdditionalSaveData(compound); + } + + @Override + protected void positionRider(Entity passenger, Entity.MoveFunction callback) { + super.positionRider(passenger, callback); + float f = Mth.sin(this.yBodyRot * 0.017453292F); + float g = Mth.cos(this.yBodyRot * 0.017453292F); + float h = 0.1F; + float i = 0.0F; + callback.accept(passenger, this.getX() + (double)(0.1F * f), this.getY(0.5) + passenger.getMyRidingOffset() + 0.0, this.getZ() - (double)(0.1F * g)); + if (passenger instanceof LivingEntity) { + ((LivingEntity)passenger).yBodyRot = this.yBodyRot; + } + + } +} diff --git a/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/cow/IrradiatedCowModel.java b/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/cow/IrradiatedCowModel.java new file mode 100644 index 000000000..ec92242e5 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/cow/IrradiatedCowModel.java @@ -0,0 +1,101 @@ +package net.nuclearteam.createnuclear.content.contraptions.irradiated.cow; + +import com.google.common.collect.ImmutableList; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import net.minecraft.client.model.AgeableListModel; +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.client.model.geom.PartPose; +import net.minecraft.client.model.geom.builders.*; +import net.minecraft.util.Mth; + +public class IrradiatedCowModel extends AgeableListModel { + private final ModelPart head; + private final ModelPart pustule; + private final ModelPart body; + private final ModelPart pustule3; + private final ModelPart legs; + private final ModelPart leg1; + private final ModelPart leg2; + private final ModelPart leg3; + private final ModelPart leg4; + private final ModelPart pustule2; + + public IrradiatedCowModel(ModelPart root) { + this.head = root.getChild("head"); + this.pustule = this.head.getChild("pustule"); + this.body = root.getChild("body"); + this.pustule3 = this.body.getChild("pustule3"); + this.legs = root.getChild("legs"); + this.leg1 = this.legs.getChild("leg1"); + this.leg2 = this.legs.getChild("leg2"); + this.leg3 = this.legs.getChild("leg3"); + this.leg4 = this.legs.getChild("leg4"); + this.pustule2 = this.leg4.getChild("pustule2"); + } + + public static LayerDefinition createBodyLayer() { + MeshDefinition meshdefinition = new MeshDefinition(); + PartDefinition partdefinition = meshdefinition.getRoot(); + + PartDefinition head = partdefinition.addOrReplaceChild("head", CubeListBuilder.create().texOffs(0, 0).addBox(-4.0F, -4.0F, -6.0F, 8.0F, 8.0F, 6.0F, new CubeDeformation(0.0F)) + .texOffs(22, 0).addBox(4.0F, -5.0F, -4.0F, 1.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(22, 0).addBox(-5.0F, -5.0F, -4.0F, 1.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 4.0F, -8.0F)); + + PartDefinition pustule = head.addOrReplaceChild("pustule", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F)); + + PartDefinition pustule_head_r1 = pustule.addOrReplaceChild("pustule_head_r1", CubeListBuilder.create().texOffs(54, 9).addBox(-1.1F, -0.8F, -0.6F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(3.4F, -4.0F, -1.0F, -0.2739F, 0.2947F, -0.0814F)); + + PartDefinition body = partdefinition.addOrReplaceChild("body", CubeListBuilder.create().texOffs(18, 4).addBox(-6.0F, -10.0F, -7.0F, 12.0F, 18.0F, 10.0F, new CubeDeformation(0.0F)) + .texOffs(52, 0).addBox(-2.0F, 2.0F, -8.0F, 4.0F, 6.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 5.0F, 2.0F, 1.5708F, 0.0F, 0.0F)); + + PartDefinition pustule3 = body.addOrReplaceChild("pustule3", CubeListBuilder.create(), PartPose.offsetAndRotation(1.5724F, 9.1193F, -7.1515F, 2.8289F, -0.5338F, 2.1369F)); + + PartDefinition pustule_back_r1 = pustule3.addOrReplaceChild("pustule_back_r1", CubeListBuilder.create().texOffs(54, 9).addBox(3.4F, 0.0F, -4.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.309F, -2.9436F, -13.0622F, 2.0131F, -0.1273F, -1.056F)); + + PartDefinition pustule_belly_r1 = pustule3.addOrReplaceChild("pustule_belly_r1", CubeListBuilder.create().texOffs(54, 9).addBox(-2.0F, -0.6F, 5.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, -2.0159F, 0.1667F, 2.0666F)); + + PartDefinition legs = partdefinition.addOrReplaceChild("legs", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); + + PartDefinition leg1 = legs.addOrReplaceChild("leg1", CubeListBuilder.create().texOffs(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offset(-4.0F, -12.0F, 7.0F)); + + PartDefinition leg2 = legs.addOrReplaceChild("leg2", CubeListBuilder.create().texOffs(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offset(4.0F, -12.0F, 7.0F)); + + PartDefinition leg3 = legs.addOrReplaceChild("leg3", CubeListBuilder.create().texOffs(0, 16).addBox(-2.0F, 0.0F, -1.0F, 4.0F, 12.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offset(-4.0F, -12.0F, -6.0F)); + + PartDefinition leg4 = legs.addOrReplaceChild("leg4", CubeListBuilder.create().texOffs(0, 16).addBox(-2.0F, 0.0F, -1.0F, 4.0F, 12.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offset(4.0F, -12.0F, -6.0F)); + + PartDefinition pustule2 = leg4.addOrReplaceChild("pustule2", CubeListBuilder.create(), PartPose.offsetAndRotation(0.4249F, 7.2997F, 2.3458F, -2.5307F, 0.0F, 0.0F)); + + PartDefinition pustule_leg_r1 = pustule2.addOrReplaceChild("pustule_leg_r1", CubeListBuilder.create().texOffs(54, 9).addBox(-1.0F, 0.0F, -1.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.1064F, 2.3852F, -0.6084F, 0.1272F, 0.3997F, 1.5682F)); + + return LayerDefinition.create(meshdefinition, 64, 32); + } + + @Override + public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { + this.head.xRot = headPitch * ((float)Math.PI / 180F); + this.head.yRot = netHeadYaw * ((float)Math.PI / 180F); + this.leg3.xRot = Mth.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; + this.leg4.xRot = Mth.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount; + this.leg1.xRot = Mth.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount; + this.leg2.xRot = Mth.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; + } + + @Override + public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { + head.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + body.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + legs.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + } + @Override + protected Iterable headParts() { + return ImmutableList.of(this.head); + } + + @Override + protected Iterable bodyParts() { + return ImmutableList.of(this.body, this.leg1, this.leg2, this.leg3, this.leg4); + } + +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/cow/IrradiatedCowRenderer.java b/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/cow/IrradiatedCowRenderer.java new file mode 100644 index 000000000..335c29769 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/contraptions/irradiated/cow/IrradiatedCowRenderer.java @@ -0,0 +1,40 @@ +package net.nuclearteam.createnuclear.content.contraptions.irradiated.cow; + +import com.mojang.blaze3d.vertex.PoseStack; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.entity.MobRenderer; +import net.minecraft.resources.ResourceLocation; +import net.nuclearteam.createnuclear.CreateNuclear; +import net.nuclearteam.createnuclear.content.contraptions.irradiated.CNModelLayers; + +import javax.annotation.ParametersAreNonnullByDefault; + +@Environment(EnvType.CLIENT) +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public class IrradiatedCowRenderer extends MobRenderer> { + private static final ResourceLocation IRRADIATED_COW_LOCATION = new ResourceLocation(CreateNuclear.MOD_ID, "textures/entity/irradiated_cow.png"); + + public IrradiatedCowRenderer(EntityRendererProvider.Context context) { + super(context, new IrradiatedCowModel<>(context.bakeLayer(CNModelLayers.IRRADIATED_COW)), 0.3F); + } + + @Override + public ResourceLocation getTextureLocation(final IrradiatedCow entity) { + return IRRADIATED_COW_LOCATION; + } + + @Override + public void render(final IrradiatedCow entity, final float entityYaw, final float partialTicks, final PoseStack matrixStack, final MultiBufferSource buffer, final int packedLight) { + final float scale = entity.isBaby() ? 0.5F : 1.0F; + if (scale != 1.0F) { + matrixStack.scale(scale, scale, scale); + } + + super.render(entity, entityYaw, partialTicks, matrixStack, buffer, packedLight); + } +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/content/effects/RadiationEffect.java b/src/main/java/net/nuclearteam/createnuclear/content/effects/RadiationEffect.java index af66c56b2..0baefc605 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/effects/RadiationEffect.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/effects/RadiationEffect.java @@ -23,7 +23,7 @@ public class RadiationEffect extends MobEffect { * Also applies attribute modifiers to reduce speed, attack damage, and attack speed. */ public RadiationEffect() { - super(MobEffectCategory.HARMFUL, 15453236); // Custom color (hex value) + super(MobEffectCategory.HARMFUL, 0x00FF33); // Custom color (hex value) // Reduces movement speed by 20% this.addAttributeModifier(Attributes.MOVEMENT_SPEED, diff --git a/src/main/java/net/nuclearteam/createnuclear/content/effects/RadiationItem.java b/src/main/java/net/nuclearteam/createnuclear/content/effects/RadiationItem.java new file mode 100644 index 000000000..a75f8a1e1 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/effects/RadiationItem.java @@ -0,0 +1,58 @@ +package net.nuclearteam.createnuclear.content.effects; + +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.effect.MobEffectInstance; +import net.nuclearteam.createnuclear.CNEffects; + +public class RadiationItem extends Item { + + public RadiationItem(Item.Properties settings) { + super(settings); + } + + @Override + public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { + if (world.isClientSide) return; + + if (entity instanceof Player player) { + int total = 0; + for (ItemStack s : player.getInventory().items) { + if (s.getItem() == this) total += s.getCount(); + } + for (ItemStack s : player.getInventory().offhand) { + if (s.getItem() == this) total += s.getCount(); + } + + + if (total <= 0) { + return; + } + + int amp; + + if (total < 9) { // Voir equilibrage + amp = 0; + } + else if (total < 18) { // Voir equilibrage + amp = 1; + } + else { + amp = 2; + } + + MobEffectInstance effect = new MobEffectInstance( + CNEffects.RADIATION.get(), + 40, + amp, + true, + true + ); + + player.addEffect(effect); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/content/kinetics/fan/processing/CNFanProcessingTypes.java b/src/main/java/net/nuclearteam/createnuclear/content/kinetics/fan/processing/CNFanProcessingTypes.java index 379d721bf..5fb65934a 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/kinetics/fan/processing/CNFanProcessingTypes.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/kinetics/fan/processing/CNFanProcessingTypes.java @@ -8,7 +8,6 @@ import com.simibubi.create.foundation.utility.VecHelper; import it.unimi.dsi.fastutil.objects.Object2ReferenceOpenHashMap; import net.minecraft.core.BlockPos; -import net.minecraft.core.particles.ParticleTypes; import net.minecraft.util.RandomSource; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.Entity; @@ -17,13 +16,11 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -import net.nuclearteam.createnuclear.CNBlocks; -import net.nuclearteam.createnuclear.CNEffects; -import net.nuclearteam.createnuclear.CNRecipeTypes; -import net.nuclearteam.createnuclear.CreateNuclear; +import net.nuclearteam.createnuclear.*; import net.nuclearteam.createnuclear.content.enriching.campfire.EnrichingCampfireBlock; import net.nuclearteam.createnuclear.content.kinetics.fan.processing.EnrichedRecipe.EnrichedWrapper; +import net.nuclearteam.createnuclear.content.particles.IrradiatedParticlesData; import org.jetbrains.annotations.Nullable; @@ -103,16 +100,16 @@ public void spawnProcessingParticles(Level level, Vec3 pos) { .multiply(1, 0.05f, 1) .normalize() .scale(0.15f)); - level.addParticle(ParticleTypes.ANGRY_VILLAGER, pos.x, pos.y + .45f, pos.z, 0, 0, 0); - if (level.random.nextInt(2) == 0) level.addParticle(ParticleTypes.FIREWORK, pos.x, pos.y + .25f, pos.z, 0, 0, 0); + level.addParticle(new IrradiatedParticlesData(), pos.x, pos.y + .45f, pos.z, 0, 0, 0); + if (level.random.nextInt(2) == 0) level.addParticle(new IrradiatedParticlesData(), pos.x, pos.y + .25f, pos.z, 0, 0, 0); } @Override public void morphAirFlow(AirFlowParticleAccess particleAccess, RandomSource random) { - particleAccess.setColor(Color.mixColors(0x0, 0x126568, random.nextFloat())); + particleAccess.setColor(Color.mixColors(0x0, 0x00FF33, random.nextFloat())); particleAccess.setAlpha(1f); - if (random.nextFloat() < 1 / 128f) particleAccess.spawnExtraParticle(ParticleTypes.ASH, .125f); - if (random.nextFloat() < 1 / 32f) particleAccess.spawnExtraParticle(ParticleTypes.DOLPHIN, .125f); + if (random.nextFloat() < 1 / 128f) particleAccess.spawnExtraParticle(new IrradiatedParticlesData(), .125f); + if (random.nextFloat() < 1 / 32f) particleAccess.spawnExtraParticle(new IrradiatedParticlesData(), .125f); } @Override diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/CNMultiblock.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/CNMultiblock.java index 52b03c76a..fac7c3c98 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/CNMultiblock.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/CNMultiblock.java @@ -2,6 +2,7 @@ import lib.multiblock.test.SimpleMultiBlockAislePatternBuilder; import net.nuclearteam.createnuclear.CNBlocks; +import net.nuclearteam.createnuclear.CNTags; import net.nuclearteam.createnuclear.api.multiblock.MultiBlockManagerBeta; import net.nuclearteam.createnuclear.api.multiblock.TypeMultiBlock; @@ -18,24 +19,24 @@ public class CNMultiblock { public static final String AAOAA = "AAOAA"; static { - REGISTRATE_MULTIBLOCK.register("createnuclear:reactor", - TypeMultiBlock.REACTOR, - SimpleMultiBlockAislePatternBuilder.start() - .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAAAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AAIAA, ADADA, BACAB, ADADA, AAAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAOAA) - .where('A', a -> a.getState().is(CNBlocks.REACTOR_CASING.get())) - .where('B', a -> a.getState().is(CNBlocks.REACTOR_FRAME.get())) - .where('C', a -> a.getState().is(CNBlocks.REACTOR_CORE.get())) - .where('D', a -> a.getState().is(CNBlocks.REACTOR_COOLER.get())) - .where('*', a -> a.getState().is(CNBlocks.REACTOR_CONTROLLER.get())) - .where('O', a -> a.getState().is(CNBlocks.REACTOR_OUTPUT.get())) - .where('I', a -> a.getState().is(CNBlocks.REACTOR_INPUT.get())) - .build() - ); + REGISTRATE_MULTIBLOCK.register("createnuclear:reactor", TypeMultiBlock.REACTOR, getPatternBuilder().build()); + } + + public static SimpleMultiBlockAislePatternBuilder getPatternBuilder() { + return SimpleMultiBlockAislePatternBuilder.start() + .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAAAA) + .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) + .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) + .aisle(AAIAA, ADADA, BACAB, ADADA, AAAA) + .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) + .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) + .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAOAA) + .where('A', a -> a.getState().is(CNTags.CNBlockTags.REACTOR_CASING.tag)) + .where('B', a -> a.getState().is(CNBlocks.REACTOR_FRAME.get())) + .where('C', a -> a.getState().is(CNBlocks.REACTOR_CORE.get())) + .where('D', a -> a.getState().is(CNBlocks.REACTOR_COOLER.get())) + .where('*', a -> a.getState().is(CNBlocks.REACTOR_CONTROLLER.get())) + .where('O', a -> a.getState().is(CNBlocks.REACTOR_OUTPUT.get())) + .where('I', a -> a.getState().is(CNBlocks.REACTOR_INPUT.get())); } } \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/alarm/ReactorAlarm.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/alarm/ReactorAlarm.java new file mode 100644 index 000000000..3f33867eb --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/alarm/ReactorAlarm.java @@ -0,0 +1,96 @@ +package net.nuclearteam.createnuclear.content.multiblock.alarm; + +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.client.Minecraft; +import net.minecraft.core.BlockPos; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.util.RandomSource; +import net.nuclearteam.createnuclear.CNBlockEntityTypes; +import net.nuclearteam.createnuclear.CNSoundEvents; + +import java.util.HashMap; +import java.util.Map; + +public class ReactorAlarm extends Block implements IBE { + public static final BooleanProperty POWERED = BlockStateProperties.POWERED; + + // Map pour suivre quelle alarme joue quel son (Côté Client uniquement) + public static final Map ACTIVE_SOUNDS = new HashMap<>(); + + public ReactorAlarm(Properties props) { + super(props); + this.registerDefaultState(this.stateDefinition.any().setValue(POWERED, false)); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext ctx) { + return this.defaultBlockState().setValue(POWERED, ctx.getLevel().hasNeighborSignal(ctx.getClickedPos())); + } + + @Override + public void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { + if (level.isClientSide) return; + boolean poweredNow = level.hasNeighborSignal(pos); + if (state.getValue(POWERED) != poweredNow) { + level.setBlock(pos, state.setValue(POWERED, poweredNow), 3); + } + } + + @Override + public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource random) { + if (state.getValue(POWERED)) { + // .immutable() crée une copie propre qui ne bougera plus + BlockPos immutablePos = pos.immutable(); + if (!ACTIVE_SOUNDS.containsKey(immutablePos) || ACTIVE_SOUNDS.get(immutablePos).isStopped()) { + startSound(level, immutablePos); + } + } + } + + private void startSound(Level level, BlockPos pos) { + ReactorAlarmInstance sound = new ReactorAlarmInstance(level, pos, CNSoundEvents.REACTOR_ALARM.getMainEvent()); + ACTIVE_SOUNDS.put(pos, sound); + Minecraft.getInstance().getSoundManager().play(sound); + } + + @Override + public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { + if (state.getBlock() != newState.getBlock()) { + if (level.isClientSide) { + stopSound(pos); + } + super.onRemove(state, level, pos, newState, isMoving); + } + } + + public static void stopSound(BlockPos pos) { + ReactorAlarmInstance sound = ACTIVE_SOUNDS.get(pos); + if (sound != null) { + net.minecraft.client.Minecraft.getInstance().getSoundManager().stop(sound); + ACTIVE_SOUNDS.remove(pos); + } + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(POWERED); + } + + // Indispensable pour l'interface IBE de Create + @Override + public Class getBlockEntityClass() { + return ReactorAlarmEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return CNBlockEntityTypes.REACTOR_ALARM.get(); // Assure-toi que c'est bien enregistré ici + } +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/alarm/ReactorAlarmEntity.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/alarm/ReactorAlarmEntity.java new file mode 100644 index 000000000..aeff502b3 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/alarm/ReactorAlarmEntity.java @@ -0,0 +1,20 @@ +package net.nuclearteam.createnuclear.content.multiblock.alarm; + +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.List; + +public class ReactorAlarmEntity extends SmartBlockEntity { + public ReactorAlarmEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public void addBehaviours(List behaviours) { + // Tu pourras ajouter ici des comportements Create plus tard + } +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/alarm/ReactorAlarmInstance.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/alarm/ReactorAlarmInstance.java new file mode 100644 index 000000000..37860f145 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/alarm/ReactorAlarmInstance.java @@ -0,0 +1,46 @@ +package net.nuclearteam.createnuclear.content.multiblock.alarm; + +import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance; +import net.minecraft.core.BlockPos; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.nuclearteam.createnuclear.CreateNuclear; + +public class ReactorAlarmInstance extends AbstractTickableSoundInstance { + private final BlockPos pos; + private final Level level; + + public ReactorAlarmInstance(Level level, BlockPos pos, SoundEvent sound) { + super(sound, SoundSource.BLOCKS, level.random); + this.level = level; + this.pos = pos; + this.x = pos.getX(); + this.y = pos.getY(); + this.z = pos.getZ(); + this.looping = true; + this.delay = 0; + this.volume = 1.5F; // Volume un peu plus raisonnable + } + + @Override + public void tick() { + if (this.level == null) { + this.stop(); + return; + } + + BlockState state = this.level.getBlockState(this.pos); + + // On arrête le son si : + // 1. Le bloc n'est plus une alarme + // 2. Le bloc n'est plus alimenté + if (!(state.getBlock() instanceof ReactorAlarm) || !state.getValue(ReactorAlarm.POWERED)) { + CreateNuclear.LOGGER.info("Sound Stopped : " + state.getBlock()); + + this.stop(); + ReactorAlarm.stopSound(this.pos); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlock.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlock.java index 0c91f4b21..64518488b 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlock.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlock.java @@ -24,7 +24,11 @@ import net.nuclearteam.createnuclear.CNBlocks; import net.nuclearteam.createnuclear.CNItems; +import net.nuclearteam.createnuclear.CreateNuclear; import net.nuclearteam.createnuclear.content.multiblock.CNMultiblock; +import net.nuclearteam.createnuclear.content.multiblock.itemRods.BuiltinRodTypes; +import net.nuclearteam.createnuclear.content.multiblock.itemRods.ItemRodType; +import net.nuclearteam.createnuclear.content.multiblock.itemRods.ItemRodTypeManager; import net.nuclearteam.createnuclear.content.multiblock.output.ReactorOutput; import net.nuclearteam.createnuclear.content.multiblock.output.ReactorOutputEntity; import net.nuclearteam.createnuclear.foundation.block.HorizontalDirectionalReactorBlock; @@ -71,6 +75,22 @@ public InteractionResult use(BlockState state, Level world, BlockPos pos, Player ItemStack heldItem = player.getItemInHand(hand); ItemStack slotItem = controller.inventory.getItem(0); + ItemRodType rodType = ItemRodTypeManager.getTypeForStack(heldItem) + .orElse(BuiltinRodTypes.FALLBACK); + + CreateNuclear.LOGGER.warn("\nRodType: {},\ngetType: {},\ngetItems: {},\ngetTags: {},\ngetLifeTime: {},\ngetBaseValueRod: {},\ngetProxyBonus: {}", + rodType, + rodType.getType().getSerializedName(), + rodType.getItems().isEmpty() + ? ItemStack.EMPTY + : rodType.getItems().get(0).get(), + rodType.getTags().isEmpty() + ? ItemStack.EMPTY + : rodType.getTags().get(0).get(), + rodType.getLifeTime(), + rodType.getBaseValueRod(), + rodType.getProxyBonus() + ); if (!state.getValue(ASSEMBLED)) { player.sendSystemMessage(Component.translatable("reactor.info.assembled.none").withStyle(ChatFormatting.RED)); @@ -110,6 +130,8 @@ public void onRemove(BlockState state, Level world, BlockPos pos, BlockState new world.removeBlockEntity(pos); rotate(state, pos.below(3), world, 0); notifyPlayers(world, "reactor.info.assembled.destroyer", ChatFormatting.RED); + // Unregister controller from TestPropa when removed + CreateNuclear.TEST_PROPA.unregisterController(world, pos); } @Override @@ -118,6 +140,8 @@ public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldS if (!state.getValue(ASSEMBLED)) { verify(state, pos, world, world.players(), true); } + // Register controller position for TestPropa + CreateNuclear.TEST_PROPA.registerController(world, pos); } @Override @@ -128,6 +152,8 @@ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState s rotate(state, pos.below(3), world, 0); notifyPlayers(world, "reactor.info.assembled.destroyer", ChatFormatting.RED); } + // Unregister on player destroy as well + CreateNuclear.TEST_PROPA.unregisterController(world, pos); } // this is the Function that verifies if the pattern is correct (as a test, we added the energy output) diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlockEntity.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlockEntity.java index 66dfb3d6d..92bde2f07 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlockEntity.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlockEntity.java @@ -29,6 +29,7 @@ import net.nuclearteam.createnuclear.CNBlocks; import net.nuclearteam.createnuclear.CNItems; import net.nuclearteam.createnuclear.CNTags; +import net.nuclearteam.createnuclear.content.multiblock.CNMultiblock; import net.nuclearteam.createnuclear.content.multiblock.IHeat; import net.nuclearteam.createnuclear.content.multiblock.input.ReactorInputEntity; import net.nuclearteam.createnuclear.content.multiblock.output.ReactorOutput; @@ -60,17 +61,6 @@ public class ReactorControllerBlockEntity extends SmartBlockEntity implements II public float reactorPower; public float lastReactorPower; public int countUraniumRod; - public int countGraphiteRod; - int overFlowHeatTimer = 0; - int overFlowLimiter = 30; - double overHeat = 0; - public int baseUraniumHeat = CNConfigs.common().rods.baseValueUranium.get(); - public int baseGraphiteHeat = CNConfigs.common().rods.baseValueGraphite.get(); - public int proximityUraniumHeat = CNConfigs.common().rods.BoProxyUranium.get(); - public int proximityGraphiteHeat = CNConfigs.common().rods.MaProxigraphite.get(); - public int maxUraniumPerGraphite = CNConfigs.common().rods.uraMaxGraph.get(); - public int graphiteTimer = CNConfigs.common().rods.graphiteRodLifetime.get(); - public int uraniumTimer = CNConfigs.common().rods.uraniumRodLifetime.get(); public int heat; public double total; public CompoundTag screen_pattern = new CompoundTag(); @@ -79,19 +69,7 @@ public class ReactorControllerBlockEntity extends SmartBlockEntity implements II private ItemStack fuelItem; private ItemStack coolerItem; - private final int[][] formattedPattern = new int[][]{ - {99,99,99,0,1,2,99,99,99}, - {99,99,3,4,5,6,7,99,99}, - {99,8,9,10,11,12,13,14,99}, - {15,16,17,18,19,20,21,22,23}, - {24,25,26,27,28,29,30,31,32}, - {33,34,35,36,37,38,39,40,41}, - {99,42,43,44,45,46,47,48,99}, - {99,99,49,50,51,52,53,99,99}, - {99,99,99,54,55,56,99,99,99} - }; - private final int[][] offsets = { {1, 0}, {-1, 0}, {0, 1}, {0, -1} }; - + private ReactorData reactorData; public ReactorControllerBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { @@ -100,6 +78,8 @@ public ReactorControllerBlockEntity(BlockEntityType type, BlockPos pos, Block configuredPattern = ItemStack.EMPTY; fuelItem = ItemStack.EMPTY; coolerItem = ItemStack.EMPTY; + + this.reactorData = new ReactorData(); } @Override @@ -147,6 +127,7 @@ protected void read(CompoundTag compound, boolean clientPacket) { } configuredPattern = ItemStack.of(compound.getCompound("items")); + this.reactorData.read(compound); // Initialize with empty stacks if not present in compound coolerItem = compound.contains("cooler") ? ItemStack.of(compound.getCompound("cooler")) : ItemStack.EMPTY; @@ -164,12 +145,13 @@ protected void write(CompoundTag compound, boolean clientPacket) { } compound.put("items", configuredPattern.serializeNBT()); + this.reactorData.write(compound); // Always write cooler and fuel items, even if they're empty compound.put("cooler", (coolerItem != null ? coolerItem : ItemStack.EMPTY).serializeNBT()); compound.put("fuel", (fuelItem != null ? fuelItem : ItemStack.EMPTY).serializeNBT()); - compound.putDouble("total", calculateProgress()); + compound.putDouble("total", this.reactorData.calculateProgress(configuredPattern.getOrCreateTag())); super.write(compound, clientPacket); } @@ -211,11 +193,11 @@ public void tick() { fuelItem = ItemStack.of(inventoryTag.getCompound(0)); coolerItem = ItemStack.of(inventoryTag.getCompound(1)); if (fuelItem != null && coolerItem != null && fuelItem.getCount() > 0 && coolerItem.getCount() > 0) { - configuredPattern.getOrCreateTag().putDouble("heat", calculateHeat(tag)); - if (updateTimers()) { + configuredPattern.getOrCreateTag().putDouble("heat", this.reactorData.calculateHeat(tag)); + if (this.reactorData.updateTimers()) { TransferUtil.extract(be.inventory, ItemVariant.of(fuelItem), 1); TransferUtil.extract(be.inventory, ItemVariant.of(coolerItem), 1); - total = calculateProgress(); + total = this.reactorData.calculateProgress(configuredPattern.getOrCreateTag()); int heat = (int) configuredPattern.getOrCreateTag().getDouble("heat"); @@ -241,100 +223,6 @@ private boolean isEmptyConfiguredPattern() { return !configuredPattern.isEmpty() || !configuredPattern.getOrCreateTag().isEmpty(); } - private boolean updateTimers() { - - total -= 1; - return total <= 0;//(total/constTotal) <= 0; - } - - private double calculateProgress() { - countGraphiteRod = configuredPattern.getOrCreateTag().getInt("countGraphiteRod"); - countUraniumRod = configuredPattern.getOrCreateTag().getInt("countUraniumRod"); - // graphiteTimer = configuredPattern.getOrCreateTag().getInt("graphiteTime"); - // uraniumTimer = configuredPattern.getOrCreateTag().getInt("uraniumTime"); - - double totalGraphiteRodLife = (double) graphiteTimer / countGraphiteRod; - double totalUraniumRodLife = (double) uraniumTimer / countUraniumRod; - - return totalGraphiteRodLife + totalUraniumRodLife; - } - - private double calculateHeat(CompoundTag tag) { - countGraphiteRod = configuredPattern.getOrCreateTag().getInt("countGraphiteRod"); - countUraniumRod = configuredPattern.getOrCreateTag().getInt("countUraniumRod"); - heat = 0; - - // if more than maxUraniumPerGraphite of the rods are uranium, the reactor will overheat - if (countUraniumRod > countGraphiteRod * maxUraniumPerGraphite) { - overFlowHeatTimer++; - if (overFlowHeatTimer >= overFlowLimiter) { - overHeat+=1; - overFlowHeatTimer= 0; - if (overFlowLimiter > 1) { - overFlowLimiter -= 1; - } - } - } else { - overFlowHeatTimer = 0; - overFlowLimiter = 30; - if (overHeat > 0) { - overHeat -= 2; - } else { - overHeat = 0; - } - } - // the offsets for the four directions (down, up, right, left) is int[][] offsets = { {1, 0}, {-1, 0}, {0, 1}, {0, -1} }; (defined at the top of the class) - String currentRod = ""; - ListTag list = inventory.getStackInSlot(0).getOrCreateTag().getCompound("pattern").getList("Items", Tag.TAG_COMPOUND); - for (int i = 0; i < list.size(); i++) { - if (ItemStack.of(list.getCompound(i)).is(CNTags.CNItemTags.FUEL.tag)) { - heat += baseUraniumHeat; - currentRod = "u"; - } else if (ItemStack.of(list.getCompound(i)).is(CNTags.CNItemTags.COOLER.tag)) { - heat += baseGraphiteHeat; - currentRod = "g"; - } - for (int j = 0; j < formattedPattern.length; j++) { - for (int k = 0; k < formattedPattern[j].length; k++) { - // Skip if the current pattern value is 99 - if (formattedPattern[j][k] == 99) continue; - - // Check if the current slot matches the pattern - if (list.getCompound(i).getInt("Slot") != formattedPattern[j][k]) continue; - - // For each neighbor (up, down, right, left) - for (int[] offset : offsets) { - int nj = j + offset[0]; - int nk = k + offset[1]; - - // Check if the indices are within the array boundaries - if (nj < 0 || nj >= formattedPattern.length || nk < 0 || nk >= formattedPattern[j].length) - continue; - - int neighborSlot = formattedPattern[nj][nk]; - - // Loop through the list to find the neighbor slot - for (int l = 0; l < list.size(); l++) { - if (list.getCompound(l).getInt("Slot") == neighborSlot) { - // If currentRod equals "u", apply the corresponding heat - if (currentRod.equals("u")) { - ItemStack stack = ItemStack.of(list.getCompound(l)); - if (stack.is(CNTags.CNItemTags.FUEL.tag)) { - heat += proximityUraniumHeat; - } else if (stack.is(CNTags.CNItemTags.COOLER.tag)) { - heat += proximityGraphiteHeat; - } - } - } - } - } - } - } - } - return heat + overHeat; - } - - private BlockPos getBlockPosForReactor(char character) { BlockPos pos = FindController(character); BlockPos posController = getBlockPos(); @@ -366,22 +254,7 @@ private CompoundTag convertePattern(CompoundTag compoundTag) { } private static BlockPos FindController(char character) { - return SimpleMultiBlockAislePatternBuilder.start() - .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAAAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AAIAA, ADADA, BACAB, ADADA, AAAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAOAA) - .where('A', a -> a.getState().is(CNBlocks.REACTOR_CASING.get())) - .where('B', a -> a.getState().is(CNBlocks.REACTOR_FRAME.get())) - .where('C', a -> a.getState().is(CNBlocks.REACTOR_CORE.get())) - .where('D', a -> a.getState().is(CNBlocks.REACTOR_COOLER.get())) - .where('*', a -> a.getState().is(CNBlocks.REACTOR_CONTROLLER.get())) - .where('O', a -> a.getState().is(CNBlocks.REACTOR_OUTPUT.get())) - .where('I', a -> a.getState().is(CNBlocks.REACTOR_INPUT.get())) - .getDistanceController(character); + return CNMultiblock.getPatternBuilder().getDistanceController(character); } public void rotate(BlockState state, BlockPos pos, Level level, int rotation) { diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorData.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorData.java new file mode 100644 index 000000000..87941a88a --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorData.java @@ -0,0 +1,159 @@ +package net.nuclearteam.createnuclear.content.multiblock.controller; + +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.world.item.ItemStack; +import net.nuclearteam.createnuclear.CNTags.CNItemTags; +import net.nuclearteam.createnuclear.infrastructure.config.CNConfigs; + +public class ReactorData { + public int countFuelRod; + private int countCoolerRod; + + private int overFlowHeatTimer = 0; + private int overFlowLimiter = 30; + private double overHeat = 0; + + private final int baseUraniumHeat = CNConfigs.common().rods.baseValueUranium.get(); + private final int baseGraphiteHeat = CNConfigs.common().rods.baseValueGraphite.get(); + private final int proximityUraniumHeat = CNConfigs.common().rods.BoProxyUranium.get(); + private final int proximityGraphiteHeat = CNConfigs.common().rods.MaProxigraphite.get(); + private final int maxUraniumPerGraphite = CNConfigs.common().rods.uraMaxGraph.get(); + private final int coolerTimer = CNConfigs.common().rods.graphiteRodLifetime.get(); + private final int fuelTimer = CNConfigs.common().rods.uraniumRodLifetime.get(); + + private int heat; + private double total; + + private final int[][] formattedPattern = new int[][]{ + {99,99,99,0,1,2,99,99,99}, + {99,99,3,4,5,6,7,99,99}, + {99,8,9,10,11,12,13,14,99}, + {15,16,17,18,19,20,21,22,23}, + {24,25,26,27,28,29,30,31,32}, + {33,34,35,36,37,38,39,40,41}, + {99,42,43,44,45,46,47,48,99}, + {99,99,49,50,51,52,53,99,99}, + {99,99,99,54,55,56,99,99,99} + }; + + private final int[][] offsets = { {1, 0}, {-1, 0}, {0, 1}, {0, -1} }; + + private ItemStack userPattern; + + public ReactorData() { + userPattern = ItemStack.EMPTY; + } + + + public void write(CompoundTag nbt) { + if (this.userPattern != null) { + nbt.put("userPattern", userPattern.serializeNBT()); + } + } + + public void read(CompoundTag nbt) { + if (nbt.contains("userPattern")) { + this.userPattern = ItemStack.of(nbt.getCompound("userPattern")); + } else { + this.userPattern = ItemStack.of(nbt.getCompound("items")); + } + } + + + public boolean updateTimers() { + total -= 1; + return total <= 0; + } + + public double calculateProgress(CompoundTag pattern) { + countCoolerRod = pattern.getInt("countGraphiteRod"); + countFuelRod = pattern.getInt("countUraniumRod"); + + double totalCoolerRodLife = (double) coolerTimer / countCoolerRod; + double totalFuelRodLife = (double) fuelTimer / countFuelRod; + + return totalFuelRodLife - totalCoolerRodLife; + } + + public double calculateHeat(CompoundTag pattern) { + countCoolerRod = pattern.getInt("countGraphiteRod"); + countFuelRod = pattern.getInt("countUraniumRod"); + heat = 0; + + if (countFuelRod > countCoolerRod * maxUraniumPerGraphite) { + overFlowHeatTimer++; + if (overFlowHeatTimer >= overFlowLimiter) { + overHeat += 1; + overFlowHeatTimer = 0; + if (overFlowLimiter > 1) { + overFlowLimiter--; + } + } + } else { + overFlowHeatTimer = 0; + overFlowLimiter = 30; + if (overHeat > 0) { + overHeat -= 2; + } else { + overHeat = 0; + } + } + + char currentRod = '\n'; + ListTag list = this.getPattern(); + for (int i = 0; i < list.size(); i++) { + if (ItemStack.of(list.getCompound(i)).is(CNItemTags.FUEL.tag)) { + heat += baseUraniumHeat; + currentRod = 'u'; + } else if (ItemStack.of(list.getCompound(i)).is(CNItemTags.COOLER.tag)) { + heat += baseGraphiteHeat; + currentRod = 'g'; + } + for (int row = 0; row < formattedPattern.length; row++) { + for (int patternSlot = 0; patternSlot < formattedPattern[row].length; patternSlot++) { + if (formattedPattern[row][patternSlot] == 99) continue; + + if (list.getCompound(i).getInt("Slot") != formattedPattern[row][patternSlot]) continue; + + for (int[] offset : offsets) { + int nRow = row + offset[0]; + int nPatternSlot = patternSlot + offset[1]; + + // Check if the indices are within the array boundaries + if (nRow < 0 || nRow >= formattedPattern.length || nPatternSlot < 0 || nPatternSlot >= formattedPattern.length) continue; + + int neighborSlot = formattedPattern[nRow][nPatternSlot]; + + // Loop through the list to find the neighbor slot + for (int l = 0; l < list.size(); l++) { + if (list.getCompound(l).getInt("Slot") == neighborSlot) { + // If currentRod equals "u", apply the corresponding heat + if (currentRod == 'u') { + ItemStack stack = ItemStack.of(list.getCompound(l)); + if (stack.is(CNItemTags.FUEL.tag)) { + heat += proximityUraniumHeat; + } else if (stack.is(CNItemTags.COOLER.tag)) { + heat += proximityGraphiteHeat; + } + } + } + } + } + + } + } + + } + return heat + overHeat; + } + + public void clear() { + } + + private ListTag getPattern() { + return userPattern.getOrCreateTag().getCompound("pattern").getList("Items", Tag.TAG_COMPOUND); + } + +} diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/core/ReactorCoreBlockEntity.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/core/ReactorCoreBlockEntity.java index cd3c1dbb3..a403ebba7 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/core/ReactorCoreBlockEntity.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/core/ReactorCoreBlockEntity.java @@ -10,7 +10,9 @@ import net.minecraft.world.phys.AABB; import net.nuclearteam.createnuclear.CNBlocks; import net.nuclearteam.createnuclear.CNEffects; +import net.nuclearteam.createnuclear.CNTags; import net.nuclearteam.createnuclear.CreateNuclear; +import net.nuclearteam.createnuclear.content.multiblock.CNMultiblock; import net.nuclearteam.createnuclear.content.multiblock.IHeat; import net.nuclearteam.createnuclear.content.multiblock.casing.ReactorCasingBlockEntity; import net.nuclearteam.createnuclear.content.multiblock.controller.ReactorControllerBlockEntity; @@ -83,22 +85,7 @@ private void explodeReactorCore(Level world, BlockPos pos, float radius) { } private static BlockPos FindController(char character) { - return SimpleMultiBlockAislePatternBuilder.start() - .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAAAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AAIAA, ADADA, BACAB, ADADA, AAAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAOAA) - .where('A', a -> a.getState().is(CNBlocks.REACTOR_CASING.get())) - .where('B', a -> a.getState().is(CNBlocks.REACTOR_FRAME.get())) - .where('C', a -> a.getState().is(CNBlocks.REACTOR_CORE.get())) - .where('D', a -> a.getState().is(CNBlocks.REACTOR_COOLER.get())) - .where('*', a -> a.getState().is(CNBlocks.REACTOR_CONTROLLER.get())) - .where('O', a -> a.getState().is(CNBlocks.REACTOR_OUTPUT.get())) - .where('I', a -> a.getState().is(CNBlocks.REACTOR_INPUT.get())) - .getDistanceController(character); + return CNMultiblock.getPatternBuilder().getDistanceController(character); } private BlockPos getBlockPosForReactor() { diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/input/ReactorInputEntity.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/input/ReactorInputEntity.java index 567441efc..3dfefde5b 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/input/ReactorInputEntity.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/input/ReactorInputEntity.java @@ -21,6 +21,9 @@ import net.nuclearteam.createnuclear.CNBlocks; import static net.nuclearteam.createnuclear.content.multiblock.CNMultiblock.*; + +import net.nuclearteam.createnuclear.CNTags; +import net.nuclearteam.createnuclear.content.multiblock.CNMultiblock; import net.nuclearteam.createnuclear.content.multiblock.controller.ReactorControllerBlockEntity; import org.jetbrains.annotations.Nullable; @@ -75,22 +78,7 @@ public Level getLevel() { private static BlockPos FindController(char character) { - return SimpleMultiBlockAislePatternBuilder.start() - .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAAAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AAIAA, ADADA, BACAB, ADADA, AAAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AABAA, ADADA, BACAB, ADADA, AABAA) - .aisle(AAAAA, AAAAA, AAAAA, AAAAA, AAOAA) - .where('A', a -> a.getState().is(CNBlocks.REACTOR_CASING.get())) - .where('B', a -> a.getState().is(CNBlocks.REACTOR_FRAME.get())) - .where('C', a -> a.getState().is(CNBlocks.REACTOR_CORE.get())) - .where('D', a -> a.getState().is(CNBlocks.REACTOR_COOLER.get())) - .where('*', a -> a.getState().is(CNBlocks.REACTOR_CONTROLLER.get())) - .where('O', a -> a.getState().is(CNBlocks.REACTOR_OUTPUT.get())) - .where('I', a -> a.getState().is(CNBlocks.REACTOR_INPUT.get())) - .getDistanceController(character); + return CNMultiblock.getPatternBuilder().getDistanceController(character); } @Override diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/itemRods/BuiltinRodTypes.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/itemRods/BuiltinRodTypes.java new file mode 100644 index 000000000..bc6fa2775 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/itemRods/BuiltinRodTypes.java @@ -0,0 +1,39 @@ +package net.nuclearteam.createnuclear.content.multiblock.itemRods; + +import net.nuclearteam.createnuclear.CNItems; +import net.nuclearteam.createnuclear.CNTags.CNItemTags; +import net.nuclearteam.createnuclear.CreateNuclear; +import net.nuclearteam.createnuclear.infrastructure.config.CNConfigs; +import net.nuclearteam.createnuclear.content.multiblock.itemRods.ItemRodType.RodComponentType; + +public class BuiltinRodTypes { + public static final ItemRodType + URANIUM = create("uranium") + .type(RodComponentType.FUEL) + .baseValueRod(CNConfigs.common().rods.baseValueUranium.get()) + .lifeTime(CNConfigs.common().rods.uraniumRodLifetime.get()) + .proxyBonus(CNConfigs.common().rods.BoProxyUranium.get()) + .addTags(CNItemTags.FUEL.tag) + .registerAndAssign(CNItems.URANIUM_ROD), + + GRAPHITE = create("graphite") + .type(RodComponentType.COOLER) + .baseValueRod(CNConfigs.common().rods.baseValueGraphite.get()) + .lifeTime(CNConfigs.common().rods.graphiteRodLifetime.get()) + .proxyBonus(CNConfigs.common().rods.MaProxigraphite.get()) + .addTags(CNItemTags.COOLER.tag) + .registerAndAssign(CNItems.GRAPHITE_ROD), + + FALLBACK = create("fallback") + .type(RodComponentType.NONE) + .baseValueRod(0) + .lifeTime(0) + .proxyBonus(0) + .register() + ; + + private static ItemRodType.Builder create(String name) { + return new ItemRodType.Builder(CreateNuclear.asResource(name)); + } + public static void register() {} +} diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/itemRods/ItemRodType.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/itemRods/ItemRodType.java new file mode 100644 index 000000000..2b23ff5c0 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/itemRods/ItemRodType.java @@ -0,0 +1,237 @@ +package net.nuclearteam.createnuclear.content.multiblock.itemRods; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.RegisteredObjects; +import net.minecraft.ResourceLocationException; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.ItemLike; +import net.nuclearteam.createnuclear.CreateNuclear; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.function.Supplier; + +public class ItemRodType { + private List> items = new ArrayList<>(); + private List>> tags = new ArrayList<>(); + + private int lifeTime = 3600; + private final int MIN_LIFETIME = 100; + private final int MAX_LIFETIME = 5000; + + private int proxyBonus = 0; + private final int MIN_PROXY_BONUS = -20; + private final int MAX_PROXY_BONUS = 20; + + private int baseValueRod = 0; + private final int MIN_BASE_VALUE = -50; + private final int MAX_BASE_VALUE = 50; + + private RodComponentType type; + + protected ItemRodType() {} + + public List> getItems() { + return items; + } + + public int getLifeTime() { + return lifeTime; + } + + private void validateLifeTime(int value) { + if (value < MIN_LIFETIME || value > MAX_LIFETIME) + throw new IllegalArgumentException("lifeTime out of bounds: " + value); + } + + public void setLifeTime(int lifeTime) { + validateLifeTime(lifeTime); + this.lifeTime = lifeTime; + } + + public int getProxyBonus() { + return proxyBonus; + } + + private void validateProxyBonus(int value) { + if (value < MIN_PROXY_BONUS || value > MAX_PROXY_BONUS) + throw new IllegalArgumentException("proxyBonus out of bounds: " + value); + } + + public void setProxyBonus(int proxyBonus) { + validateProxyBonus(proxyBonus); + this.proxyBonus = proxyBonus; + } + + public int getBaseValueRod() { + return baseValueRod; + } + + private void validateBaseValueRod(int value) { + if (value < MIN_BASE_VALUE || value > MAX_BASE_VALUE) + throw new IllegalArgumentException("baseValueRod out of bounds: " + value); + } + + public void setBaseValueRod(int baseValueRod) { + validateBaseValueRod(baseValueRod); + this.baseValueRod = baseValueRod; + } + + public RodComponentType getType() { + return type; + } + + public List>> getTags() { + return tags; + } + + + + + + public static ItemRodType fromJson(JsonObject object) { + ItemRodType type = new ItemRodType(); + try { + JsonElement itemsElement = object.get("items"); + if (itemsElement != null && itemsElement.isJsonArray()) { + for (JsonElement element : itemsElement.getAsJsonArray()) { + if (element.isJsonPrimitive()) { + JsonPrimitive primitive = element.getAsJsonPrimitive(); + if (primitive.isString()) { + try { + BuiltInRegistries.ITEM.getOptional(new ResourceLocation(primitive.getAsString())) + .ifPresent(item -> type.items.add(() ->item)); + } catch (ResourceLocationException e) { + + } + } + } + } + } + + parseJsonPrimitive(object, "type", JsonPrimitive::isString, primitive -> type.type = RodComponentType.valueOf(primitive.getAsString())); + parseJsonPrimitive(object, "baseValueRod", JsonPrimitive::isNumber, primitive -> type.setBaseValueRod(primitive.getAsInt())); + parseJsonPrimitive(object, "lifeTime", JsonPrimitive::isNumber, primitive -> type.setLifeTime(primitive.getAsInt())); + parseJsonPrimitive(object, "proxyBonus", JsonPrimitive::isNumber, primitive -> type.setProxyBonus(primitive.getAsInt())); + } catch (Exception e) { + CreateNuclear.LOGGER.warn("Error parsing ItemRodType: {}", e.getMessage()); + return null; + } + return type; + } + + private static void parseJsonPrimitive(JsonObject object, String key, Predicate predicate, Consumer consumer) { + JsonElement element = object.get(key); + if (element != null && element.isJsonPrimitive()) { + JsonPrimitive primitive = element.getAsJsonPrimitive(); + if (predicate.test(primitive)) { + consumer.accept(primitive); + } + } + } + + public static void toBuffer(ItemRodType type, FriendlyByteBuf buffer) { + buffer.writeVarInt(type.items.size()); + for (Supplier delegate : type.items) { + buffer.writeResourceLocation(RegisteredObjects.getKeyOrThrow(delegate.get())); + } + + buffer.writeVarInt(type.lifeTime); + buffer.writeVarInt(type.proxyBonus); + buffer.writeVarInt(type.baseValueRod); + buffer.writeUtf(type.type.name()); + } + + public static ItemRodType fromBuffer(FriendlyByteBuf buffer) { + ItemRodType type = new ItemRodType(); + int size = buffer.readVarInt(); + for (int i = 0; i < size; i++) { + Item item = BuiltInRegistries.ITEM.get(buffer.readResourceLocation()); + if (item != null) { + type.items.add(() -> item); + } + } + type.lifeTime = buffer.readVarInt(); + type.proxyBonus = buffer.readVarInt(); + type.baseValueRod = buffer.readVarInt(); + type.type = RodComponentType.valueOf(buffer.readUtf()); + + return type; + } + + public static class Builder { + protected ResourceLocation id; + protected ItemRodType result; + + public Builder(ResourceLocation id) { + this.id = id; + this.result = new ItemRodType(); + } + + public Builder baseValueRod(int baseValueRod) { + result.baseValueRod = baseValueRod; + return this; + } + + public Builder proxyBonus(int proxyBonus) { + result.proxyBonus = proxyBonus; + return this; + } + + public Builder lifeTime(int lifeTime) { + result.lifeTime = lifeTime; + return this; + } + + public Builder type(RodComponentType type) { + result.type = type; + return this; + } + + public Builder addItems(ItemLike... items) { + for (ItemLike provider : items) result.items.add(provider::asItem); + return this; + } + + public Builder addTags(TagKey... tags) { + for (TagKey provider : tags) result.tags.add(() -> provider); + return this; + } + + public ItemRodType register() { + ItemRodTypeManager.registerBuiltinType(id, result); + return result; + } + + public ItemRodType registerAndAssign(ItemLike... items) { + addItems(items); + register(); + return result; + } + } + + public enum RodComponentType implements StringRepresentable { + COOLER, + FUEL, + NONE + ; + + public boolean isFuel() { return this == FUEL; } + public boolean isCooler() { return this == COOLER; } + + @Override + public String getSerializedName() { + return Lang.asId(name()); + } + } +} diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/itemRods/ItemRodTypeManager.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/itemRods/ItemRodTypeManager.java new file mode 100644 index 000000000..6ebf89fca --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/itemRods/ItemRodTypeManager.java @@ -0,0 +1,163 @@ +package net.nuclearteam.createnuclear.content.multiblock.itemRods; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.simibubi.create.foundation.networking.SimplePacketBase; +import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener; +import net.minecraft.util.profiling.ProfilerFiller; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.nuclearteam.createnuclear.CNPackets; +import net.nuclearteam.createnuclear.CreateNuclear; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Supplier; + +public class ItemRodTypeManager { + private static final Map BUILTIN_TYPE_MAP = new HashMap<>(); + private static final Map CUSTOM_TYPE_MAP = new HashMap<>(); + private static final Map ITEM_TO_TYPE_MAP = new HashMap<>(); + + public static void registerBuiltinType(ResourceLocation id, ItemRodType type) { + synchronized (BUILTIN_TYPE_MAP) { + BUILTIN_TYPE_MAP.put(id, type); + } + } + + public static ItemRodType getBuiltinType(ResourceLocation id) { + return BUILTIN_TYPE_MAP.get(id); + } + public static ItemRodType getCustomType(ResourceLocation id) { + return CUSTOM_TYPE_MAP.get(id); + } + public static ItemRodType getTypeForItem(Item item) { + return ITEM_TO_TYPE_MAP.get(item); + } + + public static Optional getTypeForStack(ItemStack item) { + if (item.isEmpty()) + return Optional.empty(); + return Optional.ofNullable(getTypeForItem(item.getItem())); + } + + public static void clear() { + CUSTOM_TYPE_MAP.clear(); + ITEM_TO_TYPE_MAP.clear(); + } + + public static void fillItemMap() { + for (Map.Entry entry : BUILTIN_TYPE_MAP.entrySet()) { + ItemRodType type = entry.getValue(); + for (Supplier delegate : type.getItems()) { + ITEM_TO_TYPE_MAP.put(delegate.get(), type); + } + } + for (Map.Entry entry : CUSTOM_TYPE_MAP.entrySet()) { + ItemRodType type = entry.getValue(); + for (Supplier delegate : type.getItems()) { + ITEM_TO_TYPE_MAP.put(delegate.get(), type); + } + } + } + + public static void toBuffer(FriendlyByteBuf buffer) { + buffer.writeVarInt(CUSTOM_TYPE_MAP.size()); + for (Map.Entry entry : CUSTOM_TYPE_MAP.entrySet()) { + buffer.writeResourceLocation(entry.getKey()); + ItemRodType.toBuffer(entry.getValue(), buffer); + } + } + + public static void fromBuffer(FriendlyByteBuf buffer) { + clear(); + + int size = buffer.readVarInt(); + for (int i = 0; i < size; i++) { + CUSTOM_TYPE_MAP.put(buffer.readResourceLocation(), ItemRodType.fromBuffer(buffer)); + } + + fillItemMap(); + } + + public static void syncTo(ServerPlayer player) { + CNPackets.getChannel().sendToClient(new SyncPacket(), player); + } + + public static void syncToAll(List players) { + CNPackets.getChannel().sendToClients(new SyncPacket(), players); + } + + public static class ReloadListener extends SimpleJsonResourceReloadListener implements IdentifiableResourceReloadListener { + + private static final Gson GSON = new Gson(); + + public static final ReloadListener INSTANCE = new ReloadListener(); + + protected ReloadListener() { + super(GSON, "item_rod_types"); + } + + @Override + protected void apply(Map map, ResourceManager resourceManager, ProfilerFiller profiler) { + clear(); + + for (Map.Entry entry : map.entrySet()) { + JsonElement element = entry.getValue(); + if (element.isJsonObject()) { + ResourceLocation id = entry.getKey(); + JsonObject object = element.getAsJsonObject(); + ItemRodType type = ItemRodType.fromJson(object); + CUSTOM_TYPE_MAP.put(id, type); + } + } + + fillItemMap(); + } + + @Override + public ResourceLocation getFabricId() { + return CreateNuclear.asResource("item_rod_types"); + } + } + + public static class SyncPacket extends SimplePacketBase { + + private FriendlyByteBuf buffer; + + public SyncPacket() { + } + + public SyncPacket(FriendlyByteBuf buffer) { + this.buffer = buffer; + } + + @Override + public void write(FriendlyByteBuf buffer) { + toBuffer(buffer); + } + + @Override + public boolean handle(Context context) { + buffer.retain(); + context.enqueueWork(() -> { + try { + CreateNuclear.LOGGER.warn("Sync Packet"); + fromBuffer(buffer); + } finally { + buffer.release(); + } + }); + return true; + } + + } +} diff --git a/src/main/java/net/nuclearteam/createnuclear/content/nitrateOre/NitrateOreBlock.java b/src/main/java/net/nuclearteam/createnuclear/content/nitrateOre/NitrateOreBlock.java new file mode 100644 index 000000000..d4ca098e8 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/nitrateOre/NitrateOreBlock.java @@ -0,0 +1,126 @@ +package net.nuclearteam.createnuclear.content.nitrateOre; + +import com.tterrag.registrate.util.nullness.NonNullUnaryOperator; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.particles.DustParticleOptions; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.item.enchantment.Enchantments; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.phys.BlockHitResult; +import org.joml.Vector3f; + +import javax.annotation.ParametersAreNonnullByDefault; + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +@SuppressWarnings({"deprecation", "unused"}) +public class NitrateOreBlock extends Block { + public static final BooleanProperty LIT = BlockStateProperties.LIT; + + public NitrateOreBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.defaultBlockState().setValue(LIT, false)); + } + + @Override + public void attack(BlockState state, Level level, BlockPos pos, Player player) { + interact(state, level, pos); + super.attack(state, level, pos, player); + } + + @Override + public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) { + if (!entity.isSteppingCarefully()) { + interact(state, level, pos); + } + super.stepOn(level, pos, state, entity); + } + + @Override + public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (level.isClientSide) { + spawnParticles(level, pos); + } else { + interact(state, level, pos); + } + ItemStack itemStack = player.getItemInHand(hand); + if (itemStack.getItem() instanceof BlockItem && new BlockPlaceContext(player, hand, itemStack, hit).canPlace()) { + return InteractionResult.PASS; + } + return InteractionResult.SUCCESS; + } + + private static void interact(BlockState state, Level level, BlockPos pos) { + spawnParticles(level, pos); + if (!state.getValue(LIT)) { + level.setBlock(pos, state.setValue(LIT, true), 3); + } + } + + @Override + public boolean isRandomlyTicking(BlockState state) { + return state.getValue(LIT); + } + + @Override + public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (state.getValue(LIT)) { + level.setBlock(pos, state.setValue(LIT, false), 3); + } + } + + @Override + public void spawnAfterBreak(BlockState state, ServerLevel level, BlockPos pos, ItemStack stack, boolean dropExperience) { + super.spawnAfterBreak(state, level, pos, stack, dropExperience); + if (dropExperience && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, stack) == 0) { + int i = 1 + level.random.nextInt(5); + this.popExperience(level, pos, i); + } + } + + @Override + public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource random) { + if (state.getValue(LIT)) { + NitrateOreBlock.spawnParticles(level, pos); + } + } + + private static void spawnParticles(Level level, BlockPos pos) { + double d = 0.5625; + RandomSource randomSource = level.random; + for (Direction direction : Direction.values()) { + BlockPos blockPos = pos.relative(direction); + if (level.getBlockState(blockPos).isSolidRender(level, blockPos)) continue; + Direction.Axis axis = direction.getAxis(); + double e = axis == Direction.Axis.X ? 0.5 + 0.5625 * (double)direction.getStepX() : (double)randomSource.nextFloat(); + double f = axis == Direction.Axis.Y ? 0.5 + 0.5625 * (double)direction.getStepY() : (double)randomSource.nextFloat(); + double g = axis == Direction.Axis.Z ? 0.5 + 0.5625 * (double)direction.getStepZ() : (double)randomSource.nextFloat(); + level.addParticle(new DustParticleOptions(new Vector3f(57f / 255f, 191f / 255f, 82f / 255f), 1f), (double)pos.getX() + e, (double)pos.getY() + f, (double)pos.getZ() + g, 0.0, 0.0, 0.0); + } + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(LIT); + } + + public static NonNullUnaryOperator litBlockEmission() { + return p -> p.lightLevel(state -> state.getValue(LIT) ? 9 : 0); + } +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/content/particles/IrradiatedParticles.java b/src/main/java/net/nuclearteam/createnuclear/content/particles/IrradiatedParticles.java new file mode 100644 index 000000000..322a7c55e --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/particles/IrradiatedParticles.java @@ -0,0 +1,47 @@ +package net.nuclearteam.createnuclear.content.particles; + +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.particle.*; +import net.minecraft.util.RandomSource; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class IrradiatedParticles extends TextureSheetParticle { + protected IrradiatedParticles(ClientLevel pLevel, double pX, double pY, double pZ, + SpriteSet spriteSet, double pXSpeed, double pYSpeed, double pZSpeed) { + super(pLevel, pX, pY, pZ, pXSpeed, pYSpeed, pZSpeed); + + RandomSource randomSource = level.random; + + this.xo = randomSource.nextGaussian() * (double)1.0E-6f; + this.yo = randomSource.nextGaussian() * (double)1.0E-4f; + this.zo = randomSource.nextGaussian() * (double)1.0E-6f; + + this.quadSize *= this.random.nextFloat() * 0.6f + 0.6f; + this.hasPhysics = false; + this.gravity = 0.0f; + + this.friction = 0.8f; + this.lifetime = 40; + + this.setSpriteFromAge(spriteSet); + } + + @Override + public @NotNull ParticleRenderType getRenderType() { + return ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT; + } + + public static class Factory implements ParticleProvider { + private final SpriteSet spriteSet; + + public Factory(SpriteSet spriteSet) { + this.spriteSet = spriteSet; + } + + @Override + public @Nullable Particle createParticle(IrradiatedParticlesData type, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { + return new IrradiatedParticles(level, x, y, z, this.spriteSet, xSpeed, ySpeed, zSpeed); + } + } +} diff --git a/src/main/java/net/nuclearteam/createnuclear/content/particles/IrradiatedParticlesData.java b/src/main/java/net/nuclearteam/createnuclear/content/particles/IrradiatedParticlesData.java new file mode 100644 index 000000000..ccb1b7bf7 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/particles/IrradiatedParticlesData.java @@ -0,0 +1,81 @@ +package net.nuclearteam.createnuclear.content.particles; + +import com.mojang.brigadier.StringReader; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import com.simibubi.create.foundation.particle.ICustomParticleDataWithSprite; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.client.particle.ParticleEngine; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.ParticleType; +import net.minecraft.network.FriendlyByteBuf; +import net.nuclearteam.createnuclear.CNParticleTypes; + +import javax.annotation.ParametersAreNonnullByDefault; +import java.util.Locale; + +@SuppressWarnings("deprecation") +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public class IrradiatedParticlesData implements ParticleOptions, ICustomParticleDataWithSprite { + public static final Codec CODEC = RecordCodecBuilder.create(i -> i + .group(Codec.INT.fieldOf("t") + .forGetter(p -> p.tick)) + .apply(i, IrradiatedParticlesData::new) + ); + + public static final ParticleOptions.Deserializer DESERIALIZER = new ParticleOptions.Deserializer<>() { + public IrradiatedParticlesData fromCommand(ParticleType particleTypeIn, StringReader reader) throws CommandSyntaxException { +// reader.expect(' '); +// int tick = reader.readInt(); +// return new IrradiatedParticlesData(tick); + return new IrradiatedParticlesData(); + } + + public IrradiatedParticlesData fromNetwork(ParticleType particleTypeIn, + FriendlyByteBuf buffer) { + return new IrradiatedParticlesData(buffer.readInt()); + } + }; + + final int tick; + + public IrradiatedParticlesData(int tick) { + this.tick = tick; + } + + public IrradiatedParticlesData() { + this(0); + } + + @Override + public ParticleType getType() { + return CNParticleTypes.IRRADIATED_PARTICLES.get(); + } + + @Override + public void writeToNetwork(FriendlyByteBuf buffer) { + buffer.writeInt(tick); + } + + @Override + public String writeToString() { + return String.format(Locale.ROOT, "%s", CNParticleTypes.IRRADIATED_PARTICLES.parameter(), tick); + } + + @Override + public Deserializer getDeserializer() { + return DESERIALIZER; + } + + @Override + public Codec getCodec(ParticleType type) { + return CODEC; + } + + @Override + public ParticleEngine.SpriteParticleRegistration getMetaFactory() { + return IrradiatedParticles.Factory::new; + } +} diff --git a/src/main/java/net/nuclearteam/createnuclear/content/test/TestBlock.java b/src/main/java/net/nuclearteam/createnuclear/content/test/TestBlock.java new file mode 100644 index 000000000..6435041ad --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/test/TestBlock.java @@ -0,0 +1,68 @@ +/*package net.nuclearteam.createnuclear.content.test; + +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.phys.BlockHitResult; +import net.nuclearteam.createnuclear.CNBlockEntityTypes; +import net.nuclearteam.createnuclear.CNItems; + +import javax.annotation.ParametersAreNonnullByDefault; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@SuppressWarnings({"deprecation", "null"}) +public class TestBlock extends Block implements IBE { + public static final BooleanProperty ASSEMBLED = BooleanProperty.create("assembled"); + + public TestBlock(Properties properties) { + super(properties); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(ASSEMBLED); + super.createBlockStateDefinition(builder); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState() + .setValue(ASSEMBLED, false); + } + + @Override + public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (level.isClientSide) return InteractionResult.SUCCESS; + + if (player.getItemInHand(hand).is(CNItems.RAW_LEAD.get()) && state.getValue(ASSEMBLED)) { + state.setValue(ASSEMBLED, false); + return InteractionResult.CONSUME; + } else if (player.getItemInHand(hand).is(CNItems.COAL_DUST.get()) && !state.getValue(ASSEMBLED)) { + state.setValue(ASSEMBLED, true); + return InteractionResult.CONSUME; + } + + return super.use(state, level, pos, player, hand, hit); + } + + @Override + public Class getBlockEntityClass() { + return TestBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return CNBlockEntityTypes.TEST_BLOCK_ENTITY.get(); + } +}*/ diff --git a/src/main/java/net/nuclearteam/createnuclear/content/test/TestBlockEntity.java b/src/main/java/net/nuclearteam/createnuclear/content/test/TestBlockEntity.java new file mode 100644 index 000000000..b3f8aace1 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/test/TestBlockEntity.java @@ -0,0 +1,30 @@ +package net.nuclearteam.createnuclear.content.test; + +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.nuclearteam.createnuclear.CreateNuclear; + +import java.util.List; + +public class TestBlockEntity extends SmartBlockEntity { + public TestBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public void addBehaviours(List behaviours) { + } + + @Override + public void tick() { + super.tick(); + + CreateNuclear.LOGGER.info("\n TestBlockEntity.tick Map: {}, {} \n TestBlockEntity.tick Pos: {}" + , CreateNuclear.TEST_PROPA.getMap(this), CreateNuclear.TEST_PROPA.getMap(this).get(12L) + , CreateNuclear.TEST_PROPA.getOrPos(this)); + + } +} diff --git a/src/main/java/net/nuclearteam/createnuclear/content/test/TestPropa.java b/src/main/java/net/nuclearteam/createnuclear/content/test/TestPropa.java new file mode 100644 index 000000000..cfbf21266 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/content/test/TestPropa.java @@ -0,0 +1,83 @@ +package net.nuclearteam.createnuclear.content.test; + +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.core.Direction; +import net.nuclearteam.createnuclear.CreateNuclear; +import net.nuclearteam.createnuclear.CNBlocks; +import net.nuclearteam.createnuclear.foundation.block.HorizontalDirectionalReactorBlock; + +import java.util.*; + +public class TestPropa { + // Map levels to a set of ReactorController positions + private static final Map> controllers = new HashMap<>(); + + public void onLoadWorld(LevelAccessor world) { + if (world instanceof Level lvl) { + controllers.putIfAbsent(lvl, new HashSet<>()); + CreateNuclear.LOGGER.warn("TestPropa: Loading World {}", lvl.dimension().location()); + } + } + + public void onUnloadWorld(LevelAccessor world) { + if (!(world instanceof Level lvl)) return; + + CreateNuclear.LOGGER.warn("TestPropa: Unloading World {} - will process {} controllers", lvl.dimension().location(), controllers.getOrDefault(lvl, Collections.emptySet()).size()); + + Set set = controllers.remove(lvl); + if (set == null || set.isEmpty()) return; + + for (BlockPos pos : set) { + try { + if (!lvl.isAreaLoaded(pos, 0)) continue; + BlockState state = lvl.getBlockState(pos); + if (state.is(CNBlocks.REACTOR_CONTROLLER.get())) { + DirectionProperty facingProp = HorizontalDirectionalReactorBlock.FACING; + Direction current = state.getValue(facingProp); + Direction newDir = current.getOpposite(); // flip facing on unload + lvl.setBlock(pos, state.setValue(facingProp, newDir), 3); + CreateNuclear.LOGGER.warn("TestPropa: Changed facing at {} from {} to {}", pos, current, newDir); + } + } catch (Exception e) { + CreateNuclear.LOGGER.warn("TestPropa: Error changing facing at {}: {}", pos, e.getMessage()); + } + } + } + + // Called by ReactorControllerBlock when it's placed/created + public void registerController(Level level, BlockPos pos) { + controllers.computeIfAbsent(level, l -> new HashSet<>()).add(pos); + CreateNuclear.LOGGER.warn("TestPropa: Registered controller at {} in {}", pos, level.dimension().location()); + } + + // Called when controller is removed/destroyed + public void unregisterController(Level level, BlockPos pos) { + Set set = controllers.get(level); + if (set != null) { + set.remove(pos); + if (set.isEmpty()) controllers.remove(level); + CreateNuclear.LOGGER.warn("TestPropa: Unregistered controller at {} in {}", pos, level.dimension().location()); + } + } + + public Map getMap(SmartBlockEntity be) { + Long id = 12L; + Map getMap = new HashMap<>(); + getMap.put(id, "C'est un test"); + return getMap; + } + + public Map getOrPos(SmartBlockEntity be) { + BlockPos pos = be.getBlockPos(); + BlockState state = be.getBlockState(); + Map map = new HashMap<>(); + map.put(state, pos); + return map; + } +} diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/block/MultiDirectionalReactorBlock.java b/src/main/java/net/nuclearteam/createnuclear/foundation/block/MultiDirectionalReactorBlock.java new file mode 100644 index 000000000..8ffce0de1 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/block/MultiDirectionalReactorBlock.java @@ -0,0 +1,33 @@ +package net.nuclearteam.createnuclear.foundation.block; + +import com.mojang.math.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.LevelReader; +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.SoundType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; + +@MethodsReturnNonnullByDefault +@SuppressWarnings("deprecation") +public abstract class MultiDirectionalReactorBlock extends Block { + public static final DirectionProperty FACING = BlockStateProperties.FACING; + + public MultiDirectionalReactorBlock(Properties properties) { + super(properties); + } + + @Override + public BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + public BlockState mirror(BlockState state, Mirror mirror) { + return state.rotate(mirror.getRotation(state.getValue(FACING))); + } +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCompactingRecipeGen.java b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCompactingRecipeGen.java index 05304666f..fe0379660 100644 --- a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCompactingRecipeGen.java +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCompactingRecipeGen.java @@ -16,7 +16,8 @@ public class CNCompactingRecipeGen extends ProcessingRecipeGen { GeneratedRecipe - YELLOWCAKE = create(CreateNuclear.asResource("uranium_fluid_to_yellowcake"), b -> b.require(CNFluids.URANIUM.get(), 8100).output(CNItems.YELLOWCAKE, 1)); + YELLOWCAKE = create(CreateNuclear.asResource("uranium_fluid_to_yellowcake"), b -> b.require(CNFluids.URANIUM.get(), 8100).output(CNItems.YELLOWCAKE, 1)), + THORIUM_INGOT = create(CreateNuclear.asResource("thorium_fluid_to_thorium_ingot"), b -> b.require(CNFluids.THORIUM.get(), 8100).output(CNItems.THORIUM_INGOT, 1)); public CNCompactingRecipeGen(FabricDataOutput output) { diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCookingRecipeGen.java b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCookingRecipeGen.java index fdc56c2f6..3f90117fb 100644 --- a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCookingRecipeGen.java +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCookingRecipeGen.java @@ -39,7 +39,8 @@ public class CNCookingRecipeGen extends CreateRecipeProvider { URANIUM_ORE_TO_URANIUM_POWDER = blastFurnaceRecipeTags(() -> CNItems.RAW_URANIUM::get, () -> CNTags.CNItemTags.URANIUM_ORES.tag, "_for_uranium_ore", 4), RAW_LEAD_ORES = blastFurnaceRecipeTags(() -> CNItems.LEAD_INGOT::get, () -> CNTags.CNItemTags.LEAD_ORES.tag, "_for_lead_ore", 1), RAW_LEAD = blastFurnaceRecipe(CNItems.LEAD_INGOT::get, CNItems.RAW_LEAD::get, "_for_raw_lead", 1), - CRUSHED_LEAD = blastFurnaceRecipe(CNItems.LEAD_INGOT::get, AllItems.CRUSHED_LEAD::get, "_for_crushed_lead", 1) + CRUSHED_LEAD = blastFurnaceRecipe(CNItems.LEAD_INGOT::get, AllItems.CRUSHED_LEAD::get, "_for_crushed_lead", 1), + NITROGEN_CONCENTRATE = blastFurnaceRecipe(CNItems.NITROGEN_CONCENTRATE::get, CNItems.NITRATE::get, "_for_nitrogen_concentrate", 1) ; diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCrushingRecipeGen.java b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCrushingRecipeGen.java index c86999471..b6a4a15b3 100644 --- a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCrushingRecipeGen.java +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNCrushingRecipeGen.java @@ -34,24 +34,28 @@ public class CNCrushingRecipeGen extends ProcessingRecipeGen { .output(.50f, CNItems.COAL_DUST) ), + THORIUM_DUST = create(() -> CNItems.RAW_THORIUM, b -> b.duration(250) + .output(.50f, CNItems.THORIUM_DUST) + ), + GRANITE_URANIUM_POWDER = create(() -> Items.GRANITE, b -> b.duration(250) .output(.5f, CNItems.URANIUM_POWDER) .output(1f, Blocks.RED_SAND) - ) - ; + ), - GeneratedRecipe - RAW_URANIUM = create(() -> AllItems.CRUSHED_URANIUM, b -> b.duration(250) + + RAW_URANIUM = create(() -> CNItems.RAW_URANIUM, b -> b.duration(250) .output(1, CNItems.URANIUM_POWDER,9) ), RAW_URANIUM_BLOCK = create(() -> CNBlocks.RAW_URANIUM_BLOCK, b -> b.duration(250) .output(1, AllItems.CRUSHED_URANIUM,9) - .output(.75f, AllItems.EXP_NUGGET, 18) + .output(.75f, AllItems.EXP_NUGGET, 2) ), RAW_LEAD = create(() -> CNItems.RAW_LEAD, b -> b.duration(250) .output(1, AllItems.CRUSHED_LEAD,1) + .output(.75f, AllItems.EXP_NUGGET, 18) ), RAW_LEAD_BLOCK = create(() -> CNBlocks.RAW_LEAD_BLOCK, b -> b.duration(250) diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNMechanicalCraftingRecipeGen.java b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNMechanicalCraftingRecipeGen.java index 398b2af42..3df876435 100644 --- a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNMechanicalCraftingRecipeGen.java +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNMechanicalCraftingRecipeGen.java @@ -14,6 +14,7 @@ import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Blocks; import net.nuclearteam.createnuclear.*; +import org.apache.commons.compress.harmony.unpack200.IcTuple; import java.util.function.UnaryOperator; @@ -41,6 +42,17 @@ public class CNMechanicalCraftingRecipeGen extends CreateRecipeProvider { .patternLine(" U ") .patternLine("U ") ), + + THORIUM_ROD = create(CNItems.THORIUM_ROD::get) + .recipe(b -> b + .key('T', Ingredient.of(CNItems.THORIUM_INGOT)) + .patternLine(" T") + .patternLine(" T ") + .patternLine(" T ") + .patternLine(" T ") + .patternLine("T ") + ), + REACTOR_FRAME = create(CNBlocks.REACTOR_FRAME::get) .recipe(b -> b .key('C', Ingredient.of(CNBlocks.REACTOR_CASING)) @@ -93,6 +105,19 @@ public class CNMechanicalCraftingRecipeGen extends CreateRecipeProvider { .patternLine("CSBSC") .patternLine("CPSPC") .patternLine("CCCCC") + ), + + REACTOR_ALARM = create(CNBlocks.REACTOR_ALARM::get) + .recipe(b -> b + .key('S', Ingredient.of(CNBlocks.STEEL_BLOCK)) + .key('C', Ingredient.of(Items.CLOCK)) + .key('R', Ingredient.of(Blocks.REPEATER)) + .key('N', Ingredient.of(Blocks.NOTE_BLOCK)) + .patternLine("SSSSS") + .patternLine("SNRNS") + .patternLine("SRCRS") + .patternLine("SNRNS") + .patternLine("SSSSS") ); GeneratedRecipeBuilder create(Supplier result) { diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNMixingRecipeGen.java b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNMixingRecipeGen.java index 284445fa4..6a60c7734 100644 --- a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNMixingRecipeGen.java +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNMixingRecipeGen.java @@ -1,6 +1,10 @@ package net.nuclearteam.createnuclear.foundation.data.recipe; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.content.processing.recipe.HeatCondition; +import com.simibubi.create.content.decoration.palettes.AllPaletteStoneTypes; import com.simibubi.create.content.processing.recipe.ProcessingRecipe; import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder; import com.simibubi.create.foundation.data.recipe.ProcessingRecipeGen; @@ -8,6 +12,8 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.world.item.Items; import net.nuclearteam.createnuclear.CNFluids; import net.nuclearteam.createnuclear.CNItems; import net.nuclearteam.createnuclear.CNTags; @@ -29,7 +35,28 @@ public class CNMixingRecipeGen extends ProcessingRecipeGen { URANIUM_FLUID = create("uranium_fluid", b -> b .require(CNItems.URANIUM_POWDER) .output(CNFluids.URANIUM.get(), 2025) - ) + .requiresHeat(HeatCondition.HEATED) + ), + + THORIUM_FLUID = create("thorium_fluid", b -> b + .require(CNItems.THORIUM_DUST) + .output(CNFluids.THORIUM.get(), 2025) + .requiresHeat(HeatCondition.HEATED) + ), + + NITRATE = create("nitrate", b -> b + .require(AllPaletteStoneTypes.LIMESTONE.materialTag) + .duration(250) + .output(.6f, CNItems.NITRATE, 1) + .output(.4f, CNItems.LEAD_NUGGET, 1) + ), + + NITROGEN = create("liquid_nitrogen", b -> b + .require(CNItems.COOLED_NITROGEN_CONCENTRATE) + .duration(20) + .require(Items.ICE) + .output(CNFluids.LIQUID_NITROGEN.get(), 1000) + ); ; > GeneratedRecipe create(String name, UnaryOperator> transform) { diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNShapelessRecipeGen.java b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNShapelessRecipeGen.java index faaf42de7..3fa33177d 100644 --- a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNShapelessRecipeGen.java +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNShapelessRecipeGen.java @@ -46,6 +46,11 @@ public class CNShapelessRecipeGen extends CreateRecipeProvider { .unlockedBy(CNItems.RAW_LEAD::get) .viaShapeless(b -> b.requires(CNBlocks.RAW_LEAD_BLOCK.get())), + RAW_THORIUM = create(CNItems.RAW_THORIUM).returns(9) + .withSuffix("_from_decompacting") + .unlockedBy(CNItems.RAW_THORIUM::get) + .viaShapeless(b -> b.requires(CNBlocks.RAW_THORIUM_BLOCK.get())), + LEAD_INGOT = create(CNItems.LEAD_INGOT).returns(9) .withSuffix("_from_decompacting") .unlockedBy(CNItems.LEAD_INGOT::get) @@ -56,6 +61,11 @@ public class CNShapelessRecipeGen extends CreateRecipeProvider { .unlockedBy(CNItems.LEAD_NUGGET::get) .viaShapeless(b -> b.requires(CNItems.LEAD_INGOT.get())), + THORIUM_INGOT = create(CNItems.THORIUM_INGOT).returns(9) + .withSuffix("_from_decompacting") + .unlockedBy(CNItems.THORIUM_INGOT::get) + .viaShapeless(b -> b.requires(CNBlocks.THORIUM_BLOCK.get())), + STEEL_INGOT = create(CNItems.STEEL_INGOT).returns(9) .withSuffix("_from_decompacting") .unlockedBy(CNItems.STEEL_INGOT::get) diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNStandardRecipeGen.java b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNStandardRecipeGen.java index 2a2afc0f8..5aad64bd6 100644 --- a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNStandardRecipeGen.java +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNStandardRecipeGen.java @@ -106,9 +106,20 @@ public class CNStandardRecipeGen extends CreateRecipeProvider { .showNotification(true) ), + RAW_THORIUM_BLOCK = create(CNBlocks.RAW_THORIUM_BLOCK).unlockedBy(CNItems.RAW_THORIUM::get) + .viaShaped(b -> b.define('R', CNItems.RAW_THORIUM.get()) + .pattern("RRR") + .pattern("RRR") + .pattern("RRR") + .showNotification(true) + ), + LEAD_COMPACTING = metalCompacting(ImmutableList.of(CNItems.LEAD_NUGGET, CNItems.LEAD_INGOT, CNBlocks.LEAD_BLOCK), ImmutableList.of(() -> CNTags.forgeItemTag("nuggets/lead"), () -> CNTags.forgeItemTag("ingots/lead"), () -> CNTags.forgeItemTag("storage_blocks/lead"))), + THORIUM_COMPACTING = metalCompacting(ImmutableList.of(CNItems.THORIUM_NUGGET, CNItems.THORIUM_INGOT, CNBlocks.THORIUM_BLOCK), + ImmutableList.of(() -> CNTags.forgeItemTag("nuggets/thorium"), () -> CNTags.forgeItemTag("ingots/thorium"), () -> CNTags.forgeItemTag("storage_blocks/thorium"))), + STEEL_COMPACTING = metalCompacting(ImmutableList.of(CNItems.STEEL_NUGGET, CNItems.STEEL_INGOT, CNBlocks.STEEL_BLOCK), ImmutableList.of(() -> CNTags.forgeItemTag("nuggets/steel"), () -> CNTags.forgeItemTag("ingots/steel"), () -> CNTags.forgeItemTag("storage_blocks/steel"))), diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNWashingRecipeGen.java b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNWashingRecipeGen.java index 6d1b6ca5b..58ca2491e 100644 --- a/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNWashingRecipeGen.java +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/data/recipe/CNWashingRecipeGen.java @@ -16,15 +16,13 @@ @SuppressWarnings("unused") public class CNWashingRecipeGen extends ProcessingRecipeGen { GeneratedRecipe - CRUSHED_LEAD = crushedOre(AllItems.CRUSHED_LEAD, () -> CNItems.LEAD_NUGGET, () -> AllItems.EXP_NUGGET, .5f) + CRUSHED_LEAD = crushedOre(AllItems.CRUSHED_LEAD, () -> CNItems.LEAD_NUGGET) ; - public GeneratedRecipe crushedOre(ItemEntry crushed, Supplier nugget, Supplier secondary, - float secondaryChance) { + public GeneratedRecipe crushedOre(ItemEntry crushed, Supplier nugget) { return create(crushed.getId(), b -> b .withItemIngredients(Ingredient.of(crushed.get())) - .output(nugget.get(), 9) - .output(secondaryChance, secondary.get(), 1)); + .output(nugget.get(), 9)); } public CNWashingRecipeGen(FabricDataOutput output) { diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/events/CNClientEvent.java b/src/main/java/net/nuclearteam/createnuclear/foundation/events/CNClientEvent.java index 5d4672471..3a472ed16 100644 --- a/src/main/java/net/nuclearteam/createnuclear/foundation/events/CNClientEvent.java +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/events/CNClientEvent.java @@ -2,8 +2,10 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.simibubi.create.foundation.events.ClientEvents; +import io.github.fabricators_of_create.porting_lib.event.client.ClientWorldEvents; import io.github.fabricators_of_create.porting_lib.event.client.FogEvents; import io.github.fabricators_of_create.porting_lib.event.client.FogEvents.ColorData; +import io.github.fabricators_of_create.porting_lib.event.client.ParticleManagerRegistrationCallback; import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.minecraft.client.Camera; import net.minecraft.client.gui.GuiGraphics; @@ -16,6 +18,7 @@ import net.minecraft.world.level.material.FluidState; import net.nuclearteam.createnuclear.CNEffects; import net.nuclearteam.createnuclear.CNFluids; +import net.nuclearteam.createnuclear.CNParticleTypes; import net.nuclearteam.createnuclear.CreateNuclear; import net.minecraft.world.level.material.Fluid; @@ -31,6 +34,11 @@ public static void register() { FogEvents.SET_COLOR.register(CNClientEvent::getForColor); HudRenderCallback.EVENT.register(HUD_RENDERER::onHudRender); HudRenderCallback.EVENT.register(CNClientEvent::radiationOverlay); + + ParticleManagerRegistrationCallback.EVENT.register(CNParticleTypes::registerFactories); + + ClientWorldEvents.LOAD.register(CommonEvents::onLoadWorld); + ClientWorldEvents.UNLOAD.register(CommonEvents::onUnloadWorld); } private static void getForColor(ColorData event, float partialTicks) { @@ -42,11 +50,16 @@ private static void getForColor(ColorData event, float partialTicks) { Fluid fluid = fluidState.getType(); - if (CNFluids.URANIUM.get().isSame(fluid)){ + if (CNFluids.URANIUM.get().isSame(fluid)) { event.setRed(56 / 255F); event.setGreen(255 / 255F); event.setBlue(8 / 255F); } + if (CNFluids.THORIUM.get().isSame(fluid)){ + event.setRed(8 / 255F); + event.setGreen(56 / 255F); + event.setBlue(255 / 255F); + } } private static void radiationOverlay(GuiGraphics graphics, float partialTicks) { diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/events/CommonEvents.java b/src/main/java/net/nuclearteam/createnuclear/foundation/events/CommonEvents.java new file mode 100644 index 000000000..702e48e46 --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/events/CommonEvents.java @@ -0,0 +1,51 @@ +package net.nuclearteam.createnuclear.foundation.events; + +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerWorldEvents; +import net.minecraft.world.level.LevelAccessor; +import net.nuclearteam.createnuclear.CreateNuclear; +import java.util.concurrent.Executor; +import com.simibubi.create.AllPackets; +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; +import net.fabricmc.fabric.api.resource.ResourceManagerHelper; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.packs.PackType; +import net.nuclearteam.createnuclear.CreateNuclear; +import net.nuclearteam.createnuclear.content.multiblock.itemRods.ItemRodTypeManager; + +public class CommonEvents { + public static void onDatapackSync(ServerPlayer player, boolean joined) { + ItemRodTypeManager.syncTo(player); + } + + public static void addReloadListener() { + CreateNuclear.LOGGER.warn("Adding ReloadListener"); + ResourceManagerHelper.get(PackType.SERVER_DATA).registerReloadListener(ItemRodTypeManager.ReloadListener.INSTANCE); + } + + + + public static void onLoadWorld(Executor executor, LevelAccessor world) { + + CreateNuclear.TEST_PROPA.onLoadWorld(world); + + } + + + + public static void onUnloadWorld(Executor executor, LevelAccessor world) { + + CreateNuclear.TEST_PROPA.onUnloadWorld(world); + + } + + public static void register() { + ServerLifecycleEvents.SYNC_DATA_PACK_CONTENTS.register(CommonEvents::onDatapackSync); + + + ServerWorldEvents.LOAD.register(CommonEvents::onLoadWorld); + + ServerWorldEvents.UNLOAD.register(CommonEvents::onUnloadWorld); + + CommonEvents.addReloadListener(); + } +} diff --git a/src/main/java/net/nuclearteam/createnuclear/foundation/mixin/RadiationHeartMixin.java b/src/main/java/net/nuclearteam/createnuclear/foundation/mixin/RadiationHeartMixin.java new file mode 100644 index 000000000..3ee3afcba --- /dev/null +++ b/src/main/java/net/nuclearteam/createnuclear/foundation/mixin/RadiationHeartMixin.java @@ -0,0 +1,39 @@ +package net.nuclearteam.createnuclear.foundation.mixin; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.nuclearteam.createnuclear.CNEffects; +import net.nuclearteam.createnuclear.CreateNuclear; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +// On cible Gui.class car c'est là que se trouve renderHeart +@Mixin(Gui.class) +public class RadiationHeartMixin { + + private static final ResourceLocation RADIATION_ICONS = CreateNuclear.asResource("textures/gui/icons.png"); + private static final ResourceLocation VANILLA_ICONS = new ResourceLocation("minecraft", "textures/gui/icons.png"); + + @ModifyArg( + method = "renderHeart", // La méthode singulière qui dessine VRAIMENT le coeur + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/gui/GuiGraphics;blit(Lnet/minecraft/resources/ResourceLocation;IIIIII)V" + ), + index = 0 + ) + private ResourceLocation createnuclear$changeHeartTexture(ResourceLocation originalTexture) { + if (originalTexture.equals(VANILLA_ICONS)) { + Player player = Minecraft.getInstance().player; + + // Si le joueur est irradié, on balance votre image ! + if (player != null && player.hasEffect(CNEffects.RADIATION.get())) { + return RADIATION_ICONS; + } + } + return originalTexture; + } +} \ No newline at end of file diff --git a/src/main/java/net/nuclearteam/createnuclear/infrastructure/data/CreateNuclearRegistrateTags.java b/src/main/java/net/nuclearteam/createnuclear/infrastructure/data/CreateNuclearRegistrateTags.java index f6c6682dc..311ee7613 100644 --- a/src/main/java/net/nuclearteam/createnuclear/infrastructure/data/CreateNuclearRegistrateTags.java +++ b/src/main/java/net/nuclearteam/createnuclear/infrastructure/data/CreateNuclearRegistrateTags.java @@ -75,10 +75,26 @@ private static void genFluidTags(RegistrateTagsProvider provider) { .addTag(CNFluidTags.URANIUM.tag) ; + prov.tag(CNTags.forgeFluidTag("nitrogen")) + .addTag(CNFluidTags.NITROGEN.tag) + ; + + prov.tag(CNTags.forgeFluidTag("thorium")) + .addTag(CNFluidTags.THORIUM.tag) + ; + prov.tag(FluidTags.LAVA) .addTag(CNFluidTags.URANIUM.tag) ; + prov.tag(FluidTags.LAVA) + .addTag(CNFluidTags.THORIUM.tag) + ; + + prov.tag(FluidTags.LAVA) + .addTag(CNFluidTags.NITROGEN.tag) + ; + for (CNFluidTags tag : CNFluidTags.values()) { prov.getOrCreateRawBuilder(tag.tag); diff --git a/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNBiomeModifiers.java b/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNBiomeModifiers.java index 4acc6f9f2..14028625f 100644 --- a/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNBiomeModifiers.java +++ b/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNBiomeModifiers.java @@ -14,7 +14,9 @@ public static void bootstrap() { Predicate isOverworld = BiomeSelectors.foundInOverworld(); addOre(isOverworld, CNPlacedFeatures.URANIUM_ORE); + addOre(isOverworld, CNPlacedFeatures.NITRATE_ORE); addOre(isOverworld, CNPlacedFeatures.LEAD_ORE); + addOre(isOverworld, CNPlacedFeatures.THORIUM_ORE); addOre(isOverworld, CNPlacedFeatures.STRIATED_ORES_OVERWORLD); } diff --git a/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNConfiguredFeatures.java b/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNConfiguredFeatures.java index c904466b1..1708eb25a 100644 --- a/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNConfiguredFeatures.java +++ b/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNConfiguredFeatures.java @@ -22,7 +22,9 @@ public class CNConfiguredFeatures { public static final ResourceKey> URANIUM_ORE_KEY = registerKey("uranium_ore"); - public static final ResourceKey> LEAD_ORE = registerKey("lead_ore"); + public static final ResourceKey> LEAD_ORE_KEY = registerKey("lead_ore"); + public static final ResourceKey> THORIUM_ORE_KEY = registerKey("thorium_ore"); + public static final ResourceKey> NITRATE_ORE_KEY = registerKey("nitrate_ore"); public static final ResourceKey> STRIATED_ORES_OVERWORLD = registerKey("striated_ores_overworld"); public static ResourceKey> registerKey(String name) { @@ -41,12 +43,27 @@ public static void boostrap(BootstapContext> context) { register(context, URANIUM_ORE_KEY, Feature.ORE, new OreConfiguration(uraniumTargetStates, 7)); + List nitrateTargetStates = List.of( + OreConfiguration.target(stoneReplaceable, CNBlocks.NITRATE_ORE.get().defaultBlockState()), + OreConfiguration.target(deepslateReplaceable, CNBlocks.DEEPSLATE_NITRATE_ORE.get().defaultBlockState()) + ); + + register(context, NITRATE_ORE_KEY, Feature.ORE, new OreConfiguration(nitrateTargetStates, 7)); + List leadTargetStates = List.of( OreConfiguration.target(stoneReplaceable, CNBlocks.LEAD_ORE.get().defaultBlockState()), OreConfiguration.target(deepslateReplaceable, CNBlocks.DEEPSLATE_LEAD_ORE.get().defaultBlockState()) ); - register(context, LEAD_ORE, Feature.ORE, new OreConfiguration(leadTargetStates, 7)); + register(context, LEAD_ORE_KEY, Feature.ORE, new OreConfiguration(leadTargetStates, 7)); + + List thoriumTargetStates = List.of( + OreConfiguration.target(stoneReplaceable, CNBlocks.THORIUM_ORE.get().defaultBlockState()), + OreConfiguration.target(deepslateReplaceable, CNBlocks.DEEPSLATE_THORIUM_ORE.get().defaultBlockState()) + ); + + register(context, THORIUM_ORE_KEY, Feature.ORE, new OreConfiguration(thoriumTargetStates, 7)); + List overworldLayerPatterns = List.of( CNLayerPatterns.AUTUNITE.get() diff --git a/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNPlacedFeatures.java b/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNPlacedFeatures.java index bf9e37b09..cdf98e09c 100644 --- a/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNPlacedFeatures.java +++ b/src/main/java/net/nuclearteam/createnuclear/infrastructure/worldgen/CNPlacedFeatures.java @@ -15,7 +15,9 @@ public class CNPlacedFeatures { public static final ResourceKey URANIUM_ORE = registerKey("uranium_ore"); + public static final ResourceKey NITRATE_ORE = registerKey("nitrate_ore"); public static final ResourceKey LEAD_ORE = registerKey("lead_ore"); + public static final ResourceKey THORIUM_ORE = registerKey("thorium_ore"); public static final ResourceKey STRIATED_ORES_OVERWORLD = registerKey("striated_ores_overworld"); public static ResourceKey registerKey(String name) { @@ -25,11 +27,15 @@ public static ResourceKey registerKey(String name) { public static void boostrap(BootstapContext context) { HolderGetter> featureLookup = context.lookup(Registries.CONFIGURED_FEATURE); Holder> uraniumOre = featureLookup.getOrThrow(CNConfiguredFeatures.URANIUM_ORE_KEY); - Holder> leadOre = featureLookup.getOrThrow(CNConfiguredFeatures.LEAD_ORE); + Holder> leadOre = featureLookup.getOrThrow(CNConfiguredFeatures.LEAD_ORE_KEY); + Holder> thoriumOre = featureLookup.getOrThrow(CNConfiguredFeatures.THORIUM_ORE_KEY); + Holder> nitrateOre = featureLookup.getOrThrow(CNConfiguredFeatures.NITRATE_ORE_KEY); Holder> striatedOresOverworld = featureLookup.getOrThrow(CNConfiguredFeatures.STRIATED_ORES_OVERWORLD); register(context, URANIUM_ORE, uraniumOre, placement(CountPlacement.of(6), -64,64)); + register(context, NITRATE_ORE, nitrateOre, placement(CountPlacement.of(6), -64,64)); register(context, LEAD_ORE, leadOre, placement(CountPlacement.of(10), -64,64)); + register(context, THORIUM_ORE, thoriumOre, placement(CountPlacement.of(8), -64,32)); register(context, STRIATED_ORES_OVERWORLD, striatedOresOverworld, placementUniform(RarityFilter.onAverageOnceEvery(18), -30, 70)); diff --git a/src/main/resources/assets/createnuclear/models/block/liquid_input/item.json b/src/main/resources/assets/createnuclear/models/block/liquid_input/item.json new file mode 100644 index 000000000..7cb6aabcc --- /dev/null +++ b/src/main/resources/assets/createnuclear/models/block/liquid_input/item.json @@ -0,0 +1,91 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "createnuclear:block/reactor/casing/reactor_casing", + "1": "createnuclear:block/reactor/input/input", + "2": "createnuclear:block/reactor/casing/casing_top", + "particle": "createnuclear:block/reactor/casing/reactor_casing" + }, + "elements": [ + { + "name": "right", + "from": [0, 0, 0], + "to": [2, 16, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4.5]}, + "faces": { + "north": {"uv": [14, 0, 16, 16], "texture": "#1"}, + "east": {"uv": [13, 0, 14, 16], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 16], "texture": "#0"}, + "up": {"uv": [14, 0, 16, 1], "texture": "#2"}, + "down": {"uv": [14, 15, 16, 16], "texture": "#2"} + } + }, + { + "name": "left", + "from": [14, 0, 0], + "to": [16, 16, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4.5]}, + "faces": { + "north": {"uv": [0, 0, 2, 16], "texture": "#1"}, + "east": {"uv": [15, 0, 16, 16], "texture": "#0"}, + "south": {"uv": [0, 0, 2, 16], "texture": "#1"}, + "west": {"uv": [2, 0, 3, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 2, 1], "texture": "#2"}, + "down": {"uv": [0, 15, 2, 16], "texture": "#2"} + } + }, + { + "name": "down", + "from": [2, 0, 0], + "to": [14, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4.5]}, + "faces": { + "north": {"uv": [2, 14, 14, 16], "texture": "#1"}, + "up": {"uv": [2, 14, 14, 15], "texture": "#1"}, + "down": {"uv": [2, 15, 14, 16], "texture": "#2"} + } + }, + { + "name": "up", + "from": [2, 14, 0], + "to": [14, 16, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4.5]}, + "faces": { + "north": {"uv": [2, 0, 14, 2], "texture": "#1"}, + "up": {"uv": [2, 0, 14, 1], "texture": "#2"}, + "down": {"uv": [2, 1, 14, 2], "texture": "#1"} + } + }, + { + "name": "core", + "from": [0, 0, 1], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4.5]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 0, 15, 16], "texture": "#0"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "west": {"uv": [1, 0, 16, 16], "texture": "#0"}, + "up": {"uv": [0, 1, 16, 16], "texture": "#2"}, + "down": {"uv": [0, 0, 16, 15], "texture": "#2"} + } + } + ], + "groups": [ + { + "name": "block", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "north", + "origin": [8, 8, 8], + "color": 0, + "children": [0, 1, 2, 3] + }, + 4 + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/createnuclear/models/block/liquid_input/liquid_input.json b/src/main/resources/assets/createnuclear/models/block/liquid_input/liquid_input.json new file mode 100644 index 000000000..3e23d05ed --- /dev/null +++ b/src/main/resources/assets/createnuclear/models/block/liquid_input/liquid_input.json @@ -0,0 +1,91 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "createnuclear:block/reactor/casing/reactor_casing", + "1": "createnuclear:block/reactor/input/input", + "2": "createnuclear:block/reactor/casing/casing_top", + "particle": "createnuclear:block/reactor/casing/reactor_casing" + }, + "elements": [ + { + "name": "right", + "from": [14, 0, 15], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11.5]}, + "faces": { + "east": {"uv": [0, 0, 1, 16], "texture": "#0"}, + "south": {"uv": [14, 0, 16, 16], "texture": "#1"}, + "west": {"uv": [13, 0, 14, 16], "texture": "#1"}, + "up": {"uv": [14, 0, 16, 1], "rotation": 180, "texture": "#2"}, + "down": {"uv": [14, 15, 16, 16], "rotation": 180, "texture": "#2"} + } + }, + { + "name": "left", + "from": [0, 0, 15], + "to": [2, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11.5]}, + "faces": { + "north": {"uv": [0, 0, 2, 16], "texture": "#1"}, + "east": {"uv": [2, 0, 3, 16], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 16], "texture": "#1"}, + "west": {"uv": [15, 0, 16, 16], "texture": "#0"}, + "up": {"uv": [0, 0, 2, 1], "rotation": 180, "texture": "#2"}, + "down": {"uv": [0, 15, 2, 16], "rotation": 180, "texture": "#2"} + } + }, + { + "name": "down", + "from": [2, 0, 15], + "to": [14, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11.5]}, + "faces": { + "south": {"uv": [2, 14, 14, 16], "texture": "#1"}, + "up": {"uv": [2, 14, 14, 15], "rotation": 180, "texture": "#1"}, + "down": {"uv": [2, 15, 14, 16], "rotation": 180, "texture": "#2"} + } + }, + { + "name": "up", + "from": [2, 14, 15], + "to": [14, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11.5]}, + "faces": { + "south": {"uv": [2, 0, 14, 2], "texture": "#1"}, + "up": {"uv": [2, 0, 14, 1], "rotation": 180, "texture": "#2"}, + "down": {"uv": [2, 1, 14, 2], "rotation": 180, "texture": "#1"} + } + }, + { + "name": "core", + "from": [0, 0, 0], + "to": [16, 16, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11.5]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "east": {"uv": [1, 0, 16, 16], "texture": "#0"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 0, 15, 16], "texture": "#0"}, + "up": {"uv": [0, 1, 16, 16], "rotation": 180, "texture": "#2"}, + "down": {"uv": [0, 0, 16, 15], "rotation": 180, "texture": "#2"} + } + } + ], + "groups": [ + { + "name": "block", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "north", + "origin": [8, 8, 8], + "color": 0, + "children": [0, 1, 2, 3] + }, + 4 + ] + } + ] +} diff --git a/src/main/resources/assets/createnuclear/models/block/liquid_input/liquid_input_vertical.json b/src/main/resources/assets/createnuclear/models/block/liquid_input/liquid_input_vertical.json new file mode 100644 index 000000000..72b65b597 --- /dev/null +++ b/src/main/resources/assets/createnuclear/models/block/liquid_input/liquid_input_vertical.json @@ -0,0 +1,249 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "createnuclear:block/reactor/input/input", + "1": "createnuclear:block/reactor/casing/casing_top", + "2": "createnuclear:block/reactor/casing/reactor_casing", + "particle": "createnuclear:block/reactor/input/input" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [2, 0, 16, 16], "rotation": 90, "texture": "#1"}, + "east": {"uv": [0, 0, 14, 16], "rotation": 270, "texture": "#2"}, + "south": {"uv": [2, 0, 16, 16], "rotation": 90, "texture": "#1"}, + "west": {"uv": [2, 0, 16, 16], "rotation": 90, "texture": "#2"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + }, + { + "from": [12, 14, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [0, 12, 2, 16], "rotation": 90, "texture": "#1"}, + "east": {"uv": [14, 0, 16, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 0, 2, 4], "rotation": 90, "texture": "#1"}, + "west": {"uv": [3, 0, 5, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 0, 4, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [12, 0, 16, 16], "texture": "#0"} + } + }, + { + "from": [0, 14, 0], + "to": [4, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [0, 0, 2, 4], "rotation": 90, "texture": "#1"}, + "east": {"uv": [11, 0, 13, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 12, 2, 16], "rotation": 90, "texture": "#1"}, + "west": {"uv": [0, 0, 2, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [12, 0, 16, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 0, 4, 16], "texture": "#0"} + } + }, + { + "from": [4, 14, 0], + "to": [5, 16, 7], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [0, 4, 2, 5], "rotation": 90, "texture": "#1"}, + "east": {"uv": [10, 9, 12, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [4, 9, 6, 10], "rotation": 90, "texture": "#0"}, + "west": {"uv": [10, 9, 12, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [11, 9, 12, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [11, 9, 12, 16], "texture": "#0"} + } + }, + { + "from": [11, 14, 0], + "to": [12, 16, 7], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [0, 11, 2, 12], "rotation": 90, "texture": "#1"}, + "east": {"uv": [4, 9, 6, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [4, 9, 6, 10], "rotation": 90, "texture": "#0"}, + "west": {"uv": [4, 9, 6, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 9, 5, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [4, 9, 5, 16], "texture": "#0"} + } + }, + { + "from": [11, 14, 9], + "to": [12, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [4, 6, 6, 7], "rotation": 90, "texture": "#0"}, + "east": {"uv": [4, 0, 6, 7], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 11, 2, 12], "rotation": 90, "texture": "#1"}, + "west": {"uv": [4, 0, 6, 7], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 0, 5, 7], "rotation": 180, "texture": "#0"}, + "down": {"uv": [4, 0, 5, 7], "texture": "#0"} + } + }, + { + "from": [4, 14, 9], + "to": [5, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [4, 6, 6, 7], "rotation": 90, "texture": "#0"}, + "east": {"uv": [10, 0, 12, 7], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 4, 2, 5], "rotation": 90, "texture": "#1"}, + "west": {"uv": [10, 0, 12, 7], "rotation": 90, "texture": "#0"}, + "up": {"uv": [11, 0, 12, 7], "rotation": 180, "texture": "#0"}, + "down": {"uv": [11, 0, 12, 7], "texture": "#0"} + } + }, + { + "from": [5, 14, 10], + "to": [6, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [5, 5, 7, 6], "rotation": 90, "texture": "#0"}, + "east": {"uv": [9, 0, 11, 6], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 6, 2, 7], "rotation": 90, "texture": "#1"}, + "west": {"uv": [9, 0, 11, 6], "rotation": 90, "texture": "#0"}, + "up": {"uv": [10, 0, 11, 6], "rotation": 180, "texture": "#0"}, + "down": {"uv": [10, 0, 11, 6], "texture": "#0"} + } + }, + { + "from": [10, 14, 10], + "to": [11, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [5, 5, 7, 6], "rotation": 90, "texture": "#0"}, + "east": {"uv": [5, 0, 7, 6], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 10, 2, 11], "rotation": 90, "texture": "#1"}, + "west": {"uv": [5, 0, 7, 6], "rotation": 90, "texture": "#0"}, + "up": {"uv": [5, 0, 6, 6], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5, 0, 6, 6], "texture": "#0"} + } + }, + { + "from": [10, 14, 0], + "to": [11, 16, 6], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [0, 10, 2, 11], "rotation": 90, "texture": "#1"}, + "east": {"uv": [5, 10, 7, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5, 10, 7, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [5, 10, 7, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [5, 10, 6, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5, 10, 6, 16], "texture": "#0"} + } + }, + { + "from": [9, 14, 0], + "to": [10, 16, 5], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [0, 9, 2, 10], "rotation": 90, "texture": "#1"}, + "east": {"uv": [6, 11, 8, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [6, 11, 8, 12], "rotation": 90, "texture": "#0"}, + "west": {"uv": [6, 11, 8, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6, 11, 7, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [6, 11, 7, 16], "texture": "#0"} + } + }, + { + "from": [6, 14, 0], + "to": [7, 16, 5], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [0, 6, 2, 7], "rotation": 90, "texture": "#1"}, + "east": {"uv": [8, 11, 10, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [6, 11, 8, 12], "rotation": 90, "texture": "#0"}, + "west": {"uv": [8, 11, 10, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 11, 10, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 11, 10, 16], "texture": "#0"} + } + }, + { + "from": [6, 14, 11], + "to": [7, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [6, 4, 8, 5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [8, 0, 10, 5], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 7, 2, 8], "rotation": 90, "texture": "#1"}, + "west": {"uv": [8, 0, 10, 5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 0, 10, 5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 0, 10, 5], "texture": "#0"} + } + }, + { + "from": [9, 14, 11], + "to": [10, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [6, 4, 8, 5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [6, 0, 8, 5], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 9, 2, 10], "rotation": 90, "texture": "#1"}, + "west": {"uv": [6, 0, 8, 5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6, 0, 7, 5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [6, 0, 7, 5], "texture": "#0"} + } + }, + { + "from": [7, 14, 12], + "to": [9, 16, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [3, 7, 5, 9], "rotation": 90, "texture": "#0"}, + "east": {"uv": [7, 0, 9, 4], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 7, 2, 9], "rotation": 90, "texture": "#1"}, + "west": {"uv": [7, 0, 9, 4], "rotation": 90, "texture": "#0"}, + "up": {"uv": [7, 0, 9, 4], "rotation": 180, "texture": "#0"}, + "down": {"uv": [7, 0, 9, 4], "texture": "#0"} + } + }, + { + "from": [7, 14, 0], + "to": [9, 16, 4], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [0, 7, 2, 9], "rotation": 90, "texture": "#1"}, + "east": {"uv": [7, 12, 9, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [3, 7, 5, 9], "rotation": 90, "texture": "#0"}, + "west": {"uv": [7, 12, 9, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [7, 12, 9, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [7, 12, 9, 16], "texture": "#0"} + } + }, + { + "from": [5, 14, 0], + "to": [6, 16, 6], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 5]}, + "faces": { + "north": {"uv": [0, 5, 2, 6], "rotation": 90, "texture": "#1"}, + "east": {"uv": [9, 10, 11, 16], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5, 10, 7, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [9, 10, 11, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [10, 10, 11, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [10, 10, 11, 16], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [0, 0, 0], + "color": 0, + "children": [ + 0, + { + "name": "face", + "origin": [8, 8, 8], + "color": 0, + "children": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/createnuclear/particles/campfire_cosy_smoke.json b/src/main/resources/assets/createnuclear/particles/campfire_cosy_smoke.json deleted file mode 100644 index a99bffe8b..000000000 --- a/src/main/resources/assets/createnuclear/particles/campfire_cosy_smoke.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "textures": [ - "minecraft:big_smoke_0", - "minecraft:big_smoke_1", - "minecraft:big_smoke_2", - "minecraft:big_smoke_3", - "minecraft:big_smoke_4", - "minecraft:big_smoke_5", - "minecraft:big_smoke_6", - "minecraft:big_smoke_7", - "minecraft:big_smoke_8", - "minecraft:big_smoke_9", - "minecraft:big_smoke_10", - "minecraft:big_smoke_11" - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/createnuclear/particles/campfire_signal_smoke.json b/src/main/resources/assets/createnuclear/particles/campfire_signal_smoke.json deleted file mode 100644 index a99bffe8b..000000000 --- a/src/main/resources/assets/createnuclear/particles/campfire_signal_smoke.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "textures": [ - "minecraft:big_smoke_0", - "minecraft:big_smoke_1", - "minecraft:big_smoke_2", - "minecraft:big_smoke_3", - "minecraft:big_smoke_4", - "minecraft:big_smoke_5", - "minecraft:big_smoke_6", - "minecraft:big_smoke_7", - "minecraft:big_smoke_8", - "minecraft:big_smoke_9", - "minecraft:big_smoke_10", - "minecraft:big_smoke_11" - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/createnuclear/particles/irradiated_particles.json b/src/main/resources/assets/createnuclear/particles/irradiated_particles.json new file mode 100644 index 000000000..4c09429a7 --- /dev/null +++ b/src/main/resources/assets/createnuclear/particles/irradiated_particles.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "createnuclear:irradiated_particles" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/createnuclear/sounds.json b/src/main/resources/assets/createnuclear/sounds.json new file mode 100644 index 000000000..a13b5262b --- /dev/null +++ b/src/main/resources/assets/createnuclear/sounds.json @@ -0,0 +1,38 @@ +{ + "reactor_casing_break": { + "subtitle": "subtitles.createnuclear.reactor_casing_break", + "sounds": [ + "createnuclear:reactor_casing/break" + ] + }, + "reactor_casing_step": { + "subtitle": "subtitles.createnuclear.reactor_casing_step", + "sounds": [ + "createnuclear:reactor_casing/step" + ] + }, + "reactor_casing_place": { + "subtitle": "subtitles.createnuclear.reactor_casing_place", + "sounds": [ + "createnuclear:reactor_casing/place" + ] + }, + "reactor_casing_hit": { + "subtitle": "subtitles.createnuclear.reactor_casing_hit", + "sounds": [ + "createnuclear:reactor_casing/hit" + ] + }, + "reactor_casing_fall": { + "subtitle": "subtitles.createnuclear.reactor_casing_fall", + "sounds": [ + "createnuclear:reactor_casing/fall" + ] + }, + "reactor_alarm": { + "subtitle": "subtitles.createnuclear.reactor_alarm", + "sounds": [ + "createnuclear:reactor_alarm" + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/createnuclear/sounds/reactor_alarm.ogg b/src/main/resources/assets/createnuclear/sounds/reactor_alarm.ogg new file mode 100644 index 000000000..92690698f Binary files /dev/null and b/src/main/resources/assets/createnuclear/sounds/reactor_alarm.ogg differ diff --git a/src/main/resources/assets/createnuclear/sounds/reactor_casing/break.ogg b/src/main/resources/assets/createnuclear/sounds/reactor_casing/break.ogg new file mode 100644 index 000000000..194c6cf44 Binary files /dev/null and b/src/main/resources/assets/createnuclear/sounds/reactor_casing/break.ogg differ diff --git a/src/main/resources/assets/createnuclear/sounds/reactor_casing/fall.ogg b/src/main/resources/assets/createnuclear/sounds/reactor_casing/fall.ogg new file mode 100644 index 000000000..194c6cf44 Binary files /dev/null and b/src/main/resources/assets/createnuclear/sounds/reactor_casing/fall.ogg differ diff --git a/src/main/resources/assets/createnuclear/sounds/reactor_casing/hit.ogg b/src/main/resources/assets/createnuclear/sounds/reactor_casing/hit.ogg new file mode 100644 index 000000000..194c6cf44 Binary files /dev/null and b/src/main/resources/assets/createnuclear/sounds/reactor_casing/hit.ogg differ diff --git a/src/main/resources/assets/createnuclear/sounds/reactor_casing/place.ogg b/src/main/resources/assets/createnuclear/sounds/reactor_casing/place.ogg new file mode 100644 index 000000000..194c6cf44 Binary files /dev/null and b/src/main/resources/assets/createnuclear/sounds/reactor_casing/place.ogg differ diff --git a/src/main/resources/assets/createnuclear/sounds/reactor_casing/step.ogg b/src/main/resources/assets/createnuclear/sounds/reactor_casing/step.ogg new file mode 100644 index 000000000..194c6cf44 Binary files /dev/null and b/src/main/resources/assets/createnuclear/sounds/reactor_casing/step.ogg differ diff --git a/src/main/resources/assets/createnuclear/textures/block/deepslate_nitrate_ore.png b/src/main/resources/assets/createnuclear/textures/block/deepslate_nitrate_ore.png new file mode 100644 index 000000000..602792694 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/block/deepslate_nitrate_ore.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/deepslate_thorium_ore.png b/src/main/resources/assets/createnuclear/textures/block/deepslate_thorium_ore.png new file mode 100644 index 000000000..875565b98 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/block/deepslate_thorium_ore.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/nitrate_ore.png b/src/main/resources/assets/createnuclear/textures/block/nitrate_ore.png new file mode 100644 index 000000000..3eda18f22 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/block/nitrate_ore.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_basketweave.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_basketweave.png index 18b2c25ca..b5dace282 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_basketweave.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_basketweave.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_bond.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_bond.png index 6aac6f0eb..ac2bfed24 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_bond.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_bond.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_indented.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_indented.png index 007c89436..7adba6075 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_indented.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/alternatives/autunite_cut_indented.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/brick/autunite_cut_brick.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/brick/autunite_cut_brick.png index 34a296df8..4ed6c7959 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/brick/autunite_cut_brick.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/brick/autunite_cut_brick.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cap/autunite_cut_cap.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cap/autunite_cut_cap.png index 007c89436..8f3ff0fd2 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cap/autunite_cut_cap.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cap/autunite_cut_cap.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cap/autunite_cut_cap_connected.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cap/autunite_cut_cap_connected.png index 0327ed8fe..46b15b73c 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cap/autunite_cut_cap_connected.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cap/autunite_cut_cap_connected.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cut/autunite_cut.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cut/autunite_cut.png index 3cfc1ae1d..130dbf0bc 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cut/autunite_cut.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/cut/autunite_cut.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/layered/autunite_cut_layered.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/layered/autunite_cut_layered.png index 3f27e3206..164f5c2ec 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/layered/autunite_cut_layered.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/layered/autunite_cut_layered.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/layered/autunite_cut_layered_connected.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/layered/autunite_cut_layered_connected.png index 1c00c8c0e..7086326a9 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/layered/autunite_cut_layered_connected.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/layered/autunite_cut_layered_connected.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_0.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_0.png index 90aab089e..1b647ac79 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_0.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_0.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_1.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_1.png index 823d624b7..e95503a06 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_1.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_1.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_2.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_2.png index 97597db64..0d5363631 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_2.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_2.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_3.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_3.png index 14f577a77..50255487d 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_3.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/natural/autunite_3.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/pillar/autunite_cut_pillar.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/pillar/autunite_cut_pillar.png index d614ad10d..818d7fc39 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/pillar/autunite_cut_pillar.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/pillar/autunite_cut_pillar.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/pillar/autunite_cut_pillar_connected.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/pillar/autunite_cut_pillar_connected.png index 46b045fc8..021526c9e 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/pillar/autunite_cut_pillar_connected.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/pillar/autunite_cut_pillar_connected.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/polished/autunite_cut_polished.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/polished/autunite_cut_polished.png index 3980d0198..f669a88ca 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/polished/autunite_cut_polished.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/polished/autunite_cut_polished.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/slab/autunite_cut_slab.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/slab/autunite_cut_slab.png index 2914c808a..dbf95dd66 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/slab/autunite_cut_slab.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/slab/autunite_cut_slab.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/small_brick/autunite_cut_small_brick.png b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/small_brick/autunite_cut_small_brick.png index 19643134a..9fbda4a33 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/small_brick/autunite_cut_small_brick.png and b/src/main/resources/assets/createnuclear/textures/block/palettes/stone_types/small_brick/autunite_cut_small_brick.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/raw_thorium_block.png b/src/main/resources/assets/createnuclear/textures/block/raw_thorium_block.png new file mode 100644 index 000000000..667fd493c Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/block/raw_thorium_block.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/reactor/controller/reactor_controller.png b/src/main/resources/assets/createnuclear/textures/block/reactor/controller/reactor_controller.png deleted file mode 100644 index 2848930df..000000000 Binary files a/src/main/resources/assets/createnuclear/textures/block/reactor/controller/reactor_controller.png and /dev/null differ diff --git a/src/main/resources/assets/createnuclear/textures/block/reactor/controller/reactor_controller_panel.png b/src/main/resources/assets/createnuclear/textures/block/reactor/controller/reactor_controller_panel.png index 52c7d1bf0..33a3fdcc5 100644 Binary files a/src/main/resources/assets/createnuclear/textures/block/reactor/controller/reactor_controller_panel.png and b/src/main/resources/assets/createnuclear/textures/block/reactor/controller/reactor_controller_panel.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/reactor/liquid_input/input.png b/src/main/resources/assets/createnuclear/textures/block/reactor/liquid_input/input.png new file mode 100644 index 000000000..e62f8d183 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/block/reactor/liquid_input/input.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/reactor_alarm.png b/src/main/resources/assets/createnuclear/textures/block/reactor_alarm.png new file mode 100644 index 000000000..b57826a06 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/block/reactor_alarm.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/thorium_block.png b/src/main/resources/assets/createnuclear/textures/block/thorium_block.png new file mode 100644 index 000000000..35b943f80 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/block/thorium_block.png differ diff --git a/src/main/resources/assets/createnuclear/textures/block/thorium_ore.png b/src/main/resources/assets/createnuclear/textures/block/thorium_ore.png new file mode 100644 index 000000000..0a903efb5 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/block/thorium_ore.png differ diff --git a/src/main/resources/assets/createnuclear/textures/entity/irradiated_cow.png b/src/main/resources/assets/createnuclear/textures/entity/irradiated_cow.png new file mode 100644 index 000000000..cada4987c Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/entity/irradiated_cow.png differ diff --git a/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_flow.png b/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_flow.png new file mode 100644 index 000000000..646a78559 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_flow.png differ diff --git a/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_flow.png.mcmeta b/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_flow.png.mcmeta new file mode 100644 index 000000000..f6730e30a --- /dev/null +++ b/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_still.png b/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_still.png new file mode 100644 index 000000000..a232dff3d Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_still.png differ diff --git a/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_still.png.mcmeta b/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_still.png.mcmeta new file mode 100644 index 000000000..b84e69f2c --- /dev/null +++ b/src/main/resources/assets/createnuclear/textures/fluid/nitrogen_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 4 + } +} diff --git a/src/main/resources/assets/createnuclear/textures/fluid/thorium_flow.png b/src/main/resources/assets/createnuclear/textures/fluid/thorium_flow.png new file mode 100644 index 000000000..646a78559 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/fluid/thorium_flow.png differ diff --git a/src/main/resources/assets/createnuclear/textures/fluid/thorium_flow.png.mcmeta b/src/main/resources/assets/createnuclear/textures/fluid/thorium_flow.png.mcmeta new file mode 100644 index 000000000..f6730e30a --- /dev/null +++ b/src/main/resources/assets/createnuclear/textures/fluid/thorium_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/createnuclear/textures/fluid/thorium_still.png b/src/main/resources/assets/createnuclear/textures/fluid/thorium_still.png new file mode 100644 index 000000000..a232dff3d Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/fluid/thorium_still.png differ diff --git a/src/main/resources/assets/createnuclear/textures/fluid/thorium_still.png.mcmeta b/src/main/resources/assets/createnuclear/textures/fluid/thorium_still.png.mcmeta new file mode 100644 index 000000000..b84e69f2c --- /dev/null +++ b/src/main/resources/assets/createnuclear/textures/fluid/thorium_still.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 4 + } +} diff --git a/src/main/resources/assets/createnuclear/textures/gui/icons.png b/src/main/resources/assets/createnuclear/textures/gui/icons.png new file mode 100644 index 000000000..b9713654e Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/gui/icons.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/cooled_nitrogen_concentrate.png b/src/main/resources/assets/createnuclear/textures/item/cooled_nitrogen_concentrate.png new file mode 100644 index 000000000..51e11a2bb Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/cooled_nitrogen_concentrate.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/nitrate.png b/src/main/resources/assets/createnuclear/textures/item/nitrate.png new file mode 100644 index 000000000..bb2f95820 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/nitrate.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/nitrogen_bucket.png b/src/main/resources/assets/createnuclear/textures/item/nitrogen_bucket.png new file mode 100644 index 000000000..80a9407b0 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/nitrogen_bucket.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/nitrogen_concentrate.png b/src/main/resources/assets/createnuclear/textures/item/nitrogen_concentrate.png new file mode 100644 index 000000000..446db5365 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/nitrogen_concentrate.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/raw_thorium.png b/src/main/resources/assets/createnuclear/textures/item/raw_thorium.png new file mode 100644 index 000000000..b2a77f16d Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/raw_thorium.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/thorium_bucket.png b/src/main/resources/assets/createnuclear/textures/item/thorium_bucket.png new file mode 100644 index 000000000..80a9407b0 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/thorium_bucket.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/thorium_dust.png b/src/main/resources/assets/createnuclear/textures/item/thorium_dust.png new file mode 100644 index 000000000..799029c3b Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/thorium_dust.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/thorium_ingot.png b/src/main/resources/assets/createnuclear/textures/item/thorium_ingot.png new file mode 100644 index 000000000..0a430f330 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/thorium_ingot.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/thorium_nugget.png b/src/main/resources/assets/createnuclear/textures/item/thorium_nugget.png new file mode 100644 index 000000000..276e3778e Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/thorium_nugget.png differ diff --git a/src/main/resources/assets/createnuclear/textures/item/thorium_rod.png b/src/main/resources/assets/createnuclear/textures/item/thorium_rod.png new file mode 100644 index 000000000..ff27f25d2 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/item/thorium_rod.png differ diff --git a/src/main/resources/assets/createnuclear/textures/misc/irradiated_heart_particle.png b/src/main/resources/assets/createnuclear/textures/misc/irradiated_heart_particle.png new file mode 100644 index 000000000..88fc76b64 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/misc/irradiated_heart_particle.png differ diff --git a/src/main/resources/assets/createnuclear/textures/particle/irradiated_particles.png b/src/main/resources/assets/createnuclear/textures/particle/irradiated_particles.png new file mode 100644 index 000000000..db912d067 Binary files /dev/null and b/src/main/resources/assets/createnuclear/textures/particle/irradiated_particles.png differ diff --git a/src/main/resources/assets/minecraft/atlases/blocks.json b/src/main/resources/assets/minecraft/atlases/blocks.json index 0b9764994..fcd17e3d3 100644 --- a/src/main/resources/assets/minecraft/atlases/blocks.json +++ b/src/main/resources/assets/minecraft/atlases/blocks.json @@ -1,5 +1,13 @@ { "sources": [ + { + "type": "single", + "resource": "createnuclear:fluid/thorium_flow" + }, + { + "type": "single", + "resource": "createnuclear:fluid/thorium_still" + }, { "type": "single", "resource": "createnuclear:fluid/uranium_flow" @@ -7,6 +15,14 @@ { "type": "single", "resource": "createnuclear:fluid/uranium_still" + }, + { + "type": "single", + "resource": "createnuclear:fluid/nitrogen_flow" + }, + { + "type": "single", + "resource": "createnuclear:fluid/nitrogen_still" } ] } \ No newline at end of file diff --git a/src/main/resources/createnuclear.mixins.json b/src/main/resources/createnuclear.mixins.json index 5295c6b9d..62c7133f2 100644 --- a/src/main/resources/createnuclear.mixins.json +++ b/src/main/resources/createnuclear.mixins.json @@ -2,9 +2,11 @@ "required": true, "package": "net.nuclearteam.createnuclear.foundation.mixin", "compatibilityLevel": "JAVA_17", + "refmap": "createnuclear.refmap.json", "mixins": [ "CNBaseFireBlockMixin", - "CNLiquidBlockMixin" + "CNLiquidBlockMixin", + "RadiationHeartMixin" ], "injectors": { "defaultRequire": 1 diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 8aae35287..01a244010 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -9,7 +9,7 @@ ], "contact": { "homepage": "https://www.curseforge.com/minecraft/mc-mods/create-nuclear", - "sources": "https://github.com/valentinlamine/Create_Nuclear" + "sources": "https://github.com/Create-Nuclear-Team/CreateNuclearFabric" }, "license": "CC0-1.0", "icon": "assets/createnuclear/icon.png",