diff --git a/changelog.txt b/changelog.txt index 05b5acf3..a49f7dad 100644 --- a/changelog.txt +++ b/changelog.txt @@ -6,12 +6,14 @@ Version 3.0.4 - Experienced - Body Builder +- Fixed the two rituals involving Living Armour so that they are properly activatable using a Weak Activation Crystal. + - Fixed NPE in Blood Altar when trying to interact with the contained Fluids - Also fixed bug that prevented the Altar from accepting fluids piped in as inputs. - Fixed a client-side crash when right clicking the ground with a Lava Crystal when on a server - now properly makes a fire without consuming the client. - Added new alchemy arrays: - - Two arrays, which changes the current daylight cycle to day and night. + - Two arrays, which changes the current daylight cycle to day and night. Recipes are temp. - Fixed the JEI so that it no longer ouputs an error when loading Alchemy Array recipes without a crafting output. - Fixed crash with Actually Additions diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 124de597..acdfc8f0 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -58,7 +58,7 @@ e6d9cf699667aaa47efff37b2b033895dee29c15 assets/bloodmagic/blockstates/waterritu 42f26f715bddd16c069f9b51e3767b36477c8908 assets/bloodmagic/blockstates/woodtilepath.json 3c6ce233dae6c1307d9016406c324bbe844b4e1e assets/bloodmagic/blockstates/wornstonebrickpath.json d59655f12d1724b73b77c373fb6864fcff69db12 assets/bloodmagic/blockstates/wornstonetilepath.json -111dd088560215d453016de8c3324fa62d0f205a assets/bloodmagic/lang/en_us.json +62b19f0ba7a22f2a7b80588b82884013885dd74b assets/bloodmagic/lang/en_us.json 34445195b9f2459475cde53454bc8e37d32865d7 assets/bloodmagic/models/block/accelerationrune.json bcdbccc49d4509571be6988762ab87126275a4c8 assets/bloodmagic/models/block/airritualstone.json adf6c0b1e25451609486dc8c8cfbd9cf0f8c67f4 assets/bloodmagic/models/block/alchemicalreactionchamber.json @@ -521,7 +521,7 @@ a343604b5a75e1b3810df97d024813fb041cffb6 data/bloodmagic/recipes/alchemytable/ba f86432e8fef0d6e140e27f575063704b7e843d75 data/bloodmagic/recipes/alchemytable/bread.json e50009fa724173c2dcb4fab49b4f029039f69bf8 data/bloodmagic/recipes/alchemytable/clay_from_sand.json 96cc66cdb9c5f786eaa899e1fbdd38144e44a0fe data/bloodmagic/recipes/alchemytable/explosive_powder.json -ecd27b8222af8f0608e61cdc4278aeb6d88d14b4 data/bloodmagic/recipes/alchemytable/flint_from_gravel.json +1fa964af556af521d8eaf1a686befdd9d69c63af data/bloodmagic/recipes/alchemytable/flint_from_gravel.json aff95e4322f9e8daaffc2337964f95ab6f9d631c data/bloodmagic/recipes/alchemytable/grass_block.json 540edca1f507d366e55887b4429a9952c00f4060 data/bloodmagic/recipes/alchemytable/gunpowder.json 0657a60976678fdfbdf0b8ee2c178502520d194a data/bloodmagic/recipes/alchemytable/leather_from_flesh.json @@ -636,6 +636,7 @@ d699e777c72a5f61c4e6cdfea8705628e1c2b855 data/bloodmagic/recipes/soul_forge.json f4763a58a8f471ec1aaa997cbd36eac8c7d51a12 data/bloodmagic/recipes/soulforge/arcaneashes.json 8b64af8453c60b6b1ae55bd0dd1a68fe95e8ba19 data/bloodmagic/recipes/soulforge/commontartaricgem.json 659db62f8fb71c792b00d6409b1c9a2f1ca96048 data/bloodmagic/recipes/soulforge/corrosive_crystal_block.json +5ad148899ed46134ae0572b220736b9d38004980 data/bloodmagic/recipes/soulforge/deforester_charge.json 2c90f1da43a79e61d2b6b09c012d08f53b133264 data/bloodmagic/recipes/soulforge/demon_crucible.json bc4ad3b44720a3f7363ef53027b4aae35622e7c1 data/bloodmagic/recipes/soulforge/demon_crystallizer.json 759279a190f3bc74e162dedf0f5d311267e06fbc data/bloodmagic/recipes/soulforge/destructive_crystal_block.json @@ -660,6 +661,7 @@ a222d09abf1ea61feb684f2ac23d011c2034f526 data/bloodmagic/recipes/soulforge/reage 6b47831e5c2f3033b6706706d810fa96d8abebd6 data/bloodmagic/recipes/soulforge/sentientscythe.json 6dcced40126f950b85f868aa04c77e90b71b69f2 data/bloodmagic/recipes/soulforge/sentientshovel.json 7e281841a2953c1284d332c2bbf75097f8128241 data/bloodmagic/recipes/soulforge/sentientsword.json +dc977e9d98fcba66fbcce3f6c31a746db5ed60f5 data/bloodmagic/recipes/soulforge/shaped_charge.json c4102a1573e632d0b9f894353b0d522a51a7c65e data/bloodmagic/recipes/soulforge/steadfast_crystal_block.json 3aa852edda803a2225ebe53d2daa55bd46b0a1b9 data/bloodmagic/recipes/soulforge/vengeful_crystal_block.json d7d993bb729284a5201c164ea81fbe1d8e4e4750 data/bloodmagic/recipes/weak_activation_crystal.json diff --git a/src/generated/resources/assets/bloodmagic/lang/en_us.json b/src/generated/resources/assets/bloodmagic/lang/en_us.json index ddb3f633..831b959a 100644 --- a/src/generated/resources/assets/bloodmagic/lang/en_us.json +++ b/src/generated/resources/assets/bloodmagic/lang/en_us.json @@ -10,6 +10,7 @@ "block.bloodmagic.bloodstonebrick": "Bloodstone Brick", "block.bloodmagic.chargingrune": "Charging Rune", "block.bloodmagic.corrosivedemoncrystal": "Corrosive Crystal Cluster", + "block.bloodmagic.deforester_charge": "Deforester Charge", "block.bloodmagic.demoncrucible": "Demon Crucible", "block.bloodmagic.demoncrystallizer": "Demon Crystallizer", "block.bloodmagic.destructivedemoncrystal": "Destructive Crystal Cluster", @@ -48,6 +49,7 @@ "block.bloodmagic.ritualstone": "Ritual Stone", "block.bloodmagic.sacrificerune": "Rune of Sacrifice", "block.bloodmagic.selfsacrificerune": "Rune of Self Sacrifice", + "block.bloodmagic.shaped_charge": "Shaped Charge", "block.bloodmagic.soulforge": "Hellfire Forge", "block.bloodmagic.speedrune": "Speed Rune", "block.bloodmagic.steadfastdemoncrystal": "Steadfast Crystal Cluster", diff --git a/src/generated/resources/data/bloodmagic/recipes/alchemytable/flint_from_gravel.json b/src/generated/resources/data/bloodmagic/recipes/alchemytable/flint_from_gravel.json index cbbcce43..ffe0ce43 100644 --- a/src/generated/resources/data/bloodmagic/recipes/alchemytable/flint_from_gravel.json +++ b/src/generated/resources/data/bloodmagic/recipes/alchemytable/flint_from_gravel.json @@ -9,7 +9,8 @@ } ], "output": { - "item": "minecraft:flint" + "item": "minecraft:flint", + "count": 2 }, "syphon": 50, "ticks": 20, diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/deforester_charge.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/deforester_charge.json new file mode 100644 index 00000000..b8478f16 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/deforester_charge.json @@ -0,0 +1,21 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "tag": "forge:cobblestone" + }, + "input1": { + "item": "minecraft:charcoal" + }, + "input2": { + "tag": "minecraft:logs" + }, + "input3": { + "tag": "minecraft:planks" + }, + "output": { + "item": "bloodmagic:deforester_charge", + "count": 8 + }, + "minimumDrain": 10.0, + "drain": 0.5 +} \ No newline at end of file diff --git a/src/generated/resources/data/bloodmagic/recipes/soulforge/shaped_charge.json b/src/generated/resources/data/bloodmagic/recipes/soulforge/shaped_charge.json new file mode 100644 index 00000000..b7c7fa04 --- /dev/null +++ b/src/generated/resources/data/bloodmagic/recipes/soulforge/shaped_charge.json @@ -0,0 +1,21 @@ +{ + "type": "bloodmagic:soulforge", + "input0": { + "tag": "forge:cobblestone" + }, + "input1": { + "item": "minecraft:charcoal" + }, + "input2": { + "tag": "forge:sand" + }, + "input3": { + "tag": "forge:stone" + }, + "output": { + "item": "bloodmagic:shaped_charge", + "count": 8 + }, + "minimumDrain": 10.0, + "drain": 0.5 +} \ No newline at end of file diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java index a5f6c71a..9eaf3d0c 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java @@ -422,6 +422,9 @@ public class GeneratorLanguage extends LanguageProvider addBlock(BloodMagicBlocks.DUNGEON_ORE, "Demonite"); + addBlock(BloodMagicBlocks.SHAPED_CHARGE, "Shaped Charge"); + addBlock(BloodMagicBlocks.DEFORESTER_CHARGE, "Deforester Charge"); + // Item names addItem(BloodMagicItems.WEAK_BLOOD_ORB, "Weak Blood Orb"); addItem(BloodMagicItems.APPRENTICE_BLOOD_ORB, "Apprentice Blood Orb"); diff --git a/src/main/java/wayoftime/bloodmagic/common/item/ItemSentientScythe.java b/src/main/java/wayoftime/bloodmagic/common/item/ItemSentientScythe.java index e6d3810d..e4775974 100644 --- a/src/main/java/wayoftime/bloodmagic/common/item/ItemSentientScythe.java +++ b/src/main/java/wayoftime/bloodmagic/common/item/ItemSentientScythe.java @@ -518,38 +518,42 @@ public class ItemSentientScythe extends HoeItem implements IDemonWillWeapon, IMu @Override public boolean hitEntity(ItemStack stack, LivingEntity target, LivingEntity attacker) { - if (super.hitEntity(stack, target, attacker)) + stack.damageItem(1, attacker, (entity) -> { + entity.sendBreakAnimation(EquipmentSlotType.MAINHAND); + }); + +// if (super.hitEntity(stack, target, attacker)) +// { + if (attacker instanceof PlayerEntity) { - if (attacker instanceof PlayerEntity) + UUID id = attacker.getUniqueID(); + + PlayerEntity attackerPlayer = (PlayerEntity) attacker; + +// System.out.println("Hit map: " + hitMap.containsKey(id)); + + if (hitMap.containsKey(id) && hitMap.get(id)) { - UUID id = attacker.getUniqueID(); - - PlayerEntity attackerPlayer = (PlayerEntity) attacker; - - System.out.println("Hit map: " + hitMap.containsKey(id)); - - if (hitMap.containsKey(id) && hitMap.get(id)) - { - EnumDemonWillType type = this.getCurrentType(stack); - double will = PlayerDemonWillHandler.getTotalDemonWill(type, attackerPlayer); - int willBracket = this.getLevel(stack, will); - applyEffectToEntity(type, willBracket, target, attackerPlayer); - } else - { - this.recalculatePowers(stack, attackerPlayer.getEntityWorld(), attackerPlayer); - EnumDemonWillType type = this.getCurrentType(stack); - double will = PlayerDemonWillHandler.getTotalDemonWill(type, attackerPlayer); - int willBracket = this.getLevel(stack, will); - hitMap.put(id, true); - this.attackEntitiesInAreaExcludingEntity(stack, attackerPlayer, type, willBracket, target); - hitMap.remove(id); - } + EnumDemonWillType type = this.getCurrentType(stack); + double will = PlayerDemonWillHandler.getTotalDemonWill(type, attackerPlayer); + int willBracket = this.getLevel(stack, will); + applyEffectToEntity(type, willBracket, target, attackerPlayer); + } else + { + this.recalculatePowers(stack, attackerPlayer.getEntityWorld(), attackerPlayer); + EnumDemonWillType type = this.getCurrentType(stack); + double will = PlayerDemonWillHandler.getTotalDemonWill(type, attackerPlayer); + int willBracket = this.getLevel(stack, will); + hitMap.put(id, true); + this.attackEntitiesInAreaExcludingEntity(stack, attackerPlayer, type, willBracket, target); + hitMap.remove(id); } - - return true; } - return false; + return true; +// } + +// return false; } @Override diff --git a/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java b/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java index 44e5d0f0..c9bea4bd 100644 --- a/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java +++ b/src/main/java/wayoftime/bloodmagic/common/recipe/AlchemyTableRecipeProvider.java @@ -21,7 +21,7 @@ public class AlchemyTableRecipeProvider implements ISubRecipeProvider { String basePath = "alchemytable/"; AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.STRING, 4), 100, 100, 0).addIngredient(Ingredient.fromTag(ItemTags.WOOL)).addIngredient(Ingredient.fromItems(Items.FLINT)).build(consumer, BloodMagic.rl(basePath + "string")); - AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.FLINT), 50, 20, 0).addIngredient(Ingredient.fromItems(Items.GRAVEL)).addIngredient(Ingredient.fromItems(Items.FLINT)).build(consumer, BloodMagic.rl(basePath + "flint_from_gravel")); + AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.FLINT, 2), 50, 20, 0).addIngredient(Ingredient.fromItems(Items.GRAVEL)).addIngredient(Ingredient.fromItems(Items.FLINT)).build(consumer, BloodMagic.rl(basePath + "flint_from_gravel")); AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.LEATHER, 4), 100, 200, 1).addIngredient(Ingredient.fromItems(Items.ROTTEN_FLESH)).addIngredient(Ingredient.fromItems(Items.ROTTEN_FLESH)).addIngredient(Ingredient.fromItems(Items.ROTTEN_FLESH)).addIngredient(Ingredient.fromItems(Items.ROTTEN_FLESH)).addIngredient(Ingredient.fromItems(Items.FLINT)).addIngredient(Ingredient.fromItems(Items.WATER_BUCKET)).build(consumer, BloodMagic.rl(basePath + "leather_from_flesh")); AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(BloodMagicItems.EXPLOSIVE_POWDER.get()), 500, 200, 1).addIngredient(Ingredient.fromTag(Tags.Items.GUNPOWDER)).addIngredient(Ingredient.fromTag(Tags.Items.GUNPOWDER)).addIngredient(Ingredient.fromTag(BloodMagicTags.DUST_COAL)).build(consumer, BloodMagic.rl(basePath + "explosive_powder")); AlchemyTableRecipeBuilder.alchemyTable(new ItemStack(Items.BREAD), 100, 200, 1).addIngredient(Ingredient.fromTag(Tags.Items.CROPS_WHEAT)).addIngredient(Ingredient.fromItems(Items.SUGAR)).build(consumer, BloodMagic.rl(basePath + "bread")); diff --git a/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java b/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java index d7f6c862..70868e4f 100644 --- a/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java +++ b/src/main/java/wayoftime/bloodmagic/common/recipe/TartaricForgeRecipeProvider.java @@ -55,6 +55,9 @@ public class TartaricForgeRecipeProvider implements ISubRecipeProvider TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.DESTRUCTIVE_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.DESTRUCTIVE_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "destructive_crystal_block")); TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.VENGEFUL_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.VENGEFUL_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "vengeful_crystal_block")); TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.STEADFAST_CRYSTAL_BLOCK.get()), 1200, 100, Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get()), Ingredient.fromItems(BloodMagicItems.STEADFAST_CRYSTAL.get())).build(consumer, BloodMagic.rl(basePath + "steadfast_crystal_block")); + + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.SHAPED_CHARGE.get(), 8), 10, 0.5, Ingredient.fromTag(Tags.Items.COBBLESTONE), Ingredient.fromItems(Items.CHARCOAL), Ingredient.fromTag(Tags.Items.SAND), Ingredient.fromTag(Tags.Items.STONE)).build(consumer, BloodMagic.rl(basePath + "shaped_charge")); + TartaricForgeRecipeBuilder.tartaricForge(new ItemStack(BloodMagicBlocks.DEFORESTER_CHARGE.get(), 8), 10, 0.5, Ingredient.fromTag(Tags.Items.COBBLESTONE), Ingredient.fromItems(Items.CHARCOAL), Ingredient.fromTag(ItemTags.LOGS), Ingredient.fromTag(ItemTags.PLANKS)).build(consumer, BloodMagic.rl(basePath + "deforester_charge")); } } diff --git a/src/main/java/wayoftime/bloodmagic/core/living/LivingUtil.java b/src/main/java/wayoftime/bloodmagic/core/living/LivingUtil.java index 9df87d2a..a9824c5a 100644 --- a/src/main/java/wayoftime/bloodmagic/core/living/LivingUtil.java +++ b/src/main/java/wayoftime/bloodmagic/core/living/LivingUtil.java @@ -50,14 +50,23 @@ public class LivingUtil if (currentPoints >= stats.getMaxPoints()) return stats; + int currentPointCost = upgrade.getLevelCost(upgrade.getLevel((int) currentExperience)); int nextPointCost = upgrade.getLevelCost(upgrade.getLevel((int) currentExperience) + 1); + +// System.out.println("Current point cost: " + currentPointCost + ", Next point cost: " + nextPointCost); // If there's no more levels in this upgrade, we don't want to add experience if (nextPointCost == -1) return stats; + int pointDif = nextPointCost - currentPointCost; + if (pointDif < 0) + { + return stats; + } + // If applying this new level will go over our cap, we don't want to add // experience - if (currentPoints + nextPointCost > stats.getMaxPoints()) + if (currentPoints + pointDif > stats.getMaxPoints()) return stats; } diff --git a/src/main/java/wayoftime/bloodmagic/ritual/types/RitualArmourEvolve.java b/src/main/java/wayoftime/bloodmagic/ritual/types/RitualArmourEvolve.java index c850b3d2..477f6704 100644 --- a/src/main/java/wayoftime/bloodmagic/ritual/types/RitualArmourEvolve.java +++ b/src/main/java/wayoftime/bloodmagic/ritual/types/RitualArmourEvolve.java @@ -27,7 +27,7 @@ public class RitualArmourEvolve extends Ritual public RitualArmourEvolve() { - super("ritualArmourEvolve", 2, 50000, "ritual." + BloodMagic.MODID + ".armourEvolveRitual"); + super("ritualArmourEvolve", 0, 50000, "ritual." + BloodMagic.MODID + ".armourEvolveRitual"); addBlockRange(CHECK_RANGE, new AreaDescriptor.Rectangle(new BlockPos(0, 1, 0), 1, 2, 1)); } diff --git a/src/main/java/wayoftime/bloodmagic/ritual/types/RitualUpgradeRemove.java b/src/main/java/wayoftime/bloodmagic/ritual/types/RitualUpgradeRemove.java index 3d283ead..a0b15e0a 100644 --- a/src/main/java/wayoftime/bloodmagic/ritual/types/RitualUpgradeRemove.java +++ b/src/main/java/wayoftime/bloodmagic/ritual/types/RitualUpgradeRemove.java @@ -33,7 +33,7 @@ public class RitualUpgradeRemove extends Ritual public RitualUpgradeRemove() { - super("ritualUpgradeRemove", 2, 25000, "ritual." + BloodMagic.MODID + ".upgradeRemoveRitual"); + super("ritualUpgradeRemove", 0, 25000, "ritual." + BloodMagic.MODID + ".upgradeRemoveRitual"); addBlockRange(CHECK_RANGE, new AreaDescriptor.Rectangle(new BlockPos(0, 1, 0), 1, 2, 1)); } diff --git a/src/main/java/wayoftime/bloodmagic/structures/DungeonStructure.java b/src/main/java/wayoftime/bloodmagic/structures/DungeonStructure.java index d041243c..4ecb12d4 100644 --- a/src/main/java/wayoftime/bloodmagic/structures/DungeonStructure.java +++ b/src/main/java/wayoftime/bloodmagic/structures/DungeonStructure.java @@ -22,7 +22,6 @@ public class DungeonStructure public boolean placeStructureAtPosition(Random rand, PlacementSettings settings, ServerWorld world, BlockPos pos) { - if (pos == null) return false; diff --git a/src/main/java/wayoftime/bloodmagic/tile/TileShapedExplosive.java b/src/main/java/wayoftime/bloodmagic/tile/TileShapedExplosive.java index 5f9809a9..b11a1524 100644 --- a/src/main/java/wayoftime/bloodmagic/tile/TileShapedExplosive.java +++ b/src/main/java/wayoftime/bloodmagic/tile/TileShapedExplosive.java @@ -122,7 +122,7 @@ public class TileShapedExplosive extends TileTicking BlockState blockstate = this.world.getBlockState(blockpos); Block block = blockstate.getBlock(); - if (!blockstate.isAir(this.world, blockpos)) + if (!blockstate.isAir(this.world, blockpos) && blockstate.getBlockHardness(world, blockpos) != -1.0F) { BlockPos blockpos1 = blockpos.toImmutable(); // this.world.getProfiler().startSection("explosion_blocks"); diff --git a/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/3x3_tnt.nbt b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/3x3_tnt.nbt new file mode 100644 index 00000000..b3d28725 Binary files /dev/null and b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/3x3_tnt.nbt differ diff --git a/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test.nbt b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test.nbt new file mode 100644 index 00000000..2883b7ac Binary files /dev/null and b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test.nbt differ diff --git a/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test2.nbt b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test2.nbt new file mode 100644 index 00000000..60931552 Binary files /dev/null and b/src/main/resources/data/bloodmagic/structures/dungeon/pavilion/test2.nbt differ