From 80406e87822cb916e1583c140ad5912c1985db67 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 23 Jul 2020 17:41:15 +0200 Subject: [PATCH] Cleanup crew - More refactors and enhancements to the blaze burner --- src/generated/resources/.cache/cache | 35 ++-- .../create/blockstates/blaze_burner.json | 7 + .../create/blockstates/blaze_heater.json | 7 - .../resources/assets/create/lang/en_ud.json | 3 +- .../resources/assets/create/lang/en_us.json | 3 +- .../assets/create/lang/unfinished/de_de.json | 5 +- .../assets/create/lang/unfinished/fr_fr.json | 5 +- .../assets/create/lang/unfinished/it_it.json | 5 +- .../assets/create/lang/unfinished/ja_jp.json | 5 +- .../assets/create/lang/unfinished/ko_kr.json | 5 +- .../assets/create/lang/unfinished/nl_nl.json | 5 +- .../assets/create/lang/unfinished/pt_br.json | 5 +- .../assets/create/lang/unfinished/ru_ru.json | 5 +- .../assets/create/lang/unfinished/zh_cn.json | 5 +- .../create/models/item/blaze_burner.json | 3 + .../create/models/item/blaze_heater.json | 3 - .../models/item/empty_blaze_burner.json | 3 + .../loot_tables/blocks/blaze_burner.json | 90 +++++++++ .../loot_tables/blocks/blaze_heater.json | 19 -- .../data/create/tags/blocks/fan_heaters.json | 2 +- .../create/tags/blocks/fan_transparent.json | 2 +- .../com/simibubi/create/AllBlockPartials.java | 19 +- .../java/com/simibubi/create/AllBlocks.java | 10 +- .../java/com/simibubi/create/AllItems.java | 6 + .../com/simibubi/create/AllTileEntities.java | 8 +- .../simibubi/create/compat/jei/CreateJEI.java | 2 +- .../compat/jei/category/MixingCategory.java | 4 +- ...zeHeater.java => AnimatedBlazeBurner.java} | 28 +-- .../components/fan/AirCurrent.java | 4 +- .../components/fan/EncasedFanTileEntity.java | 4 +- .../mixer/MechanicalMixerTileEntity.java | 14 +- .../contraptions/processing/HeaterBlock.java | 144 ------------- .../processing/HeaterBlockItem.java | 92 --------- .../processing/HeaterRenderer.java | 35 ---- .../processing/burner/BlazeBurnerBlock.java | 184 +++++++++++++++++ .../burner/BlazeBurnerBlockItem.java | 167 +++++++++++++++ .../burner/BlazeBurnerRenderer.java | 39 ++++ .../BlazeBurnerTileEntity.java} | 37 ++-- .../content/logistics/InWorldProcessing.java | 10 +- .../create/foundation/data/BlockStateGen.java | 4 +- .../create/foundation/utility/VecHelper.java | 6 +- .../block/blaze_burner/blaze/fading.json | 23 +++ .../block/blaze_burner/blaze/kindled.json | 23 +++ .../block/blaze_burner/blaze/seething.json | 22 ++ .../block/blaze_burner/blaze/smouldering.json | 22 ++ .../{blaze_heater => blaze_burner}/block.json | 71 ++++--- .../block/blaze_burner/block_with_blaze.json | 191 ++++++++++++++++++ .../models/block/blaze_heater/blaze/four.json | 29 --- .../models/block/blaze_heater/blaze/one.json | 28 --- .../block/blaze_heater/blaze/three.json | 29 --- .../models/block/blaze_heater/blaze/two.json | 29 --- .../textures/block/blaze_burner_inner.png | Bin 0 -> 567 bytes .../textures/block/blaze_burner_side.png | Bin 0 -> 518 bytes .../create/textures/block/blaze_kindled.png | Bin 0 -> 530 bytes .../create/textures/block/blaze_seething.png | Bin 0 -> 536 bytes .../textures/block/blaze_smouldering.png | Bin 0 -> 585 bytes .../textures/block/dark_metal_block.png | Bin 0 -> 305 bytes .../create/textures/block/tamed_blaze.png | Bin 1538 -> 0 bytes 58 files changed, 940 insertions(+), 566 deletions(-) create mode 100644 src/generated/resources/assets/create/blockstates/blaze_burner.json delete mode 100644 src/generated/resources/assets/create/blockstates/blaze_heater.json create mode 100644 src/generated/resources/assets/create/models/item/blaze_burner.json delete mode 100644 src/generated/resources/assets/create/models/item/blaze_heater.json create mode 100644 src/generated/resources/assets/create/models/item/empty_blaze_burner.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/blaze_burner.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/blaze_heater.json rename src/main/java/com/simibubi/create/compat/jei/category/animations/{AnimatedBlazeHeater.java => AnimatedBlazeBurner.java} (57%) delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/processing/HeaterBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/processing/HeaterBlockItem.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/processing/HeaterRenderer.java create mode 100644 src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java create mode 100644 src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlockItem.java create mode 100644 src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java rename src/main/java/com/simibubi/create/content/contraptions/processing/{HeaterTileEntity.java => burner/BlazeBurnerTileEntity.java} (86%) create mode 100644 src/main/resources/assets/create/models/block/blaze_burner/blaze/fading.json create mode 100644 src/main/resources/assets/create/models/block/blaze_burner/blaze/kindled.json create mode 100644 src/main/resources/assets/create/models/block/blaze_burner/blaze/seething.json create mode 100644 src/main/resources/assets/create/models/block/blaze_burner/blaze/smouldering.json rename src/main/resources/assets/create/models/block/{blaze_heater => blaze_burner}/block.json (58%) create mode 100644 src/main/resources/assets/create/models/block/blaze_burner/block_with_blaze.json delete mode 100644 src/main/resources/assets/create/models/block/blaze_heater/blaze/four.json delete mode 100644 src/main/resources/assets/create/models/block/blaze_heater/blaze/one.json delete mode 100644 src/main/resources/assets/create/models/block/blaze_heater/blaze/three.json delete mode 100644 src/main/resources/assets/create/models/block/blaze_heater/blaze/two.json create mode 100644 src/main/resources/assets/create/textures/block/blaze_burner_inner.png create mode 100644 src/main/resources/assets/create/textures/block/blaze_burner_side.png create mode 100644 src/main/resources/assets/create/textures/block/blaze_kindled.png create mode 100644 src/main/resources/assets/create/textures/block/blaze_seething.png create mode 100644 src/main/resources/assets/create/textures/block/blaze_smouldering.png create mode 100644 src/main/resources/assets/create/textures/block/dark_metal_block.png delete mode 100644 src/main/resources/assets/create/textures/block/tamed_blaze.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 9af7474d5..6b94b1566 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -25,7 +25,7 @@ f25693a9429f6337149ff24f27900dc4eb82a7c2 assets/create/blockstates/belt.json cf9045eb16e5299a1d917c4cb536289f49411276 assets/create/blockstates/birch_window.json 94a1a91403eb4b035fec48071e7fcae57a8a6abd assets/create/blockstates/birch_window_pane.json 58b07d2af6030342f0354f6d3fd0ee128d2d74b4 assets/create/blockstates/black_seat.json -0626725f70103a55dabcda6f87ca943279d45793 assets/create/blockstates/blaze_heater.json +923aeb2a556f67bc0526f237dd97af2d37b4c9f1 assets/create/blockstates/blaze_burner.json 4854d1ef52130a7887aecc60bcaffbd66f0871a8 assets/create/blockstates/blue_seat.json fba967b1f6e44b34a9d9662e2fedfc13aad7f36c assets/create/blockstates/brass_belt_funnel.json 8b1dd00adcc7e74c5a9feed069e2610b15a338cb assets/create/blockstates/brass_block.json @@ -300,7 +300,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl 3a739f9d4276828d83f2d2750bf3227c87bcd438 assets/create/blockstates/pulley_magnet.json 469e430d96cb0a5e1aaf6b7cc5d401d488c9e600 assets/create/blockstates/pulse_repeater.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json -4bb26546ac954604a0317b059f2c36a1123772cb assets/create/blockstates/radial_chassis.json +8d7e653bfd9846e684a0d3725595714a19201017 assets/create/blockstates/radial_chassis.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json 8929677f2cc5354aa19ef182af69f9f0b41eb242 assets/create/blockstates/redstone_contact.json c29213b77ac0c78d8979c5f6188d2b265696f9b9 assets/create/blockstates/redstone_link.json @@ -354,17 +354,17 @@ c77b46d8b459e5c7cc495393546f3fcca8a1fa1d assets/create/blockstates/weathered_lim a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -8701a4473878ef76b77b853b7b5ee0e1570e35b5 assets/create/lang/en_ud.json -28b0c222c3bc23ade20b30acbeba4dff45b8aac6 assets/create/lang/en_us.json -99cfc3bf44135741f3cab754126c7b9020ca6afd assets/create/lang/unfinished/de_de.json -5eaf282418b78d3b642489f12d1d4e39a84c8158 assets/create/lang/unfinished/fr_fr.json -d8a9050112ff115115035e5af996cf67d1c7857f assets/create/lang/unfinished/it_it.json -52d6a899466025fafd1235486e8a142acd650827 assets/create/lang/unfinished/ja_jp.json -67249a783b7bdb3306b2616fa05675f446930cb9 assets/create/lang/unfinished/ko_kr.json -49d048a89d98ec8e15f91155f466f06634656e28 assets/create/lang/unfinished/nl_nl.json -c88f1d0814ddd3c8a7925372ea9d5f5677b2abe8 assets/create/lang/unfinished/pt_br.json -76c6a11afca6c102194f2b32a4e84c83d73e741c assets/create/lang/unfinished/ru_ru.json -e49755abda2b5df4c1a83fc058cf2693940259d1 assets/create/lang/unfinished/zh_cn.json +0f82b1cb0f026895a75feb06fba8c33b44d14711 assets/create/lang/en_ud.json +0c28bf9b20b27caa23ec5eb0cf77b3557cc07f19 assets/create/lang/en_us.json +2adfeab7ad690f28e21c885f5952d285430df646 assets/create/lang/unfinished/de_de.json +4faaa837fc1c9aa2734c4462970626cb7f8de9a8 assets/create/lang/unfinished/fr_fr.json +b2d7fac85167362bfed655394fe7a7ed31d76929 assets/create/lang/unfinished/it_it.json +57813585da4b9b3605c557ddc044cfd9839049eb assets/create/lang/unfinished/ja_jp.json +5349034d41e56df04d7c54bef0e17ee5941c8de4 assets/create/lang/unfinished/ko_kr.json +20b02ad64a22d931e62ad32bc880ba9a8b6b44f3 assets/create/lang/unfinished/nl_nl.json +321cf5d17bd7f881675125ac2b3ec79d85b2d364 assets/create/lang/unfinished/pt_br.json +8a23811e1d9fd60a96611071d140038e64977826 assets/create/lang/unfinished/ru_ru.json +06f2a0836d475ba095e8fcc11d5be4626c2eb11b assets/create/lang/unfinished/zh_cn.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1027,7 +1027,7 @@ bf1fc6bdf7fca6f1958a2d3e96202c1cecb50669 assets/create/models/item/basin.json 9044243882cfd49a2827e1b910a4c9b0e46daa47 assets/create/models/item/birch_window.json 6ed49f59ea91068ef68720f43e67a9237594bdf0 assets/create/models/item/birch_window_pane.json 22632bd681c8a605f0845f7549770389a741156a assets/create/models/item/black_seat.json -fa2761dc44857eb840a94df869de66a91988f0da assets/create/models/item/blaze_heater.json +80a6e8b00709fe0521aca5b789ae17485ed9c56d assets/create/models/item/blaze_burner.json 0e1977585128fc0ecef640f72e5fc5e9fb47ef92 assets/create/models/item/blue_seat.json 17d340c3678bd24cb085ba49490b2b4cb341a9e7 assets/create/models/item/brass_block.json f5a18f4279c2e845a5967b1c2f9e807c2bb77afb assets/create/models/item/brass_casing.json @@ -1103,6 +1103,7 @@ be7de1e1529fb2a2e842204136520a760676d4e9 assets/create/models/item/dolomite_cobb e974cd23a5456baef8b634f2d21fd8c3822931ab assets/create/models/item/dolomite_pillar.json 82b73fafdb8bf4f0706012d5baab44cd0e1aa7bc assets/create/models/item/dough.json 36139f3de5fc9e57cb96f2d2daad108bc0635b7b assets/create/models/item/electron_tube.json +971be8e52e8dfef50c8329be83f9c5d5ea869279 assets/create/models/item/empty_blaze_burner.json 3bbf9f6b33ef075fb2e1d20d58a6169e2e942314 assets/create/models/item/empty_schematic.json f2d6b88c3174de01e16da555236727efc33b490c assets/create/models/item/encased_belt.json 250bd0716cc1f04b03892ab74eb0b3a0f32a6158 assets/create/models/item/encased_fan.json @@ -1837,7 +1838,7 @@ c7f81e30c31837a287d6d6040cdb02c7dec11441 data/create/loot_tables/blocks/belt.jso 67a8e2513c3cb09e6fe80279fda94f79d5018c37 data/create/loot_tables/blocks/birch_window.json bf1d5843f93533f84bc4adec5b77da2114fa2025 data/create/loot_tables/blocks/birch_window_pane.json cccc209d172cc7bac76f1b4ac79085ee90742ab2 data/create/loot_tables/blocks/black_seat.json -798ef290b388dee758df3e779b4b1c9289955f7b data/create/loot_tables/blocks/blaze_heater.json +a2313c9b7d114396fca3c86a740d23fce3873679 data/create/loot_tables/blocks/blaze_burner.json 3834f7ac2bbc42cead02d4973842adb9ad97e6bf data/create/loot_tables/blocks/blue_seat.json 1dbc446abe190b2832b2ce7d52c2f2d2bdd45949 data/create/loot_tables/blocks/brass_belt_funnel.json 70d9d4def43d5b31fa7cdc5ca5002c71cf4a90b0 data/create/loot_tables/blocks/brass_block.json @@ -2543,8 +2544,8 @@ d3fdb8ece6cb072a93ddb64a0baad5ac952117a4 data/create/recipes/weathered_limestone 11667414f73bc2d00bda7c5c1a7d2934bf6e9165 data/create/recipes/weathered_limestone_pillar_from_weathered_limestone_stonecutting.json 266f08e604d229a9d2b46f7272c0b06ec270bf3d data/create/recipes/zinc_block.json 4ace4302e3f0ee8ca063c150a046deab06c52710 data/create/tags/blocks/brittle.json -228290109dd691e508cad11547e30d30bf111c3f data/create/tags/blocks/fan_heaters.json -74ad330d6e347b339002a9d83be7061c1c91ae26 data/create/tags/blocks/fan_transparent.json +246ee2ec4e778e38a362f319506564886d4e0e76 data/create/tags/blocks/fan_heaters.json +798ef82869dbe22682121504a372e95607a785dc data/create/tags/blocks/fan_transparent.json 081f5aa35602fc27af2ca01ea9f2fd5e7eb284dc data/create/tags/items/create_ingots.json d2dc4ff179ef7b2aa9276455c196e15d44aa95a8 data/create/tags/items/crushed_ores.json 16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/blocks/glass/colorless.json diff --git a/src/generated/resources/assets/create/blockstates/blaze_burner.json b/src/generated/resources/assets/create/blockstates/blaze_burner.json new file mode 100644 index 000000000..076b83aae --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/blaze_burner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "create:block/blaze_burner/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/blaze_heater.json b/src/generated/resources/assets/create/blockstates/blaze_heater.json deleted file mode 100644 index ede37bfd8..000000000 --- a/src/generated/resources/assets/create/blockstates/blaze_heater.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "create:block/blaze_heater/block" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index f114a594d..df347443d 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -26,7 +26,7 @@ "block.create.birch_window": "\u028Dopu\u0131M \u0265\u0254\u0279\u0131\u15FA", "block.create.birch_window_pane": "\u01DDu\u0250\u0500 \u028Dopu\u0131M \u0265\u0254\u0279\u0131\u15FA", "block.create.black_seat": "\u0287\u0250\u01DDS \u029E\u0254\u0250\u05DF\u15FA", - "block.create.blaze_heater": "\u0279\u01DD\u0287\u0250\u01DDH \u01DDz\u0250\u05DF\u15FA", + "block.create.blaze_burner": "\u0279\u01DDu\u0279n\u15FA \u01DDz\u0250\u05DF\u15FA", "block.create.blue_seat": "\u0287\u0250\u01DDS \u01DDn\u05DF\u15FA", "block.create.brass_belt_funnel": "\u05DF\u01DDuun\u2132 \u0287\u05DF\u01DD\u15FA ss\u0250\u0279\u15FA", "block.create.brass_block": "\u029E\u0254o\u05DF\u15FA ss\u0250\u0279\u15FA", @@ -379,6 +379,7 @@ "item.create.deforester": "\u0279\u01DD\u0287s\u01DD\u0279o\u025F\u01DD\u15E1", "item.create.dough": "\u0265bno\u15E1", "item.create.electron_tube": "\u01DDqn\u27D8 uo\u0279\u0287\u0254\u01DD\u05DF\u018E", + "item.create.empty_blaze_burner": "\u0279\u01DDu\u0279n\u15FA \u01DDz\u0250\u05DF\u15FA \u028E\u0287d\u026F\u018E", "item.create.empty_schematic": "\u0254\u0131\u0287\u0250\u026F\u01DD\u0265\u0254S \u028E\u0287d\u026F\u018E", "item.create.extendo_grip": "d\u0131\u0279\u2141 opu\u01DD\u0287x\u018E", "item.create.filter": "\u0279\u01DD\u0287\u05DF\u0131\u2132", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 247ee4ec8..883a7ee2d 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -29,7 +29,7 @@ "block.create.birch_window": "Birch Window", "block.create.birch_window_pane": "Birch Window Pane", "block.create.black_seat": "Black Seat", - "block.create.blaze_heater": "Blaze Heater", + "block.create.blaze_burner": "Blaze Burner", "block.create.blue_seat": "Blue Seat", "block.create.brass_belt_funnel": "Brass Belt Funnel", "block.create.brass_block": "Brass Block", @@ -384,6 +384,7 @@ "item.create.deforester": "Deforester", "item.create.dough": "Dough", "item.create.electron_tube": "Electron Tube", + "item.create.empty_blaze_burner": "Empty Blaze Burner", "item.create.empty_schematic": "Empty Schematic", "item.create.extendo_grip": "Extendo Grip", "item.create.filter": "Filter", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index e8795b6a1..175e62e23 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 809", + "_": "Missing Localizations: 810", "_": "->------------------------] Game Elements [------------------------<-", @@ -30,7 +30,7 @@ "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", - "block.create.blaze_heater": "UNLOCALIZED: Blaze Heater", + "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", @@ -385,6 +385,7 @@ "item.create.deforester": "UNLOCALIZED: Deforester", "item.create.dough": "Teig", "item.create.electron_tube": "UNLOCALIZED: Electron Tube", + "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", "item.create.empty_schematic": "Leerer Bauplan", "item.create.extendo_grip": "UNLOCALIZED: Extendo Grip", "item.create.filter": "Filter", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index a65280c05..7c2fb3dc2 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 412", + "_": "Missing Localizations: 413", "_": "->------------------------] Game Elements [------------------------<-", @@ -30,7 +30,7 @@ "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", - "block.create.blaze_heater": "UNLOCALIZED: Blaze Heater", + "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", @@ -385,6 +385,7 @@ "item.create.deforester": "Déforesteur", "item.create.dough": "Pâte", "item.create.electron_tube": "Tube électronique", + "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", "item.create.empty_schematic": "Schéma vide", "item.create.extendo_grip": "UNLOCALIZED: Extendo Grip", "item.create.filter": "Filtre", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 33f8cd547..a421aa963 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 396", + "_": "Missing Localizations: 397", "_": "->------------------------] Game Elements [------------------------<-", @@ -30,7 +30,7 @@ "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", - "block.create.blaze_heater": "UNLOCALIZED: Blaze Heater", + "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "Blocco di Ottone", @@ -385,6 +385,7 @@ "item.create.deforester": "Deforestatore", "item.create.dough": "Impasto", "item.create.electron_tube": "Valvola", + "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", "item.create.empty_schematic": "Schematica Vuota", "item.create.extendo_grip": "UNLOCALIZED: Extendo Grip", "item.create.filter": "Filtro", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index dc910a63d..753b230e9 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 391", + "_": "Missing Localizations: 392", "_": "->------------------------] Game Elements [------------------------<-", @@ -30,7 +30,7 @@ "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", - "block.create.blaze_heater": "UNLOCALIZED: Blaze Heater", + "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "真鍮ブロック", @@ -385,6 +385,7 @@ "item.create.deforester": "デフォレスター", "item.create.dough": "生地", "item.create.electron_tube": "電子管", + "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", "item.create.empty_schematic": "空の概略図", "item.create.extendo_grip": "UNLOCALIZED: Extendo Grip", "item.create.filter": "フィルター", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index a13eeb763..1a896e625 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 396", + "_": "Missing Localizations: 397", "_": "->------------------------] Game Elements [------------------------<-", @@ -30,7 +30,7 @@ "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", - "block.create.blaze_heater": "UNLOCALIZED: Blaze Heater", + "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "황동 블럭", @@ -385,6 +385,7 @@ "item.create.deforester": "산림파괴자", "item.create.dough": "반죽", "item.create.electron_tube": "전지 튜브", + "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", "item.create.empty_schematic": "빈 청사진", "item.create.extendo_grip": "UNLOCALIZED: Extendo Grip", "item.create.filter": "필터 틀", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 5c76d94ae..8a086de65 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 746", + "_": "Missing Localizations: 747", "_": "->------------------------] Game Elements [------------------------<-", @@ -30,7 +30,7 @@ "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", - "block.create.blaze_heater": "UNLOCALIZED: Blaze Heater", + "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", @@ -385,6 +385,7 @@ "item.create.deforester": "Ontbosser", "item.create.dough": "Deeg", "item.create.electron_tube": "UNLOCALIZED: Electron Tube", + "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", "item.create.empty_schematic": "Lege bouwtekening", "item.create.extendo_grip": "UNLOCALIZED: Extendo Grip", "item.create.filter": "Filter", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 4472e40cc..843ab7e33 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 816", + "_": "Missing Localizations: 817", "_": "->------------------------] Game Elements [------------------------<-", @@ -30,7 +30,7 @@ "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", - "block.create.blaze_heater": "UNLOCALIZED: Blaze Heater", + "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", @@ -385,6 +385,7 @@ "item.create.deforester": "UNLOCALIZED: Deforester", "item.create.dough": "Massa", "item.create.electron_tube": "UNLOCALIZED: Electron Tube", + "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", "item.create.empty_schematic": "Esquema vazio", "item.create.extendo_grip": "UNLOCALIZED: Extendo Grip", "item.create.filter": "Filtro", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 72bf40dd8..d996c9f99 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 810", + "_": "Missing Localizations: 811", "_": "->------------------------] Game Elements [------------------------<-", @@ -30,7 +30,7 @@ "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", - "block.create.blaze_heater": "UNLOCALIZED: Blaze Heater", + "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", @@ -385,6 +385,7 @@ "item.create.deforester": "UNLOCALIZED: Deforester", "item.create.dough": "Тесто", "item.create.electron_tube": "UNLOCALIZED: Electron Tube", + "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", "item.create.empty_schematic": "Пустая схема", "item.create.extendo_grip": "UNLOCALIZED: Extendo Grip", "item.create.filter": "Фильтр", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 819593e4d..eab7d3c6a 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 72", + "_": "Missing Localizations: 73", "_": "->------------------------] Game Elements [------------------------<-", @@ -30,7 +30,7 @@ "block.create.birch_window": "白桦窗户", "block.create.birch_window_pane": "白桦窗户板", "block.create.black_seat": "UNLOCALIZED: Black Seat", - "block.create.blaze_heater": "UNLOCALIZED: Blaze Heater", + "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "黄铜块", @@ -385,6 +385,7 @@ "item.create.deforester": "树林毁灭者", "item.create.dough": "面团", "item.create.electron_tube": "电子管", + "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", "item.create.empty_schematic": "空白蓝图", "item.create.extendo_grip": "伸缩机械手", "item.create.filter": "过滤器", diff --git a/src/generated/resources/assets/create/models/item/blaze_burner.json b/src/generated/resources/assets/create/models/item/blaze_burner.json new file mode 100644 index 000000000..79214d256 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/blaze_burner.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/blaze_burner/block_with_blaze" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/blaze_heater.json b/src/generated/resources/assets/create/models/item/blaze_heater.json deleted file mode 100644 index 40a3c3428..000000000 --- a/src/generated/resources/assets/create/models/item/blaze_heater.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "create:block/blaze_heater/block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/empty_blaze_burner.json b/src/generated/resources/assets/create/models/item/empty_blaze_burner.json new file mode 100644 index 000000000..a1a7275c1 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/empty_blaze_burner.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/blaze_burner/block" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/blaze_burner.json b/src/generated/resources/data/create/loot_tables/blocks/blaze_burner.json new file mode 100644 index 000000000..5e359f9ca --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/blaze_burner.json @@ -0,0 +1,90 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:block_state_property", + "block": "create:blaze_burner", + "properties": { + "blaze": "none" + } + } + ], + "name": "create:empty_blaze_burner" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:block_state_property", + "block": "create:blaze_burner", + "properties": { + "blaze": "smouldering" + } + } + ], + "name": "create:blaze_burner" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:block_state_property", + "block": "create:blaze_burner", + "properties": { + "blaze": "fading" + } + } + ], + "name": "create:blaze_burner" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:block_state_property", + "block": "create:blaze_burner", + "properties": { + "blaze": "kindled" + } + } + ], + "name": "create:blaze_burner" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:block_state_property", + "block": "create:blaze_burner", + "properties": { + "blaze": "seething" + } + } + ], + "name": "create:blaze_burner" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/blaze_heater.json b/src/generated/resources/data/create/loot_tables/blocks/blaze_heater.json deleted file mode 100644 index 291dbd019..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/blaze_heater.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:blaze_heater" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/fan_heaters.json b/src/generated/resources/data/create/tags/blocks/fan_heaters.json index 7d6b87f02..ef385188e 100644 --- a/src/generated/resources/data/create/tags/blocks/fan_heaters.json +++ b/src/generated/resources/data/create/tags/blocks/fan_heaters.json @@ -1,7 +1,7 @@ { "replace": false, "values": [ - "create:blaze_heater", + "create:blaze_burner", "minecraft:magma_block", "minecraft:campfire", "minecraft:lava", diff --git a/src/generated/resources/data/create/tags/blocks/fan_transparent.json b/src/generated/resources/data/create/tags/blocks/fan_transparent.json index 099a5f090..68f9d3c80 100644 --- a/src/generated/resources/data/create/tags/blocks/fan_transparent.json +++ b/src/generated/resources/data/create/tags/blocks/fan_transparent.json @@ -1,7 +1,7 @@ { "replace": false, "values": [ - "create:blaze_heater", + "create:blaze_burner", "#minecraft:fences", "minecraft:iron_bars" ] diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index 6dbff9bca..c0a1b9d1c 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map; import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.MatrixStacker; @@ -43,12 +44,11 @@ public class AllBlockPartials { BELT_DIAGONAL_MIDDLE = get("belt/diagonal_middle"), BELT_DIAGONAL_END = get("belt/diagonal_end"), - ENCASED_FAN_INNER = get("encased_fan/propeller"), HAND_CRANK_HANDLE = get("hand_crank/handle"), - MECHANICAL_PRESS_HEAD = get("mechanical_press/head"), MECHANICAL_MIXER_POLE = get("mechanical_mixer/pole"), - MECHANICAL_MIXER_HEAD = get("mechanical_mixer/head"), BLAZE_HEATER_BLAZE_ONE = get("blaze_heater/blaze/one"), - BLAZE_HEATER_BLAZE_TWO = get("blaze_heater/blaze/two"), - BLAZE_HEATER_BLAZE_THREE = get("blaze_heater/blaze/three"), - BLAZE_HEATER_BLAZE_FOUR = get("blaze_heater/blaze/four"), + ENCASED_FAN_INNER = get("encased_fan/propeller"), + HAND_CRANK_HANDLE = get("hand_crank/handle"), + MECHANICAL_PRESS_HEAD = get("mechanical_press/head"), + MECHANICAL_MIXER_POLE = get("mechanical_mixer/pole"), + MECHANICAL_MIXER_HEAD = get("mechanical_mixer/head"), MECHANICAL_CRAFTER_LID = get("mechanical_crafter/lid"), MECHANICAL_CRAFTER_ARROW = get("mechanical_crafter/arrow"), MECHANICAL_CRAFTER_BELT_FRAME = get("mechanical_crafter/belt"), @@ -97,6 +97,7 @@ public class AllBlockPartials { FLUID_PIPE_CASING = get("fluid_pipe/casing"); public static final Map PIPE_RIMS = map(); + public static final Map BLAZES = map(); static { populateMaps(); @@ -110,8 +111,12 @@ public class AllBlockPartials { private AllBlockPartials() {} private static void populateMaps() { - for (Direction d : Iterate.directions) { + for (Direction d : Iterate.directions) PIPE_RIMS.put(d, get("fluid_pipe/rim/" + d.getName())); + for (HeatLevel heat : HeatLevel.values()) { + if (heat == HeatLevel.NONE) + continue; + BLAZES.put(heat, get("blaze_burner/blaze/" + heat.getName())); } } diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index c30771a51..bd1fe7cfd 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -59,8 +59,8 @@ import com.simibubi.create.content.contraptions.fluids.FluidTankItem; import com.simibubi.create.content.contraptions.fluids.FluidTankModel; import com.simibubi.create.content.contraptions.fluids.PumpBlock; import com.simibubi.create.content.contraptions.processing.BasinBlock; -import com.simibubi.create.content.contraptions.processing.HeaterBlock; -import com.simibubi.create.content.contraptions.processing.HeaterBlockItem; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlockItem; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftBlock; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftGenerator; @@ -403,13 +403,15 @@ public class AllBlocks { .simpleItem() .register(); - public static final BlockEntry HEATER = REGISTRATE.block("blaze_heater", HeaterBlock::new) + public static final BlockEntry BLAZE_BURNER = REGISTRATE.block("blaze_burner", BlazeBurnerBlock::new) .initialProperties(SharedProperties::softMetal) .properties(p -> p.lightValue(12)) .addLayer(() -> RenderType::getCutoutMipped) .tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.FAN_HEATERS.tag) + .loot((lt, block) -> lt.registerLootTable(block, BlazeBurnerBlock.buildLootTable())) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) - .item(HeaterBlockItem::new) + .item(BlazeBurnerBlockItem::withBlaze) + .model(AssetLookup.customItemModel("blaze_burner", "block_with_blaze")) .build() .register(); diff --git a/src/main/java/com/simibubi/create/AllItems.java b/src/main/java/com/simibubi/create/AllItems.java index 6ac8e3b60..ce9ed043d 100644 --- a/src/main/java/com/simibubi/create/AllItems.java +++ b/src/main/java/com/simibubi/create/AllItems.java @@ -14,6 +14,7 @@ import static com.simibubi.create.content.AllSections.SCHEMATICS; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueItem; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MinecartContraptionItem; import com.simibubi.create.content.contraptions.goggles.GogglesItem; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlockItem; import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorItem; import com.simibubi.create.content.contraptions.relays.gearbox.VerticalGearboxItem; import com.simibubi.create.content.contraptions.wrench.WrenchItem; @@ -121,6 +122,11 @@ public class AllItems { REGISTRATE.item("vertical_gearbox", VerticalGearboxItem::new) .model(AssetLookup.customItemModel("gearbox", "item_vertical")) .register(); + + public static final ItemEntry EMPTY_BLAZE_BURNER = + REGISTRATE.item("empty_blaze_burner", BlazeBurnerBlockItem::empty) + .model(AssetLookup.customItemModel("blaze_burner", "block")) + .register(); public static final ItemEntry SUPER_GLUE = REGISTRATE.item("super_glue", SuperGlueItem::new) .register(); diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index f191f5eac..fde940f3d 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -50,6 +50,8 @@ import com.simibubi.create.content.contraptions.fluids.FluidTankTileEntity; import com.simibubi.create.content.contraptions.fluids.PumpRenderer; import com.simibubi.create.content.contraptions.fluids.PumpTileEntity; import com.simibubi.create.content.contraptions.processing.*; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerRenderer; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerTileEntity; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerRenderer; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerTileEntity; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftTileEntity; @@ -200,8 +202,8 @@ public class AllTileEntities { register("deployer", DeployerTileEntity::new, AllBlocks.DEPLOYER); public static final TileEntityEntry BASIN = register("basin", BasinTileEntity::new, AllBlocks.BASIN); - public static final TileEntityEntry HEATER = - register("blaze_heater", HeaterTileEntity::new, AllBlocks.HEATER); + public static final TileEntityEntry HEATER = + register("blaze_heater", BlazeBurnerTileEntity::new, AllBlocks.BLAZE_BURNER); public static final TileEntityEntry MECHANICAL_CRAFTER = register("mechanical_crafter", MechanicalCrafterTileEntity::new, AllBlocks.MECHANICAL_CRAFTER); public static final TileEntityEntry SEQUENCED_GEARSHIFT = @@ -301,7 +303,7 @@ public class AllTileEntities { bind(SPEEDOMETER, GaugeRenderer::speed); bind(STRESSOMETER, GaugeRenderer::stress); bind(BASIN, BasinRenderer::new); - bind(HEATER, HeaterRenderer::new); + bind(HEATER, BlazeBurnerRenderer::new); bind(DEPLOYER, DeployerRenderer::new); bind(FLYWHEEL, FlywheelRenderer::new); bind(FURNACE_ENGINE, EngineRenderer::new); diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index 18d414246..32599792f 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -162,7 +162,7 @@ public class CreateJEI implements IModPlugin { registration.addRecipeCatalyst(new ItemStack(AllItems.BLOCKZAPPER.get()), blockzapperCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_MIXER.get()), mixingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.BASIN.get()), mixingCategory.getUid()); - registration.addRecipeCatalyst(new ItemStack(AllBlocks.HEATER.get()), mixingCategory.getUid()); + registration.addRecipeCatalyst(new ItemStack(AllBlocks.BLAZE_BURNER.get()), mixingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_SAW.get()), sawingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(AllBlocks.MECHANICAL_SAW.get()), blockCuttingCategory.getUid()); registration.addRecipeCatalyst(new ItemStack(Blocks.STONECUTTER), blockCuttingCategory.getUid()); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/MixingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/MixingCategory.java index fd2ada44b..9c70c93f0 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/MixingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/MixingCategory.java @@ -10,7 +10,7 @@ import org.apache.commons.lang3.mutable.MutableInt; import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.AllBlocks; -import com.simibubi.create.compat.jei.category.animations.AnimatedBlazeHeater; +import com.simibubi.create.compat.jei.category.animations.AnimatedBlazeBurner; import com.simibubi.create.compat.jei.category.animations.AnimatedMixer; import com.simibubi.create.content.contraptions.components.mixer.MixingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingIngredient; @@ -28,7 +28,7 @@ import net.minecraft.util.NonNullList; public class MixingCategory extends CreateRecipeCategory { private AnimatedMixer mixer = new AnimatedMixer(); - private AnimatedBlazeHeater heater = new AnimatedBlazeHeater(); + private AnimatedBlazeBurner heater = new AnimatedBlazeBurner(); public MixingCategory() { super("mixing", doubleItemIcon(AllBlocks.MECHANICAL_MIXER.get(), AllBlocks.BASIN.get()), diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeHeater.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java similarity index 57% rename from src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeHeater.java rename to src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java index 84483c08a..e31a8ac98 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeHeater.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java @@ -1,29 +1,20 @@ package com.simibubi.create.compat.jei.category.animations; -import java.util.HashMap; - import com.mojang.blaze3d.systems.RenderSystem; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.foundation.gui.GuiGameElement; import mezz.jei.api.gui.drawable.IDrawable; -public class AnimatedBlazeHeater implements IDrawable { - private static final HashMap blazeModelMap = new HashMap<>(); - - public AnimatedBlazeHeater() { - super(); - blazeModelMap.put(2, AllBlockPartials.BLAZE_HEATER_BLAZE_TWO); - blazeModelMap.put(3, AllBlockPartials.BLAZE_HEATER_BLAZE_THREE); - blazeModelMap.put(4, AllBlockPartials.BLAZE_HEATER_BLAZE_FOUR); - } +public class AnimatedBlazeBurner implements IDrawable { @Override public void draw(int xOffset, int yOffset) { drawWithHeatLevel(xOffset, yOffset, 3); } - + public void drawWithHeatLevel(int xOffset, int yOffset, int heatLevel) { RenderSystem.pushMatrix(); RenderSystem.translatef(xOffset, yOffset, 200); @@ -31,12 +22,13 @@ public class AnimatedBlazeHeater implements IDrawable { RenderSystem.rotatef(22.5f, 0, 1, 0); int scale = 23; - GuiGameElement.of(AllBlocks.HEATER.getDefaultState()) - .atLocal(0, 1.65, 0) - .scale(scale) - .render(); - - GuiGameElement.of(blazeModelMap.getOrDefault(heatLevel, AllBlockPartials.BLAZE_HEATER_BLAZE_ONE)) + GuiGameElement.of(AllBlocks.BLAZE_BURNER.getDefaultState()) + .atLocal(0, 1.65, 0) + .scale(scale) + .render(); + + AllBlockPartials blaze = AllBlockPartials.BLAZES.get(HeatLevel.byIndex(heatLevel)); + GuiGameElement.of(blaze) .atLocal(1, 1.65, 1) .rotate(0, 180, 0) .scale(scale) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrent.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrent.java index 8331bcf87..b0e415670 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrent.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrent.java @@ -4,9 +4,9 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import com.simibubi.create.AllTags; import org.apache.commons.lang3.tuple.Pair; +import com.simibubi.create.AllTags; import com.simibubi.create.content.contraptions.particle.AirFlowParticleData; import com.simibubi.create.content.logistics.InWorldProcessing; import com.simibubi.create.content.logistics.InWorldProcessing.Type; @@ -17,7 +17,6 @@ import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.item.ItemEntity; @@ -38,7 +37,6 @@ import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; import net.minecraft.world.World; -import net.minecraftforge.common.Tags; public class AirCurrent { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanTileEntity.java index 0b08cfb3e..a50454373 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanTileEntity.java @@ -2,7 +2,7 @@ package com.simibubi.create.content.contraptions.components.fan; import com.simibubi.create.AllTags.AllBlockTags; import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity; -import com.simibubi.create.content.contraptions.processing.HeaterBlock; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.CKinetics; @@ -80,7 +80,7 @@ public class EncasedFanTileEntity extends GeneratingKineticTileEntity { if (!checkState.getBlock().isIn(AllBlockTags.FAN_HEATERS.tag)) return false; - if (checkState.has(HeaterBlock.BLAZE_LEVEL) && !checkState.get(HeaterBlock.BLAZE_LEVEL).min(HeaterBlock.HeatLevel.FADING)) + if (checkState.has(BlazeBurnerBlock.HEAT_LEVEL) && !checkState.get(BlazeBurnerBlock.HEAT_LEVEL).isAtLeast(BlazeBurnerBlock.HeatLevel.FADING)) return false; if (checkState.has(BlockStateProperties.LIT) && !checkState.get(BlockStateProperties.LIT)) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java index 6cf5041bd..a0086e9f5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java @@ -11,7 +11,7 @@ import com.simibubi.create.content.contraptions.fluids.CombinedFluidHandler; import com.simibubi.create.content.contraptions.processing.BasinOperatingTileEntity; import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInventory; import com.simibubi.create.content.contraptions.processing.CombinedItemFluidList; -import com.simibubi.create.content.contraptions.processing.HeaterBlock; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour; @@ -35,8 +35,6 @@ import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3d; import net.minecraftforge.items.IItemHandler; -import static com.simibubi.create.content.contraptions.processing.HeaterBlock.getHeaterLevel; - public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { private static final Object shapelessOrMixingRecipesKey = new Object(); @@ -269,12 +267,12 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { return running; } - private HeaterBlock.HeatLevel getHeatLevelApplied() { + private BlazeBurnerBlock.HeatLevel getHeatLevelApplied() { if (world == null) - return HeaterBlock.HeatLevel.NONE; + return BlazeBurnerBlock.HeatLevel.NONE; BlockState state = world.getBlockState(pos.down(3)); - if (state.has(HeaterBlock.BLAZE_LEVEL)) - return state.get(HeaterBlock.BLAZE_LEVEL); - return AllTags.AllBlockTags.FAN_HEATERS.matches(state) ? HeaterBlock.HeatLevel.SMOULDERING : HeaterBlock.HeatLevel.NONE; + if (state.has(BlazeBurnerBlock.HEAT_LEVEL)) + return state.get(BlazeBurnerBlock.HEAT_LEVEL); + return AllTags.AllBlockTags.FAN_HEATERS.matches(state) ? BlazeBurnerBlock.HeatLevel.SMOULDERING : BlazeBurnerBlock.HeatLevel.NONE; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterBlock.java b/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterBlock.java deleted file mode 100644 index f5721df2e..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterBlock.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.simibubi.create.content.contraptions.processing; - -import javax.annotation.Nullable; -import javax.annotation.ParametersAreNonnullByDefault; - -import com.simibubi.create.AllShapes; -import com.simibubi.create.AllTileEntities; -import com.simibubi.create.foundation.block.ITE; - -import com.simibubi.create.foundation.utility.Lang; -import mcp.MethodsReturnNonnullByDefault; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.state.EnumProperty; -import net.minecraft.state.IProperty; -import net.minecraft.state.StateContainer.Builder; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; - -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -public class HeaterBlock extends Block implements ITE { - - //public static IProperty BLAZE_LEVEL = IntegerProperty.create("blaze_level", 0, 4); - public static IProperty BLAZE_LEVEL = EnumProperty.create("blaze", HeatLevel.class); - - public HeaterBlock(Properties properties) { - super(properties); - setDefaultState(super.getDefaultState().with(BLAZE_LEVEL, HeatLevel.NONE)); - } - - @Override - protected void fillStateContainer(Builder builder) { - super.fillStateContainer(builder); - builder.add(BLAZE_LEVEL); - } - - @Override - public boolean hasTileEntity(BlockState state) { - return state.get(BLAZE_LEVEL).min(HeatLevel.SMOULDERING); - } - - @Nullable - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.HEATER.create(); - } - - @Override - public Class getTileEntityClass() { - return HeaterTileEntity.class; - } - - @Override - public ActionResultType onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult blockRayTraceResult) { - if (!hasTileEntity(state)) - return ActionResultType.PASS; - - TileEntity te = world.getTileEntity(pos); - if (!(te instanceof HeaterTileEntity)) - return ActionResultType.PASS; - - if (!((HeaterTileEntity) te).tryUpdateFuel(player.getHeldItem(hand), player)) - return ActionResultType.PASS; - - if (!player.isCreative()) - player.getHeldItem(hand).shrink(1); - - return ActionResultType.SUCCESS; - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - if (!context.getItem().hasTag()) - return getDefaultState(); - - CompoundNBT tag = context.getItem().getTag(); - if (!tag.contains("has_blaze")) - return getDefaultState(); - - if (tag.getBoolean("has_blaze")) - return getDefaultState().with(BLAZE_LEVEL, HeatLevel.SMOULDERING); - - return getDefaultState(); - } - - @Override - public VoxelShape getShape(BlockState state, IBlockReader reader, BlockPos pos, ISelectionContext context) { - return AllShapes.HEATER_BLOCK_SHAPE; - } - - @Override - public VoxelShape getCollisionShape(BlockState p_220071_1_, IBlockReader p_220071_2_, BlockPos p_220071_3_, ISelectionContext p_220071_4_) { - if (p_220071_4_ == ISelectionContext.dummy()) - return AllShapes.HEATER_BLOCK_SPECIAL_COLLISION_SHAPE; - - return super.getShape(p_220071_1_, p_220071_2_, p_220071_3_, p_220071_4_); - } - - @Override - public int getLightValue(BlockState state, IBlockReader world, BlockPos pos) { - return MathHelper.clamp(state.get(BLAZE_LEVEL).ordinal() * 4 - 1, 0, 15); - } - - static void setBlazeLevel(@Nullable World world, BlockPos pos, HeatLevel blazeLevel) { - if (world != null) - world.setBlockState(pos, world.getBlockState(pos).with(BLAZE_LEVEL, blazeLevel)); - } - - public static HeatLevel getHeaterLevel(BlockState blockState) { - return blockState.has(HeaterBlock.BLAZE_LEVEL) ? blockState.get(HeaterBlock.BLAZE_LEVEL) : HeatLevel.NONE; - } - - public enum HeatLevel implements IStringSerializable { - NONE, - SMOULDERING, - FADING, - KINDLED, - SEETHING, - //if you think you have better names let me know :) - ; - - @Override - public String getName() { - return Lang.asId(name()); - } - - public boolean min(HeatLevel heatLevel) { - return this.ordinal() >= heatLevel.ordinal(); - } - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterBlockItem.java b/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterBlockItem.java deleted file mode 100644 index 7235bb978..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterBlockItem.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.simibubi.create.content.contraptions.processing; - -import java.util.ArrayList; -import java.util.List; - -import javax.annotation.Nullable; -import javax.annotation.ParametersAreNonnullByDefault; - -import mcp.MethodsReturnNonnullByDefault; -import net.minecraft.block.Block; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.monster.BlazeEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.BlockItem; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUseContext; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.MobSpawnerTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.WeightedSpawnerEntity; -import net.minecraft.world.World; -import net.minecraft.world.spawner.AbstractSpawner; -import net.minecraftforge.common.util.FakePlayer; -import net.minecraftforge.fml.common.ObfuscationReflectionHelper; - -@MethodsReturnNonnullByDefault -@ParametersAreNonnullByDefault -public class HeaterBlockItem extends BlockItem { - public HeaterBlockItem(Block block, Properties properties) { - super(block, properties); - } - - @Override - public ActionResultType onItemUse(ItemUseContext context) { - TileEntity te = context.getWorld() - .getTileEntity(context.getPos()); - if (te instanceof MobSpawnerTileEntity) { - AbstractSpawner spawner = ((MobSpawnerTileEntity) te).getSpawnerBaseLogic(); - List possibleSpawns = ObfuscationReflectionHelper - .getPrivateValue(AbstractSpawner.class, spawner, "field_98285_e"); - if (possibleSpawns.isEmpty()) { - possibleSpawns = new ArrayList<>(); - possibleSpawns.add( - ObfuscationReflectionHelper.getPrivateValue(AbstractSpawner.class, spawner, "field_98282_f")); - } - for (WeightedSpawnerEntity e : possibleSpawns) { - if (new ResourceLocation(e.getNbt().getString("id")).equals(EntityType.BLAZE.getRegistryName())) { - ItemStack itemWithBlaze = withBlaze(context.getItem()); - context.getItem() - .shrink(1); - dropOrPlaceBack(context.getWorld(), context.getPlayer(), itemWithBlaze); - return ActionResultType.SUCCESS; - } - } - } - return super.onItemUse(context); - } - - @Override - public boolean itemInteractionForEntity(ItemStack heldItem, PlayerEntity player, LivingEntity entity, Hand hand) { - if (entity instanceof BlazeEntity) { - ItemStack itemWithBlaze = withBlaze(heldItem); - heldItem.shrink(1); - dropOrPlaceBack(player.getEntityWorld(), player, itemWithBlaze); - entity.remove(); - return true; - } - return super.itemInteractionForEntity(heldItem, player, entity, hand); - } - - private static ItemStack withBlaze(ItemStack base) { - ItemStack newItem = new ItemStack(base.getItem(), 1); - CompoundNBT tag = new CompoundNBT(); - tag.putBoolean("has_blaze", true); - newItem.setTag(tag); - return newItem; - } - - private static void dropOrPlaceBack(@Nullable World world, @Nullable PlayerEntity player, ItemStack item) { - if (player == null) - return; - if (player instanceof FakePlayer || world == null) { - player.dropItem(item, false, false); - } else { - player.inventory.placeItemBackInInventory(world, item); - } - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterRenderer.java deleted file mode 100644 index e7c71e2e7..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterRenderer.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.simibubi.create.content.contraptions.processing; - -import java.util.HashMap; - -import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.SuperByteBuffer; - -import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; -import net.minecraft.util.Direction; - -public class HeaterRenderer extends SafeTileEntityRenderer { - private static final HashMap blazeModelMap = new HashMap<>(); - - public HeaterRenderer(TileEntityRendererDispatcher dispatcher) { - super(dispatcher); - blazeModelMap.put(HeaterBlock.HeatLevel.FADING, AllBlockPartials.BLAZE_HEATER_BLAZE_TWO); - blazeModelMap.put(HeaterBlock.HeatLevel.KINDLED, AllBlockPartials.BLAZE_HEATER_BLAZE_THREE); - blazeModelMap.put(HeaterBlock.HeatLevel.SEETHING, AllBlockPartials.BLAZE_HEATER_BLAZE_FOUR); - } - - @Override - protected void renderSafe(HeaterTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, - int light, int overlay) { - AllBlockPartials blazeModel = - blazeModelMap.getOrDefault(te.getHeatLevel(), AllBlockPartials.BLAZE_HEATER_BLAZE_ONE); - - SuperByteBuffer blazeBuffer = blazeModel.renderOn(te.getBlockState()); - blazeBuffer.rotateCentered(Direction.UP, (float) Math.toRadians(-te.rot + (te.speed * partialTicks))); - blazeBuffer.light(0xF000F0).renderInto(ms, buffer.getBuffer(RenderType.getSolid())); - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java new file mode 100644 index 000000000..a9713bcb4 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java @@ -0,0 +1,184 @@ +package com.simibubi.create.content.contraptions.processing.burner; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; +import com.simibubi.create.AllShapes; +import com.simibubi.create.AllTileEntities; +import com.simibubi.create.foundation.block.ITE; +import com.simibubi.create.foundation.utility.Lang; + +import mcp.MethodsReturnNonnullByDefault; +import net.minecraft.advancements.criterion.StatePropertiesPredicate; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.state.EnumProperty; +import net.minecraft.state.IProperty; +import net.minecraft.state.StateContainer.Builder; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Hand; +import net.minecraft.util.IItemProvider; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.NonNullList; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.World; +import net.minecraft.world.storage.loot.ConstantRange; +import net.minecraft.world.storage.loot.ItemLootEntry; +import net.minecraft.world.storage.loot.LootPool; +import net.minecraft.world.storage.loot.LootTable; +import net.minecraft.world.storage.loot.conditions.BlockStateProperty; +import net.minecraft.world.storage.loot.conditions.ILootCondition.IBuilder; +import net.minecraft.world.storage.loot.conditions.SurvivesExplosion; + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public class BlazeBurnerBlock extends Block implements ITE { + + public static IProperty HEAT_LEVEL = EnumProperty.create("blaze", HeatLevel.class); + + public BlazeBurnerBlock(Properties properties) { + super(properties); + setDefaultState(super.getDefaultState().with(HEAT_LEVEL, HeatLevel.NONE)); + } + + @Override + protected void fillStateContainer(Builder builder) { + super.fillStateContainer(builder); + builder.add(HEAT_LEVEL); + } + + @Override + public boolean hasTileEntity(BlockState state) { + return state.get(HEAT_LEVEL) + .isAtLeast(HeatLevel.SMOULDERING); + } + + @Override + public void fillItemGroup(ItemGroup p_149666_1_, NonNullList p_149666_2_) { + p_149666_2_.add(AllItems.EMPTY_BLAZE_BURNER.asStack()); + super.fillItemGroup(p_149666_1_, p_149666_2_); + } + + @Nullable + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return AllTileEntities.HEATER.create(); + } + + @Override + public Class getTileEntityClass() { + return BlazeBurnerTileEntity.class; + } + + @Override + public ActionResultType onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, + BlockRayTraceResult blockRayTraceResult) { + if (!hasTileEntity(state)) + return ActionResultType.PASS; + + TileEntity te = world.getTileEntity(pos); + if (!(te instanceof BlazeBurnerTileEntity)) + return ActionResultType.PASS; + + if (!((BlazeBurnerTileEntity) te).tryUpdateFuel(player.getHeldItem(hand), player)) + return ActionResultType.PASS; + + if (!player.isCreative()) + player.getHeldItem(hand) + .shrink(1); + + return ActionResultType.SUCCESS; + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + ItemStack stack = context.getItem(); + Item item = stack.getItem(); + BlockState defaultState = getDefaultState(); + if (!(item instanceof BlazeBurnerBlockItem)) + return defaultState; + HeatLevel initialHeat = + ((BlazeBurnerBlockItem) item).hasCapturedBlaze() ? HeatLevel.SMOULDERING : HeatLevel.NONE; + return defaultState.with(HEAT_LEVEL, initialHeat); + } + + @Override + public VoxelShape getShape(BlockState state, IBlockReader reader, BlockPos pos, ISelectionContext context) { + return AllShapes.HEATER_BLOCK_SHAPE; + } + + @Override + public VoxelShape getCollisionShape(BlockState p_220071_1_, IBlockReader p_220071_2_, BlockPos p_220071_3_, + ISelectionContext p_220071_4_) { + if (p_220071_4_ == ISelectionContext.dummy()) + return AllShapes.HEATER_BLOCK_SPECIAL_COLLISION_SHAPE; + return getShape(p_220071_1_, p_220071_2_, p_220071_3_, p_220071_4_); + } + + @Override + public int getLightValue(BlockState state, IBlockReader world, BlockPos pos) { + return MathHelper.clamp(state.get(HEAT_LEVEL) + .ordinal() * 4 - 1, 0, 15); + } + + static void setBlazeLevel(World world, BlockPos pos, HeatLevel blazeLevel) { + BlockState blockState = world.getBlockState(pos); + if (!(blockState.getBlock() instanceof BlazeBurnerBlock)) + return; + world.setBlockState(pos, blockState.with(HEAT_LEVEL, blazeLevel)); + } + + public static HeatLevel getHeatLevelOf(BlockState blockState) { + return blockState.has(BlazeBurnerBlock.HEAT_LEVEL) ? blockState.get(BlazeBurnerBlock.HEAT_LEVEL) + : HeatLevel.NONE; + } + + public static LootTable.Builder buildLootTable() { + IBuilder survivesExplosion = SurvivesExplosion.builder(); + BlazeBurnerBlock block = AllBlocks.BLAZE_BURNER.get(); + + LootTable.Builder builder = LootTable.builder(); + LootPool.Builder poolBuilder = LootPool.builder(); + for (HeatLevel level : HeatLevel.values()) { + IItemProvider drop = + level == HeatLevel.NONE ? AllItems.EMPTY_BLAZE_BURNER.get() : AllBlocks.BLAZE_BURNER.get(); + poolBuilder.addEntry(ItemLootEntry.builder(drop) + .acceptCondition(survivesExplosion) + .acceptCondition(BlockStateProperty.builder(block) + .func_227567_a_(StatePropertiesPredicate.Builder.create() + .exactMatch(HEAT_LEVEL, level)))); + } + builder.addLootPool(poolBuilder.rolls(ConstantRange.of(1))); + return builder; + } + + public enum HeatLevel implements IStringSerializable { + NONE, SMOULDERING, FADING, KINDLED, SEETHING,; + + public static HeatLevel byIndex(int index) { + return values()[index]; + } + + @Override + public String getName() { + return Lang.asId(name()); + } + + public boolean isAtLeast(HeatLevel heatLevel) { + return this.ordinal() >= heatLevel.ordinal(); + } + } +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlockItem.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlockItem.java new file mode 100644 index 000000000..95ff6f7dc --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlockItem.java @@ -0,0 +1,167 @@ +package com.simibubi.create.content.contraptions.processing.burner; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.annotation.ParametersAreNonnullByDefault; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.foundation.utility.VecHelper; + +import mcp.MethodsReturnNonnullByDefault; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.monster.BlazeEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUseContext; +import net.minecraft.particles.ParticleTypes; +import net.minecraft.tileentity.MobSpawnerTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Hand; +import net.minecraft.util.NonNullList; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.SoundEvents; +import net.minecraft.util.WeightedSpawnerEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; +import net.minecraft.world.spawner.AbstractSpawner; +import net.minecraftforge.fml.common.ObfuscationReflectionHelper; + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public class BlazeBurnerBlockItem extends BlockItem { + + private boolean capturedBlaze; + + public static BlazeBurnerBlockItem empty(Properties properties) { + return new BlazeBurnerBlockItem(AllBlocks.BLAZE_BURNER.get(), properties, false); + } + + public static BlazeBurnerBlockItem withBlaze(Block block, Properties properties) { + return new BlazeBurnerBlockItem(block, properties, true); + } + + @Override + public void addToBlockToItemMap(Map p_195946_1_, Item p_195946_2_) { + if (!hasCapturedBlaze()) + return; + super.addToBlockToItemMap(p_195946_1_, p_195946_2_); + } + + private BlazeBurnerBlockItem(Block block, Properties properties, boolean capturedBlaze) { + super(block, properties); + this.capturedBlaze = capturedBlaze; + } + + @Override + public void fillItemGroup(ItemGroup p_150895_1_, NonNullList p_150895_2_) { + if (!hasCapturedBlaze()) + return; + super.fillItemGroup(p_150895_1_, p_150895_2_); + } + + @Override + public String getTranslationKey() { + return hasCapturedBlaze() ? super.getTranslationKey() : "item.create." + getRegistryName().getPath(); + } + + @Override + public ActionResultType onItemUse(ItemUseContext context) { + if (hasCapturedBlaze()) + return super.onItemUse(context); + + World world = context.getWorld(); + BlockPos pos = context.getPos(); + TileEntity te = world.getTileEntity(pos); + PlayerEntity player = context.getPlayer(); + + if (!(te instanceof MobSpawnerTileEntity)) + return super.onItemUse(context); + + AbstractSpawner spawner = ((MobSpawnerTileEntity) te).getSpawnerBaseLogic(); + List possibleSpawns = + ObfuscationReflectionHelper.getPrivateValue(AbstractSpawner.class, spawner, "field_98285_e"); + if (possibleSpawns.isEmpty()) { + possibleSpawns = new ArrayList<>(); + possibleSpawns + .add(ObfuscationReflectionHelper.getPrivateValue(AbstractSpawner.class, spawner, "field_98282_f")); + } + + ResourceLocation blazeId = EntityType.BLAZE.getRegistryName(); + for (WeightedSpawnerEntity e : possibleSpawns) { + ResourceLocation spawnerEntityId = new ResourceLocation(e.getNbt() + .getString("id")); + if (!spawnerEntityId.equals(blazeId)) + continue; + + spawnCaptureEffects(world, VecHelper.getCenterOf(pos)); + if (world.isRemote) + return ActionResultType.SUCCESS; + + giveBurnerItemTo(player, context.getItem(), context.getHand()); + return ActionResultType.SUCCESS; + } + + return super.onItemUse(context); + } + + @Override + public boolean itemInteractionForEntity(ItemStack heldItem, PlayerEntity player, LivingEntity entity, Hand hand) { + if (hasCapturedBlaze()) + return false; + if (!(entity instanceof BlazeEntity)) + return false; + + World world = player.world; + spawnCaptureEffects(world, entity.getPositionVec()); + if (world.isRemote) + return true; + + giveBurnerItemTo(player, heldItem, hand); + entity.remove(); + return true; + } + + protected void giveBurnerItemTo(PlayerEntity player, ItemStack heldItem, Hand hand) { + ItemStack filled = AllBlocks.BLAZE_BURNER.asStack(); + if (!player.isCreative()) + heldItem.shrink(1); + if (heldItem.isEmpty()) { + player.setHeldItem(hand, filled); + return; + } + player.inventory.placeItemBackInInventory(player.world, filled); + } + + private void spawnCaptureEffects(World world, Vec3d vec) { + if (world.isRemote) { + for (int i = 0; i < 40; i++) { + Vec3d motion = VecHelper.offsetRandomly(Vec3d.ZERO, world.rand, .125f); + world.addParticle(ParticleTypes.FLAME, vec.x, vec.y, vec.z, motion.x, motion.y, motion.z); + Vec3d circle = motion.mul(1, 0, 1) + .normalize() + .scale(.5f); + world.addParticle(ParticleTypes.SMOKE, circle.x, vec.y, circle.z, 0, -0.125, 0); + } + return; + } + + BlockPos soundPos = new BlockPos(vec); + world.playSound(null, soundPos, SoundEvents.ENTITY_BLAZE_HURT, SoundCategory.HOSTILE, .25f, .75f); + world.playSound(null, soundPos, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.HOSTILE, .5f, .75f); + } + + public boolean hasCapturedBlaze() { + return capturedBlaze; + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java new file mode 100644 index 000000000..0f6d60479 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java @@ -0,0 +1,39 @@ +package com.simibubi.create.content.contraptions.processing.burner; + +import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; +import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; +import com.simibubi.create.foundation.utility.AnimationTickHolder; +import com.simibubi.create.foundation.utility.SuperByteBuffer; + +import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.util.Direction; +import net.minecraft.util.math.MathHelper; + +public class BlazeBurnerRenderer extends SafeTileEntityRenderer { + + public BlazeBurnerRenderer(TileEntityRendererDispatcher dispatcher) { + super(dispatcher); + } + + @Override + protected void renderSafe(BlazeBurnerTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, + int light, int overlay) { + HeatLevel heatLevel = te.getHeatLevel(); + if (heatLevel == HeatLevel.NONE) + return; + + float renderTick = AnimationTickHolder.getRenderTick() + (te.hashCode() % 13) * 16f; + float offset = (MathHelper.sin((float) ((renderTick / 16f) % (2 * Math.PI))) + .5f) / 16f; + + AllBlockPartials blazeModel = AllBlockPartials.BLAZES.get(heatLevel); + SuperByteBuffer blazeBuffer = blazeModel.renderOn(te.getBlockState()); + blazeBuffer.rotateCentered(Direction.UP, (float) Math.toRadians(-te.rot + (te.speed * partialTicks))); + blazeBuffer.translate(0, offset, 0); + blazeBuffer.light(0xF000F0) + .renderInto(ms, buffer.getBuffer(RenderType.getSolid())); + } +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java similarity index 86% rename from src/main/java/com/simibubi/create/content/contraptions/processing/HeaterTileEntity.java rename to src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java index 0b813f46e..b62829e01 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/HeaterTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java @@ -1,4 +1,4 @@ -package com.simibubi.create.content.contraptions.processing; +package com.simibubi.create.content.contraptions.processing.burner; import java.util.List; import java.util.Random; @@ -32,7 +32,7 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @Mod.EventBusSubscriber -public class HeaterTileEntity extends SmartTileEntity { +public class BlazeBurnerTileEntity extends SmartTileEntity { private final static int[][] heatParticleColors = { {0x3B141A, 0x47141A, 0x7A3B24, 0x854D26}, @@ -49,7 +49,7 @@ public class HeaterTileEntity extends SmartTileEntity { // Rendering state float rot, speed; - public HeaterTileEntity(TileEntityType tileEntityTypeIn) { + public BlazeBurnerTileEntity(TileEntityType tileEntityTypeIn) { super(tileEntityTypeIn); activeFuel = FuelType.NONE; remainingBurnTime = 0; @@ -165,7 +165,6 @@ public class HeaterTileEntity extends SmartTileEntity { activeFuel = FuelType.values()[compound.getInt("fuelLevel")]; remainingBurnTime = compound.getInt("burnTimeRemaining"); super.read(compound); - updateHeatLevel(); } /** @@ -198,48 +197,48 @@ public class HeaterTileEntity extends SmartTileEntity { return true; } - public HeaterBlock.HeatLevel getHeatLevel() { - return HeaterBlock.getHeaterLevel(getBlockState()); + public BlazeBurnerBlock.HeatLevel getHeatLevel() { + return BlazeBurnerBlock.getHeatLevelOf(getBlockState()); } private void updateHeatLevel() { switch (activeFuel) { case SPECIAL: - HeaterBlock.setBlazeLevel(world, pos, HeaterBlock.HeatLevel.SEETHING); + BlazeBurnerBlock.setBlazeLevel(world, pos, BlazeBurnerBlock.HeatLevel.SEETHING); break; case NORMAL: boolean lowPercent = (double) remainingBurnTime / maxHeatCapacity < 0.1; - HeaterBlock.setBlazeLevel(world, pos, lowPercent ? HeaterBlock.HeatLevel.FADING : HeaterBlock.HeatLevel.KINDLED); + BlazeBurnerBlock.setBlazeLevel(world, pos, lowPercent ? BlazeBurnerBlock.HeatLevel.FADING : BlazeBurnerBlock.HeatLevel.KINDLED); break; case NONE: - HeaterBlock.setBlazeLevel(world, pos, HeaterBlock.HeatLevel.SMOULDERING); + BlazeBurnerBlock.setBlazeLevel(world, pos, BlazeBurnerBlock.HeatLevel.SMOULDERING); } } - private void spawnParticles(HeaterBlock.HeatLevel heatLevel) { + private void spawnParticles(BlazeBurnerBlock.HeatLevel heatLevel) { if (world == null) return; - if (heatLevel == HeaterBlock.HeatLevel.NONE) + if (heatLevel == BlazeBurnerBlock.HeatLevel.NONE) return; Random r = world.getRandom(); - if (heatLevel == HeaterBlock.HeatLevel.SMOULDERING) { + if (heatLevel == BlazeBurnerBlock.HeatLevel.SMOULDERING) { if (r.nextDouble() > 0.25) return; Vec3d color = randomColor(heatLevel); spawnParticle(new CubeParticleData((float) color.x,(float) color.y,(float) color.z, 0.03F, 15), 0.015, 0.1); - } else if (heatLevel == HeaterBlock.HeatLevel.FADING) { + } else if (heatLevel == BlazeBurnerBlock.HeatLevel.FADING) { if (r.nextDouble() > 0.5) return; Vec3d color = randomColor(heatLevel); spawnParticle(new CubeParticleData((float) color.x,(float) color.y,(float) color.z, 0.035F, 18), 0.03, 0.15); - } else if (heatLevel == HeaterBlock.HeatLevel.KINDLED) { + } else if (heatLevel == BlazeBurnerBlock.HeatLevel.KINDLED) { Vec3d color = randomColor(heatLevel); spawnParticle(new CubeParticleData((float) color.x,(float) color.y,(float) color.z, 0.04F, 21), 0.05, 0.2); - }else if (heatLevel == HeaterBlock.HeatLevel.SEETHING) { + }else if (heatLevel == BlazeBurnerBlock.HeatLevel.SEETHING) { for (int i = 0; i < 2; i++) { if (r.nextDouble() > 0.6) return; @@ -262,8 +261,8 @@ public class HeaterTileEntity extends SmartTileEntity { 0.0D); } - private static Vec3d randomColor(HeaterBlock.HeatLevel heatLevel) { - if (heatLevel == HeaterBlock.HeatLevel.NONE) + private static Vec3d randomColor(BlazeBurnerBlock.HeatLevel heatLevel) { + if (heatLevel == BlazeBurnerBlock.HeatLevel.NONE) return new Vec3d(0,0,0); return ColorHelper.getRGB(heatParticleColors[heatLevel.ordinal()-1][(int) (Math.random()*4)]); @@ -278,7 +277,7 @@ public class HeaterTileEntity extends SmartTileEntity { return; TileEntity tile = event.getThrowable().world.getTileEntity(new BlockPos(event.getRayTraceResult().getHitVec())); - if (!(tile instanceof HeaterTileEntity)) { + if (!(tile instanceof BlazeBurnerTileEntity)) { return; } @@ -286,7 +285,7 @@ public class HeaterTileEntity extends SmartTileEntity { event.getThrowable().setMotion(Vec3d.ZERO); event.getThrowable().remove(); - HeaterTileEntity heater = (HeaterTileEntity) tile; + BlazeBurnerTileEntity heater = (BlazeBurnerTileEntity) tile; if (heater.activeFuel != FuelType.SPECIAL) { heater.activeFuel = FuelType.NORMAL; heater.remainingBurnTime = MathHelper.clamp(heater.remainingBurnTime + 80, 0, maxHeatCapacity); diff --git a/src/main/java/com/simibubi/create/content/logistics/InWorldProcessing.java b/src/main/java/com/simibubi/create/content/logistics/InWorldProcessing.java index ccae9be56..c8329e070 100644 --- a/src/main/java/com/simibubi/create/content/logistics/InWorldProcessing.java +++ b/src/main/java/com/simibubi/create/content/logistics/InWorldProcessing.java @@ -1,5 +1,7 @@ package com.simibubi.create.content.logistics; +import static com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.getHeatLevelOf; + import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -7,8 +9,8 @@ import java.util.Optional; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe; -import com.simibubi.create.content.contraptions.processing.HeaterBlock; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.item.ItemHelper; @@ -40,8 +42,6 @@ import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.items.wrapper.RecipeWrapper; -import static com.simibubi.create.content.contraptions.processing.HeaterBlock.getHeaterLevel; - public class InWorldProcessing { public static class SplashingInv extends RecipeWrapper { @@ -63,9 +63,9 @@ public class InWorldProcessing { if (fluidState.getFluid() == Fluids.WATER || fluidState.getFluid() == Fluids.FLOWING_WATER) return Type.SPLASHING; if (blockState.getBlock() == Blocks.FIRE - || (blockState.getBlock() == Blocks.CAMPFIRE && blockState.get(CampfireBlock.LIT)) || getHeaterLevel(blockState) == HeaterBlock.HeatLevel.SMOULDERING) + || (blockState.getBlock() == Blocks.CAMPFIRE && blockState.get(CampfireBlock.LIT)) || getHeatLevelOf(blockState) == BlazeBurnerBlock.HeatLevel.SMOULDERING) return Type.SMOKING; - if (blockState.getBlock() == Blocks.LAVA || getHeaterLevel(blockState).min(HeaterBlock.HeatLevel.FADING)) + if (blockState.getBlock() == Blocks.LAVA || getHeatLevelOf(blockState).isAtLeast(BlazeBurnerBlock.HeatLevel.FADING)) return Type.BLASTING; return null; } diff --git a/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java b/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java index 4216d5c04..bbf81c149 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java @@ -20,7 +20,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.mou import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock; import com.simibubi.create.content.contraptions.components.tracks.ReinforcedRailBlock; import com.simibubi.create.content.contraptions.fluids.FluidPipeBlock; -import com.simibubi.create.content.contraptions.processing.HeaterBlock; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverBlock; import com.simibubi.create.content.palettes.PavedBlock; import com.simibubi.create.foundation.utility.Iterate; @@ -213,7 +213,7 @@ public class BlockStateGen { }); } - public static NonNullBiConsumer, RegistrateBlockstateProvider> blazeHeater(){ + public static NonNullBiConsumer, RegistrateBlockstateProvider> blazeHeater(){ return (c, p) -> ConfiguredModel.builder().modelFile(p.models().getExistingFile(p.modLoc("block/" + c.getName() + "/block"))).build(); } diff --git a/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java b/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java index 17123dd50..30eeb44c0 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java @@ -13,10 +13,12 @@ import net.minecraft.util.math.Vec3i; public class VecHelper { + public static final Vec3d CENTER_OF_ORIGIN = new Vec3d(.5, .5, .5); + public static Vec3d rotate(Vec3d vec, Vec3d rotationVec) { return rotate(vec, rotationVec.x, rotationVec.y, rotationVec.z); } - + public static Vec3d rotate(Vec3d vec, double xRot, double yRot, double zRot) { return rotate(rotate(rotate(vec, xRot, Axis.X), yRot, Axis.Y), zRot, Axis.Z); } @@ -54,6 +56,8 @@ public class VecHelper { } public static Vec3d getCenterOf(Vec3i pos) { + if (pos.equals(Vec3i.NULL_VECTOR)) + return CENTER_OF_ORIGIN; return new Vec3d(pos).add(.5f, .5f, .5f); } diff --git a/src/main/resources/assets/create/models/block/blaze_burner/blaze/fading.json b/src/main/resources/assets/create/models/block/blaze_burner/blaze/fading.json new file mode 100644 index 000000000..d6f517fad --- /dev/null +++ b/src/main/resources/assets/create/models/block/blaze_burner/blaze/fading.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "2": "create:block/blaze_smouldering", + "particle": "create:block/blaze_smouldering" + }, + "elements": [ + { + "name": "Blaze 3", + "from": [5, 6, 5], + "to": [11, 12, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 7, 7]}, + "faces": { + "north": {"uv": [6, 0, 12, 6], "texture": "#2"}, + "east": {"uv": [0, 0, 6, 6], "texture": "#2"}, + "south": {"uv": [0, 0, 6, 6], "texture": "#2"}, + "west": {"uv": [0, 0, 6, 6], "texture": "#2"}, + "up": {"uv": [0, 6, 6, 12], "texture": "#2"}, + "down": {"uv": [6, 6, 12, 12], "texture": "#2"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/blaze_burner/blaze/kindled.json b/src/main/resources/assets/create/models/block/blaze_burner/blaze/kindled.json new file mode 100644 index 000000000..5300221b8 --- /dev/null +++ b/src/main/resources/assets/create/models/block/blaze_burner/blaze/kindled.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "2": "create:block/blaze_kindled", + "particle": "create:block/blaze_kindled" + }, + "elements": [ + { + "name": "Blaze 4", + "from": [4, 6, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 6]}, + "faces": { + "north": {"uv": [8, 0, 16, 8], "texture": "#2"}, + "east": {"uv": [0, 0, 8, 8], "texture": "#2"}, + "south": {"uv": [0, 0, 8, 8], "texture": "#2"}, + "west": {"uv": [0, 0, 8, 8], "texture": "#2"}, + "up": {"uv": [0, 8, 8, 16], "texture": "#2"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#2"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/blaze_burner/blaze/seething.json b/src/main/resources/assets/create/models/block/blaze_burner/blaze/seething.json new file mode 100644 index 000000000..a7ba42fbd --- /dev/null +++ b/src/main/resources/assets/create/models/block/blaze_burner/blaze/seething.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "create:block/blaze_seething" + }, + "elements": [ + { + "name": "Blaze 5", + "from": [4, 6, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 6]}, + "faces": { + "north": {"uv": [8, 0, 16, 8], "texture": "#1"}, + "east": {"uv": [0, 0, 8, 8], "texture": "#1"}, + "south": {"uv": [0, 0, 8, 8], "texture": "#1"}, + "west": {"uv": [0, 0, 8, 8], "texture": "#1"}, + "up": {"uv": [0, 8, 8, 16], "texture": "#1"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#1"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/blaze_burner/blaze/smouldering.json b/src/main/resources/assets/create/models/block/blaze_burner/blaze/smouldering.json new file mode 100644 index 000000000..e831fdbfb --- /dev/null +++ b/src/main/resources/assets/create/models/block/blaze_burner/blaze/smouldering.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "2": "create:block/blaze_smouldering", + "particle": "create:block/blaze_smouldering" + }, + "elements": [ + { + "name": "Blaze", + "from": [6, 6, 6], + "to": [10, 10, 10], + "faces": { + "north": {"uv": [0, 12, 4, 16], "texture": "#2"}, + "east": {"uv": [8, 12, 4, 16], "texture": "#2"}, + "south": {"uv": [4, 12, 8, 16], "texture": "#2"}, + "west": {"uv": [4, 12, 8, 16], "texture": "#2"}, + "up": {"uv": [8, 12, 12, 16], "texture": "#2"}, + "down": {"uv": [12, 12, 16, 16], "texture": "#2"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/blaze_heater/block.json b/src/main/resources/assets/create/models/block/blaze_burner/block.json similarity index 58% rename from src/main/resources/assets/create/models/block/blaze_heater/block.json rename to src/main/resources/assets/create/models/block/blaze_burner/block.json index 135de425a..c42a49e1e 100644 --- a/src/main/resources/assets/create/models/block/blaze_heater/block.json +++ b/src/main/resources/assets/create/models/block/blaze_burner/block.json @@ -2,8 +2,10 @@ "credit": "Made with Blockbench", "parent": "block/block", "textures": { - "0": "create:block/blaze_heater_brazier", - "particle": "create:block/blaze_heater_brazier" + "1": "create:block/blaze_burner_inner", + "2": "create:block/blaze_burner_side", + "3": "create:block/dark_metal_block", + "particle": "create:block/dark_metal_block" }, "elements": [ { @@ -11,10 +13,10 @@ "from": [2, 5, 2], "to": [14, 14, 14], "faces": { - "north": {"uv": [1, 1, 7, 5.5], "texture": "#0"}, - "east": {"uv": [1, 1, 7, 5.5], "texture": "#0"}, - "south": {"uv": [1, 1, 7, 5.5], "texture": "#0"}, - "west": {"uv": [1, 1, 7, 5.5], "texture": "#0"} + "north": {"uv": [0, 6, 12, 15], "texture": "#2"}, + "east": {"uv": [0, 6, 12, 15], "texture": "#2"}, + "south": {"uv": [0, 6, 12, 15], "texture": "#2"}, + "west": {"uv": [0, 6, 12, 15], "texture": "#2"} } }, { @@ -22,7 +24,7 @@ "from": [2, 5, 14], "to": [14, 14, 15], "faces": { - "north": {"uv": [1, 1, 7, 5.5], "texture": "#0"} + "north": {"uv": [12, 6, 0, 15], "texture": "#2"} } }, { @@ -30,7 +32,7 @@ "from": [1, 5, 2], "to": [2, 14, 14], "faces": { - "east": {"uv": [1, 1, 7, 5.5], "texture": "#0"} + "east": {"uv": [12, 6, 0, 15], "texture": "#2"} } }, { @@ -38,7 +40,7 @@ "from": [2, 5, 1], "to": [14, 14, 2], "faces": { - "south": {"uv": [1, 1, 7, 5.5], "texture": "#0"} + "south": {"uv": [12, 6, 0, 15], "texture": "#2"} } }, { @@ -46,7 +48,7 @@ "from": [14, 5, 2], "to": [15, 14, 14], "faces": { - "west": {"uv": [1, 1, 7, 5.5], "texture": "#0"} + "west": {"uv": [12, 6, 0, 15], "texture": "#2"} } }, { @@ -55,7 +57,7 @@ "to": [14, 17, 14], "rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]}, "faces": { - "south": {"uv": [8, 8, 14, 9.5], "texture": "#0"} + "south": {"uv": [0, 3, 12, 6], "texture": "#2"} } }, { @@ -64,7 +66,7 @@ "to": [3, 17, 14], "rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]}, "faces": { - "west": {"uv": [8, 8, 14, 9.5], "texture": "#0"} + "west": {"uv": [0, 3, 12, 6], "texture": "#2"} } }, { @@ -73,7 +75,7 @@ "to": [14, 17, 3], "rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]}, "faces": { - "north": {"uv": [8, 8, 14, 9.5], "texture": "#0"} + "north": {"uv": [0, 3, 12, 6], "texture": "#2"} } }, { @@ -82,7 +84,7 @@ "to": [14, 17, 14], "rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]}, "faces": { - "east": {"uv": [8, 8, 14, 9.5], "texture": "#0"} + "east": {"uv": [0, 3, 12, 6], "texture": "#2"} } }, { @@ -91,34 +93,34 @@ "to": [14, 17, 15], "rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]}, "faces": { - "north": {"uv": [8, 8, 14, 9.5], "texture": "#0"} + "north": {"uv": [12, 3, 0, 6], "texture": "#2"} } }, { - "name": "Brazier Spikes 2b", + "name": "Brazier Spikes 1b", "from": [1, 14, 2], "to": [2, 17, 14], "rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]}, "faces": { - "east": {"uv": [8, 8, 14, 9.5], "texture": "#0"} + "east": {"uv": [12, 3, 0, 6], "texture": "#2"} } }, { - "name": "Brazier Spikes 3b", + "name": "Brazier Spikes 1b", "from": [2, 14, 1], "to": [14, 17, 2], "rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]}, "faces": { - "south": {"uv": [8, 8, 14, 9.5], "texture": "#0"} + "south": {"uv": [12, 3, 0, 6], "texture": "#2"} } }, { - "name": "Brazier Spikes 4b", + "name": "Brazier Spikes 1b", "from": [14, 14, 2], "to": [15, 17, 14], "rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]}, "faces": { - "west": {"uv": [8, 8, 14, 9.5], "texture": "#0"} + "west": {"uv": [12, 3, 0, 6], "texture": "#2"} } }, { @@ -127,12 +129,12 @@ "to": [16, 4, 16], "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 8, 0.5]}, "faces": { - "north": {"uv": [0, 6, 8, 8], "texture": "#0", "cullface": "north"}, - "east": {"uv": [0, 6, 8, 8], "texture": "#0", "cullface": "east"}, - "south": {"uv": [0, 6, 8, 8], "texture": "#0", "cullface": "south"}, - "west": {"uv": [0, 6, 8, 8], "texture": "#0", "cullface": "west"}, - "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, - "down": {"uv": [0, 8, 8, 16], "texture": "#0", "cullface": "down"} + "north": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"}, + "east": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"}, + "south": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"}, + "west": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#3", "cullface": "down"} } }, { @@ -141,11 +143,11 @@ "to": [14, 5, 14], "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 8, 2.5]}, "faces": { - "north": {"uv": [1, 5.5, 7, 6], "texture": "#0"}, - "east": {"uv": [1, 5.5, 7, 6], "texture": "#0"}, - "south": {"uv": [1, 5.5, 7, 6], "texture": "#0"}, - "west": {"uv": [1, 5.5, 7, 6], "texture": "#0"}, - "up": {"uv": [9, 1, 15, 7], "texture": "#0"} + "north": {"uv": [0, 15, 12, 16], "texture": "#2"}, + "east": {"uv": [0, 15, 12, 16], "texture": "#2"}, + "south": {"uv": [0, 15, 12, 16], "texture": "#2"}, + "west": {"uv": [0, 15, 12, 16], "texture": "#2"}, + "up": {"uv": [2, 2, 14, 14], "texture": "#1"} } } ], @@ -164,11 +166,6 @@ "origin": [0.5, 0.5, 0.5], "children": [5, 6, 7, 8, 9, 10, 11, 12] }, 13, 14] - }, - { - "name": "Blazes", - "origin": [8, 8, 8], - "children": [] } ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/blaze_burner/block_with_blaze.json b/src/main/resources/assets/create/models/block/blaze_burner/block_with_blaze.json new file mode 100644 index 000000000..8e20426fb --- /dev/null +++ b/src/main/resources/assets/create/models/block/blaze_burner/block_with_blaze.json @@ -0,0 +1,191 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "create:block/blaze_burner_inner", + "2": "create:block/blaze_burner_side", + "3": "create:block/dark_metal_block", + "particle": "create:block/dark_metal_block", + "2_2": "create:block/blaze_kindled" + }, + "elements": [ + { + "name": "Brazier Sides 1", + "from": [2, 5, 2], + "to": [14, 14, 14], + "faces": { + "north": {"uv": [0, 6, 12, 15], "texture": "#2"}, + "east": {"uv": [0, 6, 12, 15], "texture": "#2"}, + "south": {"uv": [0, 6, 12, 15], "texture": "#2"}, + "west": {"uv": [0, 6, 12, 15], "texture": "#2"} + } + }, + { + "name": "Brazier Sides 2", + "from": [2, 5, 14], + "to": [14, 14, 15], + "faces": { + "north": {"uv": [12, 6, 0, 15], "texture": "#2"} + } + }, + { + "name": "Brazier Sides 3", + "from": [1, 5, 2], + "to": [2, 14, 14], + "faces": { + "east": {"uv": [12, 6, 0, 15], "texture": "#2"} + } + }, + { + "name": "Brazier Sides 4", + "from": [2, 5, 1], + "to": [14, 14, 2], + "faces": { + "south": {"uv": [12, 6, 0, 15], "texture": "#2"} + } + }, + { + "name": "Brazier Sides 5", + "from": [14, 5, 2], + "to": [15, 14, 14], + "faces": { + "west": {"uv": [12, 6, 0, 15], "texture": "#2"} + } + }, + { + "name": "Brazier Spikes 1", + "from": [2, 14, 13], + "to": [14, 17, 14], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]}, + "faces": { + "south": {"uv": [0, 3, 12, 6], "texture": "#2"} + } + }, + { + "name": "Brazier Spikes 2", + "from": [2, 14, 2], + "to": [3, 17, 14], + "rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]}, + "faces": { + "west": {"uv": [0, 3, 12, 6], "texture": "#2"} + } + }, + { + "name": "Brazier Spikes 3", + "from": [2, 14, 2], + "to": [14, 17, 3], + "rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]}, + "faces": { + "north": {"uv": [0, 3, 12, 6], "texture": "#2"} + } + }, + { + "name": "Brazier Spikes 4", + "from": [13, 14, 2], + "to": [14, 17, 14], + "rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]}, + "faces": { + "east": {"uv": [0, 3, 12, 6], "texture": "#2"} + } + }, + { + "name": "Brazier Spikes 1b", + "from": [2, 14, 14], + "to": [14, 17, 15], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]}, + "faces": { + "north": {"uv": [12, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "Brazier Spikes 1b", + "from": [1, 14, 2], + "to": [2, 17, 14], + "rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]}, + "faces": { + "east": {"uv": [12, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "Brazier Spikes 1b", + "from": [2, 14, 1], + "to": [14, 17, 2], + "rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]}, + "faces": { + "south": {"uv": [12, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "Brazier Spikes 1b", + "from": [14, 14, 2], + "to": [15, 17, 14], + "rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]}, + "faces": { + "west": {"uv": [12, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "Base", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 8, 0.5]}, + "faces": { + "north": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2", "cullface": "west"}, + "east": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2", "cullface": "west"}, + "south": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2", "cullface": "west"}, + "west": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#3", "cullface": "down"} + } + }, + { + "name": "Brazier bottom", + "from": [2, 4, 2], + "to": [14, 5, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 8, 2.5]}, + "faces": { + "north": {"uv": [0, 15, 12, 16], "texture": "#2"}, + "east": {"uv": [0, 15, 12, 16], "texture": "#2"}, + "south": {"uv": [0, 15, 12, 16], "texture": "#2"}, + "west": {"uv": [0, 15, 12, 16], "texture": "#2"}, + "up": {"uv": [2, 2, 14, 14], "texture": "#1"} + } + }, + { + "name": "Blaze 4", + "from": [4, 6, 4], + "to": [12, 14, 12], + "rotation": {"angle": -22.5, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [8, 0, 16, 8], "texture": "#2_2"}, + "east": {"uv": [0, 0, 8, 8], "texture": "#2_2"}, + "south": {"uv": [0, 0, 8, 8], "texture": "#2_2"}, + "west": {"uv": [0, 0, 8, 8], "texture": "#2_2"}, + "up": {"uv": [0, 8, 8, 16], "texture": "#2_2"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#2_2"} + } + } + ], + "groups": [ + { + "name": "Brazier", + "origin": [0.5, 0.5, 0.5], + "children": [ + { + "name": "Brazier Sides", + "origin": [0.5, 0.5, 0.5], + "children": [0, 1, 2, 3, 4] + }, + { + "name": "Brazier Spikes", + "origin": [0.5, 0.5, 0.5], + "children": [5, 6, 7, 8, 9, 10, 11, 12] + }, 13, 14] + }, + { + "name": "kindled", + "origin": [8, 8, 8], + "children": [15] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/blaze_heater/blaze/four.json b/src/main/resources/assets/create/models/block/blaze_heater/blaze/four.json deleted file mode 100644 index cc0f8c54f..000000000 --- a/src/main/resources/assets/create/models/block/blaze_heater/blaze/four.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "1": "create:block/tamed_blaze" - }, - "elements": [ - { - "name": "Blaze 4", - "from": [4, 6, 4], - "to": [12, 14, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 6]}, - "faces": { - "north": {"uv": [12, 0, 16, 4], "texture": "#1"}, - "east": {"uv": [8, 0, 12, 4], "texture": "#1"}, - "south": {"uv": [8, 0, 12, 4], "texture": "#1"}, - "west": {"uv": [8, 0, 12, 4], "texture": "#1"}, - "up": {"uv": [8, 4, 12, 8], "texture": "#1"}, - "down": {"uv": [12, 4, 16, 8], "texture": "#1"} - } - } - ], - "groups": [ - { - "name": "Blazes", - "origin": [8, 8, 8], - "children": [15, 16, 17, 18] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/blaze_heater/blaze/one.json b/src/main/resources/assets/create/models/block/blaze_heater/blaze/one.json deleted file mode 100644 index b0b318ff6..000000000 --- a/src/main/resources/assets/create/models/block/blaze_heater/blaze/one.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "1": "create:block/tamed_blaze" - }, - "elements": [ - { - "name": "Blaze 1", - "from": [6, 6, 6], - "to": [10, 10, 10], - "faces": { - "north": {"uv": [8, 8, 10, 10], "texture": "#1"}, - "east": {"uv": [6, 8, 8, 10], "texture": "#1"}, - "south": {"uv": [6, 8, 8, 10], "texture": "#1"}, - "west": {"uv": [6, 8, 8, 10], "texture": "#1"}, - "up": {"uv": [6, 10, 8, 12], "texture": "#1"}, - "down": {"uv": [8, 10, 10, 12], "texture": "#1"} - } - } - ], - "groups": [ - { - "name": "Blazes", - "origin": [8, 8, 8], - "children": [15, 16, 17, 18] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/blaze_heater/blaze/three.json b/src/main/resources/assets/create/models/block/blaze_heater/blaze/three.json deleted file mode 100644 index a9d78104f..000000000 --- a/src/main/resources/assets/create/models/block/blaze_heater/blaze/three.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "1": "create:block/tamed_blaze" - }, - "elements": [ - { - "name": "Blaze 3", - "from": [4, 6, 4], - "to": [12, 14, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 6]}, - "faces": { - "north": {"uv": [4, 0, 8, 4], "texture": "#1"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#1"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#1"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#1"}, - "up": {"uv": [0, 4, 4, 8], "texture": "#1"}, - "down": {"uv": [4, 4, 8, 8], "texture": "#1"} - } - } - ], - "groups": [ - { - "name": "Blazes", - "origin": [8, 8, 8], - "children": [15, 16, 17, 18] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/blaze_heater/blaze/two.json b/src/main/resources/assets/create/models/block/blaze_heater/blaze/two.json deleted file mode 100644 index ab5e5aea4..000000000 --- a/src/main/resources/assets/create/models/block/blaze_heater/blaze/two.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "1": "create:block/tamed_blaze" - }, - "elements": [ - { - "name": "Blaze 2", - "from": [5, 6, 5], - "to": [11, 12, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [7, 7, 7]}, - "faces": { - "north": {"uv": [3, 8, 6, 11], "texture": "#1"}, - "east": {"uv": [0, 8, 3, 11], "texture": "#1"}, - "south": {"uv": [0, 8, 3, 11], "texture": "#1"}, - "west": {"uv": [0, 8, 3, 11], "texture": "#1"}, - "up": {"uv": [0, 11, 3, 14], "texture": "#1"}, - "down": {"uv": [3, 11, 6, 14], "texture": "#1"} - } - } - ], - "groups": [ - { - "name": "Blazes", - "origin": [8, 8, 8], - "children": [15, 16, 17, 18] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/blaze_burner_inner.png b/src/main/resources/assets/create/textures/block/blaze_burner_inner.png new file mode 100644 index 0000000000000000000000000000000000000000..ff33417f2e27aea4061276e06dbf0dd17ffbf64a GIT binary patch literal 567 zcmV-70?7S|P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0nAB6K~y+TWm1W5 z+b|53WJ~fTFK~)>UGfzj^8cT)Pw22AahmwhVM%*FmKE3oLC`eGN0Fqb(}^tbKCH%y zBw^5>ovSA~91cZUX|3}--|cqAUxW~3me)$bjxkQtR4L`0rEhQFk!OsCrj!XGthLZ{ zO+sMDxRFSifn;VuZRqG+u%>G-(CH$&yTgXxbln<;4(EijETI7@#J(z@YxS~kzV4g7 zv>9e3G|k*G7gctNKAlG zBC@n7KSY6ucTZ6fGu*}s;2Vu%-#@#-CFzH;Sjert!1LqR8B=+zFL{0ahRtg|QY2Uh z-YH3aj6)z-I~ikyL}@{j890#ScsyF`yq^f?3Fj>3GB46aaBhWCf#5ZBBQeel^R?pm z?zbB@zm5wHV9<~C1DMY^j;gMQzT3|G|1Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0h>ugK~y+Tom0zB z!ax+ggQd`-l(z|DLRfwZ3zEn~X_OXPV4QO;4UoFPlQj2r=FIfY z9YH6e-EPZlHb?WhO^d}B#e)1v&@_z-g*?UM@&5@-r!$&N#_UH5bi2>;;qgfZ;Q=e^ zC(m1wt|z&$^Ve&iV_>yf61dgs4b48LWGi7lfngYw$yih_Us0uUO|@E`eRLXReBeYO zoP%bwDF=f=TK6 z^KYh0WYt%mcR1|$N&HU07*qo IM6N<$f?IdlcK`qY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/blaze_kindled.png b/src/main/resources/assets/create/textures/block/blaze_kindled.png new file mode 100644 index 0000000000000000000000000000000000000000..1626fc3397c7677e7898d236cd1145792294e942 GIT binary patch literal 530 zcmV+t0`2{YP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0jEhsK~y+TO;SNG z15ps3c`IommG&gkgAGljK}Z@GL3)uoyAx;sfW$u_apUGh-24E9sJL!aT2T$@;($b= zDT;LW`Cex|CNI;OH{Unko7uAdoT1nhS^GNuOA%Ys6t+T&O)9$aZQ){h#r#}un;T); z!=&OluIzGagUWX_GM@=ft^l^Nlgm)rjnu5vjnBm;8tOIi`WEM>_5Pvpa^o!OY$EPG zPXd=6zxV2I!6x(SScLNf?K*6LM7V*!4tT(cg4sR|aRg32#Ya_oIOkXoC6%EeZZtV? zxpqt_z0~-%MvqC}J0SAeNj)0q_mlBLL)`4vsDX_3(gkT<6OM`}RB-Ebb}91|qDC=# zRmn3RDbUvAur6mz1q-o;MH8(pR3rlwvk3udyRocKHVAZ^3NJ!&xENZwC(0 zZ3P%w0wi8icx4cSa~5PcNYgH!AvhSIf`+ETpCoE;KPQ5JA`-xaufnRYv9Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0j)_yK~y+TWm3CJ z15ps2*;PcN5YZHhxRnwyL=dzwwn=Sgp`YL%_y-Dpft|0)P6Z3Wh>b-+iQuD2Vn9g< zL=qDT$zIRwBv--1?l5!jIdkUTT~1w_)d*SKl*yLJ|HAkE#5i&E!gxbn()QUyYB`>7 z5LSTyjSg~#>9|eB$7n46RPD%4FOP;@+sIm>7t_u?P0gd=^F0$!^1~&fu9$UqcxExN zp8@Y}Yq9>C;gb&Y=1!Ma&U3^I8j)zw;{C-;%yyHdHJBrDc_B&JE3Oo&e}F?_kyVQP zU1PsP<(zEQE7YiR^@HwCnaJhQNujn|5>?i2nN|~f5KDXQf~@h0$93ltj`6v#->?I! zC;=;O)1d}HKy zQYagxp3<5C;uG;4FXUj1l`)Z}OY-OHF?1x=sI2GEpu+;+R%A9HUGmidu*ZGnW%$+@bD?nn0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0p3YOK~y+TZIMe$ zTTu|l|L1z|rN&^%3#=|85(I@}R~EXdWKk%70b9CIT)PllOTU2&H?Ga5pFr%wh0u*9 zi{ipQ2%?qxz?y1M)81TjdS-GaIT3$wnK^UM{Leg;K3vr3o5X|Me726E(FETcc&luL zQNNdqI`eW67u&}i5T7h2ra9IYs+5~;ITk%Fp2ZyYYvi6Vj@ab*#33Z z-NNJ0M>6p3vBSYZP!M)J=0(x!UJ_Q{u;P5O0}I<)PWKu z*{w?O__e5Pj|Mv1p-Q4uB7<~MYcu2A#Oa>~ZZ9-O3TE$>2#Jj1GueSuz%gRudqp7itO)h~w#&jMW5V#HNtL?b*MOYr4Xx(EMM6MIK>#LWbnIzU6$p=I-U?9TXIrkdO>i z4gohK8TSKOoCO|{#S9F5he4R}c>anMpkSA$i(`nyW!V!O1)B^cj(#+6ie#SQpjp`R zfaTfgo6e6IW*za8@?YW9zHy_Pw!xIf^8b&@`S+{}a_=jOoF9B~U z%M)ERdn+Q$A1TbP3etX|#;f||%8O~+o~N8URC;4_Rbi2TO3B{qR*KW}SFiniLVtc8 n$6ohuy~P}V`Fl3X9=IW&HpSxi67`1PAV+(;`njxgN@xNAJT+-L literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/tamed_blaze.png b/src/main/resources/assets/create/textures/block/tamed_blaze.png deleted file mode 100644 index ba3918be145e2182eb34d9d6bd83ff70a464cd91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1538 zcmV+d2L1VoP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00nAEL_t(o!|j$`Y!p=#$A5Qr zyQSOKO3OxQnoe!8DNx#^Vu_(^6-bGanD9b)K*jjvgAXJoYC_PM_@I*TK%!BCCI*ZT zCd3CmBnT-D62Mei+DgARol;6=Eg#)>3)7vwKFr=bGhKNS!;9zT-gEAq`Ty_#oO5S{ zyuU?K7$;y4x(LJ`bOqNXWHVVPY~z&+dx^(_%UwwVv92U}md$2qTLwb*H%RJC4cPm^ z9-2Pd0;3kxneOg~5R`p~Sv~OwX4C`RbF7ywtxZ^IFr#klVFVA4NkrxgWdArcz1D!! zc?|%+A8K#FPcWdysDcgJdQTynI&@s_2vPD( z3vGwGvC?q;ofc+?yAeM)h|kvvsX#49Vuplf*s)mxFysj8L*9Jb(~|yicfNhRr zA!4RiDoq_Ov71B474_cyxot4fkGMHR7~tT~km`Zb=A1N+B-JATLCs4rb{0AvG`XV) zI!{Z?5U>jPU%aK|MHI_C@8e7od@tD_Y{yRV>EjI-@CDbU3N};+jM_|YV{V3gd39&cqCPpbA)lTaLtx z!cH>?7>~IzGm0y@uSiwybrB+cx10Z#d(f4qg5Uh4)am`VTvsw*g}~<|N6N?!TS!Mj zt(gyAXX=9U11dshNMOxnkx~YVP=T9K?@sWmpp}T37)HHYfZ6Z{q$82(bAdWgDNrO7 z5jC2{2JskdsBnp#yCnm4pi-bnC?Z+`MlHnP5e(6u0t^Hh0OJFJz&(m9KVxLSn=wS|LbJOKMj} z0GPV7pnT!?0lgAW0`Axg9Jpff-liJT(~<*MEVx3ze|<$2QxyvU{C;C5?~LN)u4m=C>N4K_u9qDz zx{|M}E(2iM$7hh%ZWu`-HXY`#y&HM;z#zp-7MQzV5O|R_7fG z9avwiK)5Ut#*z8;cX2HDVjnSp~TN24zUu@wEC$_^% z-(Ta1d!4=c)=5-q*4LD4LJD-T%=(0P?`i+)Z2tOU^P0D~6@NP>Y@38_lboE@DOg`q zu3Jl4c|;O6(v(Lew{4*TGubFJnfbi+JOx-8b5E`Qiki2=+@(P7RSFWe&9|3_18@0| ze`oH;$bad~UD9dr=RQ_h!hc}~0$BYrI1*+q=52^omS}L*rjM4uND}Pdf<>4sN(HQx o(4FxJO-LzuoM!Nt?SBG)1L0owHDjIeo&W#<07*qoM6N<$f{Fdb_5c6?