From 364382b29b0ce325da10f26f21d47a089e876218 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Sun, 31 Jan 2021 16:54:04 +0300 Subject: [PATCH] Charcoal block & fuel support --- .../java/ru/betterend/blocks/CharcoalBlock.java | 13 +++++++++++++ .../entities/EndStoneSmelterBlockEntity.java | 10 ++++++++-- .../java/ru/betterend/recipe/CraftingRecipes.java | 2 ++ .../java/ru/betterend/registry/EndBlocks.java | 2 ++ .../resources/assets/betterend/lang/en_us.json | 3 ++- .../resources/assets/betterend/lang/ru_ru.json | 3 ++- .../betterend/textures/block/charcoal_block.png | Bin 0 -> 414 bytes 7 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/CharcoalBlock.java create mode 100644 src/main/resources/assets/betterend/textures/block/charcoal_block.png diff --git a/src/main/java/ru/betterend/blocks/CharcoalBlock.java b/src/main/java/ru/betterend/blocks/CharcoalBlock.java new file mode 100644 index 00000000..7097a6e0 --- /dev/null +++ b/src/main/java/ru/betterend/blocks/CharcoalBlock.java @@ -0,0 +1,13 @@ +package ru.betterend.blocks; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.registry.FuelRegistry; +import net.minecraft.block.Blocks; +import ru.betterend.blocks.basis.BlockBase; + +public class CharcoalBlock extends BlockBase { + public CharcoalBlock() { + super(FabricBlockSettings.copyOf(Blocks.COAL_BLOCK)); + FuelRegistry.INSTANCE.add(this, 6000); + } +} diff --git a/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java b/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java index 05020b72..19c6c0ee 100644 --- a/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java +++ b/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java @@ -9,6 +9,7 @@ import com.google.common.collect.Maps; import it.unimi.dsi.fastutil.objects.Object2IntMap.Entry; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; +import net.fabricmc.fabric.api.registry.FuelRegistry; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.entity.LockableContainerBlockEntity; @@ -398,7 +399,7 @@ public class EndStoneSmelterBlockEntity extends LockableContainerBlockEntity imp return 0; } Item item = fuel.getItem(); - return AVAILABLE_FUELS.getOrDefault(item, 0); + return AVAILABLE_FUELS.getOrDefault(item, getFabricFuel(fuel)); } @Override @@ -442,7 +443,7 @@ public class EndStoneSmelterBlockEntity extends LockableContainerBlockEntity imp } public static boolean canUseAsFuel(ItemStack stack) { - return AVAILABLE_FUELS.containsKey(stack.getItem()); + return AVAILABLE_FUELS.containsKey(stack.getItem()) || getFabricFuel(stack) > 2000; } public static void registerFuel(ItemConvertible fuel, int time) { @@ -452,4 +453,9 @@ public class EndStoneSmelterBlockEntity extends LockableContainerBlockEntity imp public static Map availableFuels() { return AVAILABLE_FUELS; } + + private static int getFabricFuel(ItemStack stack) { + Integer ticks = FuelRegistry.INSTANCE.get(stack.getItem()); + return ticks == null ? 0 : ticks; + } } diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index 0dcafc0b..735c04cb 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -178,6 +178,8 @@ public class CraftingRecipes { .addMaterial('#', EndBlocks.VIOLECITE.stone, EndBlocks.VIOLECITE.bricks, EndBlocks.VIOLECITE.tiles) .addMaterial('P', Blocks.PURPUR_BLOCK) .build(); + + GridRecipe.make("charcoal_block", EndBlocks.CHARCOAL_BLOCK).setShape("###", "###", "###").addMaterial('#', Items.CHARCOAL).build(); } private static void registerLantern(String name, Block lantern, Block slab) { diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 9fa2a9e2..ab9f2e6c 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -21,6 +21,7 @@ import ru.betterend.blocks.BulbVineLanternBlock; import ru.betterend.blocks.BulbVineLanternColoredBlock; import ru.betterend.blocks.BulbVineSeedBlock; import ru.betterend.blocks.ChandelierBlock; +import ru.betterend.blocks.CharcoalBlock; import ru.betterend.blocks.CharniaBlock; import ru.betterend.blocks.ChorusGrassBlock; import ru.betterend.blocks.DenseEmeraldIceBlock; @@ -292,6 +293,7 @@ public class EndBlocks { public static final MetalMaterial THALLASIUM = MetalMaterial.makeNormal("thallasium", MaterialColor.BLUE, EndToolMaterial.THALLASIUM, EndArmorMaterial.TERMINITE); public static final MetalMaterial TERMINITE = MetalMaterial.makeOreless("terminite", MaterialColor.field_25708, 7F, 9F, EndToolMaterial.TERMINITE, EndArmorMaterial.TERMINITE); public static final Block AETERNIUM_BLOCK = registerBlock("aeternium_block", new AeterniumBlock()); + public static final Block CHARCOAL_BLOCK = registerBlock("charcoal_block", new CharcoalBlock()); public static final Block ENDER_BLOCK = registerBlock("ender_block", new EnderBlock()); public static final Block AURORA_CRYSTAL = registerBlock("aurora_crystal", new AuroraCrystalBlock()); diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 955bd1ba..b03141fb 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -657,5 +657,6 @@ "item.betterend.thallasium_hammer": "Thallasium Hammer", "item.betterend.thallasium_helmet": "Thallasium Helmet", "item.betterend.thallasium_leggings": "Thallasium Leggings", - "block.betterend.missing_tile": "Missing Tile" + "block.betterend.missing_tile": "Missing Tile", + "block.betterend.charcoal_block": "Charcoal Block" } diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index 8b988c95..f7fd144f 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -677,5 +677,6 @@ "item.betterend.thallasium_hammer": "Талласиевый молот", "item.betterend.thallasium_helmet": "Талласиевый шлем", "item.betterend.thallasium_leggings": "Талласиевые поножи", - "block.betterend.missing_tile": "Отсутствующая плитка" + "block.betterend.missing_tile": "Отсутствующая плитка", + "block.betterend.charcoal_block": "Блок древесного угля" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/textures/block/charcoal_block.png b/src/main/resources/assets/betterend/textures/block/charcoal_block.png new file mode 100644 index 0000000000000000000000000000000000000000..b86c8eaebfa855c03789e8b9ba74061261d056c6 GIT binary patch literal 414 zcmV;P0b%}$P)Px$SV=@dR5*=wQo(A%KolJ1Z8i-t7>U?Q#e@ImvZDIsyq!y@OCTf%IaC z7u*jQSyG`vp*`!R#5q0t3uH;fy2=DNlxoe*Gmp=&of1gm1gZbozH7qG`^aqlski$Z zel2^+L?Wsq- z-D{k7m`2w}EnYdDU`&JF-ak-p_vrfg048JCM-+L6#eAmE6N0$a_JQ-;$n2&ELyQ>P z$U=Kkce!XWpJDyFz-IlTta;{j(P*=NzEZNSuq~GD0hy`l8;F$h+ufweNB{r;07*qo IM6N<$f