From 1075284302585715404c014c10f79789e5cb9dd5 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sat, 23 Mar 2024 15:58:56 -0500 Subject: [PATCH 1/4] heliolith blocks --- .../blocks/ParadiseLostBlocks.java | 9 + .../paradiselost/items/ParadiseLostItems.java | 11 +- src/main/resources/asset_helper.py | 91 ++++++++ .../paradise_lost/blockstates/heliolith.json | 7 + .../blockstates/heliolith_slab.json | 13 ++ .../blockstates/heliolith_stairs.json | 209 ++++++++++++++++++ .../blockstates/heliolith_wall.json | 90 ++++++++ .../blockstates/smooth_heliolith.json | 7 + .../blockstates/smooth_heliolith_slab.json | 13 ++ .../blockstates/smooth_heliolith_stairs.json | 209 ++++++++++++++++++ .../assets/paradise_lost/lang/en_us.json | 9 + .../paradise_lost/models/block/heliolith.json | 6 + .../models/block/heliolith_slab.json | 8 + .../models/block/heliolith_slab_top.json | 8 + .../models/block/heliolith_stairs.json | 8 + .../models/block/heliolith_stairs_inner.json | 8 + .../models/block/heliolith_stairs_outer.json | 8 + .../block/heliolith_wall_inventory.json | 6 + .../models/block/heliolith_wall_post.json | 6 + .../models/block/heliolith_wall_side.json | 6 + .../block/heliolith_wall_side_tall.json | 6 + .../models/block/smooth_heliolith.json | 6 + .../models/block/smooth_heliolith_slab.json | 8 + .../block/smooth_heliolith_slab_top.json | 8 + .../models/block/smooth_heliolith_stairs.json | 8 + .../block/smooth_heliolith_stairs_inner.json | 8 + .../block/smooth_heliolith_stairs_outer.json | 8 + .../paradise_lost/models/item/cloud_vial.json | 6 - .../paradise_lost/models/item/heliolith.json | 3 + .../models/item/heliolith_slab.json | 3 + .../models/item/heliolith_stairs.json | 3 + .../models/item/heliolith_wall.json | 3 + .../models/item/mystery_milk.json | 6 - .../models/item/smooth_heliolith.json | 3 + .../models/item/smooth_heliolith_slab.json | 3 + .../models/item/smooth_heliolith_stairs.json | 3 + .../textures/block/heliolith.png | Bin 0 -> 348 bytes .../textures/block/smooth_heliolith.png | Bin 0 -> 360 bytes .../loot_tables/blocks/heliolith.json | 20 ++ .../loot_tables/blocks/heliolith_slab.json | 33 +++ .../loot_tables/blocks/heliolith_stairs.json | 20 ++ .../loot_tables/blocks/heliolith_wall.json | 20 ++ .../loot_tables/blocks/smooth_heliolith.json | 20 ++ .../blocks/smooth_heliolith_slab.json | 33 +++ .../blocks/smooth_heliolith_stairs.json | 20 ++ .../paradise_lost/recipes/heliolith_slab.json | 17 ++ ...lith_slab_from_heliolith_stonecutting.json | 8 + .../recipes/heliolith_stairs.json | 19 ++ ...th_stairs_from_heliolith_stonecutting.json | 8 + .../paradise_lost/recipes/heliolith_wall.json | 18 ++ ...lith_wall_from_heliolith_stonecutting.json | 8 + .../recipes/smooth_heliolith.json | 16 ++ ...heliolith_from_heliolith_stonecutting.json | 8 + .../recipes/smooth_heliolith_slab.json | 17 ++ ...lith_slab_from_heliolith_stonecutting.json | 8 + ...ab_from_smooth_heliolith_stonecutting.json | 8 + .../recipes/smooth_heliolith_stairs.json | 19 ++ ...th_stairs_from_heliolith_stonecutting.json | 8 + ...rs_from_smooth_heliolith_stonecutting.json | 8 + .../tags/blocks/natural_stone.json | 3 +- .../tags/blocks/stone_blocks.json | 3 +- .../tags/blocks/stone_slabs.json | 2 + .../tags/blocks/stone_stairs.json | 2 + .../tags/blocks/stone_walls.json | 1 + 64 files changed, 1148 insertions(+), 16 deletions(-) create mode 100644 src/main/resources/asset_helper.py create mode 100644 src/main/resources/assets/paradise_lost/blockstates/heliolith.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/heliolith_slab.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/heliolith_stairs.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/heliolith_wall.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_slab.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/smooth_heliolith_stairs.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith_slab.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith_slab_top.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith_stairs.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_inner.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith_stairs_outer.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith_wall_inventory.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith_wall_post.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/heliolith_wall_side_tall.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/smooth_heliolith.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_slab_top.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_inner.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/smooth_heliolith_stairs_outer.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/cloud_vial.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/heliolith.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/heliolith_slab.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/heliolith_stairs.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/heliolith_wall.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/mystery_milk.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/smooth_heliolith.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_slab.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/smooth_heliolith_stairs.json create mode 100644 src/main/resources/assets/paradise_lost/textures/block/heliolith.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/smooth_heliolith.png create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_slab.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_stairs.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/heliolith_wall.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_slab.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/smooth_heliolith_stairs.json create mode 100644 src/main/resources/data/paradise_lost/recipes/heliolith_slab.json create mode 100644 src/main/resources/data/paradise_lost/recipes/heliolith_slab_from_heliolith_stonecutting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/heliolith_stairs.json create mode 100644 src/main/resources/data/paradise_lost/recipes/heliolith_stairs_from_heliolith_stonecutting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/heliolith_wall.json create mode 100644 src/main/resources/data/paradise_lost/recipes/heliolith_wall_from_heliolith_stonecutting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/smooth_heliolith.json create mode 100644 src/main/resources/data/paradise_lost/recipes/smooth_heliolith_from_heliolith_stonecutting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab.json create mode 100644 src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_heliolith_stonecutting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/smooth_heliolith_slab_from_smooth_heliolith_stonecutting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs.json create mode 100644 src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_heliolith_stonecutting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/smooth_heliolith_stairs_from_smooth_heliolith_stonecutting.json diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 341e4cfb2..21ace70de 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -131,6 +131,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); diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index a33d3abcc..834c486ac 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -191,6 +191,7 @@ private static FabricItemSettings building_block() { // stone public static final BlockItem FLOESTONE = add("floestone", ParadiseLostBlocks.FLOESTONE, building_block); public static final BlockItem COBBLED_FLOESTONE = add("cobbled_floestone", ParadiseLostBlocks.COBBLED_FLOESTONE, building_block); + public static final BlockItem HELIOLITH = add("heliolith", ParadiseLostBlocks.HELIOLITH, building_block); public static final BlockItem VITROULITE = add("vitroulite", ParadiseLostBlocks.VITROULITE, building_block); // nature public static final BlockItem HIGHLANDS_GRASS = add("highlands_grass", ParadiseLostBlocks.HIGHLANDS_GRASS, building_block); @@ -258,6 +259,7 @@ private static FabricItemSettings building_block() { // bricks public static final BlockItem FLOESTONE_BRICK = add("floestone_brick", ParadiseLostBlocks.FLOESTONE_BRICK, building_block); public static final BlockItem CHISELED_FLOESTONE = add("chiseled_floestone", ParadiseLostBlocks.CHISELED_FLOESTONE, building_block); + public static final BlockItem SMOOTH_HELIOLITH = add("smooth_heliolith", ParadiseLostBlocks.SMOOTH_HELIOLITH, building_block); public static final BlockItem CARVED_STONE = add("carved_stone", ParadiseLostBlocks.CARVED_STONE, building_block); public static final BlockItem MOSSY_CARVED_STONE = add("mossy_carved_stone", ParadiseLostBlocks.MOSSY_CARVED_STONE, building_block); public static final BlockItem CRACKED_CARVED_STONE = add("cracked_carved_stone", ParadiseLostBlocks.CRACKED_CARVED_STONE, building_block); @@ -278,18 +280,22 @@ private static FabricItemSettings 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 FLOESTONE_SLAB = add("floestone_slab", ParadiseLostBlocks.FLOESTONE_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_SLAB = add("floestone_slab", ParadiseLostBlocks.FLOESTONE_SLAB, building_block); public static final BlockItem COBBLED_FLOESTONE_SLAB = add("cobbled_floestone_slab", ParadiseLostBlocks.COBBLED_FLOESTONE_SLAB, building_block); public static final BlockItem MOSSY_FLOESTONE_SLAB = add("mossy_floestone_slab", ParadiseLostBlocks.MOSSY_FLOESTONE_SLAB, building_block); + public static final BlockItem HELIOLITH_SLAB = add("heliolith_slab", ParadiseLostBlocks.HELIOLITH_SLAB, building_block); public static final BlockItem FLOESTONE_BRICK_SLAB = add("floestone_brick_slab", ParadiseLostBlocks.FLOESTONE_BRICK_SLAB, building_block); + public static final BlockItem SMOOTH_HELIOLITH_SLAB = add("smooth_heliolith_slab", ParadiseLostBlocks.SMOOTH_HELIOLITH_SLAB, building_block); public static final BlockItem CARVED_SLAB = add("carved_stone_slab", ParadiseLostBlocks.CARVED_STONE_SLAB, building_block); public static final BlockItem MOSSY_CARVED_SLAB = add("mossy_carved_stone_slab", ParadiseLostBlocks.MOSSY_CARVED_STONE_SLAB, building_block); public static final BlockItem GOLDEN_AMBER_TILE_SLAB = add("golden_amber_tile_slab", ParadiseLostBlocks.GOLDEN_AMBER_TILE_SLAB, building_block); - public static final BlockItem GOLDEN_AMBER_TILE_STAIRS = add("golden_amber_tile_stairs", ParadiseLostBlocks.GOLDEN_AMBER_TILE_STAIRS, building_block); // colorfuls private static FabricItemSettings decoration() { @@ -401,6 +407,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/resources/asset_helper.py b/src/main/resources/asset_helper.py new file mode 100644 index 000000000..8d54b97f0 --- /dev/null +++ b/src/main/resources/asset_helper.py @@ -0,0 +1,91 @@ +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("heliolith") +generate_stairs_block("heliolith_stairs", "heliolith") +generate_slab_block("heliolith_slab", "heliolith", "heliolith") +generate_standard_block("smooth_heliolith") +generate_stairs_block("smooth_heliolith_stairs", "smooth_heliolith") +generate_slab_block("smooth_heliolith_slab", "smooth_heliolith", "smooth_heliolith") + + + 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/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..5ea753cd4 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -60,12 +60,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", 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/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/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 0000000000000000000000000000000000000000..2cfa94bad02495b1f075eeffbeba385e10e5bb6d GIT binary patch literal 348 zcmV-i0i*tjP)Px$7D+@wR5*=|Q_D`nFc2I|zPFXFs_GRkfcWiR`UO>`9zc9R6*XMoNEBIKCH(?( z8h33BVlGL%kC`2B%yG9*0I+rrL=egEJonoT7T)6;V~+LR1r`8gnjzB+w_4^Rzun}- zIE;wHSbP)ad^jaC=wJ|mOfy>0MCPmOQyj)-fmj+YzMU_y(P2CkihegF6@f`ne}`i##Ya#KLY+OS$Oa~S{g7WB&MrrIm} u`tnvtulGT#BLRH?P_D9;`=1{P0KNgKcIDsI6-+Gv0000Px$B1uF+R5*=|lR-%uPR|NjT#$sZtyh$t*gPNmHj^{R(; z;v}u;yQG=COy<3rUby>*&vjiRICULkKTuR9I<6s{)_KgjuDQFp1z@#Y0AQ_+M1Zj$ z04S<5*|*MP0GjP)a(H}sjW52vf1E#@PaXo!3FJZ~eq*&_A&De$E=N`)o7@MTcz4*(R@OR?DXNm@4-3?U>O zIggWQttEu;W0We_TAN&&NYH~c_g~~wsJ$_*^Rw;wFTMcC Date: Sun, 24 Mar 2024 14:53:57 -0500 Subject: [PATCH 2/4] levita + surtum rework --- .../paradiselost/api/FloatingBlockHelper.java | 9 +- .../blocks/ParadiseLostBlocks.java | 4 +- .../paradiselost/items/ParadiseLostItems.java | 235 +++++++++--------- .../tools/base_tools/GravityWandItem.java | 24 ++ .../enchantment/EnchantmentHelperMixin.java | 18 ++ .../tag/ParadiseLostItemTags.java | 1 + src/main/resources/asset_helper.py | 10 +- .../paradise_lost/blockstates/levita.json | 7 + .../paradise_lost/blockstates/levita_ore.json | 7 + .../assets/paradise_lost/lang/en_us.json | 4 + .../paradise_lost/models/block/levita.json | 6 + .../models/block/levita_ore.json | 6 + .../paradise_lost/models/item/levita.json | 3 + .../paradise_lost/models/item/levita_gem.json | 6 + .../paradise_lost/models/item/levita_ore.json | 3 + .../models/item/levita_wand.json | 6 + .../paradise_lost/textures/block/levita.png | Bin 0 -> 708 bytes .../textures/block/levita_ore.png | Bin 0 -> 668 bytes .../textures/block/levitator_side.png | Bin 476 -> 516 bytes .../textures/item/levita_gem.png | Bin 0 -> 340 bytes .../textures/item/levita_wand.png | Bin 0 -> 351 bytes .../loot_tables/blocks/levita.json | 20 ++ .../loot_tables/blocks/levita_ore.json | 49 ++++ .../recipes/levita_from_blasting.json | 9 + .../recipes/levita_from_smelting.json | 9 + .../paradise_lost/recipes/levita_wand.json | 19 ++ .../data/paradise_lost/recipes/levitator.json | 2 +- .../tags/blocks/mineable_by_shovel.json | 1 + .../data/paradise_lost/tags/blocks/ores.json | 3 +- .../tags/blocks/requires_iron_tool.json | 3 +- .../tags/items/tool/igniting_tools.json | 10 + src/main/resources/paradise_lost.mixins.json | 1 + 32 files changed, 347 insertions(+), 128 deletions(-) create mode 100644 src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java create mode 100644 src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java create mode 100644 src/main/resources/assets/paradise_lost/blockstates/levita.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/levita_ore.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita_ore.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita_gem.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita_ore.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita_wand.json create mode 100644 src/main/resources/assets/paradise_lost/textures/block/levita.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/levita_ore.png create mode 100644 src/main/resources/assets/paradise_lost/textures/item/levita_gem.png create mode 100644 src/main/resources/assets/paradise_lost/textures/item/levita_wand.png create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/levita.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/levita_ore.json create mode 100644 src/main/resources/data/paradise_lost/recipes/levita_from_blasting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/levita_from_smelting.json create mode 100644 src/main/resources/data/paradise_lost/recipes/levita_wand.json create mode 100644 src/main/resources/data/paradise_lost/tags/items/tool/igniting_tools.json diff --git a/src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java b/src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java index e6fc6a418..422a003b5 100644 --- a/src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java +++ b/src/main/java/net/id/paradiselost/api/FloatingBlockHelper.java @@ -2,6 +2,7 @@ import net.id.paradiselost.entities.block.FloatingBlockEntity; import net.id.paradiselost.entities.util.FloatingBlockHelperImpls; +import net.id.paradiselost.items.tools.base_tools.GravityWandItem; import net.id.paradiselost.tag.ParadiseLostBlockTags; import net.id.incubus_core.blocklikeentities.api.BlockLikeEntity; import net.id.incubus_core.blocklikeentities.api.BlockLikeSet; @@ -10,6 +11,7 @@ import net.minecraft.block.piston.PistonHandler; import net.minecraft.item.Item; import net.minecraft.item.ItemUsageContext; +import net.minecraft.tag.BlockTags; import net.minecraft.util.math.*; import net.minecraft.world.World; @@ -126,10 +128,15 @@ static boolean isToolAdequate(ItemUsageContext context) { BlockState state = world.getBlockState(pos); Item heldItem = context.getStack().getItem(); return world.getBlockEntity(pos) == null && state.getHardness(world, pos) != -1.0F - && (!state.isToolRequired() || heldItem.isSuitableFor(state)) + && (!state.isToolRequired() || heldItem.isSuitableFor(state) || (heldItem instanceof GravityWandItem && validForWand(state))) && !state.isIn(ParadiseLostBlockTags.NON_FLOATERS); } + static boolean validForWand(BlockState bs) { + return !bs.isIn(BlockTags.NEEDS_DIAMOND_TOOL); + } + + /** * A structure builder intended to aid the creation of floating block structures. */ diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 21ace70de..044dead3c 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -67,6 +67,7 @@ private static Settings grassBlock() { // Soil Blocks public static final Block DIRT = add("dirt", new Block(copy(Blocks.DIRT).strength(0.3f)), tillable(), flattenable()); public static final Block COARSE_DIRT = add("coarse_dirt", new Block(copy(Blocks.DIRT).strength(0.3f)), coarseTillable(), flattenable()); + public static final FloatingBlock LEVITA = add("levita", new FloatingBlock(false, copy(Blocks.GRAVEL).strength(0.3f))); public static final Block PERMAFROST = add("permafrost", new Block(copy(Blocks.DIRT).strength(2f).sounds(BlockSoundGroup.GILDED_BLACKSTONE)), flattenable()); public static final FarmlandBlock FARMLAND = add("farmland", new ParadiseLostFarmlandBlock(copy(Blocks.FARMLAND))); public static final ParadiseLostDirtPathBlock DIRT_PATH = add("grass_path", new ParadiseLostDirtPathBlock(copy(Blocks.DIRT_PATH))); @@ -369,9 +370,10 @@ private static Settings flower() { public static final OreBlock SURTRUM = add("surtrum", new SurtrumOreBlock(of(Material.STONE).sounds(BlockSoundGroup.NETHER_GOLD_ORE).requiresTool().strength(9f, 20f), UniformIntProvider.create(2, 5))); public static final Block METAMORPHIC_SHELL = add("metamorphic_shell", new Block(of(Material.STONE).sounds(BlockSoundGroup.TUFF).requiresTool().strength(40f, 15f))); public static final PoofBlock SURTRUM_AIR = add("surtrum_air", new PoofBlock(of(Material.FIRE).sounds(BlockSoundGroup.NETHER_GOLD_ORE))); + public static final FloatingBlock LEVITA_ORE = add("levita_ore", new FloatingBlock(false, of(Material.STONE).requiresTool().strength(4f), UniformIntProvider.create(4, 7))); public static final Block CHERINE_BLOCK = add("cherine_block", new Block(of(Material.METAL).requiresTool().strength(3f, -1f).sounds(BlockSoundGroup.STONE))); public static final Block OLVITE_BLOCK = add("olvite_block", new Block(of(Material.METAL).requiresTool().strength(3f, -1f).sounds(BlockSoundGroup.METAL))); - public static final FloatingBlock REFINED_SURTRUM_BLOCK = add("refined_surtrum_block", new FloatingBlock(false, of(Material.METAL).requiresTool().strength(4f, -1f).sounds(BlockSoundGroup.METAL))); + public static final Block REFINED_SURTRUM_BLOCK = add("refined_surtrum_block", new Block(of(Material.METAL).requiresTool().strength(4f, -1f).sounds(BlockSoundGroup.METAL))); // Misc public static final FloatingBlock LEVITATOR = add("levitator", new FloatingBlock(true, of(Material.WOOD).strength(3f, 3f).sounds(BlockSoundGroup.WOOD))); public static final ChainBlock OLVITE_CHAIN = add("olvite_chain", new ChainBlock(copy(CHAIN)), cutoutMippedRenderLayer); diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 834c486ac..c0cc7cfd9 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -51,20 +51,19 @@ private static FabricItemSettings resource() { return new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_RESOURCES); } - private static final Settings resource = resource(); - - public static final Item GOLDEN_AMBER = add("golden_amber", new Item(resource)); - public static final Item HELLENROSE_PETAL = add("hellenrose_petal", new Item(resource), compostable65); + public static final Item GOLDEN_AMBER = add("golden_amber", new Item(resource())); + public static final Item HELLENROSE_PETAL = add("hellenrose_petal", new Item(resource()), compostable65); public static final Item NIGTHMARE_FUEL = add("nightmare_fuel", new LoreItem(nightmare().rarity(UNCOMMON), ImmutableList.of(Text.translatable("item.paradise_lost.nightmare_fuel.tooltip").formatted(Formatting.GRAY)))); public static final Item CROW_EYE = add("crow_eye", new LoreItem(nightmare().maxCount(1).rarity(UNCOMMON), ImmutableList.of(Text.translatable("item.paradise_lost.crow_eye.tooltip").formatted(Formatting.GRAY)))); - public static final Item CHERINE = add("cherine", new Item(resource), fuel(500)); - public static final Item OLVITE = add("olvite", new Item(resource)); - public static final Item OLVITE_NUGGET = add("olvite_nugget", new Item(resource)); - public static final Item REFINED_SURTRUM = add("refined_surtrum", new Item(resource)); - public static final Item RAW_SURTRUM = add("raw_surtrum", new Item(resource)); - public static final Item FLAX_THREAD = add("flax_thread", new Item(resource)); - public static final Item FLAXWEAVE = add("flaxweave", new Item(resource)); - public static final Item SWEDROOT_PULP = add("swedroot_pulp", new Item(resource), compostable30); + public static final Item CHERINE = add("cherine", new Item(resource()), fuel(500)); + public static final Item OLVITE = add("olvite", new Item(resource())); + public static final Item OLVITE_NUGGET = add("olvite_nugget", new Item(resource())); + public static final Item REFINED_SURTRUM = add("refined_surtrum", new Item(resource().fireproof())); + public static final Item RAW_SURTRUM = add("raw_surtrum", new Item(resource().fireproof())); + public static final Item LEVITA_GEM = add("levita_gem", new Item(resource())); + public static final Item FLAX_THREAD = add("flax_thread", new Item(resource())); + public static final Item FLAXWEAVE = add("flaxweave", new Item(resource())); + public static final Item SWEDROOT_PULP = add("swedroot_pulp", new Item(resource()), compostable30); private static Settings tool() { @@ -74,8 +73,8 @@ private static Settings tool() { private static final Settings tool = tool(); private static final Settings rareTool = tool().rarity(RARE); private static final Settings paradiseLostLootTool = tool().rarity(ParadiseLostRarity.PARADISE_LOST_LOOT); - private static final Settings unstackableTool = tool().maxCount(1); - private static final Settings unstackableRareTool = tool().maxCount(1).rarity(RARE); + private static Settings unstackableTool() { return tool().maxCount(1); } + private static Settings unstackableRareTool() { return tool().maxCount(1).rarity(RARE); } // Olvite public static final ShovelItem OLVITE_SHOVEL = add("olvite_shovel", new ShovelItem(ParadiseLostToolMaterials.OLVITE, 1.5f, -3f, tool())); @@ -85,11 +84,11 @@ private static Settings tool() { public static final HoeItem OLVITE_HOE = add("olvite_hoe", new ParadiseLostHoeItem(ParadiseLostToolMaterials.OLVITE, -2, -1f, tool())); // Surtrum - public static final GravityShovelItem SURTRUM_SHOVEL = add("surtrum_shovel", new GravityShovelItem(ParadiseLostToolMaterials.SURTRUM, 2.5f, -3f, tool())); - public static final GravityPickaxeItem SURTRUM_PICKAXE = add("surtrum_pickaxe", new GravityPickaxeItem(ParadiseLostToolMaterials.SURTRUM, 2, -2.8f, tool())); - public static final GravityAxeItem SURTRUM_AXE = add("surtrum_axe", new GravityAxeItem(ParadiseLostToolMaterials.SURTRUM, 6f, -3.1f, tool())); - public static final SwordItem SURTRUM_SWORD = add("surtrum_sword", new SwordItem(ParadiseLostToolMaterials.SURTRUM, 4, -2.4f, tool())); - public static final GravityHoeItem SURTRUM_HOE = add("surtrum_hoe", new GravityHoeItem(ParadiseLostToolMaterials.SURTRUM, -3, 0f, tool())); + public static final ShovelItem SURTRUM_SHOVEL = add("surtrum_shovel", new ShovelItem(ParadiseLostToolMaterials.SURTRUM, 2.5f, -3f, tool().fireproof())); + public static final PickaxeItem SURTRUM_PICKAXE = add("surtrum_pickaxe", new PickaxeItem(ParadiseLostToolMaterials.SURTRUM, 2, -2.8f, tool().fireproof())); + public static final AxeItem SURTRUM_AXE = add("surtrum_axe", new AxeItem(ParadiseLostToolMaterials.SURTRUM, 6f, -3.1f, tool().fireproof())); + public static final SwordItem SURTRUM_SWORD = add("surtrum_sword", new SwordItem(ParadiseLostToolMaterials.SURTRUM, 4, -2.4f, tool().fireproof())); + public static final HoeItem SURTRUM_HOE = add("surtrum_hoe", new ParadiseLostHoeItem(ParadiseLostToolMaterials.SURTRUM, -3, 0f, tool().fireproof())); // Glazed Gold public static final ShovelItem GLAZED_GOLD_SHOVEL = add("glazed_gold_shovel", new ShovelItem(ParadiseLostToolMaterials.GLAZED_GOLD, 1.5f, -3f, tool())); @@ -98,13 +97,14 @@ private static Settings tool() { public static final SwordItem GLAZED_GOLD_SWORD = add("glazed_gold_sword", new SwordItem(ParadiseLostToolMaterials.GLAZED_GOLD, 3, -2.4f, tool())); public static final HoeItem GLAZED_GOLD_HOE = add("glazed_gold_hoe", new ParadiseLostHoeItem(ParadiseLostToolMaterials.GLAZED_GOLD, -2, -2.0f, tool())); - public static final TrinketItem CLOUD_PARACHUTE = add("cold_parachute", new ParachuteTrinketItem(unstackableTool, "cloud_parachute")); + public static final TrinketItem CLOUD_PARACHUTE = add("cold_parachute", new ParachuteTrinketItem(unstackableTool(), "cloud_parachute")); public static final TrinketItem GOLDEN_CLOUD_PARACHUTE = add("golden_parachute", new ParachuteTrinketItem(tool().maxCount(1).maxDamage(20), "golden_parachute")); - public static final CherineBloodstoneItem CHERINE_BLOODSTONE = add("cherine_bloodstone", new CherineBloodstoneItem(unstackableTool)); - public static final OlviteBloodstoneItem OLVITE_BLOODSTONE = add("olvite_bloodstone", new OlviteBloodstoneItem(unstackableTool)); - public static final SurtrumBloodstoneItem SURTRUM_BLOODSTONE = add("surtrum_bloodstone", new SurtrumBloodstoneItem(unstackableTool)); - public static final AbstentineBloodstoneItem ABSTENTINE_BLOODSTONE = add("abstentine_bloodstone", new AbstentineBloodstoneItem(unstackableTool)); + public static final GravityWandItem LEVITA_WAND = add("levita_wand", new GravityWandItem(unstackableRareTool().maxDamage(100))); + public static final CherineBloodstoneItem CHERINE_BLOODSTONE = add("cherine_bloodstone", new CherineBloodstoneItem(unstackableTool())); + public static final OlviteBloodstoneItem OLVITE_BLOODSTONE = add("olvite_bloodstone", new OlviteBloodstoneItem(unstackableTool())); + public static final SurtrumBloodstoneItem SURTRUM_BLOODSTONE = add("surtrum_bloodstone", new SurtrumBloodstoneItem(unstackableTool().fireproof())); + public static final AbstentineBloodstoneItem ABSTENTINE_BLOODSTONE = add("abstentine_bloodstone", new AbstentineBloodstoneItem(unstackableRareTool())); public static final Item GLAZED_GOLD_UPGRADE = add("glazed_gold_upgrade_smithing_template", new Item(tool())); @@ -129,10 +129,10 @@ private static Settings wearable() { public static final ArmorItem GLAZED_GOLD_BOOTS = add("glazed_gold_boots", new ArmorItem(ParadiseLostArmorMaterials.GLAZED_GOLD, FEET, WEARABLE)); // Surtrum - public static final ArmorItem SURTRUM_HELMET = add("surtrum_helmet", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, HEAD, wearable())); - public static final ArmorItem SURTRUM_CHESTPLATE = add("surtrum_chestplate", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, CHEST, wearable())); - public static final ArmorItem SURTRUM_LEGGINGS = add("surtrum_leggings", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, LEGS, wearable())); - public static final ArmorItem SURTRUM_BOOTS = add("surtrum_boots", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, FEET, wearable())); + public static final ArmorItem SURTRUM_HELMET = add("surtrum_helmet", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, HEAD, wearable().fireproof())); + public static final ArmorItem SURTRUM_CHESTPLATE = add("surtrum_chestplate", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, CHEST, wearable().fireproof())); + public static final ArmorItem SURTRUM_LEGGINGS = add("surtrum_leggings", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, LEGS, wearable().fireproof())); + public static final ArmorItem SURTRUM_BOOTS = add("surtrum_boots", new ArmorItem(ParadiseLostArmorMaterials.SURTRUM, FEET, wearable().fireproof())); private static Settings food() { @@ -186,116 +186,117 @@ private static Settings misc() { private static FabricItemSettings building_block() { return new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_BUILDING_BLOCKS); } - private static final FabricItemSettings building_block = building_block(); // stone - public static final BlockItem FLOESTONE = add("floestone", ParadiseLostBlocks.FLOESTONE, building_block); - public static final BlockItem COBBLED_FLOESTONE = add("cobbled_floestone", ParadiseLostBlocks.COBBLED_FLOESTONE, building_block); - public static final BlockItem HELIOLITH = add("heliolith", ParadiseLostBlocks.HELIOLITH, building_block); - public static final BlockItem VITROULITE = add("vitroulite", ParadiseLostBlocks.VITROULITE, building_block); + public static final BlockItem FLOESTONE = add("floestone", ParadiseLostBlocks.FLOESTONE, building_block()); + public static final BlockItem COBBLED_FLOESTONE = add("cobbled_floestone", ParadiseLostBlocks.COBBLED_FLOESTONE, building_block()); + public static final BlockItem HELIOLITH = add("heliolith", ParadiseLostBlocks.HELIOLITH, building_block()); + public static final BlockItem VITROULITE = add("vitroulite", ParadiseLostBlocks.VITROULITE, building_block()); // nature - public static final BlockItem HIGHLANDS_GRASS = add("highlands_grass", ParadiseLostBlocks.HIGHLANDS_GRASS, building_block); - - public static final BlockItem FROZEN_GRASS = add("frozen_grass", ParadiseLostBlocks.FROZEN_GRASS, building_block); - public static final BlockItem DIRT = add("dirt", ParadiseLostBlocks.DIRT, building_block); - public static final BlockItem COARSE_DIRT = add("coarse_dirt", ParadiseLostBlocks.COARSE_DIRT, building_block); - public static final BlockItem PERMAFROST = add("permafrost", ParadiseLostBlocks.PERMAFROST, building_block); - public static final BlockItem PACKED_SWEDROOT = add("packed_swedroot", ParadiseLostBlocks.PACKED_SWEDROOT, building_block, compostable85); - public static final BlockItem COLD_CLOUD = add("cold_cloud", ParadiseLostBlocks.COLD_CLOUD, building_block); - public static final BlockItem BLUE_CLOUD = add("blue_cloud", ParadiseLostBlocks.BLUE_CLOUD, building_block); - public static final BlockItem PINK_CLOUD = add("pink_cloud", ParadiseLostBlocks.PINK_CLOUD, building_block); - public static final BlockItem GOLDEN_CLOUD = add("golden_cloud", ParadiseLostBlocks.GOLDEN_CLOUD, building_block); + public static final BlockItem HIGHLANDS_GRASS = add("highlands_grass", ParadiseLostBlocks.HIGHLANDS_GRASS, building_block()); + + public static final BlockItem FROZEN_GRASS = add("frozen_grass", ParadiseLostBlocks.FROZEN_GRASS, building_block()); + public static final BlockItem DIRT = add("dirt", ParadiseLostBlocks.DIRT, building_block()); + public static final BlockItem COARSE_DIRT = add("coarse_dirt", ParadiseLostBlocks.COARSE_DIRT, building_block()); + public static final BlockItem PERMAFROST = add("permafrost", ParadiseLostBlocks.PERMAFROST, building_block()); + public static final BlockItem LEVITA = add("levita", ParadiseLostBlocks.LEVITA, building_block()); + public static final BlockItem PACKED_SWEDROOT = add("packed_swedroot", ParadiseLostBlocks.PACKED_SWEDROOT, building_block(), compostable85); + public static final BlockItem COLD_CLOUD = add("cold_cloud", ParadiseLostBlocks.COLD_CLOUD, building_block()); + public static final BlockItem BLUE_CLOUD = add("blue_cloud", ParadiseLostBlocks.BLUE_CLOUD, building_block()); + public static final BlockItem PINK_CLOUD = add("pink_cloud", ParadiseLostBlocks.PINK_CLOUD, building_block()); + public static final BlockItem GOLDEN_CLOUD = add("golden_cloud", ParadiseLostBlocks.GOLDEN_CLOUD, building_block()); // planks - public static final BlockItem AUREL_PLANKS = add("aurel_planks", ParadiseLostBlocks.AUREL_PLANKS, building_block); - public static final BlockItem MOTHER_AUREL_PLANKS = add("mother_aurel_planks", ParadiseLostBlocks.MOTHER_AUREL_PLANKS, building_block); - public static final BlockItem ORANGE_PLANKS = add("orange_planks", ParadiseLostBlocks.ORANGE_PLANKS, building_block); - public static final BlockItem WISTERIA_PLANKS = add("wisteria_planks", ParadiseLostBlocks.WISTERIA_PLANKS, building_block); - public static final BlockItem AUREL_BOOKSHELF = add("aurel_bookshelf", ParadiseLostBlocks.AUREL_BOOKSHELF, building_block); + public static final BlockItem AUREL_PLANKS = add("aurel_planks", ParadiseLostBlocks.AUREL_PLANKS, building_block()); + public static final BlockItem MOTHER_AUREL_PLANKS = add("mother_aurel_planks", ParadiseLostBlocks.MOTHER_AUREL_PLANKS, building_block()); + public static final BlockItem ORANGE_PLANKS = add("orange_planks", ParadiseLostBlocks.ORANGE_PLANKS, building_block()); + public static final BlockItem WISTERIA_PLANKS = add("wisteria_planks", ParadiseLostBlocks.WISTERIA_PLANKS, building_block()); + public static final BlockItem AUREL_BOOKSHELF = add("aurel_bookshelf", ParadiseLostBlocks.AUREL_BOOKSHELF, building_block()); // ores - public static final BlockItem CHERINE_ORE = add("cherine_ore", ParadiseLostBlocks.CHERINE_ORE, building_block); - public static final BlockItem OLVITE_ORE = add("olvite_ore", ParadiseLostBlocks.OLVITE_ORE, building_block); - public static final BlockItem SURTRUM = add("surtrum", ParadiseLostBlocks.SURTRUM, building_block); - public static final BlockItem METAMORPHIC_SHELL = add("metamorphic_shell", ParadiseLostBlocks.METAMORPHIC_SHELL, building_block); + public static final BlockItem CHERINE_ORE = add("cherine_ore", ParadiseLostBlocks.CHERINE_ORE, building_block()); + public static final BlockItem OLVITE_ORE = add("olvite_ore", ParadiseLostBlocks.OLVITE_ORE, building_block()); + public static final BlockItem SURTRUM = add("surtrum", ParadiseLostBlocks.SURTRUM, building_block().fireproof()); + public static final BlockItem METAMORPHIC_SHELL = add("metamorphic_shell", ParadiseLostBlocks.METAMORPHIC_SHELL, building_block()); + public static final BlockItem LEVITA_ORE = add("levita_ore", ParadiseLostBlocks.LEVITA_ORE, building_block()); // ore blocks - public static final BlockItem CHERINE_BLOCK = add("cherine_block", ParadiseLostBlocks.CHERINE_BLOCK, building_block, fuel(5000)); - public static final BlockItem OLVITE_BLOCK = add("olvite_block", ParadiseLostBlocks.OLVITE_BLOCK, building_block); - public static final BlockItem REFINED_SURTRUM_BLOCK = add("refined_surtrum_block", ParadiseLostBlocks.REFINED_SURTRUM_BLOCK, building_block); + public static final BlockItem CHERINE_BLOCK = add("cherine_block", ParadiseLostBlocks.CHERINE_BLOCK, building_block(), fuel(5000)); + public static final BlockItem OLVITE_BLOCK = add("olvite_block", ParadiseLostBlocks.OLVITE_BLOCK, building_block()); + public static final BlockItem REFINED_SURTRUM_BLOCK = add("refined_surtrum_block", ParadiseLostBlocks.REFINED_SURTRUM_BLOCK, building_block().fireproof()); // move this somewhere else - public static final BlockItem LEVITATOR = add("levitator", ParadiseLostBlocks.LEVITATOR, building_block); + public static final BlockItem LEVITATOR = add("levitator", ParadiseLostBlocks.LEVITATOR, building_block()); // logs - public static final BlockItem AUREL_LOG = add("aurel_log", ParadiseLostBlocks.AUREL_LOG, building_block); - public static final BlockItem MOTTLED_AUREL_LOG = add("mottled_aurel_log", ParadiseLostBlocks.MOTTLED_AUREL_LOG, building_block); - public static final BlockItem MOTTLED_AUREL_FALLEN_LOG = add("mottled_aurel_fallen_log", ParadiseLostBlocks.MOTTLED_AUREL_FALLEN_LOG, building_block); - public static final BlockItem MOTHER_AUREL_LOG = add("mother_aurel_log", ParadiseLostBlocks.MOTHER_AUREL_LOG, building_block); - public static final BlockItem ORANGE_LOG = add("orange_log", ParadiseLostBlocks.ORANGE_LOG, building_block); - public static final BlockItem WISTERIA_LOG = add("wisteria_log", ParadiseLostBlocks.WISTERIA_LOG, building_block); + public static final BlockItem AUREL_LOG = add("aurel_log", ParadiseLostBlocks.AUREL_LOG, building_block()); + public static final BlockItem MOTTLED_AUREL_LOG = add("mottled_aurel_log", ParadiseLostBlocks.MOTTLED_AUREL_LOG, building_block()); + public static final BlockItem MOTTLED_AUREL_FALLEN_LOG = add("mottled_aurel_fallen_log", ParadiseLostBlocks.MOTTLED_AUREL_FALLEN_LOG, building_block()); + public static final BlockItem MOTHER_AUREL_LOG = add("mother_aurel_log", ParadiseLostBlocks.MOTHER_AUREL_LOG, building_block()); + public static final BlockItem ORANGE_LOG = add("orange_log", ParadiseLostBlocks.ORANGE_LOG, building_block()); + public static final BlockItem WISTERIA_LOG = add("wisteria_log", ParadiseLostBlocks.WISTERIA_LOG, building_block()); // stripped logs - public static final BlockItem STRIPPED_AUREL_LOG = add("stripped_aurel_log", ParadiseLostBlocks.STRIPPED_AUREL_LOG, building_block); - public static final BlockItem STRIPPED_MOTHER_AUREL_LOG = add("stripped_mother_aurel_log", ParadiseLostBlocks.STRIPPED_MOTHER_AUREL_LOG, building_block); - public static final BlockItem STRIPPED_ORANGE_LOG = add("stripped_orange_log", ParadiseLostBlocks.STRIPPED_ORANGE_LOG, building_block); - public static final BlockItem STRIPPED_WISTERIA_LOG = add("stripped_wisteria_log", ParadiseLostBlocks.STRIPPED_WISTERIA_LOG, building_block); + public static final BlockItem STRIPPED_AUREL_LOG = add("stripped_aurel_log", ParadiseLostBlocks.STRIPPED_AUREL_LOG, building_block()); + public static final BlockItem STRIPPED_MOTHER_AUREL_LOG = add("stripped_mother_aurel_log", ParadiseLostBlocks.STRIPPED_MOTHER_AUREL_LOG, building_block()); + public static final BlockItem STRIPPED_ORANGE_LOG = add("stripped_orange_log", ParadiseLostBlocks.STRIPPED_ORANGE_LOG, building_block()); + public static final BlockItem STRIPPED_WISTERIA_LOG = add("stripped_wisteria_log", ParadiseLostBlocks.STRIPPED_WISTERIA_LOG, building_block()); // stripped wood - public static final BlockItem STRIPPED_AUREL_WOOD = add("stripped_aurel_wood", ParadiseLostBlocks.STRIPPED_AUREL_WOOD, building_block); - public static final BlockItem STRIPPED_MOTHER_AUREL_WOOD = add("stripped_mother_aurel_wood", ParadiseLostBlocks.STRIPPED_MOTHER_AUREL_WOOD, building_block); - public static final BlockItem STRIPPED_ORANGE_WOOD = add("stripped_orange_wood", ParadiseLostBlocks.STRIPPED_ORANGE_WOOD, building_block); - public static final BlockItem STRIPPED_WISTERIA_WOOD = add("stripped_wisteria_wood", ParadiseLostBlocks.STRIPPED_WISTERIA_WOOD, building_block); + public static final BlockItem STRIPPED_AUREL_WOOD = add("stripped_aurel_wood", ParadiseLostBlocks.STRIPPED_AUREL_WOOD, building_block()); + public static final BlockItem STRIPPED_MOTHER_AUREL_WOOD = add("stripped_mother_aurel_wood", ParadiseLostBlocks.STRIPPED_MOTHER_AUREL_WOOD, building_block()); + public static final BlockItem STRIPPED_ORANGE_WOOD = add("stripped_orange_wood", ParadiseLostBlocks.STRIPPED_ORANGE_WOOD, building_block()); + public static final BlockItem STRIPPED_WISTERIA_WOOD = add("stripped_wisteria_wood", ParadiseLostBlocks.STRIPPED_WISTERIA_WOOD, building_block()); // wood - public static final BlockItem AUREL_WOOD = add("aurel_wood", ParadiseLostBlocks.AUREL_WOOD, building_block); - public static final BlockItem MOTHER_AUREL_WOOD = add("mother_aurel_wood", ParadiseLostBlocks.MOTHER_AUREL_WOOD, building_block); - public static final BlockItem ORANGE_WOOD = add("orange_wood", ParadiseLostBlocks.ORANGE_WOOD, building_block); - public static final BlockItem WISTERIA_WOOD = add("wisteria_wood", ParadiseLostBlocks.WISTERIA_WOOD, building_block); + public static final BlockItem AUREL_WOOD = add("aurel_wood", ParadiseLostBlocks.AUREL_WOOD, building_block()); + public static final BlockItem MOTHER_AUREL_WOOD = add("mother_aurel_wood", ParadiseLostBlocks.MOTHER_AUREL_WOOD, building_block()); + public static final BlockItem ORANGE_WOOD = add("orange_wood", ParadiseLostBlocks.ORANGE_WOOD, building_block()); + public static final BlockItem WISTERIA_WOOD = add("wisteria_wood", ParadiseLostBlocks.WISTERIA_WOOD, building_block()); // glass // slabs - public static final BlockItem AUREL_SLAB = add("aurel_slab", ParadiseLostBlocks.AUREL_SLAB, building_block); - public static final BlockItem MOTHER_AUREL_SLAB = add("mother_aurel_slab", ParadiseLostBlocks.MOTHER_AUREL_SLAB, building_block); - public static final BlockItem ORANGE_SLAB = add("orange_slab", ParadiseLostBlocks.ORANGE_SLAB, building_block); - public static final BlockItem WISTERIA_SLAB = add("wisteria_slab", ParadiseLostBlocks.WISTERIA_SLAB, building_block); + public static final BlockItem AUREL_SLAB = add("aurel_slab", ParadiseLostBlocks.AUREL_SLAB, building_block()); + public static final BlockItem MOTHER_AUREL_SLAB = add("mother_aurel_slab", ParadiseLostBlocks.MOTHER_AUREL_SLAB, building_block()); + public static final BlockItem ORANGE_SLAB = add("orange_slab", ParadiseLostBlocks.ORANGE_SLAB, building_block()); + public static final BlockItem WISTERIA_SLAB = add("wisteria_slab", ParadiseLostBlocks.WISTERIA_SLAB, building_block()); // smooth stuff // cobble variants - public static final BlockItem MOSSY_FLOESTONE = add("mossy_floestone", ParadiseLostBlocks.MOSSY_FLOESTONE, building_block); - public static final BlockItem GOLDEN_MOSSY_FLOESTONE = add("golden_mossy_floestone", ParadiseLostBlocks.GOLDEN_MOSSY_FLOESTONE, building_block); + public static final BlockItem MOSSY_FLOESTONE = add("mossy_floestone", ParadiseLostBlocks.MOSSY_FLOESTONE, building_block()); + public static final BlockItem GOLDEN_MOSSY_FLOESTONE = add("golden_mossy_floestone", ParadiseLostBlocks.GOLDEN_MOSSY_FLOESTONE, building_block()); // bricks - public static final BlockItem FLOESTONE_BRICK = add("floestone_brick", ParadiseLostBlocks.FLOESTONE_BRICK, building_block); - public static final BlockItem CHISELED_FLOESTONE = add("chiseled_floestone", ParadiseLostBlocks.CHISELED_FLOESTONE, building_block); - public static final BlockItem SMOOTH_HELIOLITH = add("smooth_heliolith", ParadiseLostBlocks.SMOOTH_HELIOLITH, building_block); - public static final BlockItem CARVED_STONE = add("carved_stone", ParadiseLostBlocks.CARVED_STONE, building_block); - public static final BlockItem MOSSY_CARVED_STONE = add("mossy_carved_stone", ParadiseLostBlocks.MOSSY_CARVED_STONE, building_block); - public static final BlockItem CRACKED_CARVED_STONE = add("cracked_carved_stone", ParadiseLostBlocks.CRACKED_CARVED_STONE, building_block); - public static final BlockItem GLYPHED_CARVED_STONE = add("glyphed_carved_stone", ParadiseLostBlocks.GLYPHED_CARVED_STONE, building_block); - public static final BlockItem CARVED_STONE_PANEL = add("carved_stone_panel", ParadiseLostBlocks.CARVED_STONE_PANEL, building_block); - public static final BlockItem CARVED_STONE_PANEL_LIT = add("carved_stone_panel_lit", ParadiseLostBlocks.CARVED_STONE_PANEL_LIT, building_block); - public static final BlockItem CARVED_STONE_EYE = add("carved_stone_eye", ParadiseLostBlocks.CARVED_STONE_EYE, building_block); - public static final BlockItem CARVED_STONE_EYE_LIT = add("carved_stone_eye_lit", ParadiseLostBlocks.CARVED_STONE_EYE_LIT, building_block); - - public static final BlockItem GOLDEN_AMBER_TILE = add("golden_amber_tile", ParadiseLostBlocks.GOLDEN_AMBER_TILE, building_block); + public static final BlockItem FLOESTONE_BRICK = add("floestone_brick", ParadiseLostBlocks.FLOESTONE_BRICK, building_block()); + public static final BlockItem CHISELED_FLOESTONE = add("chiseled_floestone", ParadiseLostBlocks.CHISELED_FLOESTONE, building_block()); + public static final BlockItem SMOOTH_HELIOLITH = add("smooth_heliolith", ParadiseLostBlocks.SMOOTH_HELIOLITH, building_block()); + public static final BlockItem CARVED_STONE = add("carved_stone", ParadiseLostBlocks.CARVED_STONE, building_block()); + public static final BlockItem MOSSY_CARVED_STONE = add("mossy_carved_stone", ParadiseLostBlocks.MOSSY_CARVED_STONE, building_block()); + public static final BlockItem CRACKED_CARVED_STONE = add("cracked_carved_stone", ParadiseLostBlocks.CRACKED_CARVED_STONE, building_block()); + public static final BlockItem GLYPHED_CARVED_STONE = add("glyphed_carved_stone", ParadiseLostBlocks.GLYPHED_CARVED_STONE, building_block()); + public static final BlockItem CARVED_STONE_PANEL = add("carved_stone_panel", ParadiseLostBlocks.CARVED_STONE_PANEL, building_block()); + public static final BlockItem CARVED_STONE_PANEL_LIT = add("carved_stone_panel_lit", ParadiseLostBlocks.CARVED_STONE_PANEL_LIT, building_block()); + public static final BlockItem CARVED_STONE_EYE = add("carved_stone_eye", ParadiseLostBlocks.CARVED_STONE_EYE, building_block()); + public static final BlockItem CARVED_STONE_EYE_LIT = add("carved_stone_eye_lit", ParadiseLostBlocks.CARVED_STONE_EYE_LIT, building_block()); + + public static final BlockItem GOLDEN_AMBER_TILE = add("golden_amber_tile", ParadiseLostBlocks.GOLDEN_AMBER_TILE, building_block()); // stairs - public static final BlockItem AUREL_STAIRS = add("aurel_stairs", ParadiseLostBlocks.AUREL_STAIRS, building_block); - public static final BlockItem MOTHER_AUREL_STAIRS = add("mother_aurel_stairs", ParadiseLostBlocks.MOTHER_AUREL_STAIRS, building_block); - public static final BlockItem ORANGE_STAIRS = add("orange_stairs", ParadiseLostBlocks.ORANGE_STAIRS, building_block); - public static final BlockItem WISTERIA_STAIRS = add("wisteria_stairs", ParadiseLostBlocks.WISTERIA_STAIRS, building_block); + public static final BlockItem AUREL_STAIRS = add("aurel_stairs", ParadiseLostBlocks.AUREL_STAIRS, building_block()); + public static final BlockItem MOTHER_AUREL_STAIRS = add("mother_aurel_stairs", ParadiseLostBlocks.MOTHER_AUREL_STAIRS, building_block()); + public static final BlockItem ORANGE_STAIRS = add("orange_stairs", ParadiseLostBlocks.ORANGE_STAIRS, building_block()); + public static final BlockItem WISTERIA_STAIRS = add("wisteria_stairs", ParadiseLostBlocks.WISTERIA_STAIRS, building_block()); // stone stairs + slabs - public static final BlockItem FLOESTONE_STAIRS = add("floestone_stairs", ParadiseLostBlocks.FLOESTONE_STAIRS, building_block); - public static final BlockItem COBBLED_FLOESTONE_STAIRS = add("cobbled_floestone_stairs", ParadiseLostBlocks.COBBLED_FLOESTONE_STAIRS, building_block); - public static final BlockItem MOSSY_FLOESTONE_STAIRS = add("mossy_floestone_stairs", ParadiseLostBlocks.MOSSY_FLOESTONE_STAIRS, building_block); - public static final BlockItem HELIOLITH_STAIRS = add("heliolith_stairs", ParadiseLostBlocks.HELIOLITH_STAIRS, building_block); - public static final BlockItem FLOESTONE_BRICK_STAIRS = add("floestone_brick_stairs", ParadiseLostBlocks.FLOESTONE_BRICK_STAIRS, building_block); - public static final BlockItem SMOOTH_HELIOLITH_STAIRS = add("smooth_heliolith_stairs", ParadiseLostBlocks.SMOOTH_HELIOLITH_STAIRS, building_block); - public static final BlockItem CARVED_STAIRS = add("carved_stone_stairs", ParadiseLostBlocks.CARVED_STONE_STAIRS, building_block); - public static final BlockItem MOSSY_CARVED_STAIRS = add("mossy_carved_stone_stairs", ParadiseLostBlocks.MOSSY_CARVED_STONE_STAIRS, building_block); - public static final BlockItem GOLDEN_AMBER_TILE_STAIRS = add("golden_amber_tile_stairs", ParadiseLostBlocks.GOLDEN_AMBER_TILE_STAIRS, building_block); - - public static final BlockItem FLOESTONE_SLAB = add("floestone_slab", ParadiseLostBlocks.FLOESTONE_SLAB, building_block); - public static final BlockItem COBBLED_FLOESTONE_SLAB = add("cobbled_floestone_slab", ParadiseLostBlocks.COBBLED_FLOESTONE_SLAB, building_block); - public static final BlockItem MOSSY_FLOESTONE_SLAB = add("mossy_floestone_slab", ParadiseLostBlocks.MOSSY_FLOESTONE_SLAB, building_block); - public static final BlockItem HELIOLITH_SLAB = add("heliolith_slab", ParadiseLostBlocks.HELIOLITH_SLAB, building_block); - public static final BlockItem FLOESTONE_BRICK_SLAB = add("floestone_brick_slab", ParadiseLostBlocks.FLOESTONE_BRICK_SLAB, building_block); - public static final BlockItem SMOOTH_HELIOLITH_SLAB = add("smooth_heliolith_slab", ParadiseLostBlocks.SMOOTH_HELIOLITH_SLAB, building_block); - public static final BlockItem CARVED_SLAB = add("carved_stone_slab", ParadiseLostBlocks.CARVED_STONE_SLAB, building_block); - public static final BlockItem MOSSY_CARVED_SLAB = add("mossy_carved_stone_slab", ParadiseLostBlocks.MOSSY_CARVED_STONE_SLAB, building_block); - public static final BlockItem GOLDEN_AMBER_TILE_SLAB = add("golden_amber_tile_slab", ParadiseLostBlocks.GOLDEN_AMBER_TILE_SLAB, building_block); + public static final BlockItem FLOESTONE_STAIRS = add("floestone_stairs", ParadiseLostBlocks.FLOESTONE_STAIRS, building_block()); + public static final BlockItem COBBLED_FLOESTONE_STAIRS = add("cobbled_floestone_stairs", ParadiseLostBlocks.COBBLED_FLOESTONE_STAIRS, building_block()); + public static final BlockItem MOSSY_FLOESTONE_STAIRS = add("mossy_floestone_stairs", ParadiseLostBlocks.MOSSY_FLOESTONE_STAIRS, building_block()); + public static final BlockItem HELIOLITH_STAIRS = add("heliolith_stairs", ParadiseLostBlocks.HELIOLITH_STAIRS, building_block()); + public static final BlockItem FLOESTONE_BRICK_STAIRS = add("floestone_brick_stairs", ParadiseLostBlocks.FLOESTONE_BRICK_STAIRS, building_block()); + public static final BlockItem SMOOTH_HELIOLITH_STAIRS = add("smooth_heliolith_stairs", ParadiseLostBlocks.SMOOTH_HELIOLITH_STAIRS, building_block()); + public static final BlockItem CARVED_STAIRS = add("carved_stone_stairs", ParadiseLostBlocks.CARVED_STONE_STAIRS, building_block()); + public static final BlockItem MOSSY_CARVED_STAIRS = add("mossy_carved_stone_stairs", ParadiseLostBlocks.MOSSY_CARVED_STONE_STAIRS, building_block()); + public static final BlockItem GOLDEN_AMBER_TILE_STAIRS = add("golden_amber_tile_stairs", ParadiseLostBlocks.GOLDEN_AMBER_TILE_STAIRS, building_block()); + + public static final BlockItem FLOESTONE_SLAB = add("floestone_slab", ParadiseLostBlocks.FLOESTONE_SLAB, building_block()); + public static final BlockItem COBBLED_FLOESTONE_SLAB = add("cobbled_floestone_slab", ParadiseLostBlocks.COBBLED_FLOESTONE_SLAB, building_block()); + public static final BlockItem MOSSY_FLOESTONE_SLAB = add("mossy_floestone_slab", ParadiseLostBlocks.MOSSY_FLOESTONE_SLAB, building_block()); + public static final BlockItem HELIOLITH_SLAB = add("heliolith_slab", ParadiseLostBlocks.HELIOLITH_SLAB, building_block()); + public static final BlockItem FLOESTONE_BRICK_SLAB = add("floestone_brick_slab", ParadiseLostBlocks.FLOESTONE_BRICK_SLAB, building_block()); + public static final BlockItem SMOOTH_HELIOLITH_SLAB = add("smooth_heliolith_slab", ParadiseLostBlocks.SMOOTH_HELIOLITH_SLAB, building_block()); + public static final BlockItem CARVED_SLAB = add("carved_stone_slab", ParadiseLostBlocks.CARVED_STONE_SLAB, building_block()); + public static final BlockItem MOSSY_CARVED_SLAB = add("mossy_carved_stone_slab", ParadiseLostBlocks.MOSSY_CARVED_STONE_SLAB, building_block()); + public static final BlockItem GOLDEN_AMBER_TILE_SLAB = add("golden_amber_tile_slab", ParadiseLostBlocks.GOLDEN_AMBER_TILE_SLAB, building_block()); // colorfuls private static FabricItemSettings decoration() { diff --git a/src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java b/src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java new file mode 100644 index 000000000..d3bd6ae99 --- /dev/null +++ b/src/main/java/net/id/paradiselost/items/tools/base_tools/GravityWandItem.java @@ -0,0 +1,24 @@ +package net.id.paradiselost.items.tools.base_tools; + +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.util.*; + +public class GravityWandItem extends Item { + public GravityWandItem(Settings settings) { + super(settings); + } + + @Override + public ActionResult useOnEntity(ItemStack stack, PlayerEntity player, LivingEntity entity, Hand hand) { + return GravityTool.flipEntity(stack, player, entity, hand); + } + + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + return GravityTool.tryFloatBlock(context, super.useOnBlock(context)); + } +} diff --git a/src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java b/src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java new file mode 100644 index 000000000..3742021bc --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/enchantment/EnchantmentHelperMixin.java @@ -0,0 +1,18 @@ +package net.id.paradiselost.mixin.enchantment; + +import net.id.paradiselost.tag.ParadiseLostItemTags; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(EnchantmentHelper.class) +public class EnchantmentHelperMixin { + + @Inject(method = "getFireAspect", at = @At("HEAD"), cancellable = true) + private static void getFireAspect(LivingEntity entity, CallbackInfoReturnable cir) { + if (entity.getStackInHand(entity.getActiveHand()).isIn(ParadiseLostItemTags.IGNITING_TOOLS)) cir.setReturnValue(2); + } +} diff --git a/src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java b/src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java index 94ce0daf6..54852cb9d 100644 --- a/src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java +++ b/src/main/java/net/id/paradiselost/tag/ParadiseLostItemTags.java @@ -10,6 +10,7 @@ public class ParadiseLostItemTags { public static final TagKey MOA_TEMPTABLES = register("entity/moa_temptables"); public static final TagKey RIGHTEOUS_WEAPONS = register("tool/righteous_weapons"); public static final TagKey SACRED_WEAPONS = register("tool/sacred_weapons"); + public static final TagKey IGNITING_TOOLS = register("tool/igniting_tools"); private static TagKey register(String id) { return TagKey.of(Registry.ITEM_KEY, ParadiseLost.locate(id)); diff --git a/src/main/resources/asset_helper.py b/src/main/resources/asset_helper.py index 8d54b97f0..c2f130a65 100644 --- a/src/main/resources/asset_helper.py +++ b/src/main/resources/asset_helper.py @@ -80,12 +80,10 @@ def generate_slab_block(block_id, base_block_id, texture): -generate_standard_block("heliolith") -generate_stairs_block("heliolith_stairs", "heliolith") -generate_slab_block("heliolith_slab", "heliolith", "heliolith") -generate_standard_block("smooth_heliolith") -generate_stairs_block("smooth_heliolith_stairs", "smooth_heliolith") -generate_slab_block("smooth_heliolith_slab", "smooth_heliolith", "smooth_heliolith") +generate_standard_block("levita") +generate_standard_block("levita_ore") +generate_standard_item("levita_gem") +generate_standard_item("levita_wand") diff --git a/src/main/resources/assets/paradise_lost/blockstates/levita.json b/src/main/resources/assets/paradise_lost/blockstates/levita.json new file mode 100644 index 000000000..0148f0dd0 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/levita.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "paradise_lost:block/levita" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/levita_ore.json b/src/main/resources/assets/paradise_lost/blockstates/levita_ore.json new file mode 100644 index 000000000..dd8fb0dfa --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/levita_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "paradise_lost:block/levita_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/lang/en_us.json b/src/main/resources/assets/paradise_lost/lang/en_us.json index 5ea753cd4..8dd0e20f8 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -30,6 +30,7 @@ "block.paradise_lost.dirt": "Paradise Dirt", "block.paradise_lost.coarse_dirt": "Coarse Paradise Dirt", "block.paradise_lost.permafrost": "Permafrost", + "block.paradise_lost.levita": "Levita Precipitate", "block.paradise_lost.farmland": "Paradise Farmland", "block.paradise_lost.grass_path": "Paradise Grass Path", "block.paradise_lost.packed_swedroot": "Packed Swedroot", @@ -239,6 +240,7 @@ "block.paradise_lost.olvite_ore": "Olvite Ore", "block.paradise_lost.surtrum": "Surtrum", "block.paradise_lost.metamorphic_shell": "Metamorphic Shell", + "block.paradise_lost.levita_ore": "Levita Ore", "block.paradise_lost.cherine_block": "Block of Cherine", "block.paradise_lost.olvite_block": "Block of Olvite", "block.paradise_lost.refined_surtrum_block": "Block of Refined Surtrum", @@ -287,6 +289,7 @@ "item.paradise_lost.olvite_nugget": "Olvite Nugget", "item.paradise_lost.refined_surtrum": "Refined Surtrum", "item.paradise_lost.raw_surtrum": "Surtrum Fragment", + "item.paradise_lost.levita_gem": "Levita Bead", "item.paradise_lost.flax_thread" : "Flax Thread", "item.paradise_lost.flaxweave" : "Flaxweave", "item.paradise_lost.swedroot_pulp": "Swedroot Pulp", @@ -312,6 +315,7 @@ "item.paradise_lost.cold_parachute": "Cold Parachute", "item.paradise_lost.golden_parachute": "Golden Parachute", + "item.paradise_lost.levita_wand": "Levitation Wand", "item.paradise_lost.cherine_bloodstone": "Cherine Bloodstone", "item.paradise_lost.olvite_bloodstone": "Olvite Bloodstone", "item.paradise_lost.surtrum_bloodstone": "Surtrum Bloodstone", diff --git a/src/main/resources/assets/paradise_lost/models/block/levita.json b/src/main/resources/assets/paradise_lost/models/block/levita.json new file mode 100644 index 000000000..a933a6369 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "paradise_lost:block/levita" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/levita_ore.json b/src/main/resources/assets/paradise_lost/models/block/levita_ore.json new file mode 100644 index 000000000..c7d0abdd3 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "paradise_lost:block/levita_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita.json b/src/main/resources/assets/paradise_lost/models/item/levita.json new file mode 100644 index 000000000..996c8271f --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/levita" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita_gem.json b/src/main/resources/assets/paradise_lost/models/item/levita_gem.json new file mode 100644 index 000000000..df6370ffb --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita_gem.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "paradise_lost:item/levita_gem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita_ore.json b/src/main/resources/assets/paradise_lost/models/item/levita_ore.json new file mode 100644 index 000000000..b8def7ec1 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/levita_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita_wand.json b/src/main/resources/assets/paradise_lost/models/item/levita_wand.json new file mode 100644 index 000000000..861e456b4 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita_wand.json @@ -0,0 +1,6 @@ +{ + "parent": "paradise_lost:item/handheld_small", + "textures": { + "layer0": "paradise_lost:item/levita_wand" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/textures/block/levita.png b/src/main/resources/assets/paradise_lost/textures/block/levita.png new file mode 100644 index 0000000000000000000000000000000000000000..e80dd00d664632c29eafdcb1d4bdaae0d069b481 GIT binary patch literal 708 zcmV;#0z3VQP)Px%en~_@R5*=QlFe%xQ5400nNW*XYwU=EWQdJWP3eaOH%$$p3m3K!X`#F6ve3UE z-DaJ?L$b>v*|=~OOd~DUn$&}-sW-defPX`?maU*+eZ_C zy~ABTfBMMe(g9$rSR@%&(0V$nnKbUH)EaE4D#daMHJ3-KwGTvba_LZQH33*(DWLUq zQR@#Z0FrTqtzr?wv}ko~W?#Q~ziHXO3C{%?jxMRx8p!^K)5l5*P1pEkTyXd99ZpWW zgy(|1eEbSc*RaO}BmmnP5eduUhty(#;rL9%8>)($%TMFjvS4VK7Lx6ZFw7~vwyqNi z%j_QP(;rx9MqMXttP|qnUEUr`p|khlA9=G*8nJ%O8~^8G8?KY^tuv5o&{o2S%6D7 zHEBj&cp%{Q(dyVDSE)7l@b(?4#Q@QEs`?c1BYMH&>NOWQl}jRx{~a);3IwkY{1) zkN*SAB(lsV(oZ)%*D~d=`*h87y#5LOfyF(akNqFtIXUg}<@i`^BK!OiUGtpY`2|TO zg_KYfG^5UHCQZQWqpj;=Wrk@9_qp3@b!-4ORF%|X04d~Iz;;IT2Nt$7BB3a__I8_N qQJLZR48ye8JKROh<(ct&0r&@jWI-orqFROk0000Px%R!KxbR5*=wlRan?VHn4M2?v(uKEQ@@w1(0^pdl%kR$N>{r-G10oOM$w*)4R| zP~2jM;8I)~kPb!)#SS_s6mbYNM}h~@5EG8l2JR!r1%x=9cTJ(b@D4Bk=l}3N&+mC6 z2m5=Ik>dam6Gf!i8En^M5=oKS-SU&whZ(93Ev$7j zQ74s3V!LUoCmO|#rjPOMo7a>7O_?-1gK>7wH{ls&^^`+xm7!8WosXmI9Uo)BUQ*-` z)yQ!$`U7;mX*G0x6IjDqcY#6;1@C_}ZU@i_fGMA>a<lOS8L ziNS(hH~S;UxzaDe=nujfziu-}Q%#*V+m?xKnfwK+;yLSK3vwF(00003MLw6a|V7gj5+1Q+&JaKYj`wJmRMb^ZE}e~FqSQJJOmV>n-z;g=|OKJ5Pb zG>&!<$|(N!<9`sq!r}&isfD?A5R#zUm&LD-UYt8?wG(UoZ;anx1hBobR+nLL_@2oq z_9|sWur=hM@G4~zbs5Si2H?DV`^x3q0&cb9=II%|QgE@f`~){kFx1-jk65uVp%O#z zUC#aBc;oYa6#&oxI*%V(P%h_6tFbh=UZ)G73hZg~>{iNDfns68UeVUDG%1nK2`&x{ zsyuU#;lQ9^;pB58(lm@EJ^Nt#?(;W4fkHNen~h92Wxju8pEx2K99!7w4Is~NltS-^ T(>ML&00000NkvXXu0mjf_u}wd delta 437 zcmV;m0ZRUa1l$9VF@KgxL_t(2k&TkUO9DX@#=n&nw%r*O5)nhB$Y2lAVUIzby47FM zx#-rP(5*TYT?&G3(K)G_ zxsn1vZHxPo+7=d~-RS~oH5y-?o|(@DxI#>>LHaY zEAI~+LbRLr2ijdNmz6eub!si zaKUv~N~qRca7w5?rGy&YeP{Xj0>Fg58s6T7y)OQej?3J;F+Mx!u{^7X0eG1a09Frs znUSinkmZe~5`O@^u?*?kf4ZkLyllpvB*p*2wMWL|!>vPz23)PyDj%O}N=oR??lxvi zFcgBZqM1y@xi1xbhY(gM9lqsU06-aNdRv%*atPsqhY$eQZnglpz_XCoUFibJL|h-K ztuYZGMWYc)XkNl4R?I|RBB9|#BU94qF;h(a!N&UP(k{*YH;}L`%r-LE)MTuvN1PHZ flr-$%1}M)Do^Ids^-~Bc00000NkvXXu0mjf@~q8u diff --git a/src/main/resources/assets/paradise_lost/textures/item/levita_gem.png b/src/main/resources/assets/paradise_lost/textures/item/levita_gem.png new file mode 100644 index 0000000000000000000000000000000000000000..d041e79cfd9ed8a2f35f2a0e6e374df581b6755f GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D%z`8-`5Lo9le z6C^%02+m(p{p#d@efhm92|%!8!)5;UQEO&x|MKVm|N7rc|66|k|KGge{ulY#R%$V` zim#rP*mHTGkwJvEVa1-*1cB+o=@ZQJ4jZ&cu79@pyM&FJU2?^Gy|V&mRnHdm_s)ID zzc}dd@#odj8+RQzP|Ltj>==4J4iZ#E_9RPxY-#0YdWDoK1?0l6bu`bn7 ze1=Zp%*5BBv27>K{S6N=1;qHxN!)ZKmF=)7KSw*`rf1*t*BR`oFK$%~zuR-L;1F{g zNWjJ>x>ZP8B2YR1&bRo(CuTl8wsS8}ladvWnczMi_pqE}t0Y%5o@g^LFgOs~!qhnxW;{AWlJlf_tidqX7R2;l`u}|eJ p506LOj_(fy58JNT+%CqzaIh$UdSBPwDZmh8@O1TaS?83{1OU8Lp0WS{ literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/levita.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/levita.json new file mode 100644 index 000000000..9c96353c9 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/levita.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:levita" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/levita_ore.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/levita_ore.json new file mode 100644 index 000000000..0c900f68a --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/levita_ore.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "paradise_lost:levita_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "paradise_lost:levita_gem" + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/recipes/levita_from_blasting.json b/src/main/resources/data/paradise_lost/recipes/levita_from_blasting.json new file mode 100644 index 000000000..30f21fb18 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/levita_from_blasting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "paradise_lost:levita_ore" + }, + "result": "paradise_lost:levita_gem", + "experience": 1.2, + "cookingtime": 100 +} diff --git a/src/main/resources/data/paradise_lost/recipes/levita_from_smelting.json b/src/main/resources/data/paradise_lost/recipes/levita_from_smelting.json new file mode 100644 index 000000000..9d2dc850d --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/levita_from_smelting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "paradise_lost:levita_ore" + }, + "result": "paradise_lost:levita_gem", + "experience": 1.2, + "cookingtime": 200 +} diff --git a/src/main/resources/data/paradise_lost/recipes/levita_wand.json b/src/main/resources/data/paradise_lost/recipes/levita_wand.json new file mode 100644 index 000000000..94574ad51 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/levita_wand.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " X", + " # ", + "# " + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "paradise_lost:levita_gem" + } + }, + "result": { + "item": "paradise_lost:levita_wand" + } +} diff --git a/src/main/resources/data/paradise_lost/recipes/levitator.json b/src/main/resources/data/paradise_lost/recipes/levitator.json index 2c360f8b3..58529bdb7 100644 --- a/src/main/resources/data/paradise_lost/recipes/levitator.json +++ b/src/main/resources/data/paradise_lost/recipes/levitator.json @@ -7,7 +7,7 @@ ], "key": { "G": { - "item": "paradise_lost:refined_surtrum" + "item": "paradise_lost:levita_gem" }, "S": { "item": "paradise_lost:floestone_brick" diff --git a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_shovel.json b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_shovel.json index 8ba242396..7fb950651 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_shovel.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_shovel.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "paradise_lost:levita", "paradise_lost:grass_path", "paradise_lost:farmland", "#paradise_lost:dirt_blocks", diff --git a/src/main/resources/data/paradise_lost/tags/blocks/ores.json b/src/main/resources/data/paradise_lost/tags/blocks/ores.json index 96a2d46a9..15b44ea88 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/ores.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/ores.json @@ -3,6 +3,7 @@ "values": [ "paradise_lost:cherine_ore", "paradise_lost:olvite_ore", - "paradise_lost:surtrum" + "paradise_lost:surtrum", + "paradise_lost:levita_ore" ] } diff --git a/src/main/resources/data/paradise_lost/tags/blocks/requires_iron_tool.json b/src/main/resources/data/paradise_lost/tags/blocks/requires_iron_tool.json index 8a4da7c03..cecafa46f 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/requires_iron_tool.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/requires_iron_tool.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "paradise_lost:surtrum" + "paradise_lost:surtrum", + "paradise_lost:levita_ore" ] } diff --git a/src/main/resources/data/paradise_lost/tags/items/tool/igniting_tools.json b/src/main/resources/data/paradise_lost/tags/items/tool/igniting_tools.json new file mode 100644 index 000000000..f839d465c --- /dev/null +++ b/src/main/resources/data/paradise_lost/tags/items/tool/igniting_tools.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "paradise_lost:surtrum_shovel", + "paradise_lost:surtrum_pickaxe", + "paradise_lost:surtrum_axe", + "paradise_lost:surtrum_sword", + "paradise_lost:surtrum_hoe" + ] +} diff --git a/src/main/resources/paradise_lost.mixins.json b/src/main/resources/paradise_lost.mixins.json index 6c42d63ac..feece1f62 100644 --- a/src/main/resources/paradise_lost.mixins.json +++ b/src/main/resources/paradise_lost.mixins.json @@ -8,6 +8,7 @@ "block.CropBlockMixin", "block.EnchantingTableBlockMixin", "block.FarmlandBlockMixin", + "enchantment.EnchantmentHelperMixin", "entity.CowEntityMixin", "entity.EntityMixin", "entity.LivingEntityMixin", From 1ea04c676fe405961df5dbeb0fddc7aa9ae4762c Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sat, 30 Mar 2024 13:08:04 -0500 Subject: [PATCH 3/4] Heliolith and Levita worldgen --- .../world/dimension/ParadiseLostBiomes.java | 5 +- .../world/feature/ParadiseLostFeatures.java | 1 + .../feature/configs/JaggedOreConfig.java | 17 +++++++ .../ParadiseLostMiscConfiguredFeatures.java | 14 +++++ .../feature/features/JaggedOreFeature.java | 48 ++++++++++++++++++ .../ParadiseLostMiscPlacedFeatures.java | 4 ++ .../assets/paradise_lost/lang/en_us.json | 4 +- .../paradise_lost/textures/block/levita.png | Bin 708 -> 663 bytes .../advancements/consume_food.json | 1 - 9 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 src/main/java/net/id/paradiselost/world/feature/configs/JaggedOreConfig.java create mode 100644 src/main/java/net/id/paradiselost/world/feature/features/JaggedOreFeature.java 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..7c72bb411 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 @@ -1,8 +1,10 @@ package net.id.paradiselost.world.feature.configured_features; +import net.id.paradiselost.blocks.ParadiseLostBlocks; 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 +41,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 +84,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..0aa84c85d --- /dev/null +++ b/src/main/java/net/id/paradiselost/world/feature/features/JaggedOreFeature.java @@ -0,0 +1,48 @@ +package net.id.paradiselost.world.feature.features; + +import com.mojang.serialization.Codec; +import net.id.paradiselost.blocks.FloatingBlock; +import net.id.paradiselost.blocks.ParadiseLostBlocks; +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/assets/paradise_lost/lang/en_us.json b/src/main/resources/assets/paradise_lost/lang/en_us.json index 8dd0e20f8..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,7 +30,7 @@ "block.paradise_lost.dirt": "Paradise Dirt", "block.paradise_lost.coarse_dirt": "Coarse Paradise Dirt", "block.paradise_lost.permafrost": "Permafrost", - "block.paradise_lost.levita": "Levita Precipitate", + "block.paradise_lost.levita": "Levita", "block.paradise_lost.farmland": "Paradise Farmland", "block.paradise_lost.grass_path": "Paradise Grass Path", "block.paradise_lost.packed_swedroot": "Packed Swedroot", @@ -245,7 +245,7 @@ "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", diff --git a/src/main/resources/assets/paradise_lost/textures/block/levita.png b/src/main/resources/assets/paradise_lost/textures/block/levita.png index e80dd00d664632c29eafdcb1d4bdaae0d069b481..c9b6979a9b6676a4523a1f0c55856e68f8d9d943 100644 GIT binary patch delta 625 zcmV-%0*?K}1(yYoF@I4>L_t(Ija8GsYui8^#XnJkYexx|;uIVg{~#`D3q>x(qliaO zqL87`!O)@f@5uiW$d)XgGP;NkZQ3GH3Mn>NHYiSGBMBm;CV_M?ci6Wa_dV`?-}k+D zE2k&UBS7!sj87jvlFY^c9Cy#DmI`?O48y1+mg^4aSZ%ttjeljDD9+$qUM90Kj@JjE z)jY)WXYwwZh5%Gc1&+Jtgh9;cN=3=%vJCwm)lvb+>*KluMpvo?5nZDs#dQZub!Tvn z0uUuB`E5;hsO-c9caA)FtTvWu0#GZpBuE&)BMAML=-;)mn znCL9dN*Kgwx_>I^HLA~vl5}Z)p-ZjQV(9k>gIIzn)lz{*y^YubNmqcl?f}Q@6Wlp+ z)O;?B=g&|?;b6ZBK-abb&~%lK)m{>9G@hVm8fdyI!Ij0ChJH_GAfL-Jx>9A$bqBnA z`<}{9jAfd%nuln*%4%)bI7-udqT9L8{~jJl(|fedb$^`8A84EFcz-Y1+pAE>tl@Zl zirN;@ZH6Zs@tlFCs~qe%=XU0@a(+=4nk?o-uwFSmaUNg1-jWgS+O`yEG1^_*rcy30 zr7}v=IfF&38ud2$Z4JYyFGV{HV)RUdXc|fZ8}&A;FW>AQtvx*B>(4KYZYDh0h>4~l z+4U^nero;3^R99K45Smr-cv?56RvL}YNb~wm2#1x-@`EKbLGbqX;~P=GJV1=@lQHd zo61g%qGuXJNlG*giIS8`xrm6jc&zCv!JR`G#PlxCuuPL&p$x!(eo{OBLMMAW00000 LNkvXXu0mjf^QSC| delta 671 zcmV;Q0$}}@1;hoAF@JtZL_t(Ija8D(YZ_4$#ebPli&kswh=OE@jZjVLhXglG4WSDc zwh(EdyXmsfzaZUaoxek}%Ocsha1~4=E!LXUfJ5*j9Wu>`gV0GFFa^7?^GM$2aqoTi zymRh7GdtTy6M((LT|R&M$mG%iV5?Xp8CTGHI;)v9?y1xoY=5XK#c~NXmq)6#4@7Zt z=}>Jo0a#xtp!IZ7>kljdl5vHtViCi%XmxC6U%z?3Y1zLC&jlHdE~(TS$o_}Z$4UxK z*Z5^zaQE&VPENao=YqU^{0dFiu*U-=0NWW63CrS#)M9|)_)Nqbs*0M+Pvh9KU}%^Y zlI@Hz%qhLLu748=%j_QP(;rx9MqMXttP|qnUEUr`p|khlA9=G*8nJ%O8~^8G8?KY z^tuv5o&{o2S%6D7HEBj&cp%{Q(dyVDSE)7l@b(?4#eV>5F3#HZ;GqX5djMqPzGKfWG3fVPmXGFm3 z6Z+k}JCkawNu}1H)v*QZnVs#U$tbbwX$kka+iG=e05(*W)M5ZBVxK__UUT801s002ovPDHLk FV1hvqNdW)= 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" ] From 8e4470eeefdf06dec1eeac2f215e809d6f9f2978 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sun, 31 Mar 2024 11:43:55 -0500 Subject: [PATCH 4/4] checkstyle --- .../net/id/paradiselost/items/ParadiseLostItems.java | 8 ++++++-- .../paradiselost/mixin/entity/LivingEntityMixin.java | 12 ------------ .../ParadiseLostMiscConfiguredFeatures.java | 1 - .../world/feature/features/JaggedOreFeature.java | 1 - 4 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index c0cc7cfd9..270bd5550 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -73,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 Settings unstackableTool() { return tool().maxCount(1); } - private static Settings unstackableRareTool() { return 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())); 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/world/feature/configured_features/ParadiseLostMiscConfiguredFeatures.java b/src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostMiscConfiguredFeatures.java index 7c72bb411..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 @@ -1,6 +1,5 @@ package net.id.paradiselost.world.feature.configured_features; -import net.id.paradiselost.blocks.ParadiseLostBlocks; import net.id.paradiselost.world.feature.ParadiseLostFeatures; import net.id.paradiselost.world.feature.configs.BoulderFeatureConfig; import net.id.paradiselost.world.feature.configs.GroundcoverFeatureConfig; 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 index 0aa84c85d..d8aabfc63 100644 --- a/src/main/java/net/id/paradiselost/world/feature/features/JaggedOreFeature.java +++ b/src/main/java/net/id/paradiselost/world/feature/features/JaggedOreFeature.java @@ -2,7 +2,6 @@ import com.mojang.serialization.Codec; import net.id.paradiselost.blocks.FloatingBlock; -import net.id.paradiselost.blocks.ParadiseLostBlocks; import net.id.paradiselost.tag.ParadiseLostBlockTags; import net.id.paradiselost.world.feature.configs.JaggedOreConfig; import net.minecraft.block.Block;