From 24ba2fc15d194a0d42fdeeb55c55040a95da06d8 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sun, 24 Mar 2024 14:53:57 -0500 Subject: [PATCH] levita + surtum rework --- .../paradiselost/api/FloatingBlockHelper.java | 9 +- .../blocks/ParadiseLostBlocks.java | 4 +- .../paradiselost/items/ParadiseLostItems.java | 235 +++++++++--------- .../tools/base_tools/GravityWandItem.java | 24 ++ .../enchantment/EnchantmentHelperMixin.java | 18 ++ .../tag/ParadiseLostItemTags.java | 1 + src/main/resources/asset_helper.py | 10 +- .../paradise_lost/blockstates/levita.json | 7 + .../paradise_lost/blockstates/levita_ore.json | 7 + .../assets/paradise_lost/lang/en_us.json | 4 + .../paradise_lost/models/block/levita.json | 6 + .../models/block/levita_ore.json | 6 + .../paradise_lost/models/item/levita.json | 3 + .../paradise_lost/models/item/levita_gem.json | 6 + .../paradise_lost/models/item/levita_ore.json | 3 + .../models/item/levita_wand.json | 6 + .../paradise_lost/textures/block/levita.png | Bin 0 -> 708 bytes .../textures/block/levita_ore.png | Bin 0 -> 668 bytes .../textures/block/levitator_side.png | Bin 476 -> 516 bytes .../textures/item/levita_gem.png | Bin 0 -> 340 bytes .../textures/item/levita_wand.png | Bin 0 -> 351 bytes .../loot_tables/blocks/levita.json | 20 ++ .../loot_tables/blocks/levita_ore.json | 49 ++++ .../recipes/levita_from_blasting.json | 9 + .../recipes/levita_from_smelting.json | 9 + .../paradise_lost/recipes/levita_wand.json | 19 ++ .../data/paradise_lost/recipes/levitator.json | 2 +- .../tags/blocks/mineable_by_shovel.json | 1 + .../data/paradise_lost/tags/blocks/ores.json | 3 +- .../tags/blocks/requires_iron_tool.json | 3 +- .../tags/items/tool/igniting_tools.json | 10 + src/main/resources/paradise_lost.mixins.json | 1 + 32 files changed, 347 insertions(+), 128 deletions(-) create mode 100644 src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java create mode 100644 src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java create mode 100644 src/main/resources/assets/paradise_lost/blockstates/levita.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/levita_ore.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita_ore.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita_gem.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita_ore.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita_wand.json create mode 100644 src/main/resources/assets/paradise_lost/textures/block/levita.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/levita_ore.png create mode 100644 src/main/resources/assets/paradise_lost/textures/item/levita_gem.png create mode 100644 src/main/resources/assets/paradise_lost/textures/item/levita_wand.png create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/levita.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/levita_ore.json create mode 100644 src/main/resources/data/paradise_lost/recipes/levita_from_blasting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/levita_from_smelting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/levita_wand.json create mode 100644 src/main/resources/data/paradise_lost/tags/items/tool/igniting_tools.json diff --git a/src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java b/src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java index e6fc6a418..422a003b5 100644 --- a/src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java +++ b/src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java @@ -2,6 +2,7 @@ import net.id.paradiselost.entities.block.FloatingBlockEntity; import net.id.paradiselost.entities.util.FloatingBlockHelperImpls; +import net.id.paradiselost.items.tools.base_tools.GravityWandItem; import net.id.paradiselost.tag.ParadiseLostBlockTags; import net.id.incubus_core.blocklikeentities.api.BlockLikeEntity; import net.id.incubus_core.blocklikeentities.api.BlockLikeSet; @@ -10,6 +11,7 @@ import net.minecraft.block.piston.PistonHandler; import net.minecraft.item.Item; import net.minecraft.item.ItemUsageContext; +import net.minecraft.tag.BlockTags; import net.minecraft.util.math.*; import net.minecraft.world.World; @@ -126,10 +128,15 @@ static boolean isToolAdequate(ItemUsageContext context) { BlockState state = world.getBlockState(pos); Item heldItem = context.getStack().getItem(); return world.getBlockEntity(pos) == null && state.getHardness(world, pos) != -1.0F - && (!state.isToolRequired() || heldItem.isSuitableFor(state)) + && (!state.isToolRequired() || heldItem.isSuitableFor(state) || (heldItem instanceof GravityWandItem && validForWand(state))) && !state.isIn(ParadiseLostBlockTags.NON_FLOATERS); } + static boolean validForWand(BlockState bs) { + return !bs.isIn(BlockTags.NEEDS_DIAMOND_TOOL); + } + + /** * A structure builder intended to aid the creation of floating block structures. */ diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 21ace70de..044dead3c 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -67,6 +67,7 @@ private static Settings grassBlock() { // Soil Blocks public static final Block DIRT = add("dirt", new Block(copy(Blocks.DIRT).strength(0.3f)), tillable(), flattenable()); public static final Block COARSE_DIRT = add("coarse_dirt", new Block(copy(Blocks.DIRT).strength(0.3f)), coarseTillable(), flattenable()); + public static final FloatingBlock LEVITA = add("levita", new FloatingBlock(false, copy(Blocks.GRAVEL).strength(0.3f))); public static final Block PERMAFROST = add("permafrost", new Block(copy(Blocks.DIRT).strength(2f).sounds(BlockSoundGroup.GILDED_BLACKSTONE)), flattenable()); public static final FarmlandBlock FARMLAND = add("farmland", new ParadiseLostFarmlandBlock(copy(Blocks.FARMLAND))); public static final ParadiseLostDirtPathBlock DIRT_PATH = add("grass_path", new ParadiseLostDirtPathBlock(copy(Blocks.DIRT_PATH))); @@ -369,9 +370,10 @@ private static Settings flower() { public static final OreBlock SURTRUM = add("surtrum", new SurtrumOreBlock(of(Material.STONE).sounds(BlockSoundGroup.NETHER_GOLD_ORE).requiresTool().strength(9f, 20f), UniformIntProvider.create(2, 5))); public static final Block METAMORPHIC_SHELL = add("metamorphic_shell", new Block(of(Material.STONE).sounds(BlockSoundGroup.TUFF).requiresTool().strength(40f, 15f))); public static final PoofBlock SURTRUM_AIR = add("surtrum_air", new PoofBlock(of(Material.FIRE).sounds(BlockSoundGroup.NETHER_GOLD_ORE))); + public static final FloatingBlock LEVITA_ORE = add("levita_ore", new FloatingBlock(false, of(Material.STONE).requiresTool().strength(4f), UniformIntProvider.create(4, 7))); public static final Block CHERINE_BLOCK = add("cherine_block", new Block(of(Material.METAL).requiresTool().strength(3f, -1f).sounds(BlockSoundGroup.STONE))); public static final Block OLVITE_BLOCK = add("olvite_block", new Block(of(Material.METAL).requiresTool().strength(3f, -1f).sounds(BlockSoundGroup.METAL))); - public static final FloatingBlock REFINED_SURTRUM_BLOCK = add("refined_surtrum_block", new FloatingBlock(false, of(Material.METAL).requiresTool().strength(4f, -1f).sounds(BlockSoundGroup.METAL))); + public static final Block REFINED_SURTRUM_BLOCK = add("refined_surtrum_block", new Block(of(Material.METAL).requiresTool().strength(4f, -1f).sounds(BlockSoundGroup.METAL))); // Misc public static final FloatingBlock LEVITATOR = add("levitator", new FloatingBlock(true, of(Material.WOOD).strength(3f, 3f).sounds(BlockSoundGroup.WOOD))); public static final ChainBlock OLVITE_CHAIN = add("olvite_chain", new ChainBlock(copy(CHAIN)), cutoutMippedRenderLayer); diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 834c486ac..c0cc7cfd9 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -51,20 +51,19 @@ private static FabricItemSettings resource() { return new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_RESOURCES); } - private static final Settings resource = resource(); - - public static final Item GOLDEN_AMBER = add("golden_amber", new Item(resource)); - public static final Item HELLENROSE_PETAL = add("hellenrose_petal", new Item(resource), compostable65); + public static final Item GOLDEN_AMBER = add("golden_amber", new Item(resource())); + public static final Item HELLENROSE_PETAL = add("hellenrose_petal", new Item(resource()), compostable65); public static final Item NIGTHMARE_FUEL = add("nightmare_fuel", new LoreItem(nightmare().rarity(UNCOMMON), ImmutableList.of(Text.translatable("item.paradise_lost.nightmare_fuel.tooltip").formatted(Formatting.GRAY)))); public static final Item CROW_EYE = add("crow_eye", new LoreItem(nightmare().maxCount(1).rarity(UNCOMMON), ImmutableList.of(Text.translatable("item.paradise_lost.crow_eye.tooltip").formatted(Formatting.GRAY)))); - public static final Item CHERINE = add("cherine", new Item(resource), fuel(500)); - public static final Item OLVITE = add("olvite", new Item(resource)); - public static final Item OLVITE_NUGGET = add("olvite_nugget", new Item(resource)); - public static final Item REFINED_SURTRUM = add("refined_surtrum", new Item(resource)); - public static final Item RAW_SURTRUM = add("raw_surtrum", new Item(resource)); - public static final Item FLAX_THREAD = add("flax_thread", new Item(resource)); - public static final Item FLAXWEAVE = add("flaxweave", new Item(resource)); - public static final Item SWEDROOT_PULP = add("swedroot_pulp", new Item(resource), compostable30); + public static final Item CHERINE = add("cherine", new Item(resource()), fuel(500)); + public static final Item OLVITE = add("olvite", new Item(resource())); + public static final Item OLVITE_NUGGET = add("olvite_nugget", new Item(resource())); + public static final Item REFINED_SURTRUM = add("refined_surtrum", new Item(resource().fireproof())); + public static final Item RAW_SURTRUM = add("raw_surtrum", new Item(resource().fireproof())); + public static final Item LEVITA_GEM = add("levita_gem", new Item(resource())); + public static final Item FLAX_THREAD = add("flax_thread", new Item(resource())); + public static final Item FLAXWEAVE = add("flaxweave", new Item(resource())); + public static final Item SWEDROOT_PULP = add("swedroot_pulp", new Item(resource()), compostable30); private static Settings tool() { @@ -74,8 +73,8 @@ private static Settings tool() { private static final Settings tool = tool(); private static final Settings rareTool = tool().rarity(RARE); private static final Settings paradiseLostLootTool = tool().rarity(ParadiseLostRarity.PARADISE_LOST_LOOT); - private static final Settings unstackableTool = tool().maxCount(1); - private static final Settings unstackableRareTool = tool().maxCount(1).rarity(RARE); + private static Settings unstackableTool() { return tool().maxCount(1); } + private static Settings unstackableRareTool() { return tool().maxCount(1).rarity(RARE); } // Olvite public static final ShovelItem OLVITE_SHOVEL = add("olvite_shovel", new ShovelItem(ParadiseLostToolMaterials.OLVITE, 1.5f, -3f, tool())); @@ -85,11 +84,11 @@ private static Settings tool() { public static final HoeItem OLVITE_HOE = add("olvite_hoe", new ParadiseLostHoeItem(ParadiseLostToolMaterials.OLVITE, -2, -1f, tool())); // Surtrum - public static final GravityShovelItem SURTRUM_SHOVEL = add("surtrum_shovel", new GravityShovelItem(ParadiseLostToolMaterials.SURTRUM, 2.5f, -3f, tool())); - public static final GravityPickaxeItem SURTRUM_PICKAXE = add("surtrum_pickaxe", new GravityPickaxeItem(ParadiseLostToolMaterials.SURTRUM, 2, -2.8f, tool())); - public static final GravityAxeItem SURTRUM_AXE = add("surtrum_axe", new GravityAxeItem(ParadiseLostToolMaterials.SURTRUM, 6f, -3.1f, tool())); - public static final SwordItem SURTRUM_SWORD = add("surtrum_sword", new SwordItem(ParadiseLostToolMaterials.SURTRUM, 4, -2.4f, tool())); - public static final GravityHoeItem SURTRUM_HOE = add("surtrum_hoe", new GravityHoeItem(ParadiseLostToolMaterials.SURTRUM, -3, 0f, tool())); + public static final ShovelItem SURTRUM_SHOVEL = add("surtrum_shovel", new ShovelItem(ParadiseLostToolMaterials.SURTRUM, 2.5f, -3f, tool().fireproof())); + public static final PickaxeItem SURTRUM_PICKAXE = add("surtrum_pickaxe", new PickaxeItem(ParadiseLostToolMaterials.SURTRUM, 2, -2.8f, tool().fireproof())); + public static final AxeItem SURTRUM_AXE = add("surtrum_axe", new AxeItem(ParadiseLostToolMaterials.SURTRUM, 6f, -3.1f, tool().fireproof())); + public static final SwordItem SURTRUM_SWORD = add("surtrum_sword", new SwordItem(ParadiseLostToolMaterials.SURTRUM, 4, -2.4f, tool().fireproof())); + public static final HoeItem SURTRUM_HOE = add("surtrum_hoe", new ParadiseLostHoeItem(ParadiseLostToolMaterials.SURTRUM, -3, 0f, tool().fireproof())); // Glazed Gold public static final ShovelItem GLAZED_GOLD_SHOVEL = add("glazed_gold_shovel", new ShovelItem(ParadiseLostToolMaterials.GLAZED_GOLD, 1.5f, -3f, tool())); @@ -98,13 +97,14 @@ private static Settings tool() { public static final SwordItem GLAZED_GOLD_SWORD = add("glazed_gold_sword", new SwordItem(ParadiseLostToolMaterials.GLAZED_GOLD, 3, -2.4f, tool())); public static final HoeItem GLAZED_GOLD_HOE = add("glazed_gold_hoe", new ParadiseLostHoeItem(ParadiseLostToolMaterials.GLAZED_GOLD, -2, -2.0f, tool())); - public static final TrinketItem CLOUD_PARACHUTE = add("cold_parachute", new ParachuteTrinketItem(unstackableTool, "cloud_parachute")); + public static final TrinketItem CLOUD_PARACHUTE = add("cold_parachute", new ParachuteTrinketItem(unstackableTool(), "cloud_parachute")); public static final TrinketItem GOLDEN_CLOUD_PARACHUTE = add("golden_parachute", new ParachuteTrinketItem(tool().maxCount(1).maxDamage(20), "golden_parachute")); - public static final CherineBloodstoneItem CHERINE_BLOODSTONE = add("cherine_bloodstone", new CherineBloodstoneItem(unstackableTool)); - public static final OlviteBloodstoneItem OLVITE_BLOODSTONE = add("olvite_bloodstone", new OlviteBloodstoneItem(unstackableTool)); - public static final SurtrumBloodstoneItem SURTRUM_BLOODSTONE = add("surtrum_bloodstone", new SurtrumBloodstoneItem(unstackableTool)); - public static final AbstentineBloodstoneItem ABSTENTINE_BLOODSTONE = add("abstentine_bloodstone", new AbstentineBloodstoneItem(unstackableTool)); + public static final GravityWandItem LEVITA_WAND = add("levita_wand", new GravityWandItem(unstackableRareTool().maxDamage(100))); + public static final CherineBloodstoneItem CHERINE_BLOODSTONE = add("cherine_bloodstone", new CherineBloodstoneItem(unstackableTool())); + public static final OlviteBloodstoneItem OLVITE_BLOODSTONE = add("olvite_bloodstone", new OlviteBloodstoneItem(unstackableTool())); + public static final SurtrumBloodstoneItem SURTRUM_BLOODSTONE = add("surtrum_bloodstone", new SurtrumBloodstoneItem(unstackableTool().fireproof())); + public static final AbstentineBloodstoneItem ABSTENTINE_BLOODSTONE = add("abstentine_bloodstone", new AbstentineBloodstoneItem(unstackableRareTool())); public static final Item GLAZED_GOLD_UPGRADE = add("glazed_gold_upgrade_smithing_template", new Item(tool())); @@ -129,10 +129,10 @@ private static Settings wearable() { public static final ArmorItem GLAZED_GOLD_BOOTS = add("glazed_gold_boots", new ArmorItem(ParadiseLostArmorMaterials.GLAZED_GOLD, FEET, WEARABLE)); // Surtrum - public static final ArmorItem SURTRUM_HELMET = add("surtrum_helmet", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, HEAD, wearable())); - public static final ArmorItem SURTRUM_CHESTPLATE = add("surtrum_chestplate", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, CHEST, wearable())); - public static final ArmorItem SURTRUM_LEGGINGS = add("surtrum_leggings", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, LEGS, wearable())); - public static final ArmorItem SURTRUM_BOOTS = add("surtrum_boots", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, FEET, wearable())); + public static final ArmorItem SURTRUM_HELMET = add("surtrum_helmet", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, HEAD, wearable().fireproof())); + public static final ArmorItem SURTRUM_CHESTPLATE = add("surtrum_chestplate", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, CHEST, wearable().fireproof())); + public static final ArmorItem SURTRUM_LEGGINGS = add("surtrum_leggings", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, LEGS, wearable().fireproof())); + public static final ArmorItem SURTRUM_BOOTS = add("surtrum_boots", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, FEET, wearable().fireproof())); private static Settings food() { @@ -186,116 +186,117 @@ private static Settings misc() { private static FabricItemSettings building_block() { return new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_BUILDING_BLOCKS); } - private static final FabricItemSettings building_block = building_block(); // stone - public static final BlockItem FLOESTONE = add("floestone", ParadiseLostBlocks.FLOESTONE, building_block); - public static final BlockItem COBBLED_FLOESTONE = add("cobbled_floestone", ParadiseLostBlocks.COBBLED_FLOESTONE, building_block); - public static final BlockItem HELIOLITH = add("heliolith", ParadiseLostBlocks.HELIOLITH, building_block); - public static final BlockItem VITROULITE = add("vitroulite", ParadiseLostBlocks.VITROULITE, building_block); + public static final BlockItem FLOESTONE = add("floestone", ParadiseLostBlocks.FLOESTONE, building_block()); + public static final BlockItem COBBLED_FLOESTONE = add("cobbled_floestone", ParadiseLostBlocks.COBBLED_FLOESTONE, building_block()); + public static final BlockItem HELIOLITH = add("heliolith", ParadiseLostBlocks.HELIOLITH, building_block()); + public static final BlockItem VITROULITE = add("vitroulite", ParadiseLostBlocks.VITROULITE, building_block()); // nature - public static final BlockItem HIGHLANDS_GRASS = add("highlands_grass", ParadiseLostBlocks.HIGHLANDS_GRASS, building_block); - - public static final BlockItem FROZEN_GRASS = add("frozen_grass", ParadiseLostBlocks.FROZEN_GRASS, building_block); - public static final BlockItem DIRT = add("dirt", ParadiseLostBlocks.DIRT, building_block); - public static final BlockItem COARSE_DIRT = add("coarse_dirt", ParadiseLostBlocks.COARSE_DIRT, building_block); - public static final BlockItem PERMAFROST = add("permafrost", ParadiseLostBlocks.PERMAFROST, building_block); - public static final BlockItem PACKED_SWEDROOT = add("packed_swedroot", ParadiseLostBlocks.PACKED_SWEDROOT, building_block, compostable85); - public static final BlockItem COLD_CLOUD = add("cold_cloud", ParadiseLostBlocks.COLD_CLOUD, building_block); - public static final BlockItem BLUE_CLOUD = add("blue_cloud", ParadiseLostBlocks.BLUE_CLOUD, building_block); - public static final BlockItem PINK_CLOUD = add("pink_cloud", ParadiseLostBlocks.PINK_CLOUD, building_block); - public static final BlockItem GOLDEN_CLOUD = add("golden_cloud", ParadiseLostBlocks.GOLDEN_CLOUD, building_block); + public static final BlockItem HIGHLANDS_GRASS = add("highlands_grass", ParadiseLostBlocks.HIGHLANDS_GRASS, building_block()); + + public static final BlockItem FROZEN_GRASS = add("frozen_grass", ParadiseLostBlocks.FROZEN_GRASS, building_block()); + public static final BlockItem DIRT = add("dirt", ParadiseLostBlocks.DIRT, building_block()); + public static final BlockItem COARSE_DIRT = add("coarse_dirt", ParadiseLostBlocks.COARSE_DIRT, building_block()); + public static final BlockItem PERMAFROST = add("permafrost", ParadiseLostBlocks.PERMAFROST, building_block()); + public static final BlockItem LEVITA = add("levita", ParadiseLostBlocks.LEVITA, building_block()); + public static final BlockItem PACKED_SWEDROOT = add("packed_swedroot", ParadiseLostBlocks.PACKED_SWEDROOT, building_block(), compostable85); + public static final BlockItem COLD_CLOUD = add("cold_cloud", ParadiseLostBlocks.COLD_CLOUD, building_block()); + public static final BlockItem BLUE_CLOUD = add("blue_cloud", ParadiseLostBlocks.BLUE_CLOUD, building_block()); + public static final BlockItem PINK_CLOUD = add("pink_cloud", ParadiseLostBlocks.PINK_CLOUD, building_block()); + public static final BlockItem GOLDEN_CLOUD = add("golden_cloud", ParadiseLostBlocks.GOLDEN_CLOUD, building_block()); // planks - public static final BlockItem AUREL_PLANKS = add("aurel_planks", ParadiseLostBlocks.AUREL_PLANKS, building_block); - public static final BlockItem MOTHER_AUREL_PLANKS = add("mother_aurel_planks", ParadiseLostBlocks.MOTHER_AUREL_PLANKS, building_block); - public static final BlockItem ORANGE_PLANKS = add("orange_planks", ParadiseLostBlocks.ORANGE_PLANKS, building_block); - public static final BlockItem WISTERIA_PLANKS = add("wisteria_planks", ParadiseLostBlocks.WISTERIA_PLANKS, building_block); - public static final BlockItem AUREL_BOOKSHELF = add("aurel_bookshelf", ParadiseLostBlocks.AUREL_BOOKSHELF, building_block); + public static final BlockItem AUREL_PLANKS = add("aurel_planks", ParadiseLostBlocks.AUREL_PLANKS, building_block()); + public static final BlockItem MOTHER_AUREL_PLANKS = add("mother_aurel_planks", ParadiseLostBlocks.MOTHER_AUREL_PLANKS, building_block()); + public static final BlockItem ORANGE_PLANKS = add("orange_planks", ParadiseLostBlocks.ORANGE_PLANKS, building_block()); + public static final BlockItem WISTERIA_PLANKS = add("wisteria_planks", ParadiseLostBlocks.WISTERIA_PLANKS, building_block()); + public static final BlockItem AUREL_BOOKSHELF = add("aurel_bookshelf", ParadiseLostBlocks.AUREL_BOOKSHELF, building_block()); // ores - public static final BlockItem CHERINE_ORE = add("cherine_ore", ParadiseLostBlocks.CHERINE_ORE, building_block); - public static final BlockItem OLVITE_ORE = add("olvite_ore", ParadiseLostBlocks.OLVITE_ORE, building_block); - public static final BlockItem SURTRUM = add("surtrum", ParadiseLostBlocks.SURTRUM, building_block); - public static final BlockItem METAMORPHIC_SHELL = add("metamorphic_shell", ParadiseLostBlocks.METAMORPHIC_SHELL, building_block); + public static final BlockItem CHERINE_ORE = add("cherine_ore", ParadiseLostBlocks.CHERINE_ORE, building_block()); + public static final BlockItem OLVITE_ORE = add("olvite_ore", ParadiseLostBlocks.OLVITE_ORE, building_block()); + public static final BlockItem SURTRUM = add("surtrum", ParadiseLostBlocks.SURTRUM, building_block().fireproof()); + public static final BlockItem METAMORPHIC_SHELL = add("metamorphic_shell", ParadiseLostBlocks.METAMORPHIC_SHELL, building_block()); + public static final BlockItem LEVITA_ORE = add("levita_ore", ParadiseLostBlocks.LEVITA_ORE, building_block()); // ore blocks - public static final BlockItem CHERINE_BLOCK = add("cherine_block", ParadiseLostBlocks.CHERINE_BLOCK, building_block, fuel(5000)); - public static final BlockItem OLVITE_BLOCK = add("olvite_block", ParadiseLostBlocks.OLVITE_BLOCK, building_block); - public static final BlockItem REFINED_SURTRUM_BLOCK = add("refined_surtrum_block", ParadiseLostBlocks.REFINED_SURTRUM_BLOCK, building_block); + public static final BlockItem CHERINE_BLOCK = add("cherine_block", ParadiseLostBlocks.CHERINE_BLOCK, building_block(), fuel(5000)); + public static final BlockItem OLVITE_BLOCK = add("olvite_block", ParadiseLostBlocks.OLVITE_BLOCK, building_block()); + public static final BlockItem REFINED_SURTRUM_BLOCK = add("refined_surtrum_block", ParadiseLostBlocks.REFINED_SURTRUM_BLOCK, building_block().fireproof()); // move this somewhere else - public static final BlockItem LEVITATOR = add("levitator", ParadiseLostBlocks.LEVITATOR, building_block); + public static final BlockItem LEVITATOR = add("levitator", ParadiseLostBlocks.LEVITATOR, building_block()); // logs - public static final BlockItem AUREL_LOG = add("aurel_log", ParadiseLostBlocks.AUREL_LOG, building_block); - public static final BlockItem MOTTLED_AUREL_LOG = add("mottled_aurel_log", ParadiseLostBlocks.MOTTLED_AUREL_LOG, building_block); - public static final BlockItem MOTTLED_AUREL_FALLEN_LOG = add("mottled_aurel_fallen_log", ParadiseLostBlocks.MOTTLED_AUREL_FALLEN_LOG, building_block); - public static final BlockItem MOTHER_AUREL_LOG = add("mother_aurel_log", ParadiseLostBlocks.MOTHER_AUREL_LOG, building_block); - public static final BlockItem ORANGE_LOG = add("orange_log", ParadiseLostBlocks.ORANGE_LOG, building_block); - public static final BlockItem WISTERIA_LOG = add("wisteria_log", ParadiseLostBlocks.WISTERIA_LOG, building_block); + public static final BlockItem AUREL_LOG = add("aurel_log", ParadiseLostBlocks.AUREL_LOG, building_block()); + public static final BlockItem MOTTLED_AUREL_LOG = add("mottled_aurel_log", ParadiseLostBlocks.MOTTLED_AUREL_LOG, building_block()); + public static final BlockItem MOTTLED_AUREL_FALLEN_LOG = add("mottled_aurel_fallen_log", ParadiseLostBlocks.MOTTLED_AUREL_FALLEN_LOG, building_block()); + public static final BlockItem MOTHER_AUREL_LOG = add("mother_aurel_log", ParadiseLostBlocks.MOTHER_AUREL_LOG, building_block()); + public static final BlockItem ORANGE_LOG = add("orange_log", ParadiseLostBlocks.ORANGE_LOG, building_block()); + public static final BlockItem WISTERIA_LOG = add("wisteria_log", ParadiseLostBlocks.WISTERIA_LOG, building_block()); // stripped logs - public static final BlockItem STRIPPED_AUREL_LOG = add("stripped_aurel_log", ParadiseLostBlocks.STRIPPED_AUREL_LOG, building_block); - public static final BlockItem STRIPPED_MOTHER_AUREL_LOG = add("stripped_mother_aurel_log", ParadiseLostBlocks.STRIPPED_MOTHER_AUREL_LOG, building_block); - public static final BlockItem STRIPPED_ORANGE_LOG = add("stripped_orange_log", ParadiseLostBlocks.STRIPPED_ORANGE_LOG, building_block); - public static final BlockItem STRIPPED_WISTERIA_LOG = add("stripped_wisteria_log", ParadiseLostBlocks.STRIPPED_WISTERIA_LOG, building_block); + public static final BlockItem STRIPPED_AUREL_LOG = add("stripped_aurel_log", ParadiseLostBlocks.STRIPPED_AUREL_LOG, building_block()); + public static final BlockItem STRIPPED_MOTHER_AUREL_LOG = add("stripped_mother_aurel_log", ParadiseLostBlocks.STRIPPED_MOTHER_AUREL_LOG, building_block()); + public static final BlockItem STRIPPED_ORANGE_LOG = add("stripped_orange_log", ParadiseLostBlocks.STRIPPED_ORANGE_LOG, building_block()); + public static final BlockItem STRIPPED_WISTERIA_LOG = add("stripped_wisteria_log", ParadiseLostBlocks.STRIPPED_WISTERIA_LOG, building_block()); // stripped wood - public static final BlockItem STRIPPED_AUREL_WOOD = add("stripped_aurel_wood", ParadiseLostBlocks.STRIPPED_AUREL_WOOD, building_block); - public static final BlockItem STRIPPED_MOTHER_AUREL_WOOD = add("stripped_mother_aurel_wood", ParadiseLostBlocks.STRIPPED_MOTHER_AUREL_WOOD, building_block); - public static final BlockItem STRIPPED_ORANGE_WOOD = add("stripped_orange_wood", ParadiseLostBlocks.STRIPPED_ORANGE_WOOD, building_block); - public static final BlockItem STRIPPED_WISTERIA_WOOD = add("stripped_wisteria_wood", ParadiseLostBlocks.STRIPPED_WISTERIA_WOOD, building_block); + public static final BlockItem STRIPPED_AUREL_WOOD = add("stripped_aurel_wood", ParadiseLostBlocks.STRIPPED_AUREL_WOOD, building_block()); + public static final BlockItem STRIPPED_MOTHER_AUREL_WOOD = add("stripped_mother_aurel_wood", ParadiseLostBlocks.STRIPPED_MOTHER_AUREL_WOOD, building_block()); + public static final BlockItem STRIPPED_ORANGE_WOOD = add("stripped_orange_wood", ParadiseLostBlocks.STRIPPED_ORANGE_WOOD, building_block()); + public static final BlockItem STRIPPED_WISTERIA_WOOD = add("stripped_wisteria_wood", ParadiseLostBlocks.STRIPPED_WISTERIA_WOOD, building_block()); // wood - public static final BlockItem AUREL_WOOD = add("aurel_wood", ParadiseLostBlocks.AUREL_WOOD, building_block); - public static final BlockItem MOTHER_AUREL_WOOD = add("mother_aurel_wood", ParadiseLostBlocks.MOTHER_AUREL_WOOD, building_block); - public static final BlockItem ORANGE_WOOD = add("orange_wood", ParadiseLostBlocks.ORANGE_WOOD, building_block); - public static final BlockItem WISTERIA_WOOD = add("wisteria_wood", ParadiseLostBlocks.WISTERIA_WOOD, building_block); + public static final BlockItem AUREL_WOOD = add("aurel_wood", ParadiseLostBlocks.AUREL_WOOD, building_block()); + public static final BlockItem MOTHER_AUREL_WOOD = add("mother_aurel_wood", ParadiseLostBlocks.MOTHER_AUREL_WOOD, building_block()); + public static final BlockItem ORANGE_WOOD = add("orange_wood", ParadiseLostBlocks.ORANGE_WOOD, building_block()); + public static final BlockItem WISTERIA_WOOD = add("wisteria_wood", ParadiseLostBlocks.WISTERIA_WOOD, building_block()); // glass // slabs - public static final BlockItem AUREL_SLAB = add("aurel_slab", ParadiseLostBlocks.AUREL_SLAB, building_block); - public static final BlockItem MOTHER_AUREL_SLAB = add("mother_aurel_slab", ParadiseLostBlocks.MOTHER_AUREL_SLAB, building_block); - public static final BlockItem ORANGE_SLAB = add("orange_slab", ParadiseLostBlocks.ORANGE_SLAB, building_block); - public static final BlockItem WISTERIA_SLAB = add("wisteria_slab", ParadiseLostBlocks.WISTERIA_SLAB, building_block); + public static final BlockItem AUREL_SLAB = add("aurel_slab", ParadiseLostBlocks.AUREL_SLAB, building_block()); + public static final BlockItem MOTHER_AUREL_SLAB = add("mother_aurel_slab", ParadiseLostBlocks.MOTHER_AUREL_SLAB, building_block()); + public static final BlockItem ORANGE_SLAB = add("orange_slab", ParadiseLostBlocks.ORANGE_SLAB, building_block()); + public static final BlockItem WISTERIA_SLAB = add("wisteria_slab", ParadiseLostBlocks.WISTERIA_SLAB, building_block()); // smooth stuff // cobble variants - public static final BlockItem MOSSY_FLOESTONE = add("mossy_floestone", ParadiseLostBlocks.MOSSY_FLOESTONE, building_block); - public static final BlockItem GOLDEN_MOSSY_FLOESTONE = add("golden_mossy_floestone", ParadiseLostBlocks.GOLDEN_MOSSY_FLOESTONE, building_block); + public static final BlockItem MOSSY_FLOESTONE = add("mossy_floestone", ParadiseLostBlocks.MOSSY_FLOESTONE, building_block()); + public static final BlockItem GOLDEN_MOSSY_FLOESTONE = add("golden_mossy_floestone", ParadiseLostBlocks.GOLDEN_MOSSY_FLOESTONE, building_block()); // bricks - public static final BlockItem FLOESTONE_BRICK = add("floestone_brick", ParadiseLostBlocks.FLOESTONE_BRICK, building_block); - public static final BlockItem CHISELED_FLOESTONE = add("chiseled_floestone", ParadiseLostBlocks.CHISELED_FLOESTONE, building_block); - public static final BlockItem SMOOTH_HELIOLITH = add("smooth_heliolith", ParadiseLostBlocks.SMOOTH_HELIOLITH, building_block); - public static final BlockItem CARVED_STONE = add("carved_stone", ParadiseLostBlocks.CARVED_STONE, building_block); - public static final BlockItem MOSSY_CARVED_STONE = add("mossy_carved_stone", ParadiseLostBlocks.MOSSY_CARVED_STONE, building_block); - public static final BlockItem CRACKED_CARVED_STONE = add("cracked_carved_stone", ParadiseLostBlocks.CRACKED_CARVED_STONE, building_block); - public static final BlockItem GLYPHED_CARVED_STONE = add("glyphed_carved_stone", ParadiseLostBlocks.GLYPHED_CARVED_STONE, building_block); - public static final BlockItem CARVED_STONE_PANEL = add("carved_stone_panel", ParadiseLostBlocks.CARVED_STONE_PANEL, building_block); - public static final BlockItem CARVED_STONE_PANEL_LIT = add("carved_stone_panel_lit", ParadiseLostBlocks.CARVED_STONE_PANEL_LIT, building_block); - public static final BlockItem CARVED_STONE_EYE = add("carved_stone_eye", ParadiseLostBlocks.CARVED_STONE_EYE, building_block); - public static final BlockItem CARVED_STONE_EYE_LIT = add("carved_stone_eye_lit", ParadiseLostBlocks.CARVED_STONE_EYE_LIT, building_block); - - public static final BlockItem GOLDEN_AMBER_TILE = add("golden_amber_tile", ParadiseLostBlocks.GOLDEN_AMBER_TILE, building_block); + public static final BlockItem FLOESTONE_BRICK = add("floestone_brick", ParadiseLostBlocks.FLOESTONE_BRICK, building_block()); + public static final BlockItem CHISELED_FLOESTONE = add("chiseled_floestone", ParadiseLostBlocks.CHISELED_FLOESTONE, building_block()); + public static final BlockItem SMOOTH_HELIOLITH = add("smooth_heliolith", ParadiseLostBlocks.SMOOTH_HELIOLITH, building_block()); + public static final BlockItem CARVED_STONE = add("carved_stone", ParadiseLostBlocks.CARVED_STONE, building_block()); + public static final BlockItem MOSSY_CARVED_STONE = add("mossy_carved_stone", ParadiseLostBlocks.MOSSY_CARVED_STONE, building_block()); + public static final BlockItem CRACKED_CARVED_STONE = add("cracked_carved_stone", ParadiseLostBlocks.CRACKED_CARVED_STONE, building_block()); + public static final BlockItem GLYPHED_CARVED_STONE = add("glyphed_carved_stone", ParadiseLostBlocks.GLYPHED_CARVED_STONE, building_block()); + public static final BlockItem CARVED_STONE_PANEL = add("carved_stone_panel", ParadiseLostBlocks.CARVED_STONE_PANEL, building_block()); + public static final BlockItem CARVED_STONE_PANEL_LIT = add("carved_stone_panel_lit", ParadiseLostBlocks.CARVED_STONE_PANEL_LIT, building_block()); + public static final BlockItem CARVED_STONE_EYE = add("carved_stone_eye", ParadiseLostBlocks.CARVED_STONE_EYE, building_block()); + public static final BlockItem CARVED_STONE_EYE_LIT = add("carved_stone_eye_lit", ParadiseLostBlocks.CARVED_STONE_EYE_LIT, building_block()); + + public static final BlockItem GOLDEN_AMBER_TILE = add("golden_amber_tile", ParadiseLostBlocks.GOLDEN_AMBER_TILE, building_block()); // stairs - public static final BlockItem AUREL_STAIRS = add("aurel_stairs", ParadiseLostBlocks.AUREL_STAIRS, building_block); - public static final BlockItem MOTHER_AUREL_STAIRS = add("mother_aurel_stairs", ParadiseLostBlocks.MOTHER_AUREL_STAIRS, building_block); - public static final BlockItem ORANGE_STAIRS = add("orange_stairs", ParadiseLostBlocks.ORANGE_STAIRS, building_block); - public static final BlockItem WISTERIA_STAIRS = add("wisteria_stairs", ParadiseLostBlocks.WISTERIA_STAIRS, building_block); + public static final BlockItem AUREL_STAIRS = add("aurel_stairs", ParadiseLostBlocks.AUREL_STAIRS, building_block()); + public static final BlockItem MOTHER_AUREL_STAIRS = add("mother_aurel_stairs", ParadiseLostBlocks.MOTHER_AUREL_STAIRS, building_block()); + public static final BlockItem ORANGE_STAIRS = add("orange_stairs", ParadiseLostBlocks.ORANGE_STAIRS, building_block()); + public static final BlockItem WISTERIA_STAIRS = add("wisteria_stairs", ParadiseLostBlocks.WISTERIA_STAIRS, building_block()); // stone stairs + slabs - public static final BlockItem FLOESTONE_STAIRS = add("floestone_stairs", ParadiseLostBlocks.FLOESTONE_STAIRS, building_block); - public static final BlockItem COBBLED_FLOESTONE_STAIRS = add("cobbled_floestone_stairs", ParadiseLostBlocks.COBBLED_FLOESTONE_STAIRS, building_block); - public static final BlockItem MOSSY_FLOESTONE_STAIRS = add("mossy_floestone_stairs", ParadiseLostBlocks.MOSSY_FLOESTONE_STAIRS, building_block); - public static final BlockItem HELIOLITH_STAIRS = add("heliolith_stairs", ParadiseLostBlocks.HELIOLITH_STAIRS, building_block); - public static final BlockItem FLOESTONE_BRICK_STAIRS = add("floestone_brick_stairs", ParadiseLostBlocks.FLOESTONE_BRICK_STAIRS, building_block); - public static final BlockItem SMOOTH_HELIOLITH_STAIRS = add("smooth_heliolith_stairs", ParadiseLostBlocks.SMOOTH_HELIOLITH_STAIRS, building_block); - public static final BlockItem CARVED_STAIRS = add("carved_stone_stairs", ParadiseLostBlocks.CARVED_STONE_STAIRS, building_block); - public static final BlockItem MOSSY_CARVED_STAIRS = add("mossy_carved_stone_stairs", ParadiseLostBlocks.MOSSY_CARVED_STONE_STAIRS, building_block); - public static final BlockItem GOLDEN_AMBER_TILE_STAIRS = add("golden_amber_tile_stairs", ParadiseLostBlocks.GOLDEN_AMBER_TILE_STAIRS, building_block); - - public static final BlockItem FLOESTONE_SLAB = add("floestone_slab", ParadiseLostBlocks.FLOESTONE_SLAB, building_block); - public static final BlockItem COBBLED_FLOESTONE_SLAB = add("cobbled_floestone_slab", ParadiseLostBlocks.COBBLED_FLOESTONE_SLAB, building_block); - public static final BlockItem MOSSY_FLOESTONE_SLAB = add("mossy_floestone_slab", ParadiseLostBlocks.MOSSY_FLOESTONE_SLAB, building_block); - public static final BlockItem HELIOLITH_SLAB = add("heliolith_slab", ParadiseLostBlocks.HELIOLITH_SLAB, building_block); - public static final BlockItem FLOESTONE_BRICK_SLAB = add("floestone_brick_slab", ParadiseLostBlocks.FLOESTONE_BRICK_SLAB, building_block); - public static final BlockItem SMOOTH_HELIOLITH_SLAB = add("smooth_heliolith_slab", ParadiseLostBlocks.SMOOTH_HELIOLITH_SLAB, building_block); - public static final BlockItem CARVED_SLAB = add("carved_stone_slab", ParadiseLostBlocks.CARVED_STONE_SLAB, building_block); - public static final BlockItem MOSSY_CARVED_SLAB = add("mossy_carved_stone_slab", ParadiseLostBlocks.MOSSY_CARVED_STONE_SLAB, building_block); - public static final BlockItem GOLDEN_AMBER_TILE_SLAB = add("golden_amber_tile_slab", ParadiseLostBlocks.GOLDEN_AMBER_TILE_SLAB, building_block); + public static final BlockItem FLOESTONE_STAIRS = add("floestone_stairs", ParadiseLostBlocks.FLOESTONE_STAIRS, building_block()); + public static final BlockItem COBBLED_FLOESTONE_STAIRS = add("cobbled_floestone_stairs", ParadiseLostBlocks.COBBLED_FLOESTONE_STAIRS, building_block()); + public static final BlockItem MOSSY_FLOESTONE_STAIRS = add("mossy_floestone_stairs", ParadiseLostBlocks.MOSSY_FLOESTONE_STAIRS, building_block()); + public static final BlockItem HELIOLITH_STAIRS = add("heliolith_stairs", ParadiseLostBlocks.HELIOLITH_STAIRS, building_block()); + public static final BlockItem FLOESTONE_BRICK_STAIRS = add("floestone_brick_stairs", ParadiseLostBlocks.FLOESTONE_BRICK_STAIRS, building_block()); + public static final BlockItem SMOOTH_HELIOLITH_STAIRS = add("smooth_heliolith_stairs", ParadiseLostBlocks.SMOOTH_HELIOLITH_STAIRS, building_block()); + public static final BlockItem CARVED_STAIRS = add("carved_stone_stairs", ParadiseLostBlocks.CARVED_STONE_STAIRS, building_block()); + public static final BlockItem MOSSY_CARVED_STAIRS = add("mossy_carved_stone_stairs", ParadiseLostBlocks.MOSSY_CARVED_STONE_STAIRS, building_block()); + public static final BlockItem GOLDEN_AMBER_TILE_STAIRS = add("golden_amber_tile_stairs", ParadiseLostBlocks.GOLDEN_AMBER_TILE_STAIRS, building_block()); + + public static final BlockItem FLOESTONE_SLAB = add("floestone_slab", ParadiseLostBlocks.FLOESTONE_SLAB, building_block()); + public static final BlockItem COBBLED_FLOESTONE_SLAB = add("cobbled_floestone_slab", ParadiseLostBlocks.COBBLED_FLOESTONE_SLAB, building_block()); + public static final BlockItem MOSSY_FLOESTONE_SLAB = add("mossy_floestone_slab", ParadiseLostBlocks.MOSSY_FLOESTONE_SLAB, building_block()); + public static final BlockItem HELIOLITH_SLAB = add("heliolith_slab", ParadiseLostBlocks.HELIOLITH_SLAB, building_block()); + public static final BlockItem FLOESTONE_BRICK_SLAB = add("floestone_brick_slab", ParadiseLostBlocks.FLOESTONE_BRICK_SLAB, building_block()); + public static final BlockItem SMOOTH_HELIOLITH_SLAB = add("smooth_heliolith_slab", ParadiseLostBlocks.SMOOTH_HELIOLITH_SLAB, building_block()); + public static final BlockItem CARVED_SLAB = add("carved_stone_slab", ParadiseLostBlocks.CARVED_STONE_SLAB, building_block()); + public static final BlockItem MOSSY_CARVED_SLAB = add("mossy_carved_stone_slab", ParadiseLostBlocks.MOSSY_CARVED_STONE_SLAB, building_block()); + public static final BlockItem GOLDEN_AMBER_TILE_SLAB = add("golden_amber_tile_slab", ParadiseLostBlocks.GOLDEN_AMBER_TILE_SLAB, building_block()); // colorfuls private static FabricItemSettings decoration() { diff --git a/src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java b/src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java new file mode 100644 index 000000000..d3bd6ae99 --- /dev/null +++ b/src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java @@ -0,0 +1,24 @@ +package net.id.paradiselost.items.tools.base_tools; + +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.util.*; + +public class GravityWandItem extends Item { + public GravityWandItem(Settings settings) { + super(settings); + } + + @Override + public ActionResult useOnEntity(ItemStack stack, PlayerEntity player, LivingEntity entity, Hand hand) { + return GravityTool.flipEntity(stack, player, entity, hand); + } + + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + return GravityTool.tryFloatBlock(context, super.useOnBlock(context)); + } +} diff --git a/src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java b/src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java new file mode 100644 index 000000000..3742021bc --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java @@ -0,0 +1,18 @@ +package net.id.paradiselost.mixin.enchantment; + +import net.id.paradiselost.tag.ParadiseLostItemTags; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(EnchantmentHelper.class) +public class EnchantmentHelperMixin { + + @Inject(method = "getFireAspect", at = @At("HEAD"), cancellable = true) + private static void getFireAspect(LivingEntity entity, CallbackInfoReturnable cir) { + if (entity.getStackInHand(entity.getActiveHand()).isIn(ParadiseLostItemTags.IGNITING_TOOLS)) cir.setReturnValue(2); + } +} diff --git a/src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java b/src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java index 94ce0daf6..54852cb9d 100644 --- a/src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java +++ b/src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java @@ -10,6 +10,7 @@ public class ParadiseLostItemTags { public static final TagKey MOA_TEMPTABLES = register("entity/moa_temptables"); public static final TagKey RIGHTEOUS_WEAPONS = register("tool/righteous_weapons"); public static final TagKey SACRED_WEAPONS = register("tool/sacred_weapons"); + public static final TagKey IGNITING_TOOLS = register("tool/igniting_tools"); private static TagKey register(String id) { return TagKey.of(Registry.ITEM_KEY, ParadiseLost.locate(id)); diff --git a/src/main/resources/asset_helper.py b/src/main/resources/asset_helper.py index 8d54b97f0..c2f130a65 100644 --- a/src/main/resources/asset_helper.py +++ b/src/main/resources/asset_helper.py @@ -80,12 +80,10 @@ def generate_slab_block(block_id, base_block_id, texture): -generate_standard_block("heliolith") -generate_stairs_block("heliolith_stairs", "heliolith") -generate_slab_block("heliolith_slab", "heliolith", "heliolith") -generate_standard_block("smooth_heliolith") -generate_stairs_block("smooth_heliolith_stairs", "smooth_heliolith") -generate_slab_block("smooth_heliolith_slab", "smooth_heliolith", "smooth_heliolith") +generate_standard_block("levita") +generate_standard_block("levita_ore") +generate_standard_item("levita_gem") +generate_standard_item("levita_wand") diff --git a/src/main/resources/assets/paradise_lost/blockstates/levita.json b/src/main/resources/assets/paradise_lost/blockstates/levita.json new file mode 100644 index 000000000..0148f0dd0 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/levita.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "paradise_lost:block/levita" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/levita_ore.json b/src/main/resources/assets/paradise_lost/blockstates/levita_ore.json new file mode 100644 index 000000000..dd8fb0dfa --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/levita_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "paradise_lost:block/levita_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/lang/en_us.json b/src/main/resources/assets/paradise_lost/lang/en_us.json index 5ea753cd4..8dd0e20f8 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -30,6 +30,7 @@ "block.paradise_lost.dirt": "Paradise Dirt", "block.paradise_lost.coarse_dirt": "Coarse Paradise Dirt", "block.paradise_lost.permafrost": "Permafrost", + "block.paradise_lost.levita": "Levita Precipitate", "block.paradise_lost.farmland": "Paradise Farmland", "block.paradise_lost.grass_path": "Paradise Grass Path", "block.paradise_lost.packed_swedroot": "Packed Swedroot", @@ -239,6 +240,7 @@ "block.paradise_lost.olvite_ore": "Olvite Ore", "block.paradise_lost.surtrum": "Surtrum", "block.paradise_lost.metamorphic_shell": "Metamorphic Shell", + "block.paradise_lost.levita_ore": "Levita Ore", "block.paradise_lost.cherine_block": "Block of Cherine", "block.paradise_lost.olvite_block": "Block of Olvite", "block.paradise_lost.refined_surtrum_block": "Block of Refined Surtrum", @@ -287,6 +289,7 @@ "item.paradise_lost.olvite_nugget": "Olvite Nugget", "item.paradise_lost.refined_surtrum": "Refined Surtrum", "item.paradise_lost.raw_surtrum": "Surtrum Fragment", + "item.paradise_lost.levita_gem": "Levita Bead", "item.paradise_lost.flax_thread" : "Flax Thread", "item.paradise_lost.flaxweave" : "Flaxweave", "item.paradise_lost.swedroot_pulp": "Swedroot Pulp", @@ -312,6 +315,7 @@ "item.paradise_lost.cold_parachute": "Cold Parachute", "item.paradise_lost.golden_parachute": "Golden Parachute", + "item.paradise_lost.levita_wand": "Levitation Wand", "item.paradise_lost.cherine_bloodstone": "Cherine Bloodstone", "item.paradise_lost.olvite_bloodstone": "Olvite Bloodstone", "item.paradise_lost.surtrum_bloodstone": "Surtrum Bloodstone", diff --git a/src/main/resources/assets/paradise_lost/models/block/levita.json b/src/main/resources/assets/paradise_lost/models/block/levita.json new file mode 100644 index 000000000..a933a6369 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "paradise_lost:block/levita" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/levita_ore.json b/src/main/resources/assets/paradise_lost/models/block/levita_ore.json new file mode 100644 index 000000000..c7d0abdd3 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "paradise_lost:block/levita_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita.json b/src/main/resources/assets/paradise_lost/models/item/levita.json new file mode 100644 index 000000000..996c8271f --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/levita" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita_gem.json b/src/main/resources/assets/paradise_lost/models/item/levita_gem.json new file mode 100644 index 000000000..df6370ffb --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita_gem.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "paradise_lost:item/levita_gem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita_ore.json b/src/main/resources/assets/paradise_lost/models/item/levita_ore.json new file mode 100644 index 000000000..b8def7ec1 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/levita_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita_wand.json b/src/main/resources/assets/paradise_lost/models/item/levita_wand.json new file mode 100644 index 000000000..861e456b4 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita_wand.json @@ -0,0 +1,6 @@ +{ + "parent": "paradise_lost:item/handheld_small", + "textures": { + "layer0": "paradise_lost:item/levita_wand" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/textures/block/levita.png b/src/main/resources/assets/paradise_lost/textures/block/levita.png new file mode 100644 index 0000000000000000000000000000000000000000..e80dd00d664632c29eafdcb1d4bdaae0d069b481 GIT binary patch literal 708 zcmV;#0z3VQP)Px%en~_@R5*=QlFe%xQ5400nNW*XYwU=EWQdJWP3eaOH%$$p3m3K!X`#F6ve3UE z-DaJ?L$b>v*|=~OOd~DUn$&}-sW-defPX`?maU*+eZ_C zy~ABTfBMMe(g9$rSR@%&(0V$nnKbUH)EaE4D#daMHJ3-KwGTvba_LZQH33*(DWLUq zQR@#Z0FrTqtzr?wv}ko~W?#Q~ziHXO3C{%?jxMRx8p!^K)5l5*P1pEkTyXd99ZpWW zgy(|1eEbSc*RaO}BmmnP5eduUhty(#;rL9%8>)($%TMFjvS4VK7Lx6ZFw7~vwyqNi z%j_QP(;rx9MqMXttP|qnUEUr`p|khlA9=G*8nJ%O8~^8G8?KY^tuv5o&{o2S%6D7 zHEBj&cp%{Q(dyVDSE)7l@b(?4#Q@QEs`?c1BYMH&>NOWQl}jRx{~a);3IwkY{1) zkN*SAB(lsV(oZ)%*D~d=`*h87y#5LOfyF(akNqFtIXUg}<@i`^BK!OiUGtpY`2|TO zg_KYfG^5UHCQZQWqpj;=Wrk@9_qp3@b!-4ORF%|X04d~Iz;;IT2Nt$7BB3a__I8_N qQJLZR48ye8JKROh<(ct&0r&@jWI-orqFROk0000Px%R!KxbR5*=wlRan?VHn4M2?v(uKEQ@@w1(0^pdl%kR$N>{r-G10oOM$w*)4R| zP~2jM;8I)~kPb!)#SS_s6mbYNM}h~@5EG8l2JR!r1%x=9cTJ(b@D4Bk=l}3N&+mC6 z2m5=Ik>dam6Gf!i8En^M5=oKS-SU&whZ(93Ev$7j zQ74s3V!LUoCmO|#rjPOMo7a>7O_?-1gK>7wH{ls&^^`+xm7!8WosXmI9Uo)BUQ*-` z)yQ!$`U7;mX*G0x6IjDqcY#6;1@C_}ZU@i_fGMA>a<lOS8L ziNS(hH~S;UxzaDe=nujfziu-}Q%#*V+m?xKnfwK+;yLSK3vwF(00003MLw6a|V7gj5+1Q+&JaKYj`wJmRMb^ZE}e~FqSQJJOmV>n-z;g=|OKJ5Pb zG>&!<$|(N!<9`sq!r}&isfD?A5R#zUm&LD-UYt8?wG(UoZ;anx1hBobR+nLL_@2oq z_9|sWur=hM@G4~zbs5Si2H?DV`^x3q0&cb9=II%|QgE@f`~){kFx1-jk65uVp%O#z zUC#aBc;oYa6#&oxI*%V(P%h_6tFbh=UZ)G73hZg~>{iNDfns68UeVUDG%1nK2`&x{ zsyuU#;lQ9^;pB58(lm@EJ^Nt#?(;W4fkHNen~h92Wxju8pEx2K99!7w4Is~NltS-^ T(>ML&00000NkvXXu0mjf_u}wd delta 437 zcmV;m0ZRUa1l$9VF@KgxL_t(2k&TkUO9DX@#=n&nw%r*O5)nhB$Y2lAVUIzby47FM zx#-rP(5*TYT?&G3(K)G_ zxsn1vZHxPo+7=d~-RS~oH5y-?o|(@DxI#>>LHaY zEAI~+LbRLr2ijdNmz6eub!si zaKUv~N~qRca7w5?rGy&YeP{Xj0>Fg58s6T7y)OQej?3J;F+Mx!u{^7X0eG1a09Frs znUSinkmZe~5`O@^u?*?kf4ZkLyllpvB*p*2wMWL|!>vPz23)PyDj%O}N=oR??lxvi zFcgBZqM1y@xi1xbhY(gM9lqsU06-aNdRv%*atPsqhY$eQZnglpz_XCoUFibJL|h-K ztuYZGMWYc)XkNl4R?I|RBB9|#BU94qF;h(a!N&UP(k{*YH;}L`%r-LE)MTuvN1PHZ flr-$%1}M)Do^Ids^-~Bc00000NkvXXu0mjf@~q8u diff --git a/src/main/resources/assets/paradise_lost/textures/item/levita_gem.png b/src/main/resources/assets/paradise_lost/textures/item/levita_gem.png new file mode 100644 index 0000000000000000000000000000000000000000..d041e79cfd9ed8a2f35f2a0e6e374df581b6755f GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D%z`8-`5Lo9le z6C^%02+m(p{p#d@efhm92|%!8!)5;UQEO&x|MKVm|N7rc|66|k|KGge{ulY#R%$V` zim#rP*mHTGkwJvEVa1-*1cB+o=@ZQJ4jZ&cu79@pyM&FJU2?^Gy|V&mRnHdm_s)ID zzc}dd@#odj8+RQzP|Ltj>==4J4iZ#E_9RPxY-#0YdWDoK1?0l6bu`bn7 ze1=Zp%*5BBv27>K{S6N=1;qHxN!)ZKmF=)7KSw*`rf1*t*BR`oFK$%~zuR-L;1F{g zNWjJ>x>ZP8B2YR1&bRo(CuTl8wsS8}ladvWnczMi_pqE}t0Y%5o@g^LFgOs~!qhnxW;{AWlJlf_tidqX7R2;l`u}|eJ p506LOj_(fy58JNT+%CqzaIh$UdSBPwDZmh8@O1TaS?83{1OU8Lp0WS{ literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/levita.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/levita.json new file mode 100644 index 000000000..9c96353c9 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/levita.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:levita" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/levita_ore.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/levita_ore.json new file mode 100644 index 000000000..0c900f68a --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/levita_ore.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "paradise_lost:levita_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "paradise_lost:levita_gem" + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/recipes/levita_from_blasting.json b/src/main/resources/data/paradise_lost/recipes/levita_from_blasting.json new file mode 100644 index 000000000..30f21fb18 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/levita_from_blasting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "paradise_lost:levita_ore" + }, + "result": "paradise_lost:levita_gem", + "experience": 1.2, + "cookingtime": 100 +} diff --git a/src/main/resources/data/paradise_lost/recipes/levita_from_smelting.json b/src/main/resources/data/paradise_lost/recipes/levita_from_smelting.json new file mode 100644 index 000000000..9d2dc850d --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/levita_from_smelting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "paradise_lost:levita_ore" + }, + "result": "paradise_lost:levita_gem", + "experience": 1.2, + "cookingtime": 200 +} diff --git a/src/main/resources/data/paradise_lost/recipes/levita_wand.json b/src/main/resources/data/paradise_lost/recipes/levita_wand.json new file mode 100644 index 000000000..94574ad51 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/levita_wand.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " X", + " # ", + "# " + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "paradise_lost:levita_gem" + } + }, + "result": { + "item": "paradise_lost:levita_wand" + } +} diff --git a/src/main/resources/data/paradise_lost/recipes/levitator.json b/src/main/resources/data/paradise_lost/recipes/levitator.json index 2c360f8b3..58529bdb7 100644 --- a/src/main/resources/data/paradise_lost/recipes/levitator.json +++ b/src/main/resources/data/paradise_lost/recipes/levitator.json @@ -7,7 +7,7 @@ ], "key": { "G": { - "item": "paradise_lost:refined_surtrum" + "item": "paradise_lost:levita_gem" }, "S": { "item": "paradise_lost:floestone_brick" diff --git a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_shovel.json b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_shovel.json index 8ba242396..7fb950651 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_shovel.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_shovel.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "paradise_lost:levita", "paradise_lost:grass_path", "paradise_lost:farmland", "#paradise_lost:dirt_blocks", diff --git a/src/main/resources/data/paradise_lost/tags/blocks/ores.json b/src/main/resources/data/paradise_lost/tags/blocks/ores.json index 96a2d46a9..15b44ea88 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/ores.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/ores.json @@ -3,6 +3,7 @@ "values": [ "paradise_lost:cherine_ore", "paradise_lost:olvite_ore", - "paradise_lost:surtrum" + "paradise_lost:surtrum", + "paradise_lost:levita_ore" ] } diff --git a/src/main/resources/data/paradise_lost/tags/blocks/requires_iron_tool.json b/src/main/resources/data/paradise_lost/tags/blocks/requires_iron_tool.json index 8a4da7c03..cecafa46f 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/requires_iron_tool.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/requires_iron_tool.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "paradise_lost:surtrum" + "paradise_lost:surtrum", + "paradise_lost:levita_ore" ] } diff --git a/src/main/resources/data/paradise_lost/tags/items/tool/igniting_tools.json b/src/main/resources/data/paradise_lost/tags/items/tool/igniting_tools.json new file mode 100644 index 000000000..f839d465c --- /dev/null +++ b/src/main/resources/data/paradise_lost/tags/items/tool/igniting_tools.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "paradise_lost:surtrum_shovel", + "paradise_lost:surtrum_pickaxe", + "paradise_lost:surtrum_axe", + "paradise_lost:surtrum_sword", + "paradise_lost:surtrum_hoe" + ] +} diff --git a/src/main/resources/paradise_lost.mixins.json b/src/main/resources/paradise_lost.mixins.json index 6c42d63ac..feece1f62 100644 --- a/src/main/resources/paradise_lost.mixins.json +++ b/src/main/resources/paradise_lost.mixins.json @@ -8,6 +8,7 @@ "block.CropBlockMixin", "block.EnchantingTableBlockMixin", "block.FarmlandBlockMixin", + "enchantment.EnchantmentHelperMixin", "entity.CowEntityMixin", "entity.EntityMixin", "entity.LivingEntityMixin",