Merge remote-tracking branch 'upstream/mc1.16/creative-cake' into

mc1.16/dev

Conflicts:
	src/generated/resources/.cache/cache
	src/generated/resources/assets/create/lang/unfinished/ja_jp.json
	src/generated/resources/assets/create/lang/unfinished/ru_ru.json
This commit is contained in:
PepperBell 2021-07-18 19:47:39 -07:00
commit d5e659dad2
27 changed files with 358 additions and 144 deletions

View file

@ -425,21 +425,21 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
e1d3c02695cbd2ee7bbede97f72941835634a3a5 assets/create/lang/en_ud.json
1c0f01963b426cc119425e5201ec2415e3236383 assets/create/lang/en_us.json
13e9636b1b78008efdf354fe8535f2f19fa5d639 assets/create/lang/unfinished/de_de.json
9f9cdf45f255ac09090f9bc2d21419979c5c585c assets/create/lang/unfinished/es_es.json
d45414b7f28ac2cc821021d3e0b010a8b9904e6b assets/create/lang/unfinished/es_mx.json
ffcb0ea206af4555e8f6e5d391766ed721a6a637 assets/create/lang/unfinished/fr_fr.json
e6c7bc95ef9f798c00ff8bca6c3a2f7db1bdea97 assets/create/lang/unfinished/it_it.json
ad7e007cc707e01459fe580aa2818c608aa36ec1 assets/create/lang/unfinished/ja_jp.json
4678fe95f324507c537e5035ec976baa8208a371 assets/create/lang/unfinished/ko_kr.json
2b219b17dd8f21c444a100a88813a918416f42e3 assets/create/lang/unfinished/nl_nl.json
cb27026452c7117c271c80d792a589aa7f6b624f assets/create/lang/unfinished/pl_pl.json
03662aadb7d569baafcaf4cd12eb9cd50dbcb8b4 assets/create/lang/unfinished/pt_br.json
f40b3d27e81445b5cfdbca0ecb0bb84a84e55951 assets/create/lang/unfinished/ru_ru.json
f43c968e694489ab3c9419b9522b1f2543551bdc assets/create/lang/unfinished/zh_cn.json
521428d50af44282bae3e0fa50c150fe6a7e9c1a assets/create/lang/unfinished/zh_tw.json
58e72b5fe2423b661e4892a817e08985c3944318 assets/create/lang/en_ud.json
8c90f6d0aa769179f04fc60661eae4e0dfe94b6a assets/create/lang/en_us.json
20fa2ba09ce9795d647ad7fbb396b9be84ced647 assets/create/lang/unfinished/de_de.json
83079afe226e306ea0c144afdb62cd54385ade16 assets/create/lang/unfinished/es_es.json
1345b3b77de398483064dc7c5eee8f1101975a28 assets/create/lang/unfinished/es_mx.json
c051da9b2e862118c35bab440f0f304e888af85d assets/create/lang/unfinished/fr_fr.json
49722cadb7009efb4625498f33fe0d26015a7d02 assets/create/lang/unfinished/it_it.json
4ff92f6333ec6a831a30a1c0e01f6cb40035b531 assets/create/lang/unfinished/ja_jp.json
eeadeb375d666a118a106ff413b5b3befefaaae5 assets/create/lang/unfinished/ko_kr.json
74188a61256009d9e1530d887d1cb5e98290e778 assets/create/lang/unfinished/nl_nl.json
7f9feb8db7cc5f42050e5f927ea764e2940c9a7d assets/create/lang/unfinished/pl_pl.json
984d338f8b86cc5dfa5909882d3a0182fcd172ad assets/create/lang/unfinished/pt_br.json
0b42660049fbf141e9cc9501454dfdf7a3e71816 assets/create/lang/unfinished/ru_ru.json
cdffe3e7cda940dc47e3f027c79dcfd8c25ecd90 assets/create/lang/unfinished/zh_cn.json
836deffb36e015e5588ee127df69d7cd4a43371b assets/create/lang/unfinished/zh_tw.json
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
@ -1316,6 +1316,7 @@ f56bf22324faf8958eaef4d94b958f1108d52e5a assets/create/models/item/copper_tiles.
5583368909c319acfcf0f7a419bedf23272fe613 assets/create/models/item/copper_valve_handle.json
4e253e7c0626dfd76e2d39786ce1a34e0baaa62d assets/create/models/item/crafter_slot_cover.json
1f947dafff30da701b7675f5b026ccab3129b079 assets/create/models/item/crafting_blueprint.json
6fa0ffd887f51034d7ac923b1cabb6ab44d33fe9 assets/create/models/item/creative_cake.json
7b333dea353afaa27b182aedc647c9e9e34e92ef assets/create/models/item/creative_crate.json
f7d06c52c3ca8c22ad67f5741471f06ac22e7fcb assets/create/models/item/creative_fluid_tank.json
5b39403f6c81f05e566b621b62e267267de47c41 assets/create/models/item/creative_motor.json
@ -3754,7 +3755,7 @@ eac71740fb12bdb38b5dfaa2268613d7ba82b809 data/create/tags/blocks/windmill_sails.
081f5aa35602fc27af2ca01ea9f2fd5e7eb284dc data/create/tags/items/create_ingots.json
94c62bf22678ef55b2b8a5398a7960e5b00682dc data/create/tags/items/crushed_ores.json
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json
c7efc23c08d5e3602c84ff43dac18f72b1cfced3 data/create/tags/items/upright_on_belt.json
94826d9ceac981342c753460b7f7ea9d23dd13a0 data/create/tags/items/upright_on_belt.json
50936b211d94167a35ec78c89954082a336b6269 data/create/tags/items/valve_handles.json
16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/blocks/glass/colorless.json
81d3eb40b048160fcc2d6bb7ff12b49276297efd data/forge/tags/blocks/glass_panes.json

View file

@ -460,6 +460,7 @@
"item.create.copper_sheet": "\u0287\u01DD\u01DD\u0265S \u0279\u01DDddo\u0186",
"item.create.crafter_slot_cover": "\u0279\u01DD\u028Co\u0186 \u0287o\u05DFS \u0279\u01DD\u0287\u025F\u0250\u0279\u0186",
"item.create.crafting_blueprint": "\u0287u\u0131\u0279d\u01DDn\u05DF\u15FA bu\u0131\u0287\u025F\u0250\u0279\u0186",
"item.create.creative_cake": "\u01DD\u029E\u0250\u0186 \u01DD\u028C\u0131\u0287\u0250\u01DD\u0279\u0186",
"item.create.crushed_aluminum_ore": "\u01DD\u0279O \u026Fnu\u0131\u026Fn\u05DF\u2C6F p\u01DD\u0265sn\u0279\u0186",
"item.create.crushed_brass": "ss\u0250\u0279\u15FA p\u01DD\u0265sn\u0279\u0186",
"item.create.crushed_copper_ore": "\u01DD\u0279O \u0279\u01DDddo\u0186 p\u01DD\u0265sn\u0279\u0186",

View file

@ -467,6 +467,7 @@
"item.create.copper_sheet": "Copper Sheet",
"item.create.crafter_slot_cover": "Crafter Slot Cover",
"item.create.crafting_blueprint": "Crafting Blueprint",
"item.create.creative_cake": "Creative Cake",
"item.create.crushed_aluminum_ore": "Crushed Aluminum Ore",
"item.create.crushed_brass": "Crushed Brass",
"item.create.crushed_copper_ore": "Crushed Copper Ore",
@ -1411,6 +1412,11 @@
"block.create.creative_crate.tooltip.condition1": "When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "_Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1129",
"_": "Missing Localizations: 1134",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Kupferblech",
"item.create.crafter_slot_cover": "Handwerkseinheit Slot Abdeckung",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Zerkleinertes Aluminiumerz",
"item.create.crushed_brass": "Zerkleinertes Messing",
"item.create.crushed_copper_ore": "Zerkleinertes Kupfererz",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Wenn Gegenstand in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "Alles _extrahierende_ von diesem Container wird einen _endlosen Vorrat_ des angegebenen Gegenstands zur Verfügung stellen. In diese Kiste _eingefügte_ Gegenstände werden _entsorgt_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 52",
"_": "Missing Localizations: 57",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Lámina de cobre",
"item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico",
"item.create.crafting_blueprint": "Plano de elaboración",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Mineral de aluminio molido",
"item.create.crushed_brass": "Latón molido",
"item.create.crushed_copper_ore": "Mineral de cobre molido",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros",
"block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "RAÍL DE CONTROL",
"block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.",
"block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1496",
"_": "Missing Localizations: 1501",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Lámina de Cobre",
"item.create.crafter_slot_cover": "Cubierta de Ranura del Crafter",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Mineral de Aluminio Molido",
"item.create.crushed_brass": "Latón Molido",
"item.create.crushed_copper_ore": "Mineral de Cobre Molido",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1381",
"_": "Missing Localizations: 1386",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Plaques de cuivre",
"item.create.crafter_slot_cover": "Couvercle",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Aluminium concassé",
"item.create.crushed_brass": "Laiton concassé",
"item.create.crushed_copper_ore": "Cuivre concassé",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Quand un objet se trouve dans l'emplacement de filtrage",
"block.create.creative_crate.tooltip.behaviour1": "Tout ce qui _extrait_ de ce conteneur aura une _alimentation illimitée_ de l'objet spécifié. Les objets _insérés_ dans cette caisse seront _éliminés_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 909",
"_": "Missing Localizations: 914",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Lamiera di rame",
"item.create.crafter_slot_cover": "Rivestimento per slot da costruzione",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Alluminio grezzo frantumato",
"item.create.crushed_brass": "Ottone frantumato",
"item.create.crushed_copper_ore": "Rame grezzo frantumato",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Quando un oggetto è nel filtro",
"block.create.creative_crate.tooltip.behaviour1": "Qualsiasi _estrazione_ da questo contenitore fornisce _provviste infinite_ dell'oggetto in questione. Gli oggetti _inseriti_ in questo baule verranno _svuotati_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "BINARIO DI CONTROLLO",
"block.create.controller_rail.tooltip.summary": "Un _binario alimentato unidirezionale_ capace di _controllare precisamente_ la _velocità di movimento_ di un carrello da miniera.",
"block.create.controller_rail.tooltip.condition1": "Quando alimentato da redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 4",
"_": "Missing Localizations: 9",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "銅板",
"item.create.crafter_slot_cover": "クラフタースロットカバー",
"item.create.crafting_blueprint": "クラフトブループリント",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "砕いたアルミニウム鉱石",
"item.create.crushed_brass": "砕いた真鍮",
"item.create.crushed_copper_ore": "砕いた銅鉱石",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "フィルタースロットにアイテムが入っているとき",
"block.create.creative_crate.tooltip.behaviour1": "このクレートから何かを_搬出_すると、指定されたアイテムが_無限_に_搬出_されます。このクレートに_搬入_されたアイテムは_消滅_します。",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "コントローラーレール",
"block.create.controller_rail.tooltip.summary": "トロッコの_移動速度_を_細かく制御_できる_一方通行_の_パワード_レール",
"block.create.controller_rail.tooltip.condition1": "レッドストーン信号を受けたとき",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 19",
"_": "Missing Localizations: 24",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "구리 판",
"item.create.crafter_slot_cover": "조합기 슬롯 덮개",
"item.create.crafting_blueprint": "조합 청사진",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "UNLOCALIZED: Crushed Aluminum Ore",
"item.create.crushed_brass": "분쇄된 황동",
"item.create.crushed_copper_ore": "분쇄된 구리 광석",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "필터에 아이템을 설정할 시",
"block.create.creative_crate.tooltip.behaviour1": "선택된 아이템을 _무한정_으로 _빼낼_ 수 있습니다. 대신 _들어간_ 아이템은 _삭제_됩니다.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "_광산 수레_의 _이동속도_를 _세밀하게_ _조정_할 수 있는 _양방향_ _전동 레일_입니다.",
"block.create.controller_rail.tooltip.condition1": "레드스톤 신호를 받을 때",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1762",
"_": "Missing Localizations: 1767",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "UNLOCALIZED: Copper Sheet",
"item.create.crafter_slot_cover": "UNLOCALIZED: Crafter Slot Cover",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "UNLOCALIZED: Crushed Aluminum Ore",
"item.create.crushed_brass": "Gemalen Brons",
"item.create.crushed_copper_ore": "UNLOCALIZED: Crushed Copper Ore",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 251",
"_": "Missing Localizations: 256",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Arkusz miedzi",
"item.create.crafter_slot_cover": "Przykrywka na slot stołu rzemieślniczego",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Rozkruszona ruda żelaza",
"item.create.crushed_brass": "Rozkruszony mosiądz",
"item.create.crushed_copper_ore": "Rozkruszona ruda miedzi",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Kiedy przedmiot jest w slocie na filtr",
"block.create.creative_crate.tooltip.behaviour1": "Bloki _wyciągające_ przedmioty z tego bloku będą miały _nieskończony zapas_ wybranego przedmiotu. Przedmioty włożone do tej skrzynki będą _usuwane_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "TORY STERUJĄCE",
"block.create.controller_rail.tooltip.summary": "_Wielokierunkowy_ zasilany tor pozwalający na _dokładną kontrolę_ nad _prędkością wagonika_.",
"block.create.controller_rail.tooltip.condition1": "Kiedy zasilone przez Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1803",
"_": "Missing Localizations: 1808",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "UNLOCALIZED: Copper Sheet",
"item.create.crafter_slot_cover": "UNLOCALIZED: Crafter Slot Cover",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "UNLOCALIZED: Crushed Aluminum Ore",
"item.create.crushed_brass": "UNLOCALIZED: Crushed Brass",
"item.create.crushed_copper_ore": "UNLOCALIZED: Crushed Copper Ore",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 0",
"_": "Missing Localizations: 5",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Медный лист",
"item.create.crafter_slot_cover": "Крышка на слот крафтера",
"item.create.crafting_blueprint": "Создание чертежа",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Дроблёная алюминиевая руда",
"item.create.crushed_brass": "Дроблёная латунь",
"item.create.crushed_copper_ore": "Дроблёная медная руда",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Когда предмет в слоте фильтра",
"block.create.creative_crate.tooltip.behaviour1": "Все, что извлечено из этого контейнера, обеспечит бесконечную поставку указанного предмета. Предметы, _вставленные_ в этот ящик, будут _аннулированы_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "КОНТРОЛИРУЮЩАЯ РЕЛЬСА",
"block.create.controller_rail.tooltip.summary": "_Все-направленные запитанные рельсы_, позволяющие _точную настройку_ _скорости_ вагонеток.",
"block.create.controller_rail.tooltip.condition1": "Когда запитано редстоун-сигналом",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 292",
"_": "Missing Localizations: 297",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "铜板",
"item.create.crafter_slot_cover": "合成器盖板",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "粉碎铝矿石",
"item.create.crushed_brass": "粉碎黄铜",
"item.create.crushed_copper_ore": "粉碎铜矿石",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "当标记了物品时",
"block.create.creative_crate.tooltip.behaviour1": "任何从容器中_提取_的物品都是_无限量的_而任何_放置_到容器中的物品都会被_送入虚空_",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "控制铁轨",
"block.create.controller_rail.tooltip.summary": "一种_汇流的受红石信号影响的_铁轨可以_较好地控制_经过矿车的_移动速度_。",
"block.create.controller_rail.tooltip.condition1": "通入红石信号时时",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 14",
"_": "Missing Localizations: 19",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "銅板",
"item.create.crafter_slot_cover": "合成器蓋板",
"item.create.crafting_blueprint": "合成藍圖",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "碎狀鋁礦石",
"item.create.crushed_brass": "碎狀黃銅",
"item.create.crushed_copper_ore": "碎狀銅礦石",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "當標記了物品時",
"block.create.creative_crate.tooltip.behaviour1": "容器將會從虛空中提供_無限量_的標記物品並且任何放置到容器中的物品都會被_送入虛空_",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "控制鐵軌",
"block.create.controller_rail.tooltip.summary": "單向電動導軌,能夠精細控制礦車的移動速度。",
"block.create.controller_rail.tooltip.condition1": "被紅石激活時",

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "create:item/creative_cake"
}
}

View file

@ -3,6 +3,7 @@
"values": [
"create:blaze_cake_base",
"create:blaze_cake",
"create:creative_cake",
"create:builders_tea",
"minecraft:glass_bottle",
"minecraft:potion",

View file

@ -484,7 +484,7 @@ public class AllBlocks {
public static final BlockEntry<BlazeBurnerBlock> BLAZE_BURNER =
REGISTRATE.block("blaze_burner", BlazeBurnerBlock::new)
.initialProperties(SharedProperties::softMetal)
.properties(p -> p.lightLevel($ -> 12))
.properties(p -> p.lightLevel(BlazeBurnerBlock::getLight))
.addLayer(() -> RenderType::cutoutMipped)
.tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.FAN_HEATERS.tag)
.loot((lt, block) -> lt.add(block, BlazeBurnerBlock.buildLootTable()))

View file

@ -105,6 +105,13 @@ public class AllItems {
public static final ItemEntry<CombustibleItem> BLAZE_CAKE = REGISTRATE.item("blaze_cake", CombustibleItem::new)
.tag(AllItemTags.UPRIGHT_ON_BELT.tag)
.onRegister(i -> i.setBurnTime(6400))
.register();
public static final ItemEntry<CombustibleItem> CREATIVE_CAKE = REGISTRATE.item("creative_cake", CombustibleItem::new)
.properties(p -> p.rarity(Rarity.EPIC))
.tag(AllItemTags.UPRIGHT_ON_BELT.tag)
.onRegister(i -> i.setBurnTime(Integer.MAX_VALUE))
.register();
public static final ItemEntry<Item> BAR_OF_CHOCOLATE = REGISTRATE.item("bar_of_chocolate", Item::new)

View file

@ -32,7 +32,6 @@ import net.minecraft.loot.conditions.ILootCondition.IBuilder;
import net.minecraft.loot.conditions.SurvivesExplosion;
import net.minecraft.pathfinding.PathType;
import net.minecraft.state.EnumProperty;
import net.minecraft.state.Property;
import net.minecraft.state.StateContainer.Builder;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ActionResult;
@ -58,11 +57,11 @@ import net.minecraftforge.common.util.FakePlayer;
@ParametersAreNonnullByDefault
public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity> {
public static final Property<HeatLevel> HEAT_LEVEL = EnumProperty.create("blaze", HeatLevel.class);
public static final EnumProperty<HeatLevel> HEAT_LEVEL = EnumProperty.create("blaze", HeatLevel.class);
public BlazeBurnerBlock(Properties properties) {
super(properties);
registerDefaultState(super.defaultBlockState().setValue(HEAT_LEVEL, HeatLevel.NONE));
registerDefaultState(defaultBlockState().setValue(HEAT_LEVEL, HeatLevel.NONE));
}
@Override
@ -89,9 +88,9 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
}
@Override
public void fillItemCategory(ItemGroup p_149666_1_, NonNullList<ItemStack> p_149666_2_) {
p_149666_2_.add(AllItems.EMPTY_BLAZE_BURNER.asStack());
super.fillItemCategory(p_149666_1_, p_149666_2_);
public void fillItemCategory(ItemGroup group, NonNullList<ItemStack> list) {
list.add(AllItems.EMPTY_BLAZE_BURNER.asStack());
super.fillItemCategory(group, list);
}
@Nullable
@ -109,8 +108,6 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand,
BlockRayTraceResult blockRayTraceResult) {
ItemStack heldItem = player.getItemInHand(hand);
boolean dontConsume = player.isCreative();
boolean forceOverflow = !(player instanceof FakePlayer);
if (!state.hasTileEntity()) {
if (heldItem.getItem() instanceof FlintAndSteelItem) {
@ -125,9 +122,12 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
return ActionResultType.PASS;
}
ActionResult<ItemStack> res = tryInsert(state, world, pos, dontConsume ? heldItem.copy() : heldItem, forceOverflow, false);
boolean doNotConsume = player.isCreative();
boolean forceOverflow = !(player instanceof FakePlayer);
ActionResult<ItemStack> res = tryInsert(state, world, pos, heldItem, doNotConsume, forceOverflow, false);
ItemStack leftover = res.getObject();
if (!world.isClientSide && !dontConsume && !leftover.isEmpty()) {
if (!world.isClientSide && !doNotConsume && !leftover.isEmpty()) {
if (heldItem.isEmpty()) {
player.setItemInHand(hand, leftover);
} else if (!player.inventory.add(leftover)) {
@ -135,11 +135,11 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
}
}
return res.getResult() == ActionResultType.SUCCESS ? res.getResult() : ActionResultType.PASS;
return res.getResult() == ActionResultType.SUCCESS ? ActionResultType.SUCCESS : ActionResultType.PASS;
}
public static ActionResult<ItemStack> tryInsert(BlockState state, World world, BlockPos pos, ItemStack stack, boolean forceOverflow,
boolean simulate) {
public static ActionResult<ItemStack> tryInsert(BlockState state, World world, BlockPos pos, ItemStack stack, boolean doNotConsume,
boolean forceOverflow, boolean simulate) {
if (!state.hasTileEntity())
return ActionResult.fail(ItemStack.EMPTY);
@ -148,18 +148,23 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
return ActionResult.fail(ItemStack.EMPTY);
BlazeBurnerTileEntity burnerTE = (BlazeBurnerTileEntity) te;
if (burnerTE.isCreativeFuel(stack)) {
if (!simulate)
burnerTE.applyCreativeFuel();
return ActionResult.success(ItemStack.EMPTY);
}
if (!burnerTE.tryUpdateFuel(stack, forceOverflow, simulate))
return ActionResult.fail(ItemStack.EMPTY);
if (!doNotConsume) {
ItemStack container = stack.getContainerItem();
if (!simulate && !world.isClientSide) {
world.playSound(null, pos, SoundEvents.BLAZE_SHOOT, SoundCategory.BLOCKS,
.125f + world.random.nextFloat() * .125f, .75f - world.random.nextFloat() * .25f);
if (!world.isClientSide && !simulate) {
stack.shrink(1);
}
if (!container.isEmpty()) {
return ActionResult.success(container);
}
}
return ActionResult.success(ItemStack.EMPTY);
}
@ -189,9 +194,30 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
}
@Override
public int getLightValue(BlockState state, IBlockReader world, BlockPos pos) {
return MathHelper.clamp(state.getValue(HEAT_LEVEL)
.ordinal() * 4 - 1, 0, 15);
public boolean hasAnalogOutputSignal(BlockState p_149740_1_) {
return true;
}
@Override
public int getAnalogOutputSignal(BlockState state, World p_180641_2_, BlockPos p_180641_3_) {
return Math.max(0, state.getValue(HEAT_LEVEL).ordinal() - 1);
}
@Override
public boolean isPathfindable(BlockState state, IBlockReader reader, BlockPos pos, PathType type) {
return false;
}
@OnlyIn(Dist.CLIENT)
public void animateTick(BlockState state, World world, BlockPos pos, Random random) {
if (random.nextInt(10) != 0)
return;
if (!state.getValue(HEAT_LEVEL)
.isAtLeast(HeatLevel.SMOULDERING))
return;
world.playLocalSound((double) ((float) pos.getX() + 0.5F), (double) ((float) pos.getY() + 0.5F),
(double) ((float) pos.getZ() + 0.5F), SoundEvents.CAMPFIRE_CRACKLE, SoundCategory.BLOCKS,
0.5F + random.nextFloat(), random.nextFloat() * 0.7F + 0.6F, false);
}
public static HeatLevel getHeatLevelOf(BlockState blockState) {
@ -199,6 +225,11 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
: HeatLevel.NONE;
}
public static int getLight(BlockState state) {
return MathHelper.clamp(state.getValue(HEAT_LEVEL)
.ordinal() * 4 - 1, 0, 15);
}
public static LootTable.Builder buildLootTable() {
IBuilder survivesExplosion = SurvivesExplosion.survivesExplosion();
BlazeBurnerBlock block = AllBlocks.BLAZE_BURNER.get();
@ -218,28 +249,6 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
return builder;
}
@Override
public boolean hasAnalogOutputSignal(BlockState p_149740_1_) {
return true;
}
@Override
public int getAnalogOutputSignal(BlockState state, World p_180641_2_, BlockPos p_180641_3_) {
return Math.max(0, state.getValue(HEAT_LEVEL).ordinal() -1);
}
@OnlyIn(Dist.CLIENT)
public void animateTick(BlockState state, World world, BlockPos pos, Random random) {
if (random.nextInt(10) != 0)
return;
if (!state.getValue(HEAT_LEVEL)
.isAtLeast(HeatLevel.SMOULDERING))
return;
world.playLocalSound((double) ((float) pos.getX() + 0.5F), (double) ((float) pos.getY() + 0.5F),
(double) ((float) pos.getZ() + 0.5F), SoundEvents.CAMPFIRE_CRACKLE, SoundCategory.BLOCKS,
0.5F + random.nextFloat(), random.nextFloat() * 0.7F + 0.6F, false);
}
public enum HeatLevel implements IStringSerializable {
NONE, SMOULDERING, FADING, KINDLED, SEETHING, ;
@ -247,19 +256,18 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
return values()[index];
}
@Override
public String getSerializedName() {
return Lang.asId(name());
public HeatLevel nextActiveLevel() {
return byIndex(ordinal() % (values().length - 1) + 1);
}
public boolean isAtLeast(HeatLevel heatLevel) {
return this.ordinal() >= heatLevel.ordinal();
}
}
@Override
public boolean isPathfindable(BlockState state, IBlockReader reader, BlockPos pos, PathType type) {
return false;
public String getSerializedName() {
return Lang.asId(name());
}
}
}

View file

@ -59,13 +59,15 @@ public class BlazeBurnerHandler {
return;
BlazeBurnerTileEntity heater = (BlazeBurnerTileEntity) tile;
if (!heater.isCreative()) {
if (heater.activeFuel != FuelType.SPECIAL) {
heater.activeFuel = FuelType.NORMAL;
heater.remainingBurnTime =
MathHelper.clamp(heater.remainingBurnTime + 80, 0, BlazeBurnerTileEntity.maxHeatCapacity);
MathHelper.clamp(heater.remainingBurnTime + 80, 0, BlazeBurnerTileEntity.MAX_HEAT_CAPACITY);
heater.updateBlockState();
heater.notifyUpdate();
}
}
AllSoundEvents.BLAZE_MUNCH.playOnServer(world, heater.getBlockPos());
}

View file

@ -19,42 +19,76 @@ import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvents;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraftforge.common.ForgeHooks;
public class BlazeBurnerTileEntity extends SmartTileEntity {
private final static int[][] heatParticleColors =
{ { 0x3B141A, 0x47141A, 0x7A3B24, 0x854D26 }, { 0x2A0103, 0x741B0A, 0xC38246, 0xCCBD78 },
{ 0x630B03, 0x8B3503, 0xBC8200, 0xCCC849 }, { 0x1C6378, 0x4798B5, 0x4DA6C0, 0xBAC8CE } };
public static final int MAX_HEAT_CAPACITY = 10000;
public static final int maxHeatCapacity = 10000;
private static final Vector3d EMPTY_COLOR = new Vector3d(0, 0, 0);
private final static Vector3d[][] PARTICLE_COLORS;
private final static Vector3d[] CREATIVE_PARTICLE_COLORS;
static {
int[][] colors = {
{ },
{ 0x3B141A, 0x47141A, 0x7A3B24, 0x854D26 },
{ 0x2A0103, 0x741B0A, 0xC38246, 0xCCBD78 },
{ 0x630B03, 0x8B3503, 0xBC8200, 0xCCC849 },
{ 0x1C6378, 0x4798B5, 0x4DA6C0, 0xBAC8CE }
};
public static enum FuelType {
NONE, NORMAL, SPECIAL
int[] creativeColors = { 0x54295D, 0x6E3C76, 0xA5479F, 0x85157C };
PARTICLE_COLORS = new Vector3d[colors.length][];
for (int i = 0; i < colors.length; i++) {
PARTICLE_COLORS[i] = ColorHelper.toVectors(colors[i]);
}
int remainingBurnTime;
FuelType activeFuel;
LerpedFloat headAngle;
CREATIVE_PARTICLE_COLORS = ColorHelper.toVectors(creativeColors);
}
protected FuelType activeFuel;
protected int remainingBurnTime;
protected LerpedFloat headAngle;
protected boolean isCreative;
public BlazeBurnerTileEntity(TileEntityType<? extends BlazeBurnerTileEntity> tileEntityTypeIn) {
super(tileEntityTypeIn);
activeFuel = FuelType.NONE;
remainingBurnTime = 0;
headAngle = LerpedFloat.angular();
isCreative = false;
}
public FuelType getActiveFuel() {
return activeFuel;
}
public int getRemainingBurnTime() {
return remainingBurnTime;
}
public boolean isCreative() {
return isCreative;
}
@Override
public void tick() {
super.tick();
if (level.isClientSide) {
tickRotation();
spawnParticles(getHeatLevelFromBlock(), 1);
return;
}
if (isCreative)
return;
if (remainingBurnTime > 0)
remainingBurnTime--;
@ -65,22 +99,26 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
if (activeFuel == FuelType.SPECIAL) {
activeFuel = FuelType.NORMAL;
remainingBurnTime = maxHeatCapacity / 2;
remainingBurnTime = MAX_HEAT_CAPACITY / 2;
} else
activeFuel = FuelType.NONE;
updateBlockState();
notifyUpdate();
}
private void tickRotation() {
ClientPlayerEntity player = Minecraft.getInstance().player;
float target = 0;
ClientPlayerEntity player = Minecraft.getInstance().player;
if (player != null) {
double x = player.getX();
double z = player.getZ();
double x;
double z;
if (isVirtual()) {
x = -4;
z = -10;
} else {
x = player.getX();
z = player.getZ();
}
double dx = x - (getBlockPos().getX() + 0.5);
double dz = z - (getBlockPos().getZ() + 0.5);
@ -96,8 +134,12 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
@Override
public void write(CompoundNBT compound, boolean clientPacket) {
if (!isCreative) {
compound.putInt("fuelLevel", activeFuel.ordinal());
compound.putInt("burnTimeRemaining", remainingBurnTime);
} else {
compound.putBoolean("isCreative", true);
}
super.write(compound, clientPacket);
}
@ -105,22 +147,44 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) {
activeFuel = FuelType.values()[compound.getInt("fuelLevel")];
remainingBurnTime = compound.getInt("burnTimeRemaining");
isCreative = compound.getBoolean("isCreative");
super.fromTag(state, compound, clientPacket);
}
public BlazeBurnerBlock.HeatLevel getHeatLevelFromBlock() {
return BlazeBurnerBlock.getHeatLevelOf(getBlockState());
}
public void updateBlockState() {
setBlockHeat(getHeatLevelFromFuelType(activeFuel));
}
protected void setBlockHeat(HeatLevel heat) {
HeatLevel inBlockState = getHeatLevelFromBlock();
if (inBlockState == heat)
return;
level.setBlockAndUpdate(worldPosition, getBlockState().setValue(BlazeBurnerBlock.HEAT_LEVEL, heat));
notifyUpdate();
}
/**
* @return true if the heater updated its burn time and a item should be
* @return true if the heater updated its burn time and an item should be
* consumed
*/
boolean tryUpdateFuel(ItemStack itemStack, boolean forceOverflow, boolean simulate) {
FuelType newFuel = FuelType.NONE;
int newBurnTime = ForgeHooks.getBurnTime(itemStack);
protected boolean tryUpdateFuel(ItemStack itemStack, boolean forceOverflow, boolean simulate) {
if (isCreative)
return false;
FuelType newFuel = FuelType.NONE;
int newBurnTime;
if (newBurnTime > 0)
newFuel = FuelType.NORMAL;
if (AllItems.BLAZE_CAKE.isIn(itemStack)) {
newBurnTime = 1000;
newFuel = FuelType.SPECIAL;
} else {
newBurnTime = ForgeHooks.getBurnTime(itemStack);
if (newBurnTime > 0)
newFuel = FuelType.NORMAL;
}
if (newFuel == FuelType.NONE)
@ -131,9 +195,9 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
return false;
if (newFuel == activeFuel) {
if (remainingBurnTime + newBurnTime > maxHeatCapacity && !forceOverflow)
if (remainingBurnTime + newBurnTime > MAX_HEAT_CAPACITY && !forceOverflow)
return false;
newBurnTime = MathHelper.clamp(remainingBurnTime + newBurnTime, 0, maxHeatCapacity);
newBurnTime = MathHelper.clamp(remainingBurnTime + newBurnTime, 0, MAX_HEAT_CAPACITY);
}
if (simulate)
@ -143,27 +207,43 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
remainingBurnTime = newBurnTime;
if (level.isClientSide) {
HeatLevel level = getHeatLevelFromFuelType(newFuel);
HeatLevel level = getHeatLevelFromFuelType(activeFuel);
for (int i = 0; i < 20; i++)
spawnParticles(level, 1 + (.25 * (i / 4)));
return true;
}
} else {
playSound();
updateBlockState();
}
return true;
}
public BlazeBurnerBlock.HeatLevel getHeatLevelFromBlock() {
return BlazeBurnerBlock.getHeatLevelOf(getBlockState());
protected void applyCreativeFuel() {
boolean wasCreative = isCreative;
activeFuel = FuelType.NONE;
remainingBurnTime = 0;
isCreative = true;
if (level.isClientSide) {
for (int i = 0; i < 30; i++) {
double burstMult = 1 + (.25 * (i / 4));
spawnParticle(CREATIVE_PARTICLE_COLORS, 0.04F, 35, false, 0.03 * burstMult, 0.15 * burstMult);
}
} else {
playSound();
if (wasCreative)
setBlockHeat(getHeatLevelFromBlock().nextActiveLevel());
}
}
public void updateBlockState() {
HeatLevel inBlockState = getHeatLevelFromBlock();
HeatLevel inTE = getHeatLevelFromFuelType(activeFuel);
if (inBlockState == inTE)
return;
level.setBlockAndUpdate(worldPosition, getBlockState().setValue(BlazeBurnerBlock.HEAT_LEVEL, inTE));
notifyUpdate();
public boolean isCreativeFuel(ItemStack stack) {
return AllItems.CREATIVE_CAKE.isIn(stack);
}
protected void playSound() {
level.playSound(null, worldPosition, SoundEvents.BLAZE_SHOOT, SoundCategory.BLOCKS,
.125f + level.random.nextFloat() * .125f, .75f - level.random.nextFloat() * .25f);
}
protected HeatLevel getHeatLevelFromFuelType(FuelType fuel) {
@ -173,7 +253,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
level = HeatLevel.SEETHING;
break;
case NORMAL:
boolean lowPercent = (double) remainingBurnTime / maxHeatCapacity < 0.1;
boolean lowPercent = (double) remainingBurnTime / MAX_HEAT_CAPACITY < 0.1;
level = lowPercent ? HeatLevel.FADING : HeatLevel.KINDLED;
break;
default:
@ -183,7 +263,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
return level;
}
private void spawnParticles(HeatLevel heatLevel, double burstMult) {
protected void spawnParticles(HeatLevel heatLevel, double burstMult) {
if (level == null)
return;
if (heatLevel == BlazeBurnerBlock.HeatLevel.NONE)
@ -216,9 +296,8 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
}
}
private void spawnParticle(HeatLevel heatLevel, float scale, int avgAge, boolean hot, double speed, double spread) {
protected void spawnParticle(Vector3d color, float scale, int avgAge, boolean hot, double speed, double spread) {
Random random = level.getRandom();
Vector3d color = randomColor(heatLevel);
level.addAlwaysVisibleParticle(
new CubeParticleData((float) color.x, (float) color.y, (float) color.z, scale, avgAge, hot),
(double) worldPosition.getX() + 0.5D + (random.nextDouble() * 2.0 - 1D) * spread,
@ -226,10 +305,22 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
(double) worldPosition.getZ() + 0.5D + (random.nextDouble() * 2.0 - 1D) * spread, 0.0D, speed, 0.0D);
}
private static Vector3d randomColor(BlazeBurnerBlock.HeatLevel heatLevel) {
if (heatLevel == BlazeBurnerBlock.HeatLevel.NONE)
return new Vector3d(0, 0, 0);
return ColorHelper.getRGB(heatParticleColors[heatLevel.ordinal() - 1][(int) (Math.random() * 4)]);
protected void spawnParticle(Vector3d[] colors, float scale, int avgAge, boolean hot, double speed, double spread) {
Vector3d color;
if (colors.length == 0) {
color = EMPTY_COLOR;
} else {
color = colors[(int) (Math.random() * colors.length)];
}
spawnParticle(color, scale, avgAge, hot, speed, spread);
}
protected void spawnParticle(HeatLevel heatLevel, float scale, int avgAge, boolean hot, double speed, double spread) {
spawnParticle(PARTICLE_COLORS[heatLevel.ordinal()], scale, avgAge, hot, speed, spread);
}
public enum FuelType {
NONE, NORMAL, SPECIAL
}
}

View file

@ -332,12 +332,12 @@ public abstract class ArmInteractionPoint {
@Override
protected ItemStack insert(World world, ItemStack stack, boolean simulate) {
ItemStack input = stack.copy();
if (!BlazeBurnerBlock.tryInsert(state, world, pos, input, false, true)
if (!BlazeBurnerBlock.tryInsert(state, world, pos, input, false, false, true)
.getObject()
.isEmpty()) {
return stack;
}
ActionResult<ItemStack> res = BlazeBurnerBlock.tryInsert(state, world, pos, input, false, simulate);
ActionResult<ItemStack> res = BlazeBurnerBlock.tryInsert(state, world, pos, input, false, false, simulate);
return res.getResult() == ActionResultType.SUCCESS
? ItemHandlerHelper.copyStackWithSize(stack, stack.getCount() - 1)
: stack;

View file

@ -37,7 +37,7 @@ public class ColorHelper {
public static int applyAlpha(int color, float alpha) {
int prevAlphaChannel = (color >> 24) & 0xFF;
if (prevAlphaChannel > 0)
alpha *= prevAlphaChannel / 256f;
alpha *= prevAlphaChannel / 255f;
int alphaChannel = (int) (0xFF * MathHelper.clamp(alpha, 0, 1));
return (color & 0xFFFFFF) | alphaChannel << 24;
}
@ -98,7 +98,7 @@ public class ColorHelper {
int g = (color >> 8) & 0xFF;
int b = color & 0xFF;
RenderSystem.color4f(r / 256f, g / 256f, b / 256f, 1);
RenderSystem.color4f(r / 255f, g / 255f, b / 255f, 1);
}
public static void glResetColor() {
@ -109,7 +109,15 @@ public class ColorHelper {
int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = color & 0xFF;
return new Vector3d(r, g, b).scale(1 / 256d);
return new Vector3d(r, g, b).scale(1 / 255d);
}
public static Vector3d[] toVectors(int[] colors) {
Vector3d[] vectors = new Vector3d[colors.length];
for (int i = 0; i < colors.length; i++) {
vectors[i] = ColorHelper.getRGB(colors[i]);
}
return vectors;
}
public static int colorFromUUID(UUID uuid) {

View file

@ -154,6 +154,11 @@
"block.create.creative_crate.tooltip.condition1": "When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "_Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "When Powered by Redstone",

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B