Flaming souls

- Add soul flame type to lit blaze burner
- Tweak empty blaze burner ponder to show how to transform flame
This commit is contained in:
PepperBell 2021-07-09 00:28:21 -07:00
parent f90dd34f5b
commit 7ed7b957dd
28 changed files with 162 additions and 85 deletions

View File

@ -230,7 +230,7 @@ e7c7b952137c4cb615988ea59b9f14303c9a4dfe assets/create/blockstates/limestone_bri
10513d55f7c621162a13d474d8f4eb54305d0f60 assets/create/blockstates/limestone_cobblestone_wall.json
b7506b862d13b3f915c60d38bb7a20afc935f70a assets/create/blockstates/limestone_pillar.json
69790737767e06f000c7824749c46664a123160e assets/create/blockstates/linear_chassis.json
07bae932a163b81f8749f98287b4fb4949fe0b8b assets/create/blockstates/lit_blaze_burner.json
56b111c8a345627e9f37deac141138064271c2f1 assets/create/blockstates/lit_blaze_burner.json
e99e9c5cf03334a48d9d071e1590bc8f286d3cf6 assets/create/blockstates/magenta_nixie_tube.json
85a58ac539775f90903d9ce66374f3f2ffd4fecf assets/create/blockstates/magenta_sail.json
84c494d24cc58af274fdd054896c680e8095d2d0 assets/create/blockstates/magenta_seat.json
@ -426,20 +426,20 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
e1d3c02695cbd2ee7bbede97f72941835634a3a5 assets/create/lang/en_ud.json
e45592394573a5e5bae6520976ef0760e27833b1 assets/create/lang/en_us.json
3e80da8da3fd705c5a9abcef3bb88c848d694452 assets/create/lang/unfinished/de_de.json
2957ff5031fce02979fe0029756705c80909160f assets/create/lang/unfinished/es_es.json
58c0101a854c4a717058b593572707a035b2bd17 assets/create/lang/unfinished/es_mx.json
2dca9cad484ec7991d4303f7b79b613da85aa213 assets/create/lang/unfinished/fr_fr.json
93c30ea554df1b96d493f3c15660665342ea54e2 assets/create/lang/unfinished/it_it.json
2d19c1bd0b16c7f4d3cab91566b10f8b20fd92b8 assets/create/lang/unfinished/ja_jp.json
00a5e891f481ddbbd2e043f05d4c60c8519d30b4 assets/create/lang/unfinished/ko_kr.json
3264c35ea11ad73c63b42d3c3e86b3e4a683e8a7 assets/create/lang/unfinished/nl_nl.json
284b09bca2e8dafbf6c39d562a6bec7d6d9e277e assets/create/lang/unfinished/pl_pl.json
ebabdc30b05702af5cc4b28e95fa5792035db73a assets/create/lang/unfinished/pt_br.json
ab37de7ff2c14415e29782bba6382233e585fa6f assets/create/lang/unfinished/ru_ru.json
f70cb0834d60693a62bef99c2b81b40fae37417a assets/create/lang/unfinished/zh_cn.json
f78d0693929030d6ede68d4233407f6c832ea93e assets/create/lang/unfinished/zh_tw.json
c75657997c7adf06fd12020aacc9465605563183 assets/create/lang/en_us.json
94f26bdaf8d1a39c25c4da551530696d4ff8b24c assets/create/lang/unfinished/de_de.json
51ed1df10b8afcf27f9dcdae3bca80d05740d450 assets/create/lang/unfinished/es_es.json
47bf5a31dfd8530a0db9813a56b762cf3129ddc6 assets/create/lang/unfinished/es_mx.json
8bc26af581f714ea54f6e1a89ee2cbac917bf7df assets/create/lang/unfinished/fr_fr.json
e1c11002170d4c0acb9ef442c41ea04b99d20440 assets/create/lang/unfinished/it_it.json
caa45f4ae4e4e9b338999b7975767dc33e569881 assets/create/lang/unfinished/ja_jp.json
aaa8ecc84b853cc8a93f8d5812f22beefaf48266 assets/create/lang/unfinished/ko_kr.json
9e32f7de0acff6ee4ee6bfa5beb5a4c103cdcb0a assets/create/lang/unfinished/nl_nl.json
70f552fe3bd0365d9f1f339032bc598bc0ff9026 assets/create/lang/unfinished/pl_pl.json
83422c331b7c670d1dc8450e0b02a6443fc8ca1b assets/create/lang/unfinished/pt_br.json
f12de6d61ff3f634e5af7485230032202ce0f9de assets/create/lang/unfinished/ru_ru.json
75c32bf33d907d0575d05ad575566d50bc78c1c9 assets/create/lang/unfinished/zh_cn.json
32a411bf248dae1eeb8a3e7d9450e5c1b9cd0b59 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

View File

@ -1,7 +1,10 @@
{
"variants": {
"": {
"flame_type=regular": {
"model": "create:block/blaze_burner/block_with_fire"
},
"flame_type=soul": {
"model": "create:block/blaze_burner/block_with_soul_fire"
}
}
}

View File

@ -1764,7 +1764,8 @@
"create.ponder.empty_blaze_burner.text_2": "Alternatively, Blazes can be collected from their Spawners directly",
"create.ponder.empty_blaze_burner.text_3": "You now have an ideal heat source for various machines",
"create.ponder.empty_blaze_burner.text_4": "For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel",
"create.ponder.empty_blaze_burner.text_5": "However, these are not suitable for industrial heating",
"create.ponder.empty_blaze_burner.text_5": "The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "However, these are not suitable for industrial heating",
"create.ponder.encased_fluid_pipe.header": "Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1125",
"_": "Missing Localizations: 1126",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
"create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines",
"create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 48",
"_": "Missing Localizations: 49",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente",
"create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas",
"create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero",
"create.ponder.empty_blaze_burner.text_5": "Sin embargo, no son adecuados para la calefacción industrial",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial",
"create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos",
"create.ponder.encased_fluid_pipe.text_1": "Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1492",
"_": "Missing Localizations: 1493",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
"create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines",
"create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1377",
"_": "Missing Localizations: 1378",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
"create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines",
"create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 905",
"_": "Missing Localizations: 906",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
"create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines",
"create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 37",
"_": "Missing Localizations: 38",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "また、ブレイズはスポーンブロックから直接捕獲することもできます",
"create.ponder.empty_blaze_burner.text_3": "これで、様々な機械で利用できる理想的な熱源が得られます",
"create.ponder.empty_blaze_burner.text_4": "空のブレイズバーナーは火打石と打ち金を使って火を付ければ装飾にも使えます",
"create.ponder.empty_blaze_burner.text_5": "しかし、これは加工用の熱源には適していません",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "しかし、これは加工用の熱源には適していません",
"create.ponder.encased_fluid_pipe.header": "ケース入り液体パイプ",
"create.ponder.encased_fluid_pipe.text_1": "銅ケーシングで液体パイプを飾ることができます",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 283",
"_": "Missing Localizations: 284",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "또한, 생성기에 있는 블레이즈를 직접 포획할 수도 있습니다",
"create.ponder.empty_blaze_burner.text_3": "이제 다양한 기계에서 사용할 수 있습니다",
"create.ponder.empty_blaze_burner.text_4": "부싯돌과 부시를 사용하여 비어있는 블레이즈 가열기에 불을 붙일 수도 있습니다",
"create.ponder.empty_blaze_burner.text_5": "하지만, 산업용으로 이용하기에는 적합하지 않습니다.",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "하지만, 산업용으로 이용하기에는 적합하지 않습니다.",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1758",
"_": "Missing Localizations: 1759",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
"create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines",
"create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 247",
"_": "Missing Localizations: 248",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "Ewentualnie, Płomyk może być zabrany prosto z jego Spawnera",
"create.ponder.empty_blaze_burner.text_3": "Masz teraz idealne źródło ciepła dla przeróżnych maszyn",
"create.ponder.empty_blaze_burner.text_4": "Dla celów dekoracyjnych, puste palniki można też zapalić krzesiwem",
"create.ponder.empty_blaze_burner.text_5": "Nie będzie on dawał jednak ciepła",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "Nie będzie on dawał jednak ciepła",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1799",
"_": "Missing Localizations: 1800",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
"create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines",
"create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "UNLOCALIZED: However, these are not suitable for industrial heating",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 278",
"_": "Missing Localizations: 279",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "Также Всполохи можут быть захвачены из Спавнера напрямую",
"create.ponder.empty_blaze_burner.text_3": "Теперь у вас есть идеальный источник тепла для ряда машин",
"create.ponder.empty_blaze_burner.text_4": "В эстетических целях, Пустые Горелки могут быть зажжены Огнивом",
"create.ponder.empty_blaze_burner.text_5": "Однако они не будут подходить для промышленного нагрева",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "Однако они не будут подходить для промышленного нагрева",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 288",
"_": "Missing Localizations: 289",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "或者,也可以通过右击烈焰人刷怪笼来填充激活烈焰人燃烧室",
"create.ponder.empty_blaze_burner.text_3": "这样,你便有了一个可供部分机器加工的热源",
"create.ponder.empty_blaze_burner.text_4": "如果是为了美观,空的烈焰人燃烧室也可以被打火石点燃",
"create.ponder.empty_blaze_burner.text_5": "但是,这样的热源不足以给机器提加工供足够的热量",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "但是,这样的热源不足以给机器提加工供足够的热量",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 283",
"_": "Missing Localizations: 284",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1765,7 +1765,8 @@
"create.ponder.empty_blaze_burner.text_2": "或者,也可以透過右擊烈焰人刷怪籠來填充啟動烈焰人燃燒室",
"create.ponder.empty_blaze_burner.text_3": "這樣,你便有了一個可供部分機器加工的熱源",
"create.ponder.empty_blaze_burner.text_4": "如果是為了美觀,空的烈焰人燃燒室也可以被打火石點燃",
"create.ponder.empty_blaze_burner.text_5": "但是,這樣的熱源不足以給機器提加工供足夠的熱量",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_6": "但是,這樣的熱源不足以給機器提加工供足夠的熱量",
"create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes",
"create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes",

View File

@ -497,12 +497,16 @@ public class AllBlocks {
public static final BlockEntry<LitBlazeBurnerBlock> LIT_BLAZE_BURNER =
REGISTRATE.block("lit_blaze_burner", LitBlazeBurnerBlock::new)
.initialProperties(SharedProperties::softMetal)
.properties(p -> p.luminance($ -> 12))
.properties(p -> p.luminance(LitBlazeBurnerBlock::getLight))
.addLayer(() -> RenderType::getCutoutMipped)
.tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.FAN_HEATERS.tag)
.loot((lt, block) -> lt.registerDropping(block, AllItems.EMPTY_BLAZE_BURNER.get()))
.blockstate((c, p) -> p.simpleBlock(c.getEntry(), p.models()
.getExistingFile(p.modLoc("block/blaze_burner/block_with_fire"))))
.blockstate((c, p) -> p.getVariantBuilder(c.get()).forAllStates(state ->
ConfiguredModel.builder()
.modelFile(p.models().getExistingFile(p.modLoc(
"block/blaze_burner/" + (state.get(LitBlazeBurnerBlock.FLAME_TYPE) == LitBlazeBurnerBlock.FlameType.SOUL ? "block_with_soul_fire" : "block_with_fire")
)))
.build()))
.register();
public static final BlockEntry<DepotBlock> DEPOT = REGISTRATE.block("depot", DepotBlock::new)

View File

@ -5,14 +5,12 @@ import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerTileEntity.FuelType;
import net.minecraft.block.BlockState;
import net.minecraft.block.CampfireBlock;
import net.minecraft.entity.projectile.EggEntity;
import net.minecraft.entity.projectile.PotionEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionUtils;
import net.minecraft.potion.Potions;
import net.minecraft.tags.BlockTags;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Direction;
import net.minecraft.util.SoundCategory;

View File

@ -4,16 +4,20 @@ import java.util.Random;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.particles.ParticleTypes;
import net.minecraft.pathfinding.PathType;
import net.minecraft.state.EnumProperty;
import net.minecraft.state.StateContainer.Builder;
import net.minecraft.tags.ItemTags;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.Hand;
import net.minecraft.util.IStringSerializable;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvents;
import net.minecraft.util.math.BlockPos;
@ -25,23 +29,21 @@ import net.minecraft.world.IBlockReader;
import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.ToolType;
public class LitBlazeBurnerBlock extends Block {
// 1.16: add a soul fire variant
public static final EnumProperty<FlameType> FLAME_TYPE = EnumProperty.create("flame_type", FlameType.class);
// public enum FlameType implements IStringSerializable {
// REGULAR, SOULFIRE;
//
// @Override
// public String getName() {
// return Lang.asId(name());
// }
//
// }
public LitBlazeBurnerBlock(Properties properties) {
super(properties);
setDefaultState(getDefaultState().with(FLAME_TYPE, FlameType.REGULAR));
}
public LitBlazeBurnerBlock(Properties p_i48440_1_) {
super(p_i48440_1_);
@Override
protected void fillStateContainer(Builder<Block, BlockState> builder) {
super.fillStateContainer(builder);
builder.add(FLAME_TYPE);
}
@Override
@ -49,19 +51,26 @@ public class LitBlazeBurnerBlock extends Block {
BlockRayTraceResult blockRayTraceResult) {
ItemStack heldItem = player.getHeldItem(hand);
// Check for 'Shovels'
if (!heldItem.canHarvestBlock(Blocks.SNOW.getDefaultState()))
return ActionResultType.PASS;
world.playSound(player, pos, SoundEvents.ENTITY_GENERIC_EXTINGUISH_FIRE, SoundCategory.BLOCKS, .5f, 2);
if (world.isRemote)
return ActionResultType.SUCCESS;
if (!player.isCreative())
if (heldItem.getToolTypes().contains(ToolType.SHOVEL)) {
world.playSound(player, pos, SoundEvents.ENTITY_GENERIC_EXTINGUISH_FIRE, SoundCategory.BLOCKS, 0.5f, 2);
if (world.isRemote)
return ActionResultType.SUCCESS;
heldItem.damageItem(1, player, p -> p.sendBreakAnimation(hand));
world.setBlockState(pos, AllBlocks.BLAZE_BURNER.getDefaultState());
return ActionResultType.SUCCESS;
}
world.setBlockState(pos, AllBlocks.BLAZE_BURNER.getDefaultState());
return ActionResultType.SUCCESS;
if (state.get(FLAME_TYPE) == FlameType.REGULAR) {
if (heldItem.getItem().isIn(ItemTags.SOUL_FIRE_BASE_BLOCKS)) {
world.playSound(player, pos, SoundEvents.BLOCK_SOUL_SAND_PLACE, SoundCategory.BLOCKS, 1.0f, world.rand.nextFloat() * 0.4F + 0.8F);
if (world.isRemote)
return ActionResultType.SUCCESS;
world.setBlockState(pos, getDefaultState().with(FLAME_TYPE, FlameType.SOUL));
return ActionResultType.SUCCESS;
}
}
return ActionResultType.PASS;
}
@Override
@ -77,7 +86,7 @@ public class LitBlazeBurnerBlock extends Block {
}
@OnlyIn(Dist.CLIENT)
public void animateTick(BlockState p_180655_1_, World world, BlockPos pos, Random random) {
public void animateTick(BlockState state, World world, BlockPos pos, Random random) {
world.addOptionalParticle(ParticleTypes.LARGE_SMOKE, true,
(double) pos.getX() + 0.5D + random.nextDouble() / 3.0D * (double) (random.nextBoolean() ? 1 : -1),
(double) pos.getY() + random.nextDouble() + random.nextDouble(),
@ -90,6 +99,17 @@ public class LitBlazeBurnerBlock extends Block {
0.25F + random.nextFloat() * .25f, random.nextFloat() * 0.7F + 0.6F, false);
}
if (state.get(FLAME_TYPE) == FlameType.SOUL) {
if (random.nextInt(8) == 0) {
world.addParticle(ParticleTypes.SOUL,
pos.getX() + 0.5F + random.nextDouble() / 4 * (random.nextBoolean() ? 1 : -1),
pos.getY() + 0.3F + random.nextDouble() / 2,
pos.getZ() + 0.5F + random.nextDouble() / 4 * (random.nextBoolean() ? 1 : -1),
0.0, random.nextDouble() * 0.04 + 0.04, 0.0);
}
return;
}
if (random.nextInt(5) == 0) {
for (int i = 0; i < random.nextInt(1) + 1; ++i) {
world.addParticle(ParticleTypes.LAVA, (double) ((float) pos.getX() + 0.5F),
@ -98,15 +118,15 @@ public class LitBlazeBurnerBlock extends Block {
}
}
}
@Override
public boolean hasComparatorInputOverride(BlockState p_149740_1_) {
return true;
}
@Override
public int getComparatorInputOverride(BlockState state, World p_180641_2_, BlockPos p_180641_3_) {
return 1;
return state.get(FLAME_TYPE) == FlameType.REGULAR ? 1 : 2;
}
@Override
@ -115,10 +135,28 @@ public class LitBlazeBurnerBlock extends Block {
return AllBlocks.BLAZE_BURNER.get()
.getCollisionShape(state, reader, pos, context);
}
@Override
public boolean allowsMovement(BlockState state, IBlockReader reader, BlockPos pos, PathType type) {
return false;
}
public static int getLight(BlockState state) {
if (state.get(FLAME_TYPE) == FlameType.SOUL)
return 9;
else
return 12;
}
public enum FlameType implements IStringSerializable {
REGULAR, SOUL;
@Override
public String getString() {
return Lang.asId(name());
}
}
}

View File

@ -12,6 +12,7 @@ import com.simibubi.create.content.contraptions.processing.BasinBlock;
import com.simibubi.create.content.contraptions.processing.BasinTileEntity;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel;
import com.simibubi.create.content.contraptions.processing.burner.LitBlazeBurnerBlock;
import com.simibubi.create.foundation.ponder.ElementLink;
import com.simibubi.create.foundation.ponder.SceneBuilder;
import com.simibubi.create.foundation.ponder.SceneBuildingUtil;
@ -616,7 +617,7 @@ public class ProcessingScenes {
.withItem(new ItemStack(Items.FLINT_AND_STEEL)),
40);
scene.idle(7);
scene.world.setBlock(util.grid.at(3, 1, 2), AllBlocks.LIT_BLAZE_BURNER.getDefaultState(), true);
scene.world.setBlock(util.grid.at(3, 1, 2), AllBlocks.LIT_BLAZE_BURNER.getDefaultState(), false);
scene.idle(10);
scene.overlay.showText(70)
.text("For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel")
@ -625,6 +626,19 @@ public class ProcessingScenes {
.up(), Direction.UP))
.placeNearTarget();
scene.idle(80);
scene.overlay.showControls(new InputWindowElement(util.vector.topOf(center.east()
.up()), Pointing.DOWN).rightClick()
.withItem(new ItemStack(Items.SOUL_SAND)),
40);
scene.idle(7);
scene.world.modifyBlock(util.grid.at(3, 1, 2), s -> s.with(LitBlazeBurnerBlock.FLAME_TYPE, LitBlazeBurnerBlock.FlameType.SOUL),
false);
scene.overlay.showText(60)
.text("The flame can be transformed using a soul-infused item")
.pointAt(util.vector.blockSurface(center.east()
.up(), Direction.UP))
.placeNearTarget();
scene.idle(70);
scene.overlay.showText(60)
.colored(PonderPalette.RED)
.text("However, these are not suitable for industrial heating")

View File

@ -1728,7 +1728,7 @@
"create.ponder.empty_blaze_burner.text_2": "Alternativamente, los blaze pueden ser recogidos de sus spawners directamente",
"create.ponder.empty_blaze_burner.text_3": "Ahora tienes una fuente de calor ideal para varias máquinas",
"create.ponder.empty_blaze_burner.text_4": "Por motivos estéticos, los quemadores de blaze vacíos también se pueden encender con pedernal y acero",
"create.ponder.empty_blaze_burner.text_5": "Sin embargo, no son adecuados para la calefacción industrial",
"create.ponder.empty_blaze_burner.text_6": "Sin embargo, no son adecuados para la calefacción industrial",
"create.ponder.encased_fluid_pipe.header": "Revestir tuberías de fluídos",
"create.ponder.encased_fluid_pipe.text_1": "Copper Casing can be used to decorate Fluid Pipes",

View File

@ -1730,7 +1730,7 @@
"create.ponder.empty_blaze_burner.text_2": "また、ブレイズはスポーンブロックから直接捕獲することもできます",
"create.ponder.empty_blaze_burner.text_3": "これで、様々な機械で利用できる理想的な熱源が得られます",
"create.ponder.empty_blaze_burner.text_4": "空のブレイズバーナーは火打石と打ち金を使って火を付ければ装飾にも使えます",
"create.ponder.empty_blaze_burner.text_5": "しかし、これは加工用の熱源には適していません",
"create.ponder.empty_blaze_burner.text_6": "しかし、これは加工用の熱源には適していません",
"create.ponder.encased_fluid_pipe.header": "ケース入り液体パイプ",
"create.ponder.encased_fluid_pipe.text_1": "銅ケーシングで液体パイプを飾ることができます",

View File

@ -1701,7 +1701,7 @@
"create.ponder.empty_blaze_burner.text_2": "또한, 생성기에 있는 블레이즈를 직접 포획할 수도 있습니다",
"create.ponder.empty_blaze_burner.text_3": "이제 다양한 기계에서 사용할 수 있습니다",
"create.ponder.empty_blaze_burner.text_4": "부싯돌과 부시를 사용하여 비어있는 블레이즈 가열기에 불을 붙일 수도 있습니다",
"create.ponder.empty_blaze_burner.text_5": "하지만, 산업용으로 이용하기에는 적합하지 않습니다.",
"create.ponder.empty_blaze_burner.text_6": "하지만, 산업용으로 이용하기에는 적합하지 않습니다.",
"create.ponder.fan_direction.header": "공업용 선풍기의 바람",
"create.ponder.fan_direction.text_1": "공업용 선풍기는 회전력을 사용하여 바람을 일으킬 수 있습니다",

View File

@ -1732,7 +1732,7 @@
"create.ponder.empty_blaze_burner.text_2": "Ewentualnie, Płomyk może być zabrany prosto z jego Spawnera",
"create.ponder.empty_blaze_burner.text_3": "Masz teraz idealne źródło ciepła dla przeróżnych maszyn",
"create.ponder.empty_blaze_burner.text_4": "Dla celów dekoracyjnych, puste palniki można też zapalić krzesiwem",
"create.ponder.empty_blaze_burner.text_5": "Nie będzie on dawał jednak ciepła",
"create.ponder.empty_blaze_burner.text_6": "Nie będzie on dawał jednak ciepła",
"create.ponder.fan_direction.header": "Przepływ powietrza przez izolowane wiatraki",
"create.ponder.fan_direction.text_1": "Izolowane wiatraki używają siły obrotowej, aby wytworzyć przepływ powietrza",

View File

@ -1705,7 +1705,7 @@
"create.ponder.empty_blaze_burner.text_2": "Также Всполохи можут быть захвачены из Спавнера напрямую",
"create.ponder.empty_blaze_burner.text_3": "Теперь у вас есть идеальный источник тепла для ряда машин",
"create.ponder.empty_blaze_burner.text_4": "В эстетических целях, Пустые Горелки могут быть зажжены Огнивом",
"create.ponder.empty_blaze_burner.text_5": "Однако они не будут подходить для промышленного нагрева",
"create.ponder.empty_blaze_burner.text_6": "Однако они не будут подходить для промышленного нагрева",
"create.ponder.fan_direction.header": "Воздушном потоке Вентиляторов в Корпусе",
"create.ponder.fan_direction.text_1": "Вентиляторы в Корпусе используют Силу Вращения для создания Воздушного Потока",

View File

@ -2100,7 +2100,7 @@
"create.ponder.empty_blaze_burner.text_2": "或者,也可以通过右击烈焰人刷怪笼来填充激活烈焰人燃烧室",
"create.ponder.empty_blaze_burner.text_3": "这样,你便有了一个可供部分机器加工的热源",
"create.ponder.empty_blaze_burner.text_4": "如果是为了美观,空的烈焰人燃烧室也可以被打火石点燃",
"create.ponder.empty_blaze_burner.text_5": "但是,这样的热源不足以给机器提加工供足够的热量",
"create.ponder.empty_blaze_burner.text_6": "但是,这样的热源不足以给机器提加工供足够的热量",
"create.ponder.fan_direction.header": "鼓风机的气流",
"create.ponder.fan_direction.text_1": "鼓风机使用旋转力来制造气流",

View File

@ -1702,7 +1702,7 @@
"create.ponder.empty_blaze_burner.text_2": "或者,也可以透過右擊烈焰人刷怪籠來填充啟動烈焰人燃燒室",
"create.ponder.empty_blaze_burner.text_3": "這樣,你便有了一個可供部分機器加工的熱源",
"create.ponder.empty_blaze_burner.text_4": "如果是為了美觀,空的烈焰人燃燒室也可以被打火石點燃",
"create.ponder.empty_blaze_burner.text_5": "但是,這樣的熱源不足以給機器提加工供足夠的熱量",
"create.ponder.empty_blaze_burner.text_6": "但是,這樣的熱源不足以給機器提加工供足夠的熱量",
"create.ponder.fan_direction.header": "鼓風機的氣流",
"create.ponder.fan_direction.text_1": "鼓風機使用動能來製造氣流",

View File

@ -0,0 +1,6 @@
{
"parent": "create:block/blaze_burner/block_with_fire",
"textures": {
"fire": "block/soul_campfire_fire"
}
}