From c12be59b3ac8c54c33fb0ce72a29550ea9cc9817 Mon Sep 17 00:00:00 2001 From: NightKosh Date: Sun, 9 Dec 2018 22:54:34 +0300 Subject: [PATCH] Cursed flame, #192 --- .../block/BlockCursedFlame.java | 147 ++++++++++++++++++ .../gravestone_extended/core/GSBlock.java | 7 +- .../gravestone_extended/core/GSModels.java | 3 + .../core/ResourcesModels.java | 2 + .../helper/GameRuleHelper.java | 5 + .../item/itemblock/IBCursedFlame.java | 19 +++ .../META-INF/Gravestone_mod_Extended_at.cfg | 4 +- .../blockstates/cursed_flame.json | 50 ++++++ .../models/block/cursed_flame/floor.json | 29 ++++ .../models/block/cursed_flame/floor0.json | 7 + .../models/block/cursed_flame/floor1.json | 7 + .../models/block/cursed_flame/side.json | 13 ++ .../models/block/cursed_flame/side0.json | 7 + .../models/block/cursed_flame/side1.json | 7 + .../models/block/cursed_flame/side_alt.json | 13 ++ .../models/block/cursed_flame/side_alt0.json | 7 + .../models/block/cursed_flame/side_alt1.json | 7 + .../models/block/cursed_flame/up.json | 17 ++ .../models/block/cursed_flame/up0.json | 7 + .../models/block/cursed_flame/up1.json | 7 + .../models/block/cursed_flame/up_alt.json | 17 ++ .../models/block/cursed_flame/up_alt0.json | 7 + .../models/block/cursed_flame/up_alt1.json | 7 + .../models/item/block/cursed_flame.json | 3 + .../textures/blocks/cursed_flame/layer_0.png | Bin 0 -> 12525 bytes .../blocks/cursed_flame/layer_0.png.mcmeta | 38 +++++ .../textures/blocks/cursed_flame/layer_1.png | Bin 0 -> 13099 bytes .../blocks/cursed_flame/layer_1.png.mcmeta | 3 + 28 files changed, 437 insertions(+), 3 deletions(-) create mode 100644 src/main/java/nightkosh/gravestone_extended/block/BlockCursedFlame.java create mode 100644 src/main/java/nightkosh/gravestone_extended/item/itemblock/IBCursedFlame.java create mode 100644 src/main/resources/assets/gravestone-extended/blockstates/cursed_flame.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor0.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor1.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side0.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side1.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt0.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt1.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up0.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up1.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt0.json create mode 100644 src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt1.json create mode 100644 src/main/resources/assets/gravestone-extended/models/item/block/cursed_flame.json create mode 100644 src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_0.png create mode 100644 src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_0.png.mcmeta create mode 100644 src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_1.png create mode 100644 src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_1.png.mcmeta diff --git a/src/main/java/nightkosh/gravestone_extended/block/BlockCursedFlame.java b/src/main/java/nightkosh/gravestone_extended/block/BlockCursedFlame.java new file mode 100644 index 0000000..a5abda7 --- /dev/null +++ b/src/main/java/nightkosh/gravestone_extended/block/BlockCursedFlame.java @@ -0,0 +1,147 @@ +package nightkosh.gravestone_extended.block; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockFire; +import net.minecraft.block.BlockTNT; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import nightkosh.gravestone_extended.core.GSTabs; +import nightkosh.gravestone_extended.core.ModInfo; +import nightkosh.gravestone_extended.helper.GameRuleHelper; + +import java.util.Random; + +/** + * GraveStone mod + * + * @author NightKosh + * @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html) + */ +public class BlockCursedFlame extends BlockFire { + + public BlockCursedFlame() { + super(); + this.setUnlocalizedName("cursed_flame"); + this.setCreativeTab(GSTabs.otherItemsTab); + this.setRegistryName(ModInfo.ID, "cursed_flame"); + } + + @Override + public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity) { + entity.setFire(8);//TODO !!!!!!!!!!!!!!!!!!! + } + + @Override + public void updateTick(World world, BlockPos pos, IBlockState state, Random rand) { + if (GameRuleHelper.checkFireTick(world)) { + if (world.isAreaLoaded(pos, 2)) { // Forge: prevent loading unloaded chunks when spreading fire + Block block = world.getBlockState(pos.down()).getBlock(); + boolean flag = block.isFireSource(world, pos.down(), EnumFacing.UP); + + int i = state.getValue(AGE); + + if (!flag && world.isRaining() && this.canDie(world, pos) && rand.nextFloat() < 0.2F + i * 0.03F) { + } else { + if (i < 15) { + state = state.withProperty(AGE, i + rand.nextInt(3) / 2); + world.setBlockState(pos, state, 4); + } + + world.scheduleUpdate(pos, this, this.tickRate(world) + rand.nextInt(10)); + + if (!flag) { + if (!this.canNeighborCatchFire(world, pos)) { + return; + } + + if (!this.canCatchFire(world, pos.down(), EnumFacing.UP) && i == 15 && rand.nextInt(4) == 0) { + return; + } + } + + boolean flag1 = world.isBlockinHighHumidity(pos); + int j = 0; + + if (flag1) { + j = -50; + } + + this.tryCatchFire(world, pos.east(), 300 + j, rand, i, EnumFacing.WEST); + this.tryCatchFire(world, pos.west(), 300 + j, rand, i, EnumFacing.EAST); + this.tryCatchFire(world, pos.down(), 250 + j, rand, i, EnumFacing.UP); + this.tryCatchFire(world, pos.up(), 250 + j, rand, i, EnumFacing.DOWN); + this.tryCatchFire(world, pos.north(), 300 + j, rand, i, EnumFacing.SOUTH); + this.tryCatchFire(world, pos.south(), 300 + j, rand, i, EnumFacing.NORTH); + + for (int k = -1; k <= 1; ++k) { + for (int l = -1; l <= 1; ++l) { + for (int i1 = -1; i1 <= 4; ++i1) { + if (k != 0 || i1 != 0 || l != 0) { + int j1 = 100; + + if (i1 > 1) { + j1 += (i1 - 1) * 100; + } + + BlockPos blockpos = pos.add(k, i1, l); + int k1 = this.getNeighborEncouragement(world, blockpos); + + if (k1 > 0) { + int l1 = (k1 + 40 + world.getDifficulty().getDifficultyId() * 7) / (i + 30); + + if (flag1) { + l1 /= 2; + } + + if (l1 > 0 && rand.nextInt(j1) <= l1 && (!world.isRaining() || !this.canDie(world, blockpos))) { + int i2 = i + rand.nextInt(5) / 4; + + if (i2 > 15) { + i2 = 15; + } + + world.setBlockState(blockpos, state.withProperty(AGE, i2), 3); + } + } + } + } + } + } + } + } + } + } + + @Override + protected boolean canDie(World world, BlockPos pos) { + return false; + } + + protected void tryCatchFire(World world, BlockPos pos, int chance, Random random, int age, EnumFacing face) { + int i = world.getBlockState(pos).getBlock().getFlammability(world, pos, face); + + if (random.nextInt(chance) < i) { + IBlockState iblockstate = world.getBlockState(pos); + + if (random.nextInt(age + 10) < 5 && !world.isRainingAt(pos)) { + int j = age + random.nextInt(5) / 4; + + if (j > 15) { + j = 15; + } + + world.setBlockState(pos, this.getDefaultState().withProperty(AGE, j), 3); + } else { + world.setBlockToAir(pos); + } + + if (iblockstate.getBlock() == Blocks.TNT) { + Blocks.TNT.onBlockDestroyedByPlayer(world, pos, iblockstate.withProperty(BlockTNT.EXPLODE, true)); + } + } + } +} diff --git a/src/main/java/nightkosh/gravestone_extended/core/GSBlock.java b/src/main/java/nightkosh/gravestone_extended/core/GSBlock.java index 0c7b5e9..85e409c 100644 --- a/src/main/java/nightkosh/gravestone_extended/core/GSBlock.java +++ b/src/main/java/nightkosh/gravestone_extended/core/GSBlock.java @@ -83,6 +83,9 @@ public class GSBlock extends nightkosh.gravestone.core.GSBlock { public static final Block FROZEN_LAVA = new BlockFrozenLava(); public static final ItemBlock FROZEN_LAVA_IB = new IBFrozenLava(FROZEN_LAVA); + public static final Block CURSED_FLAME = new BlockCursedFlame(); + public static final ItemBlock CURSED_FLAME_IB = new IBCursedFlame(CURSED_FLAME); + public static final BlockFluidToxicWater TOXIC_WATER = new BlockFluidToxicWater(); @Mod.EventBusSubscriber(modid = ModInfo.ID) @@ -93,7 +96,7 @@ public static void registerBlocks(final RegistryEvent.Register event) { final IForgeRegistry registry = event.getRegistry(); registry.registerAll(MEMORIAL, EXECUTION, SPAWNER, TRAP, WITHERED_GLASS, PILE_OF_BONES, WITHERED_GLASS_PANE, BONE_BLOCK, BONE_SLAB, BONE_STAIRS, HAUNTED_CHEST, CANDLE, SKULL_CANDLE_SKELETON, SKULL_CANDLE_ZOMBIE, SKULL_CANDLE_WITHER, - ALTAR, INVISIBLE_WALL, CORPSE, TOXIC_WATER, CATACOMBS_PORTAL, FROZEN_LAVA); + ALTAR, INVISIBLE_WALL, CORPSE, TOXIC_WATER, CATACOMBS_PORTAL, FROZEN_LAVA, CURSED_FLAME); } @SubscribeEvent @@ -102,7 +105,7 @@ public static void registerItemBlocks(final RegistryEvent.Register event) registry.registerAll(MEMORIAL_IB, EXECUTION_IB, SPAWNER_IB, TRAP_IB, WITHERED_GLASS_IB, WITHERED_GLASS_PANE_IB, PILE_OF_BONES_IB, BONE_BLOCK_IB, BONE_SLAB_IB, BONE_STAIRS_IB, HAUNTED_CHEST_IB, CANDLE_IB, SKULL_CANDLE_SKELETON_IB, SKULL_CANDLE_ZOMBIE_IB, SKULL_CANDLE_WITHER_IB, - ALTAR_IB, CORPSE_IB, CATACOMBS_PORTAL_IB, FROZEN_LAVA_IB); + ALTAR_IB, CORPSE_IB, CATACOMBS_PORTAL_IB, FROZEN_LAVA_IB, CURSED_FLAME_IB); } } } diff --git a/src/main/java/nightkosh/gravestone_extended/core/GSModels.java b/src/main/java/nightkosh/gravestone_extended/core/GSModels.java index 27b451c..198a989 100644 --- a/src/main/java/nightkosh/gravestone_extended/core/GSModels.java +++ b/src/main/java/nightkosh/gravestone_extended/core/GSModels.java @@ -90,6 +90,9 @@ public static void registerModels(final ModelRegistryEvent event) { //frozen lava ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(GSBlock.FROZEN_LAVA), 0, ResourcesModels.FROZEN_LAVA); + //cursed flame + ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(GSBlock.CURSED_FLAME), 0, ResourcesModels.CURSED_FLAME); + //portal ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(GSBlock.CATACOMBS_PORTAL), 0, ResourcesModels.CATACOMBS_PORTAL); diff --git a/src/main/java/nightkosh/gravestone_extended/core/ResourcesModels.java b/src/main/java/nightkosh/gravestone_extended/core/ResourcesModels.java index 4e768e4..4cac7a2 100644 --- a/src/main/java/nightkosh/gravestone_extended/core/ResourcesModels.java +++ b/src/main/java/nightkosh/gravestone_extended/core/ResourcesModels.java @@ -126,4 +126,6 @@ public class ResourcesModels extends Resources { public static final ModelResourceLocation CATACOMBS_PORTAL = new ModelResourceLocation(ModInfo.ID + ":block/catacombs_portal", "inventory"); public static final ModelResourceLocation FROZEN_LAVA = new ModelResourceLocation(ModInfo.ID + ":block/frozen_lava", "inventory"); + + public static final ModelResourceLocation CURSED_FLAME = new ModelResourceLocation(ModInfo.ID + ":block/cursed_flame", "inventory"); } diff --git a/src/main/java/nightkosh/gravestone_extended/helper/GameRuleHelper.java b/src/main/java/nightkosh/gravestone_extended/helper/GameRuleHelper.java index eacf1ff..490f4fa 100644 --- a/src/main/java/nightkosh/gravestone_extended/helper/GameRuleHelper.java +++ b/src/main/java/nightkosh/gravestone_extended/helper/GameRuleHelper.java @@ -12,6 +12,7 @@ public class GameRuleHelper { public static final String RULE_MOB_GRIEFING = "mobGriefing"; public static final String RULE_KEEP_INVENTORY = "keepInventory"; + public static final String RULE_DO_FIRE_TICK = "doFireTick"; public static boolean checkRule(World world, String rule) { return world.getGameRules().getBoolean(rule); @@ -24,4 +25,8 @@ public static boolean checkMobGriefing(World world) { public static boolean checkKeepInventory(World world) { return checkRule(world, RULE_KEEP_INVENTORY); } + + public static boolean checkFireTick(World world) { + return checkRule(world, RULE_DO_FIRE_TICK); + } } diff --git a/src/main/java/nightkosh/gravestone_extended/item/itemblock/IBCursedFlame.java b/src/main/java/nightkosh/gravestone_extended/item/itemblock/IBCursedFlame.java new file mode 100644 index 0000000..ec629bd --- /dev/null +++ b/src/main/java/nightkosh/gravestone_extended/item/itemblock/IBCursedFlame.java @@ -0,0 +1,19 @@ +package nightkosh.gravestone_extended.item.itemblock; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemBlock; +import nightkosh.gravestone_extended.core.GSBlock; + +/** + * GraveStone mod + * + * @author NightKosh + * @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html) + */ +public class IBCursedFlame extends ItemBlock { + + public IBCursedFlame(Block block) { + super(block); + this.setRegistryName(GSBlock.CURSED_FLAME.getRegistryName()); + } +} diff --git a/src/main/resources/META-INF/Gravestone_mod_Extended_at.cfg b/src/main/resources/META-INF/Gravestone_mod_Extended_at.cfg index 3e568a4..a9a4e26 100644 --- a/src/main/resources/META-INF/Gravestone_mod_Extended_at.cfg +++ b/src/main/resources/META-INF/Gravestone_mod_Extended_at.cfg @@ -3,4 +3,6 @@ public net.minecraft.util/EnumParticleTypes field_186837_Z #BY_NAME public net.minecraft.entity.player/EntityPlayerMP field_184851_cj #invulnerableDimensionChange public net.minecraft.client.renderer.block.model/ModelRotation field_177546_q #MAP_ROTATIONS public net.minecraft.client.renderer.block.model/ModelRotation field_177545_r #combinedXY -public net.minecraft.entity/Entity field_70134_J #isInWeb \ No newline at end of file +public net.minecraft.entity/Entity field_70134_J #isInWeb +public net.minecraft.block/BlockFire func_176533_e(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)Z #canNeighborCatchFire +public net.minecraft.block/BlockFire func_176538_m(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)I #getNeighborEncouragement \ No newline at end of file diff --git a/src/main/resources/assets/gravestone-extended/blockstates/cursed_flame.json b/src/main/resources/assets/gravestone-extended/blockstates/cursed_flame.json new file mode 100644 index 0000000..04bb081 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/blockstates/cursed_flame.json @@ -0,0 +1,50 @@ +{ + "multipart": [ + { "when": {"north": false, "east": false, "south": false, "west": false, "up": false}, + "apply": [ + { "model": "gravestone-extended:cursed_flame/floor0" }, + { "model": "gravestone-extended:cursed_flame/floor1" } + ] + }, + { "when": {"OR": [{"north": true}, {"north": false, "east": false, "south": false, "west": false, "up": false}]}, + "apply": [ + { "model": "gravestone-extended:cursed_flame/side0" }, + { "model": "gravestone-extended:cursed_flame/side1" }, + { "model": "gravestone-extended:cursed_flame/side_alt0" }, + { "model": "gravestone-extended:cursed_flame/side_alt1" } + ] + }, + { "when": {"OR": [{"east": true}, {"north": false, "east": false, "south": false, "west": false, "up": false}]}, + "apply": [ + { "model": "gravestone-extended:cursed_flame/side0", "y": 90 }, + { "model": "gravestone-extended:cursed_flame/side1", "y": 90 }, + { "model": "gravestone-extended:cursed_flame/side_alt0", "y": 90 }, + { "model": "gravestone-extended:cursed_flame/side_alt1", "y": 90 } + ] + }, + { "when": {"OR": [{"south": true}, {"north": false, "east": false, "south": false, "west": false, "up": false}]}, + "apply": [ + { "model": "gravestone-extended:cursed_flame/side0", "y": 180 }, + { "model": "gravestone-extended:cursed_flame/side1", "y": 180 }, + { "model": "gravestone-extended:cursed_flame/side_alt0", "y": 180 }, + { "model": "gravestone-extended:cursed_flame/side_alt1", "y": 180 } + ] + }, + { "when": {"OR": [{"west": true}, {"north": false, "east": false, "south": false, "west": false, "up": false}]}, + "apply": [ + { "model": "gravestone-extended:cursed_flame/side0", "y": 270 }, + { "model": "gravestone-extended:cursed_flame/side1", "y": 270 }, + { "model": "gravestone-extended:cursed_flame/side_alt0", "y": 270 }, + { "model": "gravestone-extended:cursed_flame/side_alt1", "y": 270 } + ] + }, + { "when": {"up": true}, + "apply": [ + { "model": "gravestone-extended:cursed_flame/up0" }, + { "model": "gravestone-extended:cursed_flame/up1" }, + { "model": "gravestone-extended:cursed_flame/up_alt0" }, + { "model": "gravestone-extended:cursed_flame/up_alt1" } + ] + } + ] +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor.json new file mode 100644 index 0000000..002cce9 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor.json @@ -0,0 +1,29 @@ +{ + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 0, 8.8 ], + "to": [ 16, 22.4, 8.8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "x", "angle": -22.5, "rescale": true }, + "shade": false, + "faces": { "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + }, + { "from": [ 0, 0, 7.2 ], + "to": [ 16, 22.4, 7.2 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "x", "angle": 22.5, "rescale": true }, + "shade": false, + "faces": { "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + }, + { "from": [ 8.8, 0, 0 ], + "to": [ 8.8, 22.4, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "z", "angle": -22.5, "rescale": true }, + "shade": false, + "faces": { "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + }, + { "from": [ 7.2, 0, 0 ], + "to": [ 7.2, 22.4, 16 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "z", "angle": 22.5, "rescale": true }, + "shade": false, + "faces": { "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + } + ] +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor0.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor0.json new file mode 100644 index 0000000..2251177 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor0.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/floor", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_0", + "fire": "gravestone-extended:blocks/cursed_flame/layer_0" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor1.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor1.json new file mode 100644 index 0000000..37f2995 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/floor1.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/floor", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_1", + "fire": "gravestone-extended:blocks/cursed_flame/layer_1" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side.json new file mode 100644 index 0000000..e16c6b3 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side.json @@ -0,0 +1,13 @@ +{ + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 0, 0.01 ], + "to": [ 16, 22.4, 0.01 ], + "shade": false, + "faces": { + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }, + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" } + } + } + ] +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side0.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side0.json new file mode 100644 index 0000000..0b30bfd --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side0.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/side", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_0", + "fire": "gravestone-extended:blocks/cursed_flame/layer_0" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side1.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side1.json new file mode 100644 index 0000000..1fae33d --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side1.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/side", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_1", + "fire": "gravestone-extended:blocks/cursed_flame/layer_1" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt.json new file mode 100644 index 0000000..38f82bb --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt.json @@ -0,0 +1,13 @@ +{ + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 0, 0.01 ], + "to": [ 16, 22.4, 0.01 ], + "shade": false, + "faces": { + "south": { "uv": [ 16, 0, 0, 16 ], "texture": "#fire" }, + "north": { "uv": [ 16, 0, 0, 16 ], "texture": "#fire" } + } + } + ] +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt0.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt0.json new file mode 100644 index 0000000..f2e64c8 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt0.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/side_alt", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_0", + "fire": "gravestone-extended:blocks/cursed_flame/layer_0" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt1.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt1.json new file mode 100644 index 0000000..0491ec5 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/side_alt1.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/side_alt", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_1", + "fire": "gravestone-extended:blocks/cursed_flame/layer_1" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up.json new file mode 100644 index 0000000..e0f391d --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up.json @@ -0,0 +1,17 @@ +{ + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 16, 0 ], + "to": [ 16, 16, 16 ], + "rotation": { "origin": [ 16, 16, 8 ], "axis": "z", "angle": 22.5, "rescale": true }, + "shade": false, + "faces": { "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire", "rotation": 270 }} + }, + { "from": [ 0, 16, 0 ], + "to": [ 16, 16, 16 ], + "rotation": { "origin": [ 0, 16, 8 ], "axis": "z", "angle": -22.5, "rescale": true }, + "shade": false, + "faces": { "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire", "rotation": 90 }} + } + ] +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up0.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up0.json new file mode 100644 index 0000000..b71dae9 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up0.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/up", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_0", + "fire": "gravestone-extended:blocks/cursed_flame/layer_0" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up1.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up1.json new file mode 100644 index 0000000..c0f174f --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up1.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/up", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_1", + "fire": "gravestone-extended:blocks/cursed_flame/layer_1" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt.json new file mode 100644 index 0000000..9bfab62 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt.json @@ -0,0 +1,17 @@ +{ + "ambientocclusion": false, + "elements": [ + { "from": [ 0, 16, 0 ], + "to": [ 16, 16, 16 ], + "rotation": { "origin": [ 8, 16, 16 ], "axis": "x", "angle": -22.5, "rescale": true }, + "shade": false, + "faces": { "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire", "rotation": 180 }} + }, + { "from": [ 0, 16, 0 ], + "to": [ 16, 16, 16 ], + "rotation": { "origin": [ 8, 16, 0 ], "axis": "x", "angle": 22.5, "rescale": true }, + "shade": false, + "faces": { "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#fire" }} + } + ] +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt0.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt0.json new file mode 100644 index 0000000..d676f10 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt0.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/up_alt", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_0", + "fire": "gravestone-extended:blocks/cursed_flame/layer_0" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt1.json b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt1.json new file mode 100644 index 0000000..a9aa9df --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/block/cursed_flame/up_alt1.json @@ -0,0 +1,7 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/up_alt", + "textures": { + "particle": "gravestone-extended:blocks/cursed_flame/layer_1", + "fire": "gravestone-extended:blocks/cursed_flame/layer_1" + } +} diff --git a/src/main/resources/assets/gravestone-extended/models/item/block/cursed_flame.json b/src/main/resources/assets/gravestone-extended/models/item/block/cursed_flame.json new file mode 100644 index 0000000..7bbc213 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/models/item/block/cursed_flame.json @@ -0,0 +1,3 @@ +{ + "parent": "gravestone-extended:block/cursed_flame/side_0" +} diff --git a/src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_0.png b/src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_0.png new file mode 100644 index 0000000000000000000000000000000000000000..1a929fcd7317b6aee187bf696f6cbe3ae907d9a8 GIT binary patch literal 12525 zcmZvDWmFtMkmfKD9A*eUxC9CA1h)VI0)qq#8l2$nFnEB$f(8!~+#$GIaJS&@?lza* zyW89M_I~uMuKv?jUsZMY*WaMZayXa}OaK6Y^Fdxl?Vkh#06+jb>c3iK)6vvFf#j?v zCj}@UCEx$2pjb$Llmq~(Vz8c!U;WcD9OQMJ0RY_Y|0qcP_JyYZ8cAHlj@<19GJ$-B}49p!HJUrrp&y<@@9T@%|wIo0T z%vy+!DfNN+(&2QZwXypz;?#e|_vF5fT&>N#qVDwFs`twCk%jom?7Sc*>dm9%!R7w<)L z1Y`?4cog(qDyDuYR=t!cn%9;L{snE8&lZtR)=oAW}%FbQ@@cfj@ycK zYddL4udg2>42MSAt5QZ^mV2*$PS@pAPny^qRN)-+#wWoTz9C4~W|BieWFIQ0iZ~zMkSTeE6}y{pjb^bUL6vMGEpqxcG?CU2V90A>r#|S)rPlI-3_(JAGK( zZ)ncq&$#O_Oi^w@a46e*UM=o#_#%v(tPuNC@4Wp@y}DtFztpK74yTIzD^o~nH^m>_ ziKad@-Z#kmDfhj!sBjpbid>}L4OSmLY<&NvzrU9E*lt@S8QS!CeF%4Jtj1e&W_v=1}P#j z)mqGPlOz8Ub3jmOnW+H2NfLVTt($6(B`y8>O#H}uyK(>O!q8ADGL6=%joh06F{hBawu8cAKkItdD!`=v&Q=a_L&SPTYHlzJfa!dxLkrS;kzPI(!w-xDz zJkBd~_#8qkJdU3rtM%GTFN;2BeJzNEmcEAHTi5jh+s|Y>hmOV#T)w}(p6&4*&asde z$eg6T9531IKSS#IINRQpdtZJ|uIFAd7@JGk3MwSHWk2TDL|lf!M}>&{XB|bD`(;)3nUX4tM1-|2=yZ#wA2q$VEAa zX#V2)_t6>y$@>I!K{^t_%kPSTFsbc0I`3clcnU01%kG|`f6j$Mu(iVr4DMmu+Q!BS zJd`i6*KnPpGBpm67a6eQAY6L#_XNXuJ394@yDnS ztyA0yw^Uw3SDn)Khu51Y_ur?^Z(kPL+AUYx4}Dvl9Ti2+X3$1Y(UMOd$KV)iQT3zC zk7EVIh?`0A%KG!>$}i3Rgxf&@@4kBP#Jspgyiz>oFOTWf!EFjP9(on|D63`r4gmW(}-^*;z?A(U9nuC zftJ9&fg#*UJs9H>=eUuSqZXBC8!0fCf}uoQ%N9EUbfpB4$2!bT-`DSZPcq=^6V|5| zw0#$Jdc!ZUg#~z}mz-}vxGP1EZ9tYMO&=Wfb}b2-wBkWy^bM~hWi2;%TsUqQD7O`Ri#vp!~H(8F9-D@E;0q18~vAxLaQezv)dzhTfCr`yz zbIU3j$}ip97QDPmWaZxiKHHC^$@6I{=dN2BWu%eqkZrV=<2}v`Bjg3wnZHBPISN{3 z%Pw5YA@6YpoJ5_=_>7&9VJuzZJvb6(#FPP?A7EDzm;YAJ7On3 zI$+6IN1LvBp#;-A9X;Q3wYQ8->^Se#Or%@Xw0G&UqvI^K7bE+A3h}d0L23+|I#NO$ z7AU9J z@o>Km+(V`}K;Q6@v>TCS;l(`lI{G20``ycp+E+>HsqRt5CXnq46u5qpE^n}4q(<8t zR@5CXzd04=@9eeEM#T}UjKM#sdmmLFrTi#M4ksBPFd+LAj3WkJx!W_F`UCQD4-;U@ z?B=T^35*?q5|N`L7jdQ>ZN>YFbG5ph#<-Vtpw>!y)=35`{t6Dc9;X+YlBEOkei;u% z%=cDip66GTv6T;UCIK%%zZ@qN;BjI;d-^pO>gr-ufw5#a;ucMh1H^-bPD~IE!I&?_ z;K6s^etFhePiuzE0u5pjxR$(Kq6p?3vD41>MkUrcB7(#1VNr2GQJ<}stGm3HkAN7P zh|72$Zmb~C7bveGJK%381}C8F&d8xhyYa%}vWSbDIS-8+IXf-y3Fd^%!lWqVR8c2o zV$$8bL=Clljc1f|9OvWAZIZ9*J*%qGE@qjK&RQM?p|)1ClcCn?t!ya+M8;4jRZp=3 z028GAhj)jcc#w-evVYO@M0(iKiyA@32>}~u<8VfDZ6Mnnedj%Ds1x%#Z}h3BB*wPBv-v zuL8{u!?dZ0AdBoH55!GPDFYvusRrhorqMWaMEzsl*ym8qXjvvyHy6^N!36zO9n6Hz zyTXwPV^FuVSG2X-`3128gzc0L&a_5z)$w6`__kp^P!h5B63`jN+ z8TBMe19b8hN3JfNap(J=R3`oCfpHKxxFWFOYf7 z1|3P3Kn$%B=W7$3+z(bL(IzJkP5UXrS$cr`GzZ!TI%{J5lD^lsP6i$T7yu*j z&FiSJIMu&@Kz?&h*GagR!{Q$Ho?x@I-G8=a5z%nm8^61S*53RCXw;6RX-?h=#Xm(T zW^De8qJ8vW_u2_2lD*VMF{x%8$n9iGiB`u8-Qz=!t;#%AK1+h7#RJJz2AW}`E>8;I za0_3{SS+QYuiwOYX8Ro7B@u75OBSze)tkwDzk)v+j;wPEOn7SsD_Fg|Swu)C_p7D! z0z~wV@pxs8Wm~uXSEDz(zoaqx((2+_{DVfLq^)!tA z3vFEqm8G&YKGKrGzKQ0RHs>cEGiSC{iMv_UYwI?~KJUzCHSgd%avm03uYv`+A7GkHZ+KW6hPCou-!N>Uiaa^SRq7fIs_^f}PqVh>34 z6fHJ%;#=c<%<4I;jm6Y*qvCa{_R7W)1^vXk?;Qs_U*SBLt-p( za?)}3@_;+5G&7!KF@XIxr81v@5Z-7<1*Y*-8hHek843FSfJUX7)~P;6PlYfW4?drA zLEQ9j8nMh@P7HQS!E{m)A?3tB{dm4Na8mCR@_U&1(z6a0_ z#&jb5GO7pYdOSmQJ0aKrCjQ7~DJlg+4|7AtuTadW!pEfGg2a-i)|g z;+2Uv4dUQ55THNtvsPtZ=E~QvYG_!IcdQPIgJ)cV*V17`N2Yy{6`rU`(*1gG*$EHA z{4bn-#z~NkyKXu}UA<~k@ac-=e2C;Ac{>w0$K0da4 z=6yCz3}Uy=F8whoBR2OigcDAwiL)zv@!r5L z)i9CX9H&qMNeWpqNGZ%9F5i(SflEE>Abci@GxIS0k1w`9?*$UPH0a6=Prl!lCT8y3 z8%+Fd7&WG}07d)duL`fhK?GtjXJ5jQkQ)DD0Vn`gCi9!3S7e`-qnm8j$6`ziizc_; zRH1x<14kr9*MEs$`BEg|j-X4k_jp?{^`kV+zSq1M?8j}d5HXs1m7f-e|CFJn-lALO zV$V7KtcYef6M8CoS5OTy9_Y47d3Do)a{+YY{Q6TpM)BI|&q`Jy;8l7Y!=xosn&|g9 z((C!=%pZI`0yx^ zI;jFwXcz}06svi@_Kkk~QC4vSvSHr}4a6)Bxhq@&XJrD4(!s|12}hYV*X6|3SBJ8u zkn&lqDsE&a&XXZZ!uZ4Yn`=RsDFXD@(X54VP*k#ixNV-mH`VpGklTF@N9E;s7O(Ogw>eGeN zY3Zr`<}bf@aVmK~1{p|F;hzGzP)L5uvwoXy9v6!*p@}7%3Qlr0TOb;0nh?DAMV6m7 zmsnpBLLvqO9)yaxj!j7;_a|67((87qKJK1ASM3+bDW{G8z0CdSt_o3k6U-^CZ^l$; zZOUkYdWpMNI=kw>w_A`be(`-d;CFJMMy6xG)?D2=67F^YmQ3gGs)_-uE&)oxe6)Ls z{M{iQ)}l-v;zHhDS9|Yb_JGq@-U!z?^u(W)!%?7Veo_JND3=%tl0?L`$Iinm5F!W@ z%Bem_4dSj85a3=-T|2DI+L-h&AiqXV4Q&8;Mf99Ge5lRaPsR# zy8%1Vv836XR6Ka9fYA;@%?hA@*##Tukz%!JkP@%C4iz1nNJj3AvllRT6w-dG1|R2Y zFpUt&i}hfY#(*SJsir;6`K`s`Xj+cm<5gyEBw#I2caNJm;vprq(VY=p*o1(vb4V4Y z1w^_Hl$e6z4GUHYk-f#A1zN=i$jdg*3V6$j&QOyF7D47oggrd`UdGC$*^n1W`cZnQgOZp@ALXx}~B0+i^A_7F2*%iCfYGyMZfl7U>;5}=6 zghkOb|B5K+d1t{K5lUMx&zi%DFo!(=Sw5fP@tD6o%$#;k;*PiuV&+ATIy9fs4w4NZ zhxHM?HKT`+>^ilcU7ct*RNX^ug8CHh_lH-jAsIhf3myekZq}7v-BtxL%jl0a-KGiQ z7tEmcGIJFlW{=hh`*PYH$#>Nkt{5A}neNZ5V9*JbsxE!ij#&>9b5CZrj?KvBow>(M zdhRwuA#)7`zgpF%-9|MBWKiV!<4l8%XAfUe;hVUcDond zm@%r>2Poxd)C$hMhq~5$N;~ka$iH|+Sj1_nzRZr8$|ciI&vMViFGBMnjc3>n)uA@I z^~nAUQ_V0%-R#@Zt;B-~>ds-GE0il~?~8U9_Vc;3?hwl+!G#mLg+YV0-TGCN!?K@8F&{9C_XJRVneyy4J$BTSa;eR9GHXS*! zxS6KJK=5h&8%ghfvEY0Nfj8=Ov(!aw}}UXh@;qX(njAE%Ie$>yPD))$@O^Zs?`?>M+ZdDB+MNSQjbM0E2}gdwSn$F>q;h832 zDWz?jE54hu$=?p_;nw0>W;MDVPEBAGMPAzIaO@1$G#4$LeJHk+1G^+{Fq(nPGU{8e zFPxOXfj}C6^;F>6Q`An~B;u#DmOU*V4O za5}~S+g{vXaFVo|OgX4QO1p}J{BJ(%<{sp=ToYzd%2Qfb0Z(aGRSk?LfrZCZOnrzaT?Saxf$AXn1#T{Tp$k!bBaxns*MI1N&gq8J zIoFg865aUYGi#Y{&>Z&K_8g^C|0T`8D6;Q0oc*m6olgs5{PR~O;Ivx;?v}D|LJyb( z3u3k%?&9+qa8Nqi-*wQaS?Lu#Oy5>zN? zlJJ0ZeVjo{^cMf8-phcB>*tOssA0LwqjVer7M5Iy=EWXY{C==-uElfFt7B~9NL&wC}C#MRA=+D=R(Vb+?kaWBSMYS({ z5Ob*+*0TYW$1#HDLSS(R6_kxh87?qBY27W-Lrcm>%NB#b3`DEzu(hA(aH_S=`D~wQ+16YcKfl)utOxqn3p?K)&b#BaaMS}NM-`V5W zRTT`~1vgT-<#(JtsCsI^l3uaW5~f5@;trWNBwuLZb`$bDU$a#&tGJWRw@NUApPd|j z2wr@B=9;fXAy@$tjQ;XBuS|5j)wf<>s9Q#?%(9uv?PJ(816P(LFRAL8I?^}4kZGI&g3C@DB>oF z?2=nO%i!qW>wqD>zC^uCnexw)BC)Z8s|v{WdIX18+7;N4-bh(D7V_)%h8zH^vS#{SGbPU{p$4j??g+=y{_w=Yp+=gsQ@14OY$|DaKJpNY z2HQ!+LROM)Ms?nVjCs$Qix~|-DuLW6Sh%71f*3~6)zCii8_l;V6x?-5k@*GOj$UD4zo@YX#j;+dYO&P+KosM8#*Za%~V0AkjfJ)Aa4Yl|#k5NTXb_ zpmk2v!>B;{gfXg@)=8pxE|H1BKVx1x=P+m;<~gDo?9lG3kB6x-o7(6R>#n z{r1_rpswVIaYOp8TC%_MR|qeNBvc)T$E_G_rCfe}))tkJ)+?Wet)F2kNEndHV|O4> zJ7qbnV4e#Si99F5qu>D&j`G}`*r5{FGMA00v$Pzdu%rf5SEUVx!KycS}N$SF@;IdF7b!%2O+V3LYIn zKWe|Q-olVw#WxsHBmVJ_972F7sYmW|Ax}a&Wrl&e87L`ILUz`pJLQ`s^O}LN*(E8AU z;fIqDi-^C1IAnBI0UP!BnB#!&G73zGO*#O5DnyiQT@f^N0_RV8GPf-H)?^?H(i<=w z?%Db}5cH*n5}FW)J}{4ybHFH22(VW7XNa5OG?&_^OESwNu`iXUCo)pR>NbuHy>#K0 zYS9Rf-F7pYp49e9pc@ZxUXYV?1c$TuDpL#dy^^ zd{OZY-q)HRricHqlYqRoFK40s42*j9+hz5`8Z*dGMSrDAx6{<7!*tHi)GE9eAABsT z>(MbGs(Fd*g7)kAO;Rt96al?KgFWdb;lcw8C|wxA=Wpg2T9eo^;`OaQ$BjihrM{&~ z$UaC^d{JxF?Ci5D_BUcHLCqUqZl2-J|#gNrX!ik*aZ+!#-(ZA?t6X-JZ9}UGrp%r z3jUsekB%1yi@+M2k7c~sMD=pO0Zal0?3=V^#3v^0WMGxWzZY z6#-N=U+6-iqha@2fPQN-^k*hzubd}0QlJ&tUlrA=Bq6N$odl2q)4mnTD7#g+vhV!& z!5}E_)vX9Ny^n?jFSU^`nTzGt!&-2gxuw2`jQnrp50mJ$juJSe%0^h@*Vwp{1G3m` z3$ls{{VCfXaMs!;<#@WHb<~O9psQZ|^B|MpxPVS1T6VhB)0?D71JRydmSdIyytz;Wvyfh>~#OFGY(=< zW`x?44+aVT3LA{IVH=IxwcAEyJP1@e%y!&wPxtOMiQ$YnGCxGvw;nyMEba3A5E;y% zb=UEfCLjIkO1Z-pZS;t*S75~NWLIJW^ZLDp+m z;3(W-+7m6zyW?U)FlMW>z**W#ls_~V>h9MD2lWAK~1HBwR^I=vWd#QGZlb#G%&< zNu|~?Q6)fWCDcap@7;rn96@zxRA9lc^!+E7-w44`n{8^^24vqZ{Rnr^GR)+0&W$K+ zz1lc0ki+#dzQ|zJ0}OcuJgV2J5*C=G09C-K)sbw>$L-JtLB#21og=TGp;!k_5emMV z><0YJ^jUy9E+qq{QwlAg@-|`Vy?D5HqTDn!Kc&Yqm^z^|!~qS4g2y!c_u0+HZ)w@k z&`tM*LgqpuHP`vX7ELA2gBZRq^RkAnp9!EVXxXw-={Q)jUY?rV$db_o&qz#43iHQV zGKJ^&BNu!)t*u1w$1?fmztpc z&-kN8lG}PdNK%qZttEY4q^3W$PIS3b)%8G4LSf&-FEvx26aWofUhNgsi7F;BD-Ti< z6M~GC1{8Zpajbrk0M3x=&s6&@qM7&reM_ zo?TTl^XttXtNw3^c(gSgI@U0la(-tO2qj~1frQnIaSkDov&sZFd=#F>DRBvghavaCSr!>yHw_*nXrr7~wa z*?hhpNAl5QOvz^K@iv#^I^wroOT+j7;+K(eoaEWH6h_YoVG5kmNmDTbHrv?XvUQP2 zM$hbu5P)jX*K!QkrInR5@4piEv=de^EAe6Pvz(xGsG3-R76z>t$o%A$QPb#SCzN=TijE3VK^NX9 zJ~6~+%DNf9b$7L2dTr~OpsZx^D#gCIqGFoRq~4wTMuj9c$BaEHJsySb;A&@0PoKjt z&+lm|E-31{i=R0%$me)Sl>It4&}(u z_s?sa96hqbTpig3oON!`M6AS@04ZNtkfMPoS`yZ{V2v&$Nj>)^#?nT##=Bl zo(SaRH)fiPZr&wp(xn=sl^5*0CgC0V-r%1+I=?rdVpd{^p}NLyT-@vU`l?Vv z&WsWdA{RCap8YMe&i4X>$7q87^Al6aqvgY zoU!)<8coTn){8=fRgX+mv}Gdh`u{);hZYR8N7Rj{+_o`??99=y^3}fip>w9lTZi@F z^VUHK3P}8@JHfr4&bo&m#}C$v}5XgO-t8h5yfN+E!XGf%zo^Y^0SSsc8be$tczUO=g+_HjMU@G z95_=WdZf9oQAGY92lGEMa&IDIJVU_8UaqhHDhY;sy@zH+jU2{J+0T>X9DJ^dadUs? zeGNlrt$W4bzy`VW+kSKoW?!59V{(C9jCo!h%3F!CE_=3f(2{h9m#PI^3NE<&%~!?s zy3oBl-sVhVkGIsd`HD(3QGUbfO^k5nG%G;!CsH~t(;;@EGZ z>2j5sI$<^q)dU9Qda8Oge_2)eXmNVa_$>MfYOsU8+D4yPN=6_|!p(2%?O@L`?f1=) zZ1LqXEcfXl=lAV+7qWkZL|V0v$Jf@o(aB^M63qSadGGqgMWNpHp@J_wT`r3j5|w@& zq4uoxSw^LZ#m5_NCVK)@w{47>{}xZCugUL+X4w2w)MPNomV47O%)FNe(2C!ifzFYs zPa>eR;*8MBnLiEn573z!&~ndioDyE@?OkVWqA9;rE-Q+WMhRp5d_dh9H!%0K7%U*5EsvrV+tzBs1wA1?uAQ0o3>?Ad%k zXujU3@Tavy$gm?Ek;ZL=ztZRGdc8CBNxJH+G8DBq?j@$lOIn|aB~S95C8X?K!Ppe=$PaFNJoX{}h(wF48_3X#oqgIYKJzAgWkp6E{Xhi>fp=zHv1 zdPrgGx4TczkZnpsI%r>zaETx`rp(kTm0N@x_2>a;XaujZShU&&S_};Q*EYobY<{Vr zB#YZDs2p)Lo!+mDc~gtWCfajQUe$;OR9V(;Ah&v5sJ!X9B|!Chh3J0<9fNHYi8t=^FAGWHvigQlUTd_)G}@Y`ZID2>nD}lroua3R*WZhQMk@2AGM`k(oT@0-B<~ga^k1W2^kTmbENw3($%~0nqE9JT=6%G1Kz$K^n{iWg z;TQeyJmf#2v^jHJsMo4f@#G^61#f7cb0ztQ z9J)AddmGQg*17ZBO>63q3auUU(^lP+=(mM7uP6PlqM3N7StKF%IvRMNU!BvS9NXfp zHE7Ub**n}6SIHjCQ(mszWFI?PmDjT%@shx=x6&P3!Q8y(2dXj_xP;?0P+=ogjB2e) zUlZlc^S3I6fK{Nj7{eKb?J%ku37%&wIFvXHRXS3wk?_ZGUSA}5y7hU&1o%K@DK`Ml xz9C-iA2GO&ew-a5K|I8^h+p$W?jwLDG}AYhN#E@L{YC(Mc&{u|E@c$>zW|hb`J(^; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_0.png.mcmeta b/src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_0.png.mcmeta new file mode 100644 index 0000000..7644671 --- /dev/null +++ b/src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_0.png.mcmeta @@ -0,0 +1,38 @@ +{ + "animation": { + "frames": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ] + } +} diff --git a/src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_1.png b/src/main/resources/assets/gravestone-extended/textures/blocks/cursed_flame/layer_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f7929005d7dbc90ca8afecaec850754b82c94066 GIT binary patch literal 13099 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