Cleanup crew
- More refactors and enhancements to the blaze burner
|
@ -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
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "create:block/blaze_burner/block"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "create:block/blaze_heater/block"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "フィルター",
|
||||
|
|
|
@ -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": "필터 틀",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "Фильтр",
|
||||
|
|
|
@ -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": "过滤器",
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "create:block/blaze_burner/block_with_blaze"
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"parent": "create:block/blaze_heater/block"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "create:block/blaze_burner/block"
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "create:blaze_heater"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:blaze_heater",
|
||||
"create:blaze_burner",
|
||||
"minecraft:magma_block",
|
||||
"minecraft:campfire",
|
||||
"minecraft:lava",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:blaze_heater",
|
||||
"create:blaze_burner",
|
||||
"#minecraft:fences",
|
||||
"minecraft:iron_bars"
|
||||
]
|
||||
|
|
|
@ -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<Direction, AllBlockPartials> PIPE_RIMS = map();
|
||||
public static final Map<HeatLevel, AllBlockPartials> 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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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<HeaterBlock> HEATER = REGISTRATE.block("blaze_heater", HeaterBlock::new)
|
||||
public static final BlockEntry<BlazeBurnerBlock> 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.<BlazeBurnerBlockItem>customItemModel("blaze_burner", "block_with_blaze"))
|
||||
.build()
|
||||
.register();
|
||||
|
||||
|
|
|
@ -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.<VerticalGearboxItem>customItemModel("gearbox", "item_vertical"))
|
||||
.register();
|
||||
|
||||
public static final ItemEntry<BlazeBurnerBlockItem> EMPTY_BLAZE_BURNER =
|
||||
REGISTRATE.item("empty_blaze_burner", BlazeBurnerBlockItem::empty)
|
||||
.model(AssetLookup.<BlazeBurnerBlockItem>customItemModel("blaze_burner", "block"))
|
||||
.register();
|
||||
|
||||
public static final ItemEntry<SuperGlueItem> SUPER_GLUE = REGISTRATE.item("super_glue", SuperGlueItem::new)
|
||||
.register();
|
||||
|
|
|
@ -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<BasinTileEntity> BASIN =
|
||||
register("basin", BasinTileEntity::new, AllBlocks.BASIN);
|
||||
public static final TileEntityEntry<HeaterTileEntity> HEATER =
|
||||
register("blaze_heater", HeaterTileEntity::new, AllBlocks.HEATER);
|
||||
public static final TileEntityEntry<BlazeBurnerTileEntity> HEATER =
|
||||
register("blaze_heater", BlazeBurnerTileEntity::new, AllBlocks.BLAZE_BURNER);
|
||||
public static final TileEntityEntry<MechanicalCrafterTileEntity> MECHANICAL_CRAFTER =
|
||||
register("mechanical_crafter", MechanicalCrafterTileEntity::new, AllBlocks.MECHANICAL_CRAFTER);
|
||||
public static final TileEntityEntry<SequencedGearshiftTileEntity> 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);
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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<MixingRecipe> {
|
||||
|
||||
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()),
|
||||
|
|
|
@ -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<Integer, AllBlockPartials> 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)
|
|
@ -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 {
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<HeaterTileEntity> {
|
||||
|
||||
//public static IProperty<Integer> BLAZE_LEVEL = IntegerProperty.create("blaze_level", 0, 4);
|
||||
public static IProperty<HeatLevel> 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<Block, BlockState> 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<HeaterTileEntity> 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();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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<WeightedSpawnerEntity> 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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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<HeaterTileEntity> {
|
||||
private static final HashMap<HeaterBlock.HeatLevel, AllBlockPartials> 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()));
|
||||
}
|
||||
}
|
|
@ -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<BlazeBurnerTileEntity> {
|
||||
|
||||
public static IProperty<HeatLevel> 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<Block, BlockState> 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<ItemStack> 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<BlazeBurnerTileEntity> 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();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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<Block, Item> 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<ItemStack> 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<WeightedSpawnerEntity> 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;
|
||||
}
|
||||
|
||||
}
|
|
@ -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<BlazeBurnerTileEntity> {
|
||||
|
||||
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()));
|
||||
}
|
||||
}
|
|
@ -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<? extends HeaterTileEntity> tileEntityTypeIn) {
|
||||
public BlazeBurnerTileEntity(TileEntityType<? extends BlazeBurnerTileEntity> 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);
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<DataGenContext<Block, HeaterBlock>, RegistrateBlockstateProvider> blazeHeater(){
|
||||
public static NonNullBiConsumer<DataGenContext<Block, BlazeBurnerBlock>, RegistrateBlockstateProvider> blazeHeater(){
|
||||
return (c, p) -> ConfiguredModel.builder().modelFile(p.models().getExistingFile(p.modLoc("block/" + c.getName() + "/block"))).build();
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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]
|
||||
}
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 567 B |
After Width: | Height: | Size: 518 B |
After Width: | Height: | Size: 530 B |
After Width: | Height: | Size: 536 B |
After Width: | Height: | Size: 585 B |
After Width: | Height: | Size: 305 B |
Before Width: | Height: | Size: 1.5 KiB |