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 341e4cfb2..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))); @@ -131,6 +132,15 @@ private static Settings floestoneBrick() { public static final ParadiseLostStairsBlock FLOESTONE_BRICK_STAIRS = add("floestone_brick_stairs", new ParadiseLostStairsBlock(FLOESTONE_BRICK.getDefaultState(), floestoneBrick())); public static final WallBlock FLOESTONE_BRICK_WALL = add("floestone_brick_wall", new WallBlock(floestoneBrick())); + // Heliolith + public static final Block HELIOLITH = add("heliolith", new Block(floestone())); + public static final Block SMOOTH_HELIOLITH = add("smooth_heliolith", new Block(floestone())); + public static final SlabBlock HELIOLITH_SLAB = add("heliolith_slab", new SlabBlock(floestone())); + public static final SlabBlock SMOOTH_HELIOLITH_SLAB = add("smooth_heliolith_slab", new SlabBlock(floestone())); + public static final ParadiseLostStairsBlock HELIOLITH_STAIRS = add("heliolith_stairs", new ParadiseLostStairsBlock(FLOESTONE_BRICK.getDefaultState(), floestone())); + public static final ParadiseLostStairsBlock SMOOTH_HELIOLITH_STAIRS = add("smooth_heliolith_stairs", new ParadiseLostStairsBlock(FLOESTONE_BRICK.getDefaultState(), floestone())); + public static final WallBlock HELIOLITH_WALL = add("heliolith_wall", new WallBlock(floestone())); + // Dungeon Blocks private static Settings carvedStone() { return of(Material.STONE).hardness(0.5f).resistance(1f).sounds(BlockSoundGroup.STONE); @@ -360,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 a33d3abcc..270bd5550 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,12 @@ 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 +88,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 +101,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 +133,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,110 +190,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 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 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 FLOESTONE_BRICK_STAIRS = add("floestone_brick_stairs", ParadiseLostBlocks.FLOESTONE_BRICK_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 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 FLOESTONE_BRICK_SLAB = add("floestone_brick_slab", ParadiseLostBlocks.FLOESTONE_BRICK_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 GOLDEN_AMBER_TILE_STAIRS = add("golden_amber_tile_stairs", ParadiseLostBlocks.GOLDEN_AMBER_TILE_STAIRS, 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() { @@ -401,6 +412,7 @@ private static FabricItemSettings decoration() { public static final BlockItem FLOESTONE_WALL = add("floestone_wall", ParadiseLostBlocks.FLOESTONE_WALL, decoration); public static final BlockItem COBBLED_FLOESTONE_WALL = add("cobbled_floestone_wall", ParadiseLostBlocks.COBBLED_FLOESTONE_WALL, decoration); public static final BlockItem MOSSY_FLOESTONE_WALL = add("mossy_floestone_wall", ParadiseLostBlocks.MOSSY_FLOESTONE_WALL, decoration); + public static final BlockItem HELIOLITH_WALL = add("heliolith_wall", ParadiseLostBlocks.HELIOLITH_WALL, decoration); public static final BlockItem FLOESTONE_BRICK_WALL = add("floestone_brick_wall", ParadiseLostBlocks.FLOESTONE_BRICK_WALL, decoration); public static final BlockItem CARVED_WALL = add("carved_stone_wall", ParadiseLostBlocks.CARVED_STONE_WALL, decoration); public static final BlockItem MOSSY_CARVED_WALL = add("mossy_carved_stone_wall", ParadiseLostBlocks.MOSSY_CARVED_STONE_WALL, 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/mixin/entity/LivingEntityMixin.java b/src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java index d23fb82f4..c558a78dc 100644 --- a/src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java @@ -81,18 +81,6 @@ private double changeGravity(double gravity) { return gravity; } - // 24: Removed because of gravitite's removal -// @Inject(method = "damage", at = @At("RETURN")) -// private void onDamage(DamageSource source, float amount, CallbackInfoReturnable cir) { -// Entity attacker = source.getAttacker(); -// if (cir.getReturnValue() && attacker instanceof LivingEntity) { -// Item item = ((LivingEntity) attacker).getMainHandStack().getItem(); -// if (item instanceof ToolItem tool && tool.getMaterial() == ParadiseLostToolMaterials.GRAVITITE) { -// this.addVelocity(0, amount / 20 + 0.1, 0); -// } -// } -// } - @Inject(method = "tick", at = @At("TAIL")) private void tick(CallbackInfo ci) { if (flipped) { 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/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java b/src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java index 9e539bc05..6a8e8a577 100644 --- a/src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java +++ b/src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java @@ -219,8 +219,11 @@ private static Map>> g SURTRUM_METEORITE ), GenerationStep.Feature.UNDERGROUND_ORES, List.of( + HELIOLITH_BLOB, + LEVITA_BLOB, ORE_CHERINE, - ORE_OLVITE + ORE_OLVITE, + ORE_LEVITA ), GenerationStep.Feature.VEGETAL_DECORATION, List.of( PATCH_BROWN_SPORECAP, diff --git a/src/main/java/net/id/paradiselost/world/feature/ParadiseLostFeatures.java b/src/main/java/net/id/paradiselost/world/feature/ParadiseLostFeatures.java index a9c93e784..5042431c3 100644 --- a/src/main/java/net/id/paradiselost/world/feature/ParadiseLostFeatures.java +++ b/src/main/java/net/id/paradiselost/world/feature/ParadiseLostFeatures.java @@ -30,6 +30,7 @@ public class ParadiseLostFeatures { public static final PillarFeature PILLAR_FEATURE = register("pillar_feature", new PillarFeature(LongFeatureConfig.CODEC)); public static final FallenPillarFeature FALLEN_PILLAR_FEATURE = register("fallen_pillar_feature", new FallenPillarFeature(LongFeatureConfig.CODEC)); + public static final JaggedOreFeature JAGGED_ORE = register("jagged_ore_feature", new JaggedOreFeature(JaggedOreConfig.CODEC)); public static final SurtrumMeteoriteFeature SURTRUM_METEORITE_FEATURE = register("surtrum_meteorite_feature", new SurtrumMeteoriteFeature(DefaultFeatureConfig.CODEC)); private static > F register(String id, F feature) { diff --git a/src/main/java/net/id/paradiselost/world/feature/configs/JaggedOreConfig.java b/src/main/java/net/id/paradiselost/world/feature/configs/JaggedOreConfig.java new file mode 100644 index 000000000..9f0490c3c --- /dev/null +++ b/src/main/java/net/id/paradiselost/world/feature/configs/JaggedOreConfig.java @@ -0,0 +1,17 @@ +package net.id.paradiselost.world.feature.configs; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.util.math.intprovider.IntProvider; +import net.minecraft.world.gen.feature.FeatureConfig; +import net.minecraft.world.gen.stateprovider.BlockStateProvider; + +public record JaggedOreConfig(BlockStateProvider block, IntProvider height, IntProvider width, IntProvider length, IntProvider lengthOffset) implements FeatureConfig { + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + BlockStateProvider.TYPE_CODEC.fieldOf("block").forGetter(JaggedOreConfig::block), + IntProvider.VALUE_CODEC.fieldOf("height").forGetter(JaggedOreConfig::height), + IntProvider.VALUE_CODEC.fieldOf("width").forGetter(JaggedOreConfig::width), + IntProvider.VALUE_CODEC.fieldOf("length").forGetter(JaggedOreConfig::length), + IntProvider.VALUE_CODEC.fieldOf("lengthOffset").forGetter(JaggedOreConfig::lengthOffset) + ).apply(instance, JaggedOreConfig::new)); +} diff --git a/src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostMiscConfiguredFeatures.java b/src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostMiscConfiguredFeatures.java index 8b650de91..739ec99ad 100644 --- a/src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostMiscConfiguredFeatures.java +++ b/src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostMiscConfiguredFeatures.java @@ -3,6 +3,7 @@ import net.id.paradiselost.world.feature.ParadiseLostFeatures; import net.id.paradiselost.world.feature.configs.BoulderFeatureConfig; import net.id.paradiselost.world.feature.configs.GroundcoverFeatureConfig; +import net.id.paradiselost.world.feature.configs.JaggedOreConfig; import net.id.paradiselost.world.feature.placed_features.ParadiseLostPlacedFeatures; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -39,8 +40,11 @@ public class ParadiseLostMiscConfiguredFeatures extends ParadiseLostConfiguredFe public static final RegistryEntry> THICKET_BOULDER = register("thicket_boulder", ParadiseLostFeatures.BOULDER, Configs.THICKET_BOULDER_CONFIG); public static final RegistryEntry> GOLDEN_BOULDER = register("golden_boulder", ParadiseLostFeatures.BOULDER, Configs.GOLDEN_BOULDER_CONFIG); + public static final RegistryEntry> HELIOLITH_BLOB = register("heliolith_blob", ParadiseLostFeatures.JAGGED_ORE, Configs.HELIOLITH_BLOB_CONFIG); + public static final RegistryEntry> LEVITA_BLOB = register("levita_blob", ParadiseLostFeatures.JAGGED_ORE, Configs.LEVITA_BLOB_CONFIG); public static final RegistryEntry> ORE_CHERINE = register("ore_cherine", Feature.ORE, Configs.ore(CHERINE_ORE, 14)); public static final RegistryEntry> ORE_OLVITE = register("ore_olvite", Feature.ORE, Configs.ore(OLVITE_ORE, 9)); + public static final RegistryEntry> ORE_LEVITA = register("ore_levita", Feature.ORE, Configs.ore(LEVITA_ORE, 3)); public static final RegistryEntry> SURTRUM_METEORITE = register("surtrum_meteorite", ParadiseLostFeatures.SURTRUM_METEORITE_FEATURE, new DefaultFeatureConfig()); // Plato // Shield @@ -79,6 +83,15 @@ private static BoulderFeatureConfig boulder(Block block, int tries, IntProvider return boulder(BlockStateProvider.of(block), tries, size); } + private static final JaggedOreConfig HELIOLITH_BLOB_CONFIG = + new JaggedOreConfig(BlockStateProvider.of(HELIOLITH), UniformIntProvider.create(4, 7), UniformIntProvider.create(7, 11), UniformIntProvider.create(5, 11), UniformIntProvider.create(1, 4)); + private static final JaggedOreConfig LEVITA_BLOB_CONFIG = + new JaggedOreConfig(new WeightedBlockStateProvider( + DataPool.builder() + .add(LEVITA.getDefaultState(), 200) + .add(LEVITA_ORE.getDefaultState(), 1) + ), UniformIntProvider.create(3, 5), UniformIntProvider.create(6, 10), UniformIntProvider.create(4, 10), UniformIntProvider.create(3, 6)); + private static final BoulderFeatureConfig GENERIC_BOULDER_CONFIG = boulder(new WeightedBlockStateProvider( DataPool.builder() .add(MOSSY_FLOESTONE.getDefaultState(), 1) diff --git a/src/main/java/net/id/paradiselost/world/feature/features/JaggedOreFeature.java b/src/main/java/net/id/paradiselost/world/feature/features/JaggedOreFeature.java new file mode 100644 index 000000000..d8aabfc63 --- /dev/null +++ b/src/main/java/net/id/paradiselost/world/feature/features/JaggedOreFeature.java @@ -0,0 +1,47 @@ +package net.id.paradiselost.world.feature.features; + +import com.mojang.serialization.Codec; +import net.id.paradiselost.blocks.FloatingBlock; +import net.id.paradiselost.tag.ParadiseLostBlockTags; +import net.id.paradiselost.world.feature.configs.JaggedOreConfig; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.util.FeatureContext; + +public class JaggedOreFeature extends Feature { + public JaggedOreFeature(Codec configCodec) { + super(configCodec); + } + + @Override + public boolean generate(FeatureContext context) { + JaggedOreConfig config = context.getConfig(); + BlockPos center = context.getOrigin(); + StructureWorldAccess world = context.getWorld(); + Random rand = context.getRandom(); + + int height = center.getY() + config.height().get(rand); + for (int y = center.getY(); y < height; y++) { + int sizex = config.width().get(rand); + int xOffset = rand.nextBetween(0, 2); + int sizez = config.length().get(rand); + for (int x = 0; x < sizex; x++) { + int zOffset = config.lengthOffset().get(rand); + for (int z = zOffset; z < sizez + zOffset; z++) { + BlockPos iPos = new BlockPos(center.getX() + x + xOffset, y, center.getZ() + z); + if (world.getBlockState(iPos).isIn(ParadiseLostBlockTags.BASE_PARADISE_LOST_STONE)) { + BlockState block = config.block().getBlockState(rand, center); + if (!(block.getBlock() instanceof FloatingBlock && !world.getBlockState(iPos.up()).isOpaque())) + world.setBlockState(iPos, config.block().getBlockState(rand, iPos), Block.NOTIFY_LISTENERS); + } + } + } + } + + return true; + } +} diff --git a/src/main/java/net/id/paradiselost/world/feature/placed_features/ParadiseLostMiscPlacedFeatures.java b/src/main/java/net/id/paradiselost/world/feature/placed_features/ParadiseLostMiscPlacedFeatures.java index 37d4535e0..faea024a6 100644 --- a/src/main/java/net/id/paradiselost/world/feature/placed_features/ParadiseLostMiscPlacedFeatures.java +++ b/src/main/java/net/id/paradiselost/world/feature/placed_features/ParadiseLostMiscPlacedFeatures.java @@ -22,8 +22,12 @@ public class ParadiseLostMiscPlacedFeatures extends ParadiseLostPlacedFeatures { public static final RegistryEntry WATER_SPRING = register("water_spring", ParadiseLostMiscConfiguredFeatures.WATER_SPRING); + public static final RegistryEntry HELIOLITH_BLOB = register("heliolith_blob", ParadiseLostMiscConfiguredFeatures.HELIOLITH_BLOB, CountPlacementModifier.of(3), SquarePlacementModifier.of(), HeightRangePlacementModifier.uniform(YOffset.aboveBottom(0), YOffset.aboveBottom(320)), BiomePlacementModifier.of()); + public static final RegistryEntry LEVITA_BLOB = register("levita_blob", ParadiseLostMiscConfiguredFeatures.LEVITA_BLOB, CountPlacementModifier.of(1), SquarePlacementModifier.of(), HeightRangePlacementModifier.uniform(YOffset.aboveBottom(0), YOffset.aboveBottom(320)), BiomePlacementModifier.of()); + public static final RegistryEntry ORE_CHERINE = register("ore_cherine", ParadiseLostMiscConfiguredFeatures.ORE_CHERINE, CountPlacementModifier.of(20), SquarePlacementModifier.of(), HeightRangePlacementModifier.trapezoid(YOffset.aboveBottom(0), YOffset.aboveBottom(320)), BiomePlacementModifier.of()); public static final RegistryEntry ORE_OLVITE = register("ore_olvite", ParadiseLostMiscConfiguredFeatures.ORE_OLVITE, CountPlacementModifier.of(16), SquarePlacementModifier.of(), HeightRangePlacementModifier.trapezoid(YOffset.aboveBottom(0), YOffset.aboveBottom(384)), BiomePlacementModifier.of()); + public static final RegistryEntry ORE_LEVITA = register("ore_levita", ParadiseLostMiscConfiguredFeatures.ORE_LEVITA, CountPlacementModifier.of(6), SquarePlacementModifier.of(), HeightRangePlacementModifier.trapezoid(YOffset.aboveBottom(0), YOffset.aboveBottom(384)), BiomePlacementModifier.of()); public static final RegistryEntry SURTRUM_METEORITE = register("surtrum_meteorite", ParadiseLostMiscConfiguredFeatures.SURTRUM_METEORITE, SquarePlacementModifier.of(), HeightRangePlacementModifier.uniform(YOffset.fixed(65), YOffset.fixed(85)), ChancePlacementModifier.of(255)); // Plato // Shield diff --git a/src/main/resources/asset_helper.py b/src/main/resources/asset_helper.py new file mode 100644 index 000000000..c2f130a65 --- /dev/null +++ b/src/main/resources/asset_helper.py @@ -0,0 +1,89 @@ +import os +MOD_ID = "paradise_lost" + +def get_asset_path(): + return (os.getcwd()+"/assets/") + +def generate_standard_block(block_id): + blockstate_file = open(get_asset_path()+MOD_ID+"/blockstates/"+block_id+".json", "w") + block_model_file = open(get_asset_path()+MOD_ID+"/models/block/"+block_id+".json", "w") + item_model_file = open(get_asset_path()+MOD_ID+"/models/item/"+block_id+".json", "w") + + blockstate_file.write("{\n\t\"variants\": {\n\t\t\"\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\"\n\t\t}\n\t}\n}") + block_model_file.write("{\n\t\"parent\": \"minecraft:block/cube_all\",\n\t\"textures\": {\n\t\t\"all\": \""+MOD_ID+":block/"+block_id+"\"\n\t}\n}") + item_model_file.write("{\n\t\"parent\": \""+MOD_ID+":block/"+block_id+"\"\n}") + + blockstate_file.close() + block_model_file.close() + item_model_file.close() + +def generate_standard_item(item_id): + item_model_file = open(get_asset_path()+MOD_ID+"/models/item/"+item_id+".json", "w") + item_model_file.write("{\n\t\"parent\": \"minecraft:item/generated\",\n\t\"textures\": {\n\t\t\"layer0\": \""+MOD_ID+":item/"+item_id+"\"\n\t}\n}") + item_model_file.close() + +def generate_handheld_item(item_id): + item_model_file = open(get_asset_path()+MOD_ID+"/models/item/"+item_id+".json", "w") + item_model_file.write("{\n\t\"parent\": \"minecraft:item/handheld\",\n\t\"textures\": {\n\t\t\"layer0\": \""+MOD_ID+":item/"+item_id+"\"\n\t}\n}") + item_model_file.close() + +def generate_log_block(block_id): + blockstate_file = open(get_asset_path()+MOD_ID+"/blockstates/"+block_id+".json", "w") + block_model_file = open(get_asset_path()+MOD_ID+"/models/block/"+block_id+".json", "w") + horizontal_block_model_file = open(get_asset_path()+MOD_ID+"/models/block/"+block_id+"_horizontal.json", "w") + item_model_file = open(get_asset_path()+MOD_ID+"/models/item/"+block_id+".json", "w") + + blockstate_file.write("{\n\t\"variants\": {\n\t\t\"axis=x\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_horizontal\",\n\t\t\t\"x\": 90,\n\t\t\t\"y\": 90\n\t\t},\n\t\t\"axis=y\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\"\n\t\t},\n\t\t\"axis=z\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_horizontal\",\n\t\t\t\"x\": 90\n\t\t}\n\t}\n}") + block_model_file.write("{\n\t\"parent\": \"minecraft:block/cube_column\",\n\t\"textures\": {\n\t\t\"end\": \""+MOD_ID+":block/"+block_id+"_top\",\n\t\t\"side\": \""+MOD_ID+":block/"+block_id+"\"\n\t}\n}") + horizontal_block_model_file.write("{\n\t\"parent\": \"minecraft:block/cube_column_horizontal\",\n\t\"textures\": {\n\t\t\"end\": \""+MOD_ID+":block/"+block_id+"_top\",\n\t\t\"side\":\""+MOD_ID+":block/"+block_id+"\"\n\t}\n}") + item_model_file.write("{\n\t\"parent\": \""+MOD_ID+":block/"+block_id+"\"\n}") + + blockstate_file.close() + block_model_file.close() + horizontal_block_model_file.close() + item_model_file.close() + +def generate_stairs_block(block_id, texture): + blockstate_file = open(get_asset_path()+MOD_ID+"/blockstates/"+block_id+".json", "w") + base_block_model_file = open(get_asset_path()+MOD_ID+"/models/block/"+block_id+".json", "w") + inner_block_model_file = open(get_asset_path()+MOD_ID+"/models/block/"+block_id+"_inner.json", "w") + outer_block_model_file = open(get_asset_path()+MOD_ID+"/models/block/"+block_id+"_outer.json", "w") + item_model_file = open(get_asset_path()+MOD_ID+"/models/item/"+block_id+".json", "w") + + blockstate_file.write("{\n\t\"variants\": {\n\t\t\"facing=east,half=bottom,shape=inner_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=east,half=bottom,shape=inner_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\"\n\t\t},\n\t\t\"facing=east,half=bottom,shape=outer_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=east,half=bottom,shape=outer_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\"\n\t\t},\n\t\t\"facing=east,half=bottom,shape=straight\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\"\n\t\t},\n\t\t\"facing=east,half=top,shape=inner_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"x\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=east,half=top,shape=inner_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=east,half=top,shape=outer_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"x\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=east,half=top,shape=outer_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=east,half=top,shape=straight\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\",\n\t\t\t\"x\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=bottom,shape=inner_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=bottom,shape=inner_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=bottom,shape=outer_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=bottom,shape=outer_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=bottom,shape=straight\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\",\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=top,shape=inner_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=top,shape=inner_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"x\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=top,shape=outer_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=top,shape=outer_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"x\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=north,half=top,shape=straight\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=south,half=bottom,shape=inner_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\"\n\t\t},\n\t\t\"facing=south,half=bottom,shape=inner_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=south,half=bottom,shape=outer_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\"\n\t\t},\n\t\t\"facing=south,half=bottom,shape=outer_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=south,half=bottom,shape=straight\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\",\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=south,half=top,shape=inner_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=south,half=top,shape=inner_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=south,half=top,shape=outer_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=south,half=top,shape=outer_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=south,half=top,shape=straight\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=bottom,shape=inner_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=bottom,shape=inner_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=bottom,shape=outer_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"y\": 90,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=bottom,shape=outer_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=bottom,shape=straight\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\",\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=top,shape=inner_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=top,shape=inner_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_inner\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=top,shape=outer_left\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=top,shape=outer_right\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_outer\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 270,\n\t\t\t\"uvlock\": true\n\t\t},\n\t\t\"facing=west,half=top,shape=straight\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\",\n\t\t\t\"x\": 180,\n\t\t\t\"y\": 180,\n\t\t\t\"uvlock\": true\n\t\t}\n\t}\n}") + base_block_model_file.write("{\n\t\"parent\": \"minecraft:block/stairs\",\n\t\"textures\": {\n\t\t\"bottom\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"top\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"side\": \""+MOD_ID+":block/"+texture+"\"\n\t}\n}") + inner_block_model_file.write("{\n\t\"parent\": \"minecraft:block/inner_stairs\",\n\t\"textures\": {\n\t\t\"bottom\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"top\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"side\": \""+MOD_ID+":block/"+texture+"\"\n\t}\n}") + outer_block_model_file.write("{\n\t\"parent\": \"minecraft:block/outer_stairs\",\n\t\"textures\": {\n\t\t\"bottom\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"top\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"side\": \""+MOD_ID+":block/"+texture+"\"\n\t}\n}") + item_model_file.write("{\n\t\"parent\": \""+MOD_ID+":block/"+block_id+"\"\n}") + + blockstate_file.close() + base_block_model_file.close() + inner_block_model_file.close() + outer_block_model_file.close() + item_model_file.close() + +def generate_slab_block(block_id, base_block_id, texture): + blockstate_file = open(get_asset_path()+MOD_ID+"/blockstates/"+block_id+".json", "w") + bottom_block_model_file = open(get_asset_path()+MOD_ID+"/models/block/"+block_id+".json", "w") + top_block_model_file = open(get_asset_path()+MOD_ID+"/models/block/"+block_id+"_top.json", "w") + item_model_file = open(get_asset_path()+MOD_ID+"/models/item/"+block_id+".json", "w") + + blockstate_file.write("{\n\t\"variants\": {\n\t\t\"type=bottom\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"\"\n\t\t},\n\t\t\"type=double\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+base_block_id+"\"\n\t\t},\n\t\t\"type=top\": {\n\t\t\t\"model\": \""+MOD_ID+":block/"+block_id+"_top\"\n\t\t}\n\t}\n}") + bottom_block_model_file.write("{\n\t\"parent\": \"minecraft:block/slab\",\n\t\"textures\": {\n\t\t\"bottom\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"top\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"side\": \""+MOD_ID+":block/"+texture+"\"\n\t}\n}") + top_block_model_file.write("{\n\t\"parent\": \"minecraft:block/slab_top\",\n\t\"textures\": {\n\t\t\"bottom\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"top\": \""+MOD_ID+":block/"+texture+"\",\n\t\t\"side\": \""+MOD_ID+":block/"+texture+"\"\n\t}\n}") + item_model_file.write("{\n\t\"parent\": \""+MOD_ID+":block/"+block_id+"\"\n}") + + blockstate_file.close() + bottom_block_model_file.close() + top_block_model_file.close() + item_model_file.close() + + + +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/heliolith.json b/src/main/resources/assets/paradise_lost/blockstates/heliolith.json new file mode 100644 index 000000000..9111981dc --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/heliolith.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "paradise_lost:block/heliolith" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/heliolith_slab.json b/src/main/resources/assets/paradise_lost/blockstates/heliolith_slab.json new file mode 100644 index 000000000..bd6ed16e1 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/heliolith_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "paradise_lost:block/heliolith_slab" + }, + "type=double": { + "model": "paradise_lost:block/heliolith" + }, + "type=top": { + "model": "paradise_lost:block/heliolith_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/heliolith_stairs.json b/src/main/resources/assets/paradise_lost/blockstates/heliolith_stairs.json new file mode 100644 index 000000000..fd13fbdba --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/heliolith_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/heliolith_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/heliolith_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "paradise_lost:block/heliolith_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "paradise_lost:block/heliolith_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "paradise_lost:block/heliolith_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "paradise_lost:block/heliolith_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/heliolith_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/heliolith_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "paradise_lost:block/heliolith_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "paradise_lost:block/heliolith_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "paradise_lost:block/heliolith_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "paradise_lost:block/heliolith_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "paradise_lost:block/heliolith_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "paradise_lost:block/heliolith_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/heliolith_wall.json b/src/main/resources/assets/paradise_lost/blockstates/heliolith_wall.json new file mode 100644 index 000000000..fdd8d0cbd --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/heliolith_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "paradise_lost:block/heliolith_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "paradise_lost:block/heliolith_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "paradise_lost:block/heliolith_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "paradise_lost:block/heliolith_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "paradise_lost:block/heliolith_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "paradise_lost:block/heliolith_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "paradise_lost:block/heliolith_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "paradise_lost:block/heliolith_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "paradise_lost:block/heliolith_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] +} 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/blockstates/smooth_heliolith.json b/src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith.json new file mode 100644 index 000000000..b9c007a2e --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "paradise_lost:block/smooth_heliolith" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_slab.json b/src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_slab.json new file mode 100644 index 000000000..d2c5ee71e --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "paradise_lost:block/smooth_heliolith_slab" + }, + "type=double": { + "model": "paradise_lost:block/smooth_heliolith" + }, + "type=top": { + "model": "paradise_lost:block/smooth_heliolith_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_stairs.json b/src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_stairs.json new file mode 100644 index 000000000..af6d73026 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "paradise_lost:block/smooth_heliolith_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "paradise_lost:block/smooth_heliolith_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "paradise_lost:block/smooth_heliolith_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "paradise_lost:block/smooth_heliolith_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "paradise_lost:block/smooth_heliolith_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "paradise_lost:block/smooth_heliolith_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "paradise_lost:block/smooth_heliolith_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "paradise_lost:block/smooth_heliolith_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "paradise_lost:block/smooth_heliolith_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ 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 982173c51..fbf33010f 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", "block.paradise_lost.farmland": "Paradise Farmland", "block.paradise_lost.grass_path": "Paradise Grass Path", "block.paradise_lost.packed_swedroot": "Packed Swedroot", @@ -60,12 +61,21 @@ "block.paradise_lost.mossy_floestone_stairs": "Mossy Cobbled Floestone Stairs", "block.paradise_lost.mossy_floestone_wall": "Mossy Cobbled Floestone Wall", + "block.paradise_lost.heliolith": "Heliolith", + "block.paradise_lost.heliolith_slab": "Heliolith Slab", + "block.paradise_lost.heliolith_stairs": "Heliolith Stairs", + "block.paradise_lost.heliolith_wall": "Heliolith Wall", + "block.paradise_lost.floestone_brick": "Floestone Brick", "block.paradise_lost.chiseled_floestone": "Chiseled Floestone Brick", "block.paradise_lost.floestone_brick_slab": "Floestone Brick Slab", "block.paradise_lost.floestone_brick_stairs": "Floestone Brick Stairs", "block.paradise_lost.floestone_brick_wall": "Floestone Brick Wall", + "block.paradise_lost.smooth_heliolith": "Smooth Heliolith", + "block.paradise_lost.smooth_heliolith_slab": "Smooth Heliolith Slab", + "block.paradise_lost.smooth_heliolith_stairs": "Smooth Heliolith Stairs", + "block.paradise_lost.carved_stone": "Carved Stone", "block.paradise_lost.carved_stone_slab": "Carved Stone Slab", "block.paradise_lost.carved_stone_stairs": "Carved Stone Stairs", @@ -230,11 +240,12 @@ "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", - "block.paradise_lost.levitator": "Surtrum Levitator", + "block.paradise_lost.levitator": "Redstone Levitator", "block.paradise_lost.olvite_chain": "Olvite Chain", "block.paradise_lost.cherine_lantern": "Cherine Lantern", "block.paradise_lost.blue_portal": "Paradise Portal", @@ -278,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", @@ -303,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/heliolith.json b/src/main/resources/assets/paradise_lost/models/block/heliolith.json new file mode 100644 index 000000000..a9b113fce --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "paradise_lost:block/heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/heliolith_slab.json b/src/main/resources/assets/paradise_lost/models/block/heliolith_slab.json new file mode 100644 index 000000000..5e354e52c --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "paradise_lost:block/heliolith", + "top": "paradise_lost:block/heliolith", + "side": "paradise_lost:block/heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/heliolith_slab_top.json b/src/main/resources/assets/paradise_lost/models/block/heliolith_slab_top.json new file mode 100644 index 000000000..43526a400 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "paradise_lost:block/heliolith", + "top": "paradise_lost:block/heliolith", + "side": "paradise_lost:block/heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/heliolith_stairs.json b/src/main/resources/assets/paradise_lost/models/block/heliolith_stairs.json new file mode 100644 index 000000000..e6fd429fc --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "paradise_lost:block/heliolith", + "top": "paradise_lost:block/heliolith", + "side": "paradise_lost:block/heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_inner.json b/src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_inner.json new file mode 100644 index 000000000..e63c7132d --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "paradise_lost:block/heliolith", + "top": "paradise_lost:block/heliolith", + "side": "paradise_lost:block/heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_outer.json b/src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_outer.json new file mode 100644 index 000000000..8e120515a --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "paradise_lost:block/heliolith", + "top": "paradise_lost:block/heliolith", + "side": "paradise_lost:block/heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_inventory.json b/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_inventory.json new file mode 100644 index 000000000..bdba4b788 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "block/wall_inventory", + "textures": { + "wall": "paradise_lost:block/heliolith" + } +} diff --git a/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_post.json b/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_post.json new file mode 100644 index 000000000..807e27bf8 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "block/template_wall_post", + "textures": { + "wall": "paradise_lost:block/heliolith" + } +} diff --git a/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side.json b/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side.json new file mode 100644 index 000000000..c5bfd0e83 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "block/template_wall_side", + "textures": { + "wall": "paradise_lost:block/heliolith" + } +} diff --git a/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side_tall.json b/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side_tall.json new file mode 100644 index 000000000..627f72c75 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "paradise_lost:block/heliolith" + } +} 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/block/smooth_heliolith.json b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith.json new file mode 100644 index 000000000..b103ebea1 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "paradise_lost:block/smooth_heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab.json b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab.json new file mode 100644 index 000000000..cc9bd9f52 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "paradise_lost:block/smooth_heliolith", + "top": "paradise_lost:block/smooth_heliolith", + "side": "paradise_lost:block/smooth_heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab_top.json b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab_top.json new file mode 100644 index 000000000..1886feee2 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "paradise_lost:block/smooth_heliolith", + "top": "paradise_lost:block/smooth_heliolith", + "side": "paradise_lost:block/smooth_heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs.json b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs.json new file mode 100644 index 000000000..f9e13a2da --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "paradise_lost:block/smooth_heliolith", + "top": "paradise_lost:block/smooth_heliolith", + "side": "paradise_lost:block/smooth_heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_inner.json b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_inner.json new file mode 100644 index 000000000..a6b7827b7 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "paradise_lost:block/smooth_heliolith", + "top": "paradise_lost:block/smooth_heliolith", + "side": "paradise_lost:block/smooth_heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_outer.json b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_outer.json new file mode 100644 index 000000000..7b19faf7d --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "paradise_lost:block/smooth_heliolith", + "top": "paradise_lost:block/smooth_heliolith", + "side": "paradise_lost:block/smooth_heliolith" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/cloud_vial.json b/src/main/resources/assets/paradise_lost/models/item/cloud_vial.json deleted file mode 100644 index b8cf9a259..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/cloud_vial.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "paradise_lost:item/cloud_vial" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/heliolith.json b/src/main/resources/assets/paradise_lost/models/item/heliolith.json new file mode 100644 index 000000000..086de19bd --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/heliolith.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/heliolith" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/heliolith_slab.json b/src/main/resources/assets/paradise_lost/models/item/heliolith_slab.json new file mode 100644 index 000000000..054886b37 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/heliolith_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/heliolith_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/heliolith_stairs.json b/src/main/resources/assets/paradise_lost/models/item/heliolith_stairs.json new file mode 100644 index 000000000..c262b2e8b --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/heliolith_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/heliolith_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/heliolith_wall.json b/src/main/resources/assets/paradise_lost/models/item/heliolith_wall.json new file mode 100644 index 000000000..e4d6bb71d --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/heliolith_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/heliolith_wall_inventory" +} 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/models/item/mystery_milk.json b/src/main/resources/assets/paradise_lost/models/item/mystery_milk.json deleted file mode 100644 index 56c0dceee..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/mystery_milk.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "paradise_lost:item/mystery_milk" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/smooth_heliolith.json b/src/main/resources/assets/paradise_lost/models/item/smooth_heliolith.json new file mode 100644 index 000000000..b63fd7efa --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/smooth_heliolith.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/smooth_heliolith" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_slab.json b/src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_slab.json new file mode 100644 index 000000000..f22596eca --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/smooth_heliolith_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_stairs.json b/src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_stairs.json new file mode 100644 index 000000000..c7e05fe2a --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/smooth_heliolith_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/textures/block/heliolith.png b/src/main/resources/assets/paradise_lost/textures/block/heliolith.png new file mode 100644 index 000000000..2cfa94bad Binary files /dev/null and b/src/main/resources/assets/paradise_lost/textures/block/heliolith.png differ 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 000000000..c9b6979a9 Binary files /dev/null and b/src/main/resources/assets/paradise_lost/textures/block/levita.png differ diff --git a/src/main/resources/assets/paradise_lost/textures/block/levita_ore.png b/src/main/resources/assets/paradise_lost/textures/block/levita_ore.png new file mode 100644 index 000000000..d15b99ed3 Binary files /dev/null and b/src/main/resources/assets/paradise_lost/textures/block/levita_ore.png differ diff --git a/src/main/resources/assets/paradise_lost/textures/block/levitator_side.png b/src/main/resources/assets/paradise_lost/textures/block/levitator_side.png index bd60cff56..137cf7edc 100644 Binary files a/src/main/resources/assets/paradise_lost/textures/block/levitator_side.png and b/src/main/resources/assets/paradise_lost/textures/block/levitator_side.png differ diff --git a/src/main/resources/assets/paradise_lost/textures/block/smooth_heliolith.png b/src/main/resources/assets/paradise_lost/textures/block/smooth_heliolith.png new file mode 100644 index 000000000..820af936e Binary files /dev/null and b/src/main/resources/assets/paradise_lost/textures/block/smooth_heliolith.png differ 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 000000000..d041e79cf Binary files /dev/null and b/src/main/resources/assets/paradise_lost/textures/item/levita_gem.png differ diff --git a/src/main/resources/assets/paradise_lost/textures/item/levita_wand.png b/src/main/resources/assets/paradise_lost/textures/item/levita_wand.png new file mode 100644 index 000000000..619a5602b Binary files /dev/null and b/src/main/resources/assets/paradise_lost/textures/item/levita_wand.png differ diff --git a/src/main/resources/data/paradise_lost/advancements/consume_food.json b/src/main/resources/data/paradise_lost/advancements/consume_food.json index e169c793b..caf90c3bf 100644 --- a/src/main/resources/data/paradise_lost/advancements/consume_food.json +++ b/src/main/resources/data/paradise_lost/advancements/consume_food.json @@ -106,7 +106,6 @@ "gred", "swatgred", "groot", - "malk", "mert", "cokmert" ] diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith.json new file mode 100644 index 000000000..d36895ab7 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:heliolith" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_slab.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_slab.json new file mode 100644 index 000000000..c9494fba6 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_slab.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "paradise_lost:heliolith_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2 + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "paradise_lost:heliolith_slab" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_stairs.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_stairs.json new file mode 100644 index 000000000..5f42b31e9 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:heliolith_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_wall.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_wall.json new file mode 100644 index 000000000..b760c20ad --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:heliolith_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} 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/loot_tables/blocks/smooth_heliolith.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith.json new file mode 100644 index 000000000..80f737f2e --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:smooth_heliolith" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_slab.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_slab.json new file mode 100644 index 000000000..813b17fd1 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_slab.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "paradise_lost:smooth_heliolith_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2 + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "paradise_lost:smooth_heliolith_slab" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_stairs.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_stairs.json new file mode 100644 index 000000000..59828e6df --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:smooth_heliolith_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/recipes/heliolith_slab.json b/src/main/resources/data/paradise_lost/recipes/heliolith_slab.json new file mode 100644 index 000000000..f1da3edf5 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/heliolith_slab.json @@ -0,0 +1,17 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "paradise_lost:heliolith" + } + }, + "result": { + "item": "paradise_lost:heliolith_slab", + "count": 6 + } +} + \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/heliolith_slab_from_heliolith_stonecutting.json b/src/main/resources/data/paradise_lost/recipes/heliolith_slab_from_heliolith_stonecutting.json new file mode 100644 index 000000000..42ca69e28 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/heliolith_slab_from_heliolith_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "paradise_lost:heliolith" + }, + "result": "paradise_lost:heliolith_slab", + "count": 2 +} diff --git a/src/main/resources/data/paradise_lost/recipes/heliolith_stairs.json b/src/main/resources/data/paradise_lost/recipes/heliolith_stairs.json new file mode 100644 index 000000000..fbf31ee88 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/heliolith_stairs.json @@ -0,0 +1,19 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "# ", + "## ", + "###" + ], + "key": { + "#": { + "item": "paradise_lost:heliolith" + } + }, + "result": { + "item": "paradise_lost:heliolith_stairs", + "count": 4 + } +} + \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/heliolith_stairs_from_heliolith_stonecutting.json b/src/main/resources/data/paradise_lost/recipes/heliolith_stairs_from_heliolith_stonecutting.json new file mode 100644 index 000000000..51106746d --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/heliolith_stairs_from_heliolith_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "paradise_lost:heliolith" + }, + "result": "paradise_lost:heliolith_stairs", + "count": 1 +} diff --git a/src/main/resources/data/paradise_lost/recipes/heliolith_wall.json b/src/main/resources/data/paradise_lost/recipes/heliolith_wall.json new file mode 100644 index 000000000..9a1e3acb6 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/heliolith_wall.json @@ -0,0 +1,18 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###" + ], + "key": { + "#": { + "item": "paradise_lost:heliolith" + } + }, + "result": { + "item": "paradise_lost:heliolith_wall", + "count": 6 + } +} + \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/heliolith_wall_from_heliolith_stonecutting.json b/src/main/resources/data/paradise_lost/recipes/heliolith_wall_from_heliolith_stonecutting.json new file mode 100644 index 000000000..eb235e366 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/heliolith_wall_from_heliolith_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "paradise_lost:heliolith" + }, + "result": "paradise_lost:heliolith_wall", + "count": 1 +} 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/recipes/smooth_heliolith.json b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith.json new file mode 100644 index 000000000..cdf02fd92 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##", + "##" + ], + "key": { + "#": { + "item": "paradise_lost:heliolith" + } + }, + "result": { + "item": "paradise_lost:smooth_heliolith", + "count": 4 + } +} diff --git a/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_from_heliolith_stonecutting.json b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_from_heliolith_stonecutting.json new file mode 100644 index 000000000..940eedb71 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_from_heliolith_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "paradise_lost:heliolith" + }, + "result": "paradise_lost:smooth_heliolith", + "count": 1 +} diff --git a/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab.json b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab.json new file mode 100644 index 000000000..5b0f9fef8 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab.json @@ -0,0 +1,17 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "paradise_lost:smooth_heliolith" + } + }, + "result": { + "item": "paradise_lost:smooth_heliolith_slab", + "count": 6 + } +} + \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_heliolith_stonecutting.json b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_heliolith_stonecutting.json new file mode 100644 index 000000000..cb443dc66 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_heliolith_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "paradise_lost:heliolith" + }, + "result": "paradise_lost:smooth_heliolith_slab", + "count": 2 +} diff --git a/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_smooth_heliolith_stonecutting.json b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_smooth_heliolith_stonecutting.json new file mode 100644 index 000000000..ff566b644 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_smooth_heliolith_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "paradise_lost:smooth_heliolith" + }, + "result": "paradise_lost:smooth_heliolith_slab", + "count": 2 +} diff --git a/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs.json b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs.json new file mode 100644 index 000000000..b08bc1c2f --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs.json @@ -0,0 +1,19 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "# ", + "## ", + "###" + ], + "key": { + "#": { + "item": "paradise_lost:smooth_heliolith" + } + }, + "result": { + "item": "paradise_lost:smooth_heliolith_stairs", + "count": 4 + } +} + \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_heliolith_stonecutting.json b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_heliolith_stonecutting.json new file mode 100644 index 000000000..324c47ce1 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_heliolith_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "paradise_lost:heliolith" + }, + "result": "paradise_lost:smooth_heliolith_stairs", + "count": 1 +} diff --git a/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_smooth_heliolith_stonecutting.json b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_smooth_heliolith_stonecutting.json new file mode 100644 index 000000000..260b2173f --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_smooth_heliolith_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "paradise_lost:smooth_heliolith" + }, + "result": "paradise_lost:smooth_heliolith_stairs", + "count": 1 +} 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/natural_stone.json b/src/main/resources/data/paradise_lost/tags/blocks/natural_stone.json index b8332ef89..f571dcd06 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/natural_stone.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/natural_stone.json @@ -4,6 +4,7 @@ "paradise_lost:floestone", "paradise_lost:cobbled_floestone", "paradise_lost:mossy_floestone", - "paradise_lost:golden_mossy_floestone" + "paradise_lost:golden_mossy_floestone", + "paradise_lost:heliolith" ] } 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/blocks/stone_blocks.json b/src/main/resources/data/paradise_lost/tags/blocks/stone_blocks.json index 5da82d4b9..71256d615 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/stone_blocks.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/stone_blocks.json @@ -7,6 +7,7 @@ "#paradise_lost:carved_stone_blocks", "#paradise_lost:natural_stone", "paradise_lost:floestone_brick", - "paradise_lost:chiseled_floestone" + "paradise_lost:chiseled_floestone", + "paradise_lost:smooth_heliolith" ] } diff --git a/src/main/resources/data/paradise_lost/tags/blocks/stone_slabs.json b/src/main/resources/data/paradise_lost/tags/blocks/stone_slabs.json index 9c710bc0e..965ae854a 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/stone_slabs.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/stone_slabs.json @@ -5,6 +5,8 @@ "paradise_lost:floestone_slab", "paradise_lost:mossy_floestone_slab", "paradise_lost:cobbled_floestone_slab", + "paradise_lost:heliolith_slab", + "paradise_lost:smooth_heliolith_slab", "paradise_lost:carved_stone_slab", "paradise_lost:mossy_carved_stone_slab" ] diff --git a/src/main/resources/data/paradise_lost/tags/blocks/stone_stairs.json b/src/main/resources/data/paradise_lost/tags/blocks/stone_stairs.json index f472dbb6a..fa73fbd98 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/stone_stairs.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/stone_stairs.json @@ -5,6 +5,8 @@ "paradise_lost:floestone_stairs", "paradise_lost:mossy_floestone_stairs", "paradise_lost:cobbled_floestone_stairs", + "paradise_lost:heliolith_stairs", + "paradise_lost:smooth_heliolith_stairs", "paradise_lost:carved_stone_stairs", "paradise_lost:mossy_carved_stone_stairs" ] diff --git a/src/main/resources/data/paradise_lost/tags/blocks/stone_walls.json b/src/main/resources/data/paradise_lost/tags/blocks/stone_walls.json index 7637636ef..d2e35961d 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/stone_walls.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/stone_walls.json @@ -5,6 +5,7 @@ "paradise_lost:floestone_wall", "paradise_lost:mossy_floestone_wall", "paradise_lost:cobbled_floestone_wall", + "paradise_lost:heliolith_wall", "paradise_lost:carved_stone_wall", "paradise_lost:mossy_carved_stone_wall" ] 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",