From 98caab43043104426944f31e4c534004cfdb3960 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sun, 14 Apr 2024 16:39:00 -0500 Subject: [PATCH 01/24] nitra plant + loot tables and recipes --- .../blocks/ParadiseLostBlocks.java | 3 + .../blocks/mechanical/NitraBlock.java | 11 +++ .../items/ParadiseLostItemActions.java | 1 + .../paradiselost/items/ParadiseLostItems.java | 2 + src/main/resources/asset_helper.py | 6 +- .../paradise_lost/blockstates/nitra.json | 28 +++++++ .../blockstates/nitra_bunch.json | 7 ++ .../assets/paradise_lost/lang/en_us.json | 2 + .../models/block/cross_crop.json | 26 ++++++ .../models/block/nitra_bunch.json | 8 ++ .../models/block/nitra_stage0.json | 6 ++ .../models/block/nitra_stage1.json | 6 ++ .../models/block/nitra_stage2.json | 6 ++ .../models/block/nitra_stage3.json | 6 ++ .../paradise_lost/models/item/nitra.json | 6 ++ .../models/item/nitra_bunch.json | 3 + .../textures/block/nitra_bunch_bottom.png | Bin 0 -> 364 bytes .../textures/block/nitra_bunch_side.png | Bin 0 -> 363 bytes .../textures/block/nitra_bunch_top.png | Bin 0 -> 477 bytes .../textures/block/nitra_stage0.png | Bin 0 -> 241 bytes .../textures/block/nitra_stage1.png | Bin 0 -> 278 bytes .../textures/block/nitra_stage2.png | Bin 0 -> 330 bytes .../textures/block/nitra_stage3.png | Bin 0 -> 338 bytes .../paradise_lost/textures/item/nitra.png | Bin 0 -> 334 bytes .../loot_tables/blocks/nitra.json | 75 ++++++++++++++++++ .../loot_tables/blocks/nitra_bunch.json | 20 +++++ .../data/paradise_lost/recipes/nitra.json | 12 +++ .../paradise_lost/recipes/nitra_bunch.json | 15 ++++ 28 files changed, 245 insertions(+), 4 deletions(-) create mode 100644 src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java create mode 100644 src/main/resources/assets/paradise_lost/blockstates/nitra.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/nitra_bunch.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/cross_crop.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/nitra_bunch.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/nitra_stage0.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/nitra_stage1.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/nitra_stage2.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/nitra_stage3.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/nitra.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/nitra_bunch.json create mode 100644 src/main/resources/assets/paradise_lost/textures/block/nitra_bunch_bottom.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/nitra_bunch_side.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/nitra_bunch_top.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/nitra_stage0.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/nitra_stage1.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/nitra_stage2.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/nitra_stage3.png create mode 100644 src/main/resources/assets/paradise_lost/textures/item/nitra.png create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/nitra.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/nitra_bunch.json create mode 100644 src/main/resources/data/paradise_lost/recipes/nitra.json create mode 100644 src/main/resources/data/paradise_lost/recipes/nitra_bunch.json diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 044dead3c..0c0716378 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -9,6 +9,7 @@ import net.id.paradiselost.blocks.mechanical.FoodBowlBlock; import net.id.paradiselost.blocks.mechanical.FourBiteCakeBlock; import net.id.paradiselost.blocks.mechanical.IncubatorBlock; +import net.id.paradiselost.blocks.mechanical.NitraBlock; import net.id.paradiselost.blocks.mechanical.TreeTapBlock; import net.id.paradiselost.blocks.natural.ParadiseLostGrassBlock; import net.id.paradiselost.blocks.natural.ParadiseLostSaplingBlock; @@ -335,6 +336,7 @@ private static Settings lichen() { public static final AmadrysCropBlock AMADRYS = add("amadrys", new AmadrysCropBlock(crop().mapColor(MapColor.PINK)), flammablePlant, cutoutMippedRenderLayer); public static final FlaxCropBlock FLAX = add("flax", new FlaxCropBlock(crop().mapColor(MapColor.OAK_TAN)), flammablePlant, cutoutRenderLayer); public static final SwedrootCropBlock SWEDROOT = add("swedroot", new SwedrootCropBlock(shrub().mapColor(MapColor.BLUE)), flammablePlant, cutoutRenderLayer); + public static final CropBlock NITRA = add("nitra", new CropBlock(crop().mapColor(MapColor.PALE_YELLOW)), flammablePlant, cutoutMippedRenderLayer); public static final Block FLAXWEAVE_CUSHION = add("flaxweave_cushion", new FlaxweaveCushionBlock(Settings.of(Material.WOOL).mapColor(MapColor.YELLOW).sounds(BlockSoundGroup.WOOL).strength(0.2F)), flammable(40, 10)); @@ -392,6 +394,7 @@ private static Settings cherineTorch() { public static final IncubatorBlock INCUBATOR = add("incubator", new IncubatorBlock(of(Material.WOOD, MapColor.DULL_RED).strength(2.5f).sounds(BlockSoundGroup.WOOD).nonOpaque()), cutoutMippedRenderLayer); public static final FoodBowlBlock FOOD_BOWL = add("food_bowl", new FoodBowlBlock(of(Material.WOOD, MapColor.DULL_RED).strength(2.5f).sounds(BlockSoundGroup.WOOD).nonOpaque()), cutoutMippedRenderLayer); public static final Block TREE_TAP = add("tree_tap", new TreeTapBlock(of(Material.WOOD, MapColor.OAK_TAN).strength(2.5f).sounds(BlockSoundGroup.WOOD).nonOpaque().ticksRandomly()), cutoutRenderLayer); + public static final NitraBlock NITRA_BUNCH = add("nitra_bunch", new NitraBlock(of(Material.PLANT, MapColor.PALE_YELLOW).strength(0.5f).sounds(BlockSoundGroup.WET_GRASS))); //dungeon // public static final DungeonSwitchBlock DUNGEON_SWITCH = add("dungeonswitch", new DungeonSwitchBlock(of(Material.METAL, MapColor.BLUE).strength(-1.0F, 3600000.0F))); diff --git a/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java b/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java new file mode 100644 index 000000000..cc4aa1cc8 --- /dev/null +++ b/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java @@ -0,0 +1,11 @@ +package net.id.paradiselost.blocks.mechanical; + +import net.minecraft.block.Block; + +public class NitraBlock extends Block { + + public NitraBlock(Settings settings) { + super(settings); + } + +} diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItemActions.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItemActions.java index 4b5957382..fbead4b36 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItemActions.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItemActions.java @@ -8,6 +8,7 @@ import net.minecraft.item.ItemConvertible; class ParadiseLostItemActions { + protected static final RegistryQueue.Action compostable15 = compostable(0.15f); protected static final RegistryQueue.Action compostable30 = compostable(0.3f); protected static final RegistryQueue.Action compostable50 = compostable(0.5f); protected static final RegistryQueue.Action compostable65 = compostable(0.65f); diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 270bd5550..78abea6b5 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -154,6 +154,7 @@ private static Settings food(FoodComponent foodComponent, Rarity rarity) { public static final AliasedBlockItem BLACKCURRANT = add("blackcurrant", new AliasedBlockItem(ParadiseLostBlocks.BLACKCURRANT_BUSH, food(ParadiseLostFoodComponent.BLACKCURRANT)), compostable30); public static final Item ORANGE = add("orange", new Item(food(ParadiseLostFoodComponent.ORANGE)), compostable65); public static final AliasedBlockItem AMADRYS_BUSHEL = add("amadrys_bushel", new AliasedBlockItem(ParadiseLostBlocks.AMADRYS, food(ParadiseLostFoodComponent.GENERIC_WORSE)), compostable30); + public static final AliasedBlockItem NITRA = add("nitra", new AliasedBlockItem(ParadiseLostBlocks.NITRA, food()), compostable15); public static final Item AMADRYS_NOODLES = add("amadrys_noodles", new StewItem(food(ParadiseLostFoodComponent.AMADRYS_NOODLES))); public static final Item AMADRYS_BREAD = add("amadrys_bread", new Item(food(ParadiseLostFoodComponent.AMADRYS_BREAD))); public static final Item AMADRYS_BREAD_GLAZED = add("amadrys_bread_glazed", new Item(food(ParadiseLostFoodComponent.AMADRYS_BREAD_GLAZED))); @@ -176,6 +177,7 @@ private static Settings misc() { public static final BlockItem INCUBATOR = add("incubator", ParadiseLostBlocks.INCUBATOR, misc, fuel(300)); public static final BlockItem FOOD_BOWL = add("food_bowl", ParadiseLostBlocks.FOOD_BOWL, misc, fuel(300)); public static final BlockItem TREE_TAP = add("tree_tap", ParadiseLostBlocks.TREE_TAP, misc, fuel(300)); + public static final BlockItem NITRA_BUNCH = add("nitra_bunch", ParadiseLostBlocks.NITRA_BUNCH, misc, fuel(3200)); public static final AurelBucketItem AUREL_BUCKET = add("aurel_bucket", new AurelBucketItem(misc().maxCount(16)), fuel(200), emptyBucketBehavior); diff --git a/src/main/resources/asset_helper.py b/src/main/resources/asset_helper.py index c2f130a65..7e133c8cf 100644 --- a/src/main/resources/asset_helper.py +++ b/src/main/resources/asset_helper.py @@ -80,10 +80,8 @@ def generate_slab_block(block_id, base_block_id, texture): -generate_standard_block("levita") -generate_standard_block("levita_ore") -generate_standard_item("levita_gem") -generate_standard_item("levita_wand") +generate_standard_block("nitra_bunch") +generate_standard_item("nitra") diff --git a/src/main/resources/assets/paradise_lost/blockstates/nitra.json b/src/main/resources/assets/paradise_lost/blockstates/nitra.json new file mode 100644 index 000000000..d8b86a834 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/nitra.json @@ -0,0 +1,28 @@ +{ + "variants": { + "age=0": { + "model": "paradise_lost:block/nitra_stage0" + }, + "age=1": { + "model": "paradise_lost:block/nitra_stage0" + }, + "age=2": { + "model": "paradise_lost:block/nitra_stage1" + }, + "age=3": { + "model": "paradise_lost:block/nitra_stage1" + }, + "age=4": { + "model": "paradise_lost:block/nitra_stage1" + }, + "age=5": { + "model": "paradise_lost:block/nitra_stage2" + }, + "age=6": { + "model": "paradise_lost:block/nitra_stage2" + }, + "age=7": { + "model": "paradise_lost:block/nitra_stage3" + } + } +} diff --git a/src/main/resources/assets/paradise_lost/blockstates/nitra_bunch.json b/src/main/resources/assets/paradise_lost/blockstates/nitra_bunch.json new file mode 100644 index 000000000..ab6b3d7b6 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/nitra_bunch.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "paradise_lost:block/nitra_bunch" + } + } +} \ 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 fbf33010f..b215078f0 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -255,6 +255,7 @@ "block.paradise_lost.incubator": "Incubator", "block.paradise_lost.food_bowl": "Feeding Trough", "block.paradise_lost.tree_tap": "Tree Tap", + "block.paradise_lost.nitra_bunch": "Nitra Bunch", "block.paradise_lost.crystal_chest": "Crystal Chest", "block.paradise_lost.golden_oak_chest": "Mother Aurel Chest", @@ -341,6 +342,7 @@ "item.paradise_lost.blackcurrant": "Blackcurrant", "item.paradise_lost.orange": "Orange", "item.paradise_lost.amadrys_bushel": "Amadrys Bushel", + "item.paradise_lost.nitra": "Nitra Bulb", "item.paradise_lost.amadrys_noodles": "Amadrys Noodle Soup", "item.paradise_lost.amadrys_bread": "Amadrys Loaf", "item.paradise_lost.amadrys_bread_glazed": "Glazed Amadrys Loaf", diff --git a/src/main/resources/assets/paradise_lost/models/block/cross_crop.json b/src/main/resources/assets/paradise_lost/models/block/cross_crop.json new file mode 100644 index 000000000..7d8dbfdec --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/cross_crop.json @@ -0,0 +1,26 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#crop" + }, + "elements": [ + { "from": [ 0.8, -1, 8 ], + "to": [ 15.2, 15, 8 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#crop" }, + "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#crop" } + } + }, + { "from": [ 8, -1, 0.8 ], + "to": [ 8, 15, 15.2 ], + "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "shade": false, + "faces": { + "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#crop" }, + "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#crop" } + } + } + ] +} diff --git a/src/main/resources/assets/paradise_lost/models/block/nitra_bunch.json b/src/main/resources/assets/paradise_lost/models/block/nitra_bunch.json new file mode 100644 index 000000000..caaa51633 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/nitra_bunch.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "paradise_lost:block/nitra_bunch_bottom", + "side": "paradise_lost:block/nitra_bunch_side", + "top": "paradise_lost:block/nitra_bunch_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/nitra_stage0.json b/src/main/resources/assets/paradise_lost/models/block/nitra_stage0.json new file mode 100644 index 000000000..295c97060 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/nitra_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "paradise_lost:block/cross_crop", + "textures": { + "crop": "paradise_lost:block/nitra_stage0" + } +} diff --git a/src/main/resources/assets/paradise_lost/models/block/nitra_stage1.json b/src/main/resources/assets/paradise_lost/models/block/nitra_stage1.json new file mode 100644 index 000000000..b927cbb76 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/nitra_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "paradise_lost:block/cross_crop", + "textures": { + "crop": "paradise_lost:block/nitra_stage1" + } +} diff --git a/src/main/resources/assets/paradise_lost/models/block/nitra_stage2.json b/src/main/resources/assets/paradise_lost/models/block/nitra_stage2.json new file mode 100644 index 000000000..49da8374b --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/nitra_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "paradise_lost:block/cross_crop", + "textures": { + "crop": "paradise_lost:block/nitra_stage2" + } +} diff --git a/src/main/resources/assets/paradise_lost/models/block/nitra_stage3.json b/src/main/resources/assets/paradise_lost/models/block/nitra_stage3.json new file mode 100644 index 000000000..b5ed2d636 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/nitra_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "paradise_lost:block/cross_crop", + "textures": { + "crop": "paradise_lost:block/nitra_stage3" + } +} diff --git a/src/main/resources/assets/paradise_lost/models/item/nitra.json b/src/main/resources/assets/paradise_lost/models/item/nitra.json new file mode 100644 index 000000000..f0d4a01fa --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/nitra.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "paradise_lost:item/nitra" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/nitra_bunch.json b/src/main/resources/assets/paradise_lost/models/item/nitra_bunch.json new file mode 100644 index 000000000..ea4d42d6a --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/nitra_bunch.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/nitra_bunch" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/textures/block/nitra_bunch_bottom.png b/src/main/resources/assets/paradise_lost/textures/block/nitra_bunch_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..4a05b681a8ae7d36929cb07ef9c6fe041577a9b1 GIT binary patch literal 364 zcmV-y0h9iTP)Px$CP_p=R5*=&lQC+;Fc^hD8!a6?#K$OzV!D}Py!HmYMYkHdw~(=f+@uFEhGfl< zGjvS`4H*(p2U(UZ$$8+xdheH>{{Jca`gqZ8qo^x^kNx3BKNQpd=ldnei>P?DhI2<< z3Hkw&JWy91pvd&!v$l(zyXX`n7PDesJNJDLqq7kC{%|uyf&|!XuSs{-VeVTEN!!FF zezUzI`k|n0)J$XxkH-^ImO#u~PWTHBhLp0TZ4|M_X|vt$leRAWaoH=_4Z@s!|2zPg z9!$lnwKr#1FdO6e*^To_;Lmu36;1FaQCEVtQ9%w8qw0r(y1KX=1e*L_G2j}vzzZ-9 zTYgNZi1#xh+>3Mf4Rg>Bj`ul$?CteYOIZdvU<{B!+o(iVjOHKRi>vc#T`tN10000< KMNUMnLSTY1e4Px$B}qgUFc^eC2Y2X@fZZ*4=v)w`bSuSp?HlwRO36@YAbSVTrEk)? z7(=ys@GGPl9f*evHMoPT*pjT|HvM-x{l9eb-d^w9B(Ax;@fkuE4Ou=ttXGTuC_k|_ z2Pwdzmc(_xIY>1=iEF&}=eAWvwoB`jgPGD8I=$~>Fw7MuvS^TBFV557KYpE_vS{#P z5w&CFJemQpS?{#93ExGSP)3%45Fr3%S!sl-KR=xTkmb`+&B+l?b>lrgTv-OLc8A8B z^^SQo>qbc8+K^pnDFiG{mS1)qe1BfIuAr#6t`>W=umve>m&l?S1j!MU?&8jM-b|t_ znj@d7viRXg^ZQx*8C9(;D})Hi@}3`Z@c#-zgw7m5cY&@P`~mNqlwuq>K#TwY002ov JPDHLkV1kQNpMn4Y literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/paradise_lost/textures/block/nitra_bunch_top.png b/src/main/resources/assets/paradise_lost/textures/block/nitra_bunch_top.png new file mode 100644 index 0000000000000000000000000000000000000000..d8d571c7830bdc256c08d58a2b4dda9bb043650a GIT binary patch literal 477 zcmV<30V4j1P)Px$mq|oHR5*=olOb>8KoEt$L^d!;q`E8$D6X_1DvK(gSsPq(;bl>Jpi-+IKSiar z%*>4rpN?4prUv;7?MVeqr5XgpQV!U&yLLO0!OojEJAU)F_v`Nb5C$dFiGv+^QIV|& z`uy|9?n~VHL_T_i_j>>~o2^Ch3=T{u_drSS@N#yLq!9C>B8vAYM4<#Js5Z zcKOP`=Z_XSiud$n3la|xZ(Phyw1_rowK@jSnkePh8c0GyK%0CqJ0Xgt#?{WuXki>fJ`^P-f2vtZd!JH(5!N~aEanAfB$@F@$?i;jn<$`mhNfdv05E78V?Ow z9BYLG=zq4u_+V>r%WUEi$GkY>1el=RuOiUd T1qOo#00000NkvXXu0mjfo5tT7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/paradise_lost/textures/block/nitra_stage0.png b/src/main/resources/assets/paradise_lost/textures/block/nitra_stage0.png new file mode 100644 index 0000000000000000000000000000000000000000..4f49509cb15e270afefa33fe689ab4053722e425 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|R(rZQhFJ6_ zCrGd^PKaP|ixFCzYW80;)Kvlm{@t%T9B{XkWp$KV%`9!_9*G=Y3rPu}WYp=Lf62k8 zn|wcfdRor2i-(8jZT2}s10aZrD(|+?uP_t&FFrje<;TW4sl%Jq=SwU}`2jNUK~CQR zown)c-x=rRzeqij#lXzW-0T|lqTW%{lI`E*+miEae;zpi1PZE$kAJv$XY#|po85WT e)7H9OWM)`>-mtou{SGV8*$kepelF{r5}E+h5?O8l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/paradise_lost/textures/block/nitra_stage1.png b/src/main/resources/assets/paradise_lost/textures/block/nitra_stage1.png new file mode 100644 index 0000000000000000000000000000000000000000..349855479a7bac8c734d22ec7386f74dffb242c5 GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|E_k{)hFJ6_ zCrGd^PPovl$!+uBKk~s(`T0_AIZbO*&Hn$~S|Pc`7(!><)ixi*plWV`FRkeqPS7!&~!^X-?diu0}<^ z#M3Xmb$Mos?@hXJRkW#lZ~Zq8Q=Ti#KL52PZy0`UtP)Px$3`s;mR5*?8k+Dj{P!xv0mJS6;A&X)W5xTjA(nV@1T?;NnM4!N+YoT3TI`|5{ zfrwj1hY(0`3vy>cB#qP|ffStrw?pxgo7fi+51irt|2g0J;lh9YfvRjXJlm4__vzWo z)>*CQ)1LHfOUm!3O)ol9E;`b)Ejgd|WO2S)TpsjSblbHOxZAEV=&vY36yR!jtkaX( zrUA@b&C1Ve2>=||zz;HAOlJ5&hT|HgWL1FS%|sD}hyn0}OzXUt-%$zbqcK9nL}B{t zCC4?0!W1E5>Z7sJ)z_R{Ur4ig$k*e&GMfht0HQEe+RphUN%YS1-9tqK{6Lb=H}+mX kN(lg#t$obhBee{$2Hiq#Moy*Dpa1{>07*qoM6N<$g0W+kX8-^I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/paradise_lost/textures/item/nitra.png b/src/main/resources/assets/paradise_lost/textures/item/nitra.png new file mode 100644 index 0000000000000000000000000000000000000000..bad2833deee3a9878a466e1cbb92071e9771056c GIT binary patch literal 334 zcmV-U0kQsxP)Px$2uVaiR5*?8kS|XIK@i1%M@Yb6YkJ5FqHt{%g+W{;>Vm8xgzr#30ivJd41zRi za$rbF4%do83#zh*p(Rz6pr+!o?JoU;Mex+Tnc4T=Ec|0F{7PB;N?9}y15d)h6LV+t zH<6RmGxA0 zicIch&{1-Ac_haN?ku)hTM6PwiC+MBua-5&Rot9IasM0GCF!MBbd3#@xH)S!L%TIv z9@!MgZqA$;R{==hW!?ws&Azkp1c2KI!7t2t_jS=RF+LN(B4Oak#rckvsNEXz^X`=b gTEyh*9{&wY0kpPdR43TtV*mgE07*qoM6N<$f_?Ln5&!@I literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra.json new file mode 100644 index 000000000..385dbd9e0 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra.json @@ -0,0 +1,75 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:nitra" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "paradise_lost:nitra" + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "paradise_lost:nitra", + "properties": { + "age": "7" + } + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.02 + } + ], + "name": "paradise_lost:nitra" + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "paradise_lost:nitra", + "properties": { + "age": "7" + } + } + ] + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra_bunch.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra_bunch.json new file mode 100644 index 000000000..4c07b21a9 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra_bunch.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:nitra_bunch" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/recipes/nitra.json b/src/main/resources/data/paradise_lost/recipes/nitra.json new file mode 100644 index 000000000..f7035ffd9 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/nitra.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "paradise_lost:nitra_bunch" + } + ], + "result": { + "item": "paradise_lost:nitra", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/nitra_bunch.json b/src/main/resources/data/paradise_lost/recipes/nitra_bunch.json new file mode 100644 index 000000000..3bfb2de21 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/nitra_bunch.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##", + "##" + ], + "key": { + "#": { + "item": "paradise_lost:nitra" + } + }, + "result": { + "item": "paradise_lost:nitra_bunch" + } +} \ No newline at end of file From 15edbe495e61a84245331d81698f5bb8be2c870e Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sun, 14 Apr 2024 20:46:22 -0500 Subject: [PATCH 02/24] nitra seed --- .../paradiselost/items/ParadiseLostItems.java | 3 ++- src/main/resources/asset_helper.py | 3 +-- .../assets/paradise_lost/lang/en_us.json | 3 ++- .../paradise_lost/models/item/nitra_bulb.json | 6 ++++++ .../paradise_lost/textures/item/nitra.png | Bin 334 -> 243 bytes .../textures/item/nitra_bulb.png | Bin 0 -> 334 bytes .../loot_tables/blocks/nitra.json | 19 ++++-------------- .../data/paradise_lost/recipes/nitra.json | 2 +- .../paradise_lost/recipes/nitra_bunch.json | 2 +- 9 files changed, 17 insertions(+), 21 deletions(-) create mode 100644 src/main/resources/assets/paradise_lost/models/item/nitra_bulb.json create mode 100644 src/main/resources/assets/paradise_lost/textures/item/nitra_bulb.png diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 78abea6b5..defe3d676 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -154,7 +154,8 @@ private static Settings food(FoodComponent foodComponent, Rarity rarity) { public static final AliasedBlockItem BLACKCURRANT = add("blackcurrant", new AliasedBlockItem(ParadiseLostBlocks.BLACKCURRANT_BUSH, food(ParadiseLostFoodComponent.BLACKCURRANT)), compostable30); public static final Item ORANGE = add("orange", new Item(food(ParadiseLostFoodComponent.ORANGE)), compostable65); public static final AliasedBlockItem AMADRYS_BUSHEL = add("amadrys_bushel", new AliasedBlockItem(ParadiseLostBlocks.AMADRYS, food(ParadiseLostFoodComponent.GENERIC_WORSE)), compostable30); - public static final AliasedBlockItem NITRA = add("nitra", new AliasedBlockItem(ParadiseLostBlocks.NITRA, food()), compostable15); + public static final AliasedBlockItem NITRA_SEED = add("nitra", new AliasedBlockItem(ParadiseLostBlocks.NITRA, food()), compostable15); + public static final Item NITRA_BULB = add("nitra_bulb", new Item(food()), compostable50); public static final Item AMADRYS_NOODLES = add("amadrys_noodles", new StewItem(food(ParadiseLostFoodComponent.AMADRYS_NOODLES))); public static final Item AMADRYS_BREAD = add("amadrys_bread", new Item(food(ParadiseLostFoodComponent.AMADRYS_BREAD))); public static final Item AMADRYS_BREAD_GLAZED = add("amadrys_bread_glazed", new Item(food(ParadiseLostFoodComponent.AMADRYS_BREAD_GLAZED))); diff --git a/src/main/resources/asset_helper.py b/src/main/resources/asset_helper.py index 7e133c8cf..514c50117 100644 --- a/src/main/resources/asset_helper.py +++ b/src/main/resources/asset_helper.py @@ -80,8 +80,7 @@ def generate_slab_block(block_id, base_block_id, texture): -generate_standard_block("nitra_bunch") -generate_standard_item("nitra") +generate_standard_item("nitra_bulb") 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 b215078f0..a1720de90 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -342,7 +342,8 @@ "item.paradise_lost.blackcurrant": "Blackcurrant", "item.paradise_lost.orange": "Orange", "item.paradise_lost.amadrys_bushel": "Amadrys Bushel", - "item.paradise_lost.nitra": "Nitra Bulb", + "item.paradise_lost.nitra": "Nitra Seed", + "item.paradise_lost.nitra_bulb": "Nitra Bulb", "item.paradise_lost.amadrys_noodles": "Amadrys Noodle Soup", "item.paradise_lost.amadrys_bread": "Amadrys Loaf", "item.paradise_lost.amadrys_bread_glazed": "Glazed Amadrys Loaf", diff --git a/src/main/resources/assets/paradise_lost/models/item/nitra_bulb.json b/src/main/resources/assets/paradise_lost/models/item/nitra_bulb.json new file mode 100644 index 000000000..8f6ac33d3 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/nitra_bulb.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "paradise_lost:item/nitra_bulb" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/textures/item/nitra.png b/src/main/resources/assets/paradise_lost/textures/item/nitra.png index bad2833deee3a9878a466e1cbb92071e9771056c..1d9acb1864bcdf1de7f9e0949b3b7594018a4f81 100644 GIT binary patch delta 203 zcmV;+05t#30`mcoFn<88NklI?dA-7K zEhL19DHakB5UUN6>?YV|s$D)a^9JUx+x6I9bkh3niz&0#(P+VF06>;1;v~dJ;SI3u z+xYQ6fi-8T0>I8VsMUaC=`;5gC!u||&-W+r5|l-Qi0S^XGDJnhP!^4I!hpa^#2{kO zI_k`MRrA{p5V*{C>-n_nsPd|2zgcsaVmhE71UStz(HHZ0J>+xA%!dE~002ovPDHLk FV1n&ZV9Wpj delta 295 zcmV+?0oeZY0nP%DFn<9ENkl-_b(4UJ!^QB>>MaTYtcW$L0icIch&{1-Ac_haN?ku)hTM6PwiC+MBua-5&Rot9IasM0GCF!MB zbd3#@xH)S!L%TIv9@!MgZqA$;R{==hW!?ws&Azkp1c2KI!7t2t_jS=RF+LN(B4Oak t#rckvsNEXz^C0e(0$Rl6>mL6NOaZjEWmG5F;$r{+002ovPDHLkV1m|-jAsA< diff --git a/src/main/resources/assets/paradise_lost/textures/item/nitra_bulb.png b/src/main/resources/assets/paradise_lost/textures/item/nitra_bulb.png new file mode 100644 index 0000000000000000000000000000000000000000..bad2833deee3a9878a466e1cbb92071e9771056c GIT binary patch literal 334 zcmV-U0kQsxP)Px$2uVaiR5*?8kS|XIK@i1%M@Yb6YkJ5FqHt{%g+W{;>Vm8xgzr#30ivJd41zRi za$rbF4%do83#zh*p(Rz6pr+!o?JoU;Mex+Tnc4T=Ec|0F{7PB;N?9}y15d)h6LV+t zH<6RmGxA0 zicIch&{1-Ac_haN?ku)hTM6PwiC+MBua-5&Rot9IasM0GCF!MBbd3#@xH)S!L%TIv z9@!MgZqA$;R{==hW!?ws&Azkp1c2KI!7t2t_jS=RF+LN(B4Oak#rckvsNEXz^X`=b gTEyh*9{&wY0kpPdR43TtV*mgE07*qoM6N<$f_?Ln5&!@I literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra.json index 385dbd9e0..aa56d011f 100644 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra.json +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/nitra.json @@ -17,15 +17,10 @@ "entries": [ { "type": "minecraft:item", - "functions": [ + "conditions": [ { - "function": "minecraft:apply_bonus", - "enchantment": "minecraft:fortune", - "formula": "minecraft:binomial_with_bonus_count", - "parameters": { - "extra": 3, - "probability": 0.5714286 - } + "condition": "minecraft:random_chance", + "chance": 0.25 } ], "name": "paradise_lost:nitra" @@ -47,13 +42,7 @@ "entries": [ { "type": "minecraft:item", - "conditions": [ - { - "condition": "minecraft:random_chance", - "chance": 0.02 - } - ], - "name": "paradise_lost:nitra" + "name": "paradise_lost:nitra_bulb" } ], "conditions": [ diff --git a/src/main/resources/data/paradise_lost/recipes/nitra.json b/src/main/resources/data/paradise_lost/recipes/nitra.json index f7035ffd9..545ba7a7d 100644 --- a/src/main/resources/data/paradise_lost/recipes/nitra.json +++ b/src/main/resources/data/paradise_lost/recipes/nitra.json @@ -6,7 +6,7 @@ } ], "result": { - "item": "paradise_lost:nitra", + "item": "paradise_lost:nitra_bulb", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/nitra_bunch.json b/src/main/resources/data/paradise_lost/recipes/nitra_bunch.json index 3bfb2de21..a70fdc9ae 100644 --- a/src/main/resources/data/paradise_lost/recipes/nitra_bunch.json +++ b/src/main/resources/data/paradise_lost/recipes/nitra_bunch.json @@ -6,7 +6,7 @@ ], "key": { "#": { - "item": "paradise_lost:nitra" + "item": "paradise_lost:nitra_bulb" } }, "result": { From a08e864675f9257a44b9918606040510a67621e6 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Tue, 16 Apr 2024 17:06:14 -0500 Subject: [PATCH 03/24] nitra bunch explosion mixin stuff --- .../blocks/ParadiseLostBlocks.java | 2 +- .../blocks/mechanical/NitraBlock.java | 97 ++++++++++ .../mixin/world/ExplosionMixin.java | 178 ++++++++++++++++++ .../world/ExplosionExtensions.java | 10 + .../textures/item/nitra_bulb.png | Bin 334 -> 334 bytes src/main/resources/paradise_lost.mixins.json | 1 + 6 files changed, 287 insertions(+), 1 deletion(-) create mode 100644 src/main/java/net/id/paradiselost/mixin/world/ExplosionMixin.java create mode 100644 src/main/java/net/id/paradiselost/world/ExplosionExtensions.java diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 0c0716378..d30696998 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -370,7 +370,7 @@ private static Settings flower() { public static final OreBlock CHERINE_ORE = add("cherine_ore", new OreBlock(of(Material.STONE).requiresTool().strength(3f), UniformIntProvider.create(0, 2))); public static final OreBlock OLVITE_ORE = add("olvite_ore", new OreBlock(of(Material.STONE).requiresTool().strength(3f), UniformIntProvider.create(1, 3))); 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 Block METAMORPHIC_SHELL = add("metamorphic_shell", new Block(of(Material.STONE).sounds(BlockSoundGroup.TUFF).requiresTool().strength(40f, 6f))); 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))); diff --git a/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java b/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java index cc4aa1cc8..0da476a1e 100644 --- a/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java +++ b/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java @@ -1,6 +1,26 @@ package net.id.paradiselost.blocks.mechanical; +import net.id.paradiselost.world.ExplosionExtensions; import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.entity.Entity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.projectile.ProjectileEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.sound.SoundEvents; +import net.minecraft.stat.Stats; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.event.GameEvent; +import net.minecraft.world.explosion.Explosion; +import org.jetbrains.annotations.Nullable; public class NitraBlock extends Block { @@ -8,4 +28,81 @@ public NitraBlock(Settings settings) { super(settings); } + public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean notify) { + if (!oldState.isOf(state.getBlock())) { + if (world.isReceivingRedstonePower(pos)) { + ignite(world, pos, 2F); + world.removeBlock(pos, false); + } + + } + } + + public void neighborUpdate(BlockState state, World world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) { + if (world.isReceivingRedstonePower(pos)) { + ignite(world, pos, 2F); + world.removeBlock(pos, false); + } + + } + + public void onDestroyedByExplosion(World world, BlockPos pos, Explosion explosion) { + float sourcePower = ((ExplosionExtensions) explosion).getPower(); + if (!world.isClient && sourcePower > 0.5F) { + System.out.println(sourcePower); + ignite(world, pos, sourcePower - 0.5F); + } + } + + public static void ignite(World world, BlockPos pos, float power) { + ignite(world, pos, power, null); + } + + private static void ignite(World world, BlockPos pos, float power, @Nullable LivingEntity igniter) { + Explosion explosion = new Explosion(world, igniter, null, null, pos.getX(), pos.getY()+0.5D, pos.getZ(), power, false, Explosion.DestructionType.BREAK); + if (!world.isClient) { + explosion.collectBlocksAndDamageEntities(); + world.emitGameEvent(igniter, GameEvent.PRIME_FUSE, pos); + } + ((ExplosionExtensions) explosion).affectWorld(true, SoundEvents.ENTITY_GENERIC_EXPLODE); + } + + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + ItemStack itemStack = player.getStackInHand(hand); + if (!itemStack.isOf(Items.FLINT_AND_STEEL) && !itemStack.isOf(Items.FIRE_CHARGE)) { + return super.onUse(state, world, pos, player, hand, hit); + } else { + ignite(world, pos, 2F, player); + world.setBlockState(pos, Blocks.AIR.getDefaultState(), 11); + Item item = itemStack.getItem(); + if (!player.isCreative()) { + if (itemStack.isOf(Items.FLINT_AND_STEEL)) { + itemStack.damage(1, player, (playerx) -> { + playerx.sendToolBreakStatus(hand); + }); + } else { + itemStack.decrement(1); + } + } + + player.incrementStat(Stats.USED.getOrCreateStat(item)); + return ActionResult.success(world.isClient); + } + } + + public void onProjectileHit(World world, BlockState state, BlockHitResult hit, ProjectileEntity projectile) { + if (!world.isClient) { + BlockPos blockPos = hit.getBlockPos(); + Entity entity = projectile.getOwner(); + if (projectile.isOnFire() && projectile.canModifyAt(world, blockPos)) { + ignite(world, blockPos, 2F, entity instanceof LivingEntity ? (LivingEntity)entity : null); + world.removeBlock(blockPos, false); + } + } + + } + + public boolean shouldDropItemsOnExplosion(Explosion explosion) { + return false; + } } diff --git a/src/main/java/net/id/paradiselost/mixin/world/ExplosionMixin.java b/src/main/java/net/id/paradiselost/mixin/world/ExplosionMixin.java new file mode 100644 index 000000000..58daf5789 --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/world/ExplosionMixin.java @@ -0,0 +1,178 @@ +package net.id.paradiselost.mixin.world; + +import com.mojang.datafixers.util.Pair; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import it.unimi.dsi.fastutil.objects.ObjectListIterator; +import net.id.paradiselost.world.ExplosionExtensions; +import net.minecraft.block.AbstractFireBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.entity.Entity; +import net.minecraft.entity.ItemEntity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.effect.StatusEffect; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; +import net.minecraft.loot.context.LootContextParameters; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvent; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.Util; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.World; +import net.minecraft.world.explosion.Explosion; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.List; + +@Mixin(Explosion.class) +public abstract class ExplosionMixin extends Object implements ExplosionExtensions { + + @Shadow + @Final + private boolean createFire; + + @Shadow + @Final + private double x; + @Shadow + @Final + private double y; + @Shadow + @Final + private double z; + + @Shadow + @Final + private Entity entity; + + @Shadow + @Final + private float power; + + @Shadow + @Final + private Random random; + + @Shadow + @Final + private World world; + + @Shadow + @Final + private Explosion.DestructionType destructionType; + + @Shadow + @Final + private ObjectArrayList affectedBlocks; + + @Shadow + public abstract LivingEntity getCausingEntity(); + + public float getPower() { + return this.power; + } + + public void affectWorld(boolean particles, SoundEvent customSound) { + if (this.world.isClient) { + this.world.playSound(this.x, this.y, this.z, customSound, SoundCategory.BLOCKS, 4.0F, (1.0F + (this.world.random.nextFloat() - this.world.random.nextFloat()) * 0.2F) * 0.7F, false); + } + + boolean bl = this.destructionType != Explosion.DestructionType.NONE; + if (particles) { + if (!(this.power < 2.0F) && bl) { + this.world.addParticle(ParticleTypes.EXPLOSION_EMITTER, this.x, this.y, this.z, 1.0, 0.0, 0.0); + } else { + this.world.addParticle(ParticleTypes.EXPLOSION, this.x, this.y, this.z, 1.0, 0.0, 0.0); + } + } + + if (bl) { + ObjectArrayList> objectArrayList = new ObjectArrayList(); + boolean bl2 = this.getCausingEntity() instanceof PlayerEntity; + Util.shuffle(this.affectedBlocks, this.world.random); + ObjectListIterator var5 = this.affectedBlocks.iterator(); + + while(var5.hasNext()) { + BlockPos blockPos = (BlockPos)var5.next(); + BlockState blockState = this.world.getBlockState(blockPos); + Block block = blockState.getBlock(); + if (!blockState.isAir()) { + BlockPos blockPos2 = blockPos.toImmutable(); + this.world.getProfiler().push("explosion_blocks"); + if (block.shouldDropItemsOnExplosion((Explosion) (Object)this)) { + World var11 = this.world; + if (var11 instanceof ServerWorld) { + ServerWorld serverWorld = (ServerWorld)var11; + BlockEntity blockEntity = blockState.hasBlockEntity() ? this.world.getBlockEntity(blockPos) : null; + LootContext.Builder builder = (new LootContext.Builder(serverWorld)).random(this.world.random).parameter(LootContextParameters.ORIGIN, Vec3d.ofCenter(blockPos)).parameter(LootContextParameters.TOOL, ItemStack.EMPTY).optionalParameter(LootContextParameters.BLOCK_ENTITY, blockEntity).optionalParameter(LootContextParameters.THIS_ENTITY, this.entity); + if (this.destructionType == Explosion.DestructionType.DESTROY) { + builder.parameter(LootContextParameters.EXPLOSION_RADIUS, this.power); + } + + blockState.onStacksDropped(serverWorld, blockPos, ItemStack.EMPTY, bl2); + blockState.getDroppedStacks(builder).forEach((stack) -> { + tryMergeStack(objectArrayList, stack, blockPos2); + }); + } + } + + this.world.setBlockState(blockPos, Blocks.AIR.getDefaultState(), 3); + block.onDestroyedByExplosion(this.world, blockPos, (Explosion) (Object)this); + this.world.getProfiler().pop(); + } + } + + var5 = objectArrayList.iterator(); + + while(var5.hasNext()) { + Pair pair = (Pair)var5.next(); + Block.dropStack(this.world, (BlockPos)pair.getSecond(), (ItemStack)pair.getFirst()); + } + } + + if (this.createFire) { + ObjectListIterator var13 = this.affectedBlocks.iterator(); + + while(var13.hasNext()) { + BlockPos blockPos3 = (BlockPos)var13.next(); + if (this.random.nextInt(3) == 0 && this.world.getBlockState(blockPos3).isAir() && this.world.getBlockState(blockPos3.down()).isOpaqueFullCube(this.world, blockPos3.down())) { + this.world.setBlockState(blockPos3, AbstractFireBlock.getState(this.world, blockPos3)); + } + } + } + + } + + private static void tryMergeStack(ObjectArrayList> stacks, ItemStack stack, BlockPos pos) { + int i = stacks.size(); + + for(int j = 0; j < i; ++j) { + Pair pair = (Pair)stacks.get(j); + ItemStack itemStack = (ItemStack)pair.getFirst(); + if (ItemEntity.canMerge(itemStack, stack)) { + ItemStack itemStack2 = ItemEntity.merge(itemStack, stack, 16); + stacks.set(j, Pair.of(itemStack2, (BlockPos)pair.getSecond())); + if (stack.isEmpty()) { + return; + } + } + } + + stacks.add(Pair.of(stack, pos)); + } + + +} diff --git a/src/main/java/net/id/paradiselost/world/ExplosionExtensions.java b/src/main/java/net/id/paradiselost/world/ExplosionExtensions.java new file mode 100644 index 000000000..41982b00b --- /dev/null +++ b/src/main/java/net/id/paradiselost/world/ExplosionExtensions.java @@ -0,0 +1,10 @@ +package net.id.paradiselost.world; + +import net.minecraft.sound.SoundEvent; + +public interface ExplosionExtensions { + + float getPower(); + + void affectWorld(boolean particles, SoundEvent customSound); +} diff --git a/src/main/resources/assets/paradise_lost/textures/item/nitra_bulb.png b/src/main/resources/assets/paradise_lost/textures/item/nitra_bulb.png index bad2833deee3a9878a466e1cbb92071e9771056c..b3c71cf63d418b2f770d2aa3e6c326ad5637ec30 100644 GIT binary patch delta 287 zcmV+)0pR}50?q=EIDcbc82&&n+WEg;wDW%$KhR0_f1r~poXP3W4AQCw|2YnA zVpzZLHY3cS_4{r!Vl`mv5~KeN3=9kxudp*PFnnV;eCYzi*R?AdwqJh22vhU+^>^&H zZCzsY|M7XF|NoyF|NsAO&;Q5gjsCY)SpK)um4Q1OnazT(S$|KPfk8&S3nK8ooIys6 zkwIVQCj$e6EW@G8PvB06>0!dB85x{D^#-epnUFa$VvHCHp1k@G4GRcZzwb69vKQb6 zz!kkOhui+-)qjS?D-oJu;1E(^qJ+V={r?&Cv=RJER}s!f_BS#>5e#%v{hyM=i{c`D lnlTK38G_8mrx-_b(4UJ!^QB>>MaTfl_J?h~Ik*MHpgQb+H648NAU#gURh zM~S>0icIch&{1-Ac_haN?ku)hTM6PwiC+MBua-5&Rot9IasM0GCF!MBbd3#@xH)S! zL%TIv9@!MgZqA$;R{==hW!?ws&Azkp1c2KI!7t2t_jS=RF+LN(B4Oak#rckvsNEXz l^X`=bTEyh*9vJ@(OaZjEWmG5F;$r{+002ovPDHLkV1j*wic Date: Tue, 16 Apr 2024 20:35:30 -0500 Subject: [PATCH 04/24] remove unused plants --- .../blocks/ParadiseLostBlocks.java | 10 - .../util/ParadiseLostColorProviders.java | 1 - .../util/FloatingBlockHelperImpls.java | 9 +- .../items/ParadiseLostItemGroups.java | 2 +- .../paradiselost/items/ParadiseLostItems.java | 11 - .../blockstates/dungeonswitch.json | 7 - .../paradise_lost/blockstates/freezer.json | 7 - .../paradise_lost/blockstates/giant_lily.json | 38 - .../paradise_lost/blockstates/halophia.json | 7 - .../paradise_lost/blockstates/lichen.json | 9 - .../blockstates/lichen_pile.json | 9 - .../blockstates/lucatiel_lichen.json | 9 - .../blockstates/lucatiel_lichen_pile.json | 9 - .../paradise_lost/blockstates/moss_ball.json | 39 - .../paradise_lost/blockstates/moss_star.json | 10 - .../blockstates/surtrum_air.json | 7 + .../blockstates/weeping_cloudburst.json | 13 - .../models/block/dead_moss_star.json | 101 --- .../models/block/dry_moss_star.json | 6 - .../models/block/four_dead_moss_stars.json | 377 --------- .../models/block/four_moss_stars.json | 721 ------------------ .../models/block/giant_lilypad.json | 145 ---- .../models/block/giant_lotus.json | 518 ------------- .../paradise_lost/models/block/halophia.json | 6 - .../paradise_lost/models/block/lichen.json | 6 - .../models/block/lichen_pile.json | 82 -- .../models/block/lucatiel_lichen.json | 6 - .../models/block/lucatiel_lichen_pile.json | 82 -- .../models/block/moss_ball_large.json | 81 -- .../models/block/moss_ball_medium.json | 149 ---- .../models/block/moss_ball_small.json | 81 -- .../paradise_lost/models/block/moss_star.json | 6 - .../models/block/three_dead_moss_stars.json | 285 ------- .../models/block/three_moss_stars.json | 543 ------------- .../models/block/two_dead_moss_stars.json | 193 ----- .../models/block/two_moss_stars.json | 365 --------- .../models/block/weeping_cloudburst_body.json | 6 - .../block/weeping_cloudburst_bottom.json | 6 - .../models/block/weeping_cloudburst_top.json | 7 - .../paradise_lost/models/item/giant_lily.json | 3 - .../paradise_lost/models/item/halophia.json | 6 - .../paradise_lost/models/item/lichen.json | 3 - .../models/item/lichen_pile.json | 3 - .../models/item/lucatiel_lichen.json | 3 - .../models/item/lucatiel_lichen_pile.json | 3 - .../paradise_lost/models/item/moss_ball.json | 6 - .../paradise_lost/models/item/moss_star.json | 6 - .../models/item/weeping_cloudburst.json | 6 - .../textures/block/dry_moss_star.png | Bin 133 -> 0 bytes .../textures/block/giant_lilypad.png | Bin 367 -> 0 bytes .../textures/block/giant_lotus.png | Bin 195 -> 0 bytes .../textures/block/giant_lotus_pistil.png | Bin 113 -> 0 bytes .../paradise_lost/textures/block/halophia.png | Bin 400 -> 0 bytes .../textures/block/halophia.png.mcmeta | 5 - .../paradise_lost/textures/block/lichen.png | Bin 195 -> 0 bytes .../textures/block/lucatiel_lichen.png | Bin 195 -> 0 bytes .../textures/block/moss_ball_large.png | Bin 319 -> 0 bytes .../textures/block/moss_ball_small.png | Bin 324 -> 0 bytes .../textures/block/moss_star.png | Bin 156 -> 0 bytes .../block/weeping_cloudburst_body.png | Bin 191 -> 0 bytes .../block/weeping_cloudburst_bottom.png | Bin 173 -> 0 bytes .../block/weeping_cloudburst_top_flower.png | Bin 181 -> 0 bytes .../block/weeping_cloudburst_top_stalk.png | Bin 116 -> 0 bytes .../paradise_lost/textures/item/moss_ball.png | Bin 185 -> 0 bytes .../textures/item/weeping_cloudburst.png | Bin 133 -> 0 bytes .../loot_tables/blocks/giant_lily.json | 20 - .../loot_tables/blocks/halophia.json | 53 -- .../loot_tables/blocks/lichen.json | 20 - .../loot_tables/blocks/lichen_pile.json | 20 - .../loot_tables/blocks/lucatiel_lichen.json | 20 - .../blocks/lucatiel_lichen_pile.json | 20 - .../loot_tables/blocks/moss_ball.json | 20 - .../loot_tables/blocks/moss_star.json | 20 - .../blocks/weeping_cloudburst.json | 20 - .../tags/blocks/mineable_by_axe.json | 1 - .../tags/blocks/plants/lichen_spreadable.json | 10 - .../tags/blocks/underwater_bonemeals.json | 1 - 77 files changed, 11 insertions(+), 4227 deletions(-) delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/dungeonswitch.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/freezer.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/giant_lily.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/halophia.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/lichen.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/lichen_pile.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/lucatiel_lichen.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/lucatiel_lichen_pile.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/moss_ball.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/moss_star.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/surtrum_air.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/weeping_cloudburst.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/dead_moss_star.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/dry_moss_star.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/four_dead_moss_stars.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/four_moss_stars.json delete mode 100755 src/main/resources/assets/paradise_lost/models/block/giant_lilypad.json delete mode 100755 src/main/resources/assets/paradise_lost/models/block/giant_lotus.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/halophia.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/lichen.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/lichen_pile.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/lucatiel_lichen.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/lucatiel_lichen_pile.json delete mode 100755 src/main/resources/assets/paradise_lost/models/block/moss_ball_large.json delete mode 100755 src/main/resources/assets/paradise_lost/models/block/moss_ball_medium.json delete mode 100755 src/main/resources/assets/paradise_lost/models/block/moss_ball_small.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/moss_star.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/three_dead_moss_stars.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/three_moss_stars.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/two_dead_moss_stars.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/two_moss_stars.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_body.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_bottom.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_top.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/giant_lily.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/halophia.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/lichen.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/lichen_pile.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/lucatiel_lichen.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/lucatiel_lichen_pile.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/moss_ball.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/moss_star.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/weeping_cloudburst.json delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/dry_moss_star.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/giant_lilypad.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/giant_lotus.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/giant_lotus_pistil.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/halophia.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/halophia.png.mcmeta delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/lichen.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/lucatiel_lichen.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/moss_ball_large.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/moss_ball_small.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/moss_star.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/weeping_cloudburst_body.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/weeping_cloudburst_bottom.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/weeping_cloudburst_top_flower.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/weeping_cloudburst_top_stalk.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/item/moss_ball.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/item/weeping_cloudburst.png delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/giant_lily.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/halophia.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/lichen.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/lichen_pile.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/lucatiel_lichen.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/lucatiel_lichen_pile.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/moss_ball.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/moss_star.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/weeping_cloudburst.json delete mode 100644 src/main/resources/data/paradise_lost/tags/blocks/plants/lichen_spreadable.json diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index d30696998..7ae9ea8ec 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -310,11 +310,6 @@ private static Settings crop() { public static final GroundcoverBlock SHAMROCK = add("shamrock", new GroundcoverBlock(shrub().sounds(BlockSoundGroup.AZALEA_LEAVES), 0.99999), flammablePlant, cutoutRenderLayer); public static final GroundcoverBlock MALT_SPRIG = add("malt_sprig", new GroundcoverBlock(shrub().sounds(BlockSoundGroup.AZALEA_LEAVES), 1), flammablePlant, cutoutRenderLayer); public static final TallWaterPlantBlock HONEY_NETTLE = add("honey_nettle", new TallWaterPlantBlock(shrub().sounds(BlockSoundGroup.SMALL_DRIPLEAF)), cutoutRenderLayer); - public static final ParadiseLostSeagrassBlock HALOPHIA = add("halophia", new ParadiseLostSeagrassBlock(shrub().sounds(BlockSoundGroup.WET_GRASS)), cutoutRenderLayer); - public static final GiantLilypadBlock GIANT_LILY = add("giant_lily", new GiantLilypadBlock(copy(LILY_PAD).mapColor(MapColor.PALE_GREEN)), cutoutMippedRenderLayer); - public static final WeepingCloudburstBlock WEEPING_CLOUDBURST = add("weeping_cloudburst", new WeepingCloudburstBlock(copy(SUGAR_CANE).mapColor(MapColor.PALE_PURPLE)), cutoutMippedRenderLayer); - public static final MossStarBlock MOSS_STAR = add("moss_star", new MossStarBlock(copy(MOSS_BLOCK).dynamicBounds().luminance(state -> state.get(Properties.WATERLOGGED) ? 5 : 0)), cutoutRenderLayer); - public static final MossBallBlock MOSS_BALL = add("moss_ball", new MossBallBlock(copy(MOSS_BLOCK).dynamicBounds()), flammablePlant); public static final Block LIVERWORT = add("liverwort", new Block(copy(MOSS_BLOCK).sounds(BlockSoundGroup.AZALEA_LEAVES))); public static final CarpetBlock LIVERWORT_CARPET = add("liverwort_carpet", new CarpetBlock(copy(MOSS_BLOCK).sounds(BlockSoundGroup.AZALEA_LEAVES))); @@ -322,11 +317,6 @@ private static Settings lichen() { return copy(OAK_WOOD).mapColor(MapColor.DULL_RED).sounds(BlockSoundGroup.MOSS_BLOCK); } - public static final LichenBlock LICHEN = add("lichen", new LichenBlock(lichen().ticksRandomly(), false)); - public static final LichenPileBlock LICHEN_PILE = add("lichen_pile", new LichenPileBlock(lichen(), false)); - public static final LichenBlock LUCATIEL_LICHEN = add("lucatiel_lichen", new LichenBlock(lichen().ticksRandomly(), true)); - public static final LichenPileBlock LUCATIEL_LICHEN_PILE = add("lucatiel_lichen_pile", new LichenPileBlock(lichen(), true)); - public static final GlowLichenBlock SWEDROOT_SPREAD = add("swedroot_spread", new GlowLichenBlock(Settings.of(Material.REPLACEABLE_PLANT, MapColor.OAK_TAN).noCollision().strength(1F).sounds(BlockSoundGroup.SHROOMLIGHT)), cutoutRenderLayer); public static final WallClingingPlantBlock ROOTCAP = add("rootcap", new WallClingingPlantBlock(copy(BROWN_MUSHROOM), ParadiseLostBlockTags.FUNGI_CLINGABLES), cutoutRenderLayer); diff --git a/src/main/java/net/id/paradiselost/client/rendering/util/ParadiseLostColorProviders.java b/src/main/java/net/id/paradiselost/client/rendering/util/ParadiseLostColorProviders.java index 5ecd86290..3c70c2fc5 100644 --- a/src/main/java/net/id/paradiselost/client/rendering/util/ParadiseLostColorProviders.java +++ b/src/main/java/net/id/paradiselost/client/rendering/util/ParadiseLostColorProviders.java @@ -21,7 +21,6 @@ public static void initClient() { private static void initBlocks() { ColorProviderRegistryImpl.BLOCK.register(((state, world, pos, tintIndex) -> world != null && pos != null ? BiomeColors.getFoliageColor(world, pos) : FoliageColors.getDefaultColor()), ParadiseLostBlocks.AUREL_LEAVES, ParadiseLostBlocks.AUREL_LEAF_PILE, ParadiseLostBlocks.SHAMROCK); ColorProviderRegistryImpl.BLOCK.register(((state, world, pos, tintIndex) -> world != null && pos != null ? BiomeColors.getGrassColor(world, pos) : GrassColors.getColor(0.5D, 1.0D)), ParadiseLostBlocks.HIGHLANDS_GRASS, ParadiseLostBlocks.GRASS, ParadiseLostBlocks.GRASS_FLOWERING, ParadiseLostBlocks.SHORT_GRASS, ParadiseLostBlocks.TALL_GRASS, ParadiseLostBlocks.FERN, ParadiseLostBlocks.BUSH); - ColorProviderRegistryImpl.BLOCK.register(((state, world, pos, tintIndex) -> world != null && pos != null ? BiomeColors.getGrassColor(world, pos) : -1), ParadiseLostBlocks.HONEY_NETTLE, ParadiseLostBlocks.WEEPING_CLOUDBURST); ColorProviderRegistryImpl.BLOCK.register(((state, world, pos, tintIndex) -> world != null && pos != null ? BiomeColors.getWaterColor(world, pos) : -1), ParadiseLostBlocks.SPRING_WATER); } diff --git a/src/main/java/net/id/paradiselost/entities/util/FloatingBlockHelperImpls.java b/src/main/java/net/id/paradiselost/entities/util/FloatingBlockHelperImpls.java index 6d8bc62b9..ea277ae9a 100644 --- a/src/main/java/net/id/paradiselost/entities/util/FloatingBlockHelperImpls.java +++ b/src/main/java/net/id/paradiselost/entities/util/FloatingBlockHelperImpls.java @@ -45,22 +45,19 @@ public static Any getInstance() { @Override public boolean tryCreate(World world, BlockPos pos, boolean force) { // try making a pusher, then a double, then a generic - return PUSHER.tryCreate(world, pos, force) - || DOUBLE.tryCreate(world, pos, force) - || STANDARD.tryCreate(world, pos, force); + return DOUBLE.tryCreate(world, pos, force) || STANDARD.tryCreate(world, pos, force); } @Override public boolean isSuitableFor(BlockState state) { - return STANDARD.isSuitableFor(state) || DOUBLE.isSuitableFor(state) || PUSHER.isSuitableFor(state); + return STANDARD.isSuitableFor(state) || DOUBLE.isSuitableFor(state); } @Override public boolean isBlocked(boolean shouldDrop, World world, BlockPos pos) { BlockState state = world.getBlockState(pos); return STANDARD.isBlocked(shouldDrop, world, pos) - && (DOUBLE.isSuitableFor(state) && DOUBLE.isBlocked(shouldDrop, world, pos)) - && (PUSHER.isSuitableFor(state) && PUSHER.isBlocked(shouldDrop, world, pos)); + && (DOUBLE.isSuitableFor(state) && DOUBLE.isBlocked(shouldDrop, world, pos)); } } diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItemGroups.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItemGroups.java index abba7dcce..b81015f2b 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItemGroups.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItemGroups.java @@ -14,7 +14,7 @@ public class ParadiseLostItemGroups { public static final ItemGroup PARADISE_LOST_DECORATIONS = build( ParadiseLost.locate("decorations"), - () -> new ItemStack(ParadiseLostBlocks.GIANT_LILY)); + () -> new ItemStack(ParadiseLostBlocks.CHERINE_LANTERN)); public static final ItemGroup PARADISE_LOST_TOOLS = build( ParadiseLost.locate("tools"), diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index defe3d676..374e1080e 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -337,11 +337,6 @@ private static FabricItemSettings decoration() { public static final BlockItem BUSH = add("bush", ParadiseLostBlocks.BUSH, decoration, compostable30); public static final BlockItem SHAMROCK = add("shamrock", ParadiseLostBlocks.SHAMROCK, decoration, compostable50); public static final BlockItem MALT_SPRIG = add("malt_sprig", ParadiseLostBlocks.MALT_SPRIG, decoration, compostable30); - public static final BlockItem HALOPHIA = add("halophia", ParadiseLostBlocks.HALOPHIA, decoration, compostable30); - public static final BlockItem GIANT_LILY = add("giant_lily", new BlockItem(ParadiseLostBlocks.GIANT_LILY, hat), compostable100); - public static final BlockItem WEEPING_CLOUDBURST = add("weeping_cloudburst", ParadiseLostBlocks.WEEPING_CLOUDBURST, decoration, compostable30); - public static final BlockItem MOSS_STAR = add("moss_star", ParadiseLostBlocks.MOSS_STAR, decoration, compostable50); - public static final BlockItem MOSS_BALL = add("moss_ball", ParadiseLostBlocks.MOSS_BALL, decoration, compostable30); public static final BlockItem ANCIENT_FLOWER = add("ancient_flower", ParadiseLostBlocks.ANCIENT_FLOWER, decoration, compostable65); public static final BlockItem ATARAXIA = add("ataraxia", ParadiseLostBlocks.ATARAXIA, decoration, compostable65); @@ -366,12 +361,6 @@ private static FabricItemSettings decoration() { public static final BlockItem LIVERWORT = add("liverwort", ParadiseLostBlocks.LIVERWORT, decoration, compostable100); public static final BlockItem LIVERWORT_CARPET = add("liverwort_carpet", ParadiseLostBlocks.LIVERWORT_CARPET, decoration, compostable65); - // FUNGI BAYBEEE - public static final BlockItem LICHEN = add("lichen", ParadiseLostBlocks.LICHEN, decoration, compostable50); - public static final BlockItem LUCATIEL_LICHEN = add("lucatiel_lichen", ParadiseLostBlocks.LUCATIEL_LICHEN, decoration, compostable50); - public static final BlockItem LICHEN_PILE = add("lichen_pile", ParadiseLostBlocks.LICHEN_PILE, decoration, compostable30); - public static final BlockItem LUCATIEL_LICHEN_PILE = add("lucatiel_lichen_pile", ParadiseLostBlocks.LUCATIEL_LICHEN_PILE, decoration, compostable100); - public static final BlockItem ROOTCAP = add("rootcap", ParadiseLostBlocks.ROOTCAP, decoration(), compostable65); public static final BlockItem BROWN_SPORECAP = add("brown_sporecap", ParadiseLostBlocks.BROWN_SPORECAP, decoration(), compostable65); public static final BlockItem PINK_SPORECAP = add("pink_sporecap", ParadiseLostBlocks.PINK_SPORECAP, decoration(), compostable65); diff --git a/src/main/resources/assets/paradise_lost/blockstates/dungeonswitch.json b/src/main/resources/assets/paradise_lost/blockstates/dungeonswitch.json deleted file mode 100644 index 8f233a1c9..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/dungeonswitch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/dungeon_switch" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/freezer.json b/src/main/resources/assets/paradise_lost/blockstates/freezer.json deleted file mode 100644 index 2bc640598..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/freezer.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/freezer" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/giant_lily.json b/src/main/resources/assets/paradise_lost/blockstates/giant_lily.json deleted file mode 100644 index 0dada433d..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/giant_lily.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "variants": { - "flowering=false": [ - { - "model": "paradise_lost:block/giant_lilypad" - }, - { - "model": "paradise_lost:block/giant_lilypad", - "y": 90 - }, - { - "model": "paradise_lost:block/giant_lilypad", - "y": 180 - }, - { - "model": "paradise_lost:block/giant_lilypad", - "y": 270 - } - ], - "flowering=true": [ - { - "model": "paradise_lost:block/giant_lotus" - }, - { - "model": "paradise_lost:block/giant_lotus", - "y": 90 - }, - { - "model": "paradise_lost:block/giant_lotus", - "y": 180 - }, - { - "model": "paradise_lost:block/giant_lotus", - "y": 270 - } - ] - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/halophia.json b/src/main/resources/assets/paradise_lost/blockstates/halophia.json deleted file mode 100644 index a7e15e046..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/halophia.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/halophia" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/lichen.json b/src/main/resources/assets/paradise_lost/blockstates/lichen.json deleted file mode 100644 index 7f92d04a2..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/lichen.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "variants": { - "": [ - { - "model": "paradise_lost:block/lichen" - } - ] - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/lichen_pile.json b/src/main/resources/assets/paradise_lost/blockstates/lichen_pile.json deleted file mode 100644 index 1506d517f..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/lichen_pile.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "variants": { - "": [ - { - "model": "paradise_lost:block/lichen_pile" - } - ] - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/lucatiel_lichen.json b/src/main/resources/assets/paradise_lost/blockstates/lucatiel_lichen.json deleted file mode 100644 index 20fb5ef1e..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/lucatiel_lichen.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "variants": { - "": [ - { - "model": "paradise_lost:block/lucatiel_lichen" - } - ] - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/lucatiel_lichen_pile.json b/src/main/resources/assets/paradise_lost/blockstates/lucatiel_lichen_pile.json deleted file mode 100644 index 890917f17..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/lucatiel_lichen_pile.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "variants": { - "": [ - { - "model": "paradise_lost:block/lucatiel_lichen_pile" - } - ] - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/moss_ball.json b/src/main/resources/assets/paradise_lost/blockstates/moss_ball.json deleted file mode 100644 index 966664520..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/moss_ball.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "variants": { - "": [ - { - "model": "paradise_lost:block/moss_ball_large" - }, - { - "model": "paradise_lost:block/moss_ball_medium" - }, - { - "model": "paradise_lost:block/moss_ball_medium", - "y": 90 - }, - { - "model": "paradise_lost:block/moss_ball_medium", - "y": 180 - }, - { - "model": "paradise_lost:block/moss_ball_medium", - "y": 270 - }, - { - "model": "paradise_lost:block/moss_ball_small" - }, - { - "model": "paradise_lost:block/moss_ball_small", - "y": 90 - }, - { - "model": "paradise_lost:block/moss_ball_small", - "y": 180 - }, - { - "model": "paradise_lost:block/moss_ball_small", - "y": 270 - } - ] - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/moss_star.json b/src/main/resources/assets/paradise_lost/blockstates/moss_star.json deleted file mode 100644 index 2244f981a..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/moss_star.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "waterlogged=false": { - "model": "paradise_lost:block/dry_moss_star" - }, - "waterlogged=true": { - "model": "paradise_lost:block/moss_star" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/surtrum_air.json b/src/main/resources/assets/paradise_lost/blockstates/surtrum_air.json new file mode 100644 index 000000000..2c8f02f06 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/surtrum_air.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/air" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/weeping_cloudburst.json b/src/main/resources/assets/paradise_lost/blockstates/weeping_cloudburst.json deleted file mode 100644 index 2cc8e8115..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/weeping_cloudburst.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "section=bottom": { - "model": "paradise_lost:block/weeping_cloudburst_bottom" - }, - "section=body": { - "model": "paradise_lost:block/weeping_cloudburst_body" - }, - "section=top": { - "model": "paradise_lost:block/weeping_cloudburst_top" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/dead_moss_star.json b/src/main/resources/assets/paradise_lost/models/block/dead_moss_star.json deleted file mode 100644 index 4254790d0..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/dead_moss_star.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "paradise_lost:block/moss_star", - "all": "paradise_lost:block/moss_star" - }, - "elements": [ - { - "from": [ - 6, - 0, - 6 - ], - "to": [ - 10, - 6, - 10 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 6, - 5.95, - 6 - ], - "to": [ - 10, - 5.95, - 10 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/dry_moss_star.json b/src/main/resources/assets/paradise_lost/models/block/dry_moss_star.json deleted file mode 100644 index 2ceb3dbd9..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/dry_moss_star.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cross", - "textures": { - "cross": "paradise_lost:block/dry_moss_star" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/four_dead_moss_stars.json b/src/main/resources/assets/paradise_lost/models/block/four_dead_moss_stars.json deleted file mode 100644 index 403efc022..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/four_dead_moss_stars.json +++ /dev/null @@ -1,377 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "paradise_lost:block/moss_star", - "all": "paradise_lost:block/moss_star" - }, - "elements": [ - { - "from": [ - 2, - 0, - 2 - ], - "to": [ - 6, - 6, - 6 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 5.95, - 2 - ], - "to": [ - 6, - 5.95, - 6 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9, - 0, - 10 - ], - "to": [ - 13, - 4, - 14 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 9 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 9 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 9 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 9 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9, - 3.95, - 10 - ], - "to": [ - 13, - 3.95, - 14 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9, - 0, - 2 - ], - "to": [ - 13, - 6, - 6 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9, - 5.95, - 2 - ], - "to": [ - 13, - 5.95, - 6 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 0, - 8 - ], - "to": [ - 6, - 7, - 12 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 12 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 12 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 12 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 12 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 6.95, - 8 - ], - "to": [ - 6, - 6.95, - 12 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/four_moss_stars.json b/src/main/resources/assets/paradise_lost/models/block/four_moss_stars.json deleted file mode 100644 index 1f7411d5f..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/four_moss_stars.json +++ /dev/null @@ -1,721 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "paradise_lost:block/moss_star", - "all": "paradise_lost:block/moss_star" - }, - "elements": [ - { - "from": [ - 2, - 0, - 2 - ], - "to": [ - 6, - 6, - 6 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 5.95, - 2 - ], - "to": [ - 6, - 5.95, - 6 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9, - 0, - 10 - ], - "to": [ - 13, - 4, - 14 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 9 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 9 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 9 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 9 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9, - 3.95, - 10 - ], - "to": [ - 13, - 3.95, - 14 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9, - 0, - 2 - ], - "to": [ - 13, - 6, - 6 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9, - 5.95, - 2 - ], - "to": [ - 13, - 5.95, - 6 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 0, - 8 - ], - "to": [ - 6, - 7, - 12 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 12 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 12 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 12 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 12 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 6.95, - 8 - ], - "to": [ - 6, - 6.95, - 12 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 3.5, - 5.2, - 4 - ], - "to": [ - 4.5, - 8.7, - 4 - ], - "rotation": { - "origin": [ - 4, - 8, - 4 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "north": { - "uv": [ - 1, - 0, - 3, - 5 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 3, - 0, - 1, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 4, - 5.2, - 3.5 - ], - "to": [ - 4, - 8.7, - 4.5 - ], - "rotation": { - "origin": [ - 4, - 8, - 4 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "west": { - "uv": [ - 13, - 0, - 15, - 5 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 15, - 0, - 13, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 10.5, - 3.2, - 12 - ], - "to": [ - 11.5, - 6.7, - 12 - ], - "rotation": { - "origin": [ - 11, - 8, - 12 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "north": { - "uv": [ - 1, - 0, - 3, - 5 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 3, - 0, - 1, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 11, - 3.2, - 11.5 - ], - "to": [ - 11, - 6.7, - 12.5 - ], - "rotation": { - "origin": [ - 11, - 8, - 12 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "west": { - "uv": [ - 13, - 0, - 15, - 5 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 15, - 0, - 13, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 10.5, - 5.2, - 4 - ], - "to": [ - 11.5, - 8.7, - 4 - ], - "rotation": { - "origin": [ - 11, - 8, - 4 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "north": { - "uv": [ - 1, - 0, - 3, - 5 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 3, - 0, - 1, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 11, - 5.2, - 3.5 - ], - "to": [ - 11, - 8.7, - 4.5 - ], - "rotation": { - "origin": [ - 11, - 8, - 4 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "west": { - "uv": [ - 13, - 0, - 15, - 5 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 15, - 0, - 13, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 3.5, - 6.2, - 10 - ], - "to": [ - 4.5, - 9.7, - 10 - ], - "rotation": { - "origin": [ - 4, - 8, - 10 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "north": { - "uv": [ - 1, - 0, - 3, - 5 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 3, - 0, - 1, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 4, - 6.2, - 9.5 - ], - "to": [ - 4, - 9.7, - 10.5 - ], - "rotation": { - "origin": [ - 4, - 8, - 10 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "west": { - "uv": [ - 13, - 0, - 15, - 5 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 15, - 0, - 13, - 5 - ], - "texture": "#all" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/giant_lilypad.json b/src/main/resources/assets/paradise_lost/models/block/giant_lilypad.json deleted file mode 100755 index dc7c9ad69..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/giant_lilypad.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "credit": "Made by Azazelthedemonlord", - "textures": { - "0": "paradise_lost:block/giant_lilypad", - "particle": "paradise_lost:block/giant_lilypad" - }, - "elements": [ - { - "from": [ - -8, - 0.5, - -8 - ], - "to": [ - 24, - 0.5, - 24 - ], - "faces": { - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "rotation": 270, - "texture": "#0" - } - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [ - 75, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "thirdperson_lefthand": { - "rotation": [ - 75, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 45, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "firstperson_lefthand": { - "rotation": [ - 0, - 225, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "ground": { - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "gui": { - "rotation": [ - 30, - 225, - 0 - ], - "scale": [ - 0.625, - 0.625, - 0.625 - ] - }, - "head": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 13, - 7 - ] - }, - "fixed": { - "scale": [ - 0.5, - 0.5, - 0.5 - ] - } - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/giant_lotus.json b/src/main/resources/assets/paradise_lost/models/block/giant_lotus.json deleted file mode 100755 index be8e06734..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/giant_lotus.json +++ /dev/null @@ -1,518 +0,0 @@ -{ - "credit": "Made by Azazelthedemonlord", - "textures": { - "0": "paradise_lost:block/giant_lilypad", - "1": "paradise_lost:block/giant_lotus", - "2": "paradise_lost:block/giant_lotus_pistil", - "particle": "paradise_lost:block/giant_lilypad" - }, - "elements": [ - { - "name": "lilypad", - "from": [ - -8, - 0.5, - -8 - ], - "to": [ - 24, - 0.5, - 24 - ], - "faces": { - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "rotation": 270, - "texture": "#0" - } - } - }, - { - "name": "flower", - "from": [ - 7, - 1.5, - 1 - ], - "to": [ - 7, - 17.5, - 17 - ], - "rotation": { - "angle": 45, - "axis": "z", - "origin": [ - 8, - 0.5, - 9 - ] - }, - "faces": { - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - } - } - }, - { - "name": "flower", - "from": [ - 0, - 1.5, - 8 - ], - "to": [ - 16, - 17.5, - 8 - ], - "rotation": { - "angle": -45, - "axis": "x", - "origin": [ - 8, - 0.5, - 9 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - } - } - }, - { - "name": "flower", - "from": [ - 9, - 1.5, - 1 - ], - "to": [ - 9, - 17.5, - 17 - ], - "rotation": { - "angle": -45, - "axis": "z", - "origin": [ - 8, - 0.5, - 9 - ] - }, - "faces": { - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - } - } - }, - { - "name": "flower", - "from": [ - 0, - 1.5, - 10 - ], - "to": [ - 16, - 17.5, - 10 - ], - "rotation": { - "angle": 45, - "axis": "x", - "origin": [ - 8, - 0.5, - 9 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - } - } - }, - { - "name": "flower_outer", - "from": [ - -10, - 0.5, - 1 - ], - "to": [ - 6, - 0.5, - 17 - ], - "rotation": { - "angle": -22.5, - "axis": "z", - "origin": [ - 8, - 0.5, - 9 - ] - }, - "faces": { - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "rotation": 270, - "texture": "#1" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "rotation": 270, - "texture": "#1" - } - } - }, - { - "name": "flower_outer", - "from": [ - 0, - 0.5, - -9 - ], - "to": [ - 16, - 0.5, - 7 - ], - "rotation": { - "angle": 22.5, - "axis": "x", - "origin": [ - 8, - 0.5, - 9 - ] - }, - "faces": { - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "rotation": 180, - "texture": "#1" - } - } - }, - { - "name": "flower_outer", - "from": [ - 10, - 0.5, - 1 - ], - "to": [ - 26, - 0.5, - 17 - ], - "rotation": { - "angle": 22.5, - "axis": "z", - "origin": [ - 8, - 0.5, - 9 - ] - }, - "faces": { - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "rotation": 90, - "texture": "#1" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "rotation": 90, - "texture": "#1" - } - } - }, - { - "name": "flower_outer", - "from": [ - 0, - 0.5, - 11 - ], - "to": [ - 16, - 0.5, - 27 - ], - "rotation": { - "angle": -22.5, - "axis": "x", - "origin": [ - 8, - 0.5, - 9 - ] - }, - "faces": { - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "rotation": 180, - "texture": "#1" - }, - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#1" - } - } - }, - { - "name": "pistill", - "from": [ - 5, - 1, - 6 - ], - "to": [ - 11, - 1, - 12 - ], - "faces": { - "up": { - "uv": [ - 0, - 0, - 6, - 6 - ], - "texture": "#2" - }, - "down": { - "uv": [ - 0, - 0, - 6, - 6 - ], - "texture": "#2" - } - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [ - 75, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "thirdperson_lefthand": { - "rotation": [ - 75, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 45, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "firstperson_lefthand": { - "rotation": [ - 0, - 225, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "ground": { - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "gui": { - "rotation": [ - 30, - 225, - 0 - ], - "scale": [ - 0.625, - 0.625, - 0.625 - ] - }, - "head": { - "translation": [ - 0, - 14, - 0 - ] - }, - "fixed": { - "scale": [ - 0.5, - 0.5, - 0.5 - ] - } - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/halophia.json b/src/main/resources/assets/paradise_lost/models/block/halophia.json deleted file mode 100644 index 4b8c289c2..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/halophia.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_seagrass", - "textures": { - "texture": "paradise_lost:block/halophia" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/lichen.json b/src/main/resources/assets/paradise_lost/models/block/lichen.json deleted file mode 100644 index 58703ccb0..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/lichen.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/lichen" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/lichen_pile.json b/src/main/resources/assets/paradise_lost/models/block/lichen_pile.json deleted file mode 100644 index eb6b63f07..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/lichen_pile.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "parent": "block/thin_block", - "textures": { - "particle": "paradise_lost:block/lichen", - "texture": "paradise_lost:block/lichen" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 2, - 16 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#texture", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#texture" - }, - "north": { - "uv": [ - 0, - 14, - 16, - 16 - ], - "texture": "#texture", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 14, - 16, - 16 - ], - "texture": "#texture", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 14, - 16, - 16 - ], - "texture": "#texture", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 14, - 16, - 16 - ], - "texture": "#texture", - "cullface": "east" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/lucatiel_lichen.json b/src/main/resources/assets/paradise_lost/models/block/lucatiel_lichen.json deleted file mode 100644 index aad57689c..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/lucatiel_lichen.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/lucatiel_lichen" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/lucatiel_lichen_pile.json b/src/main/resources/assets/paradise_lost/models/block/lucatiel_lichen_pile.json deleted file mode 100644 index 55f1a88d2..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/lucatiel_lichen_pile.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "parent": "block/thin_block", - "textures": { - "particle": "paradise_lost:block/lucatiel_lichen", - "texture": "paradise_lost:block/lucatiel_lichen" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 2, - 16 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#texture", - "cullface": "down" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#texture" - }, - "north": { - "uv": [ - 0, - 14, - 16, - 16 - ], - "texture": "#texture", - "cullface": "north" - }, - "south": { - "uv": [ - 0, - 14, - 16, - 16 - ], - "texture": "#texture", - "cullface": "south" - }, - "west": { - "uv": [ - 0, - 14, - 16, - 16 - ], - "texture": "#texture", - "cullface": "west" - }, - "east": { - "uv": [ - 0, - 14, - 16, - 16 - ], - "texture": "#texture", - "cullface": "east" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/moss_ball_large.json b/src/main/resources/assets/paradise_lost/models/block/moss_ball_large.json deleted file mode 100755 index fa484ef60..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/moss_ball_large.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "credit": "Made by Azazelthedemonlord", - "texture_size": [ - 32, - 32 - ], - "textures": { - "0": "paradise_lost:block/moss_ball_large", - "particle": "paradise_lost:block/moss_ball_large" - }, - "elements": [ - { - "from": [ - 2, - 0, - 2 - ], - "to": [ - 14, - 12, - 14 - ], - "faces": { - "north": { - "uv": [ - 1, - 1, - 7, - 7 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 1, - 1, - 7, - 7 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 1, - 1, - 7, - 7 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 1, - 1, - 7, - 7 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 9, - 1, - 15, - 7 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 1, - 9, - 7, - 15 - ], - "texture": "#0" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/moss_ball_medium.json b/src/main/resources/assets/paradise_lost/models/block/moss_ball_medium.json deleted file mode 100755 index 26536b2c3..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/moss_ball_medium.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "credit": "Made by Azazelthedemonlord", - "texture_size": [ - 32, - 32 - ], - "textures": { - "0": "paradise_lost:block/moss_ball_small", - "particle": "paradise_lost:block/moss_ball_small" - }, - "elements": [ - { - "from": [ - 2, - 0, - 2 - ], - "to": [ - 11, - 9, - 11 - ], - "faces": { - "north": { - "uv": [ - 0.5, - 0.5, - 5, - 5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 0.5, - 0.5, - 5, - 5 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 0.5, - 0.5, - 5, - 5 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 0.5, - 0.5, - 5, - 5 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 5.5, - 0.5, - 10, - 5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 0.5, - 5.5, - 5, - 10 - ], - "texture": "#0" - } - } - }, - { - "from": [ - 6, - -1, - 6 - ], - "to": [ - 14, - 5, - 14 - ], - "faces": { - "north": { - "uv": [ - 11, - 2, - 15, - 5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 11, - 2, - 15, - 5 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 11, - 2, - 15, - 5 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 11, - 2, - 15, - 5 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 11, - 6, - 15, - 10 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 6, - 6, - 10, - 10 - ], - "texture": "#0" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/moss_ball_small.json b/src/main/resources/assets/paradise_lost/models/block/moss_ball_small.json deleted file mode 100755 index 3065f6761..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/moss_ball_small.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "credit": "Made by Azazelthedemonlord", - "texture_size": [ - 32, - 32 - ], - "textures": { - "0": "paradise_lost:block/moss_ball_small", - "particle": "paradise_lost:block/moss_ball_small" - }, - "elements": [ - { - "from": [ - 3.5, - 0, - 3.5 - ], - "to": [ - 12.5, - 9, - 12.5 - ], - "faces": { - "north": { - "uv": [ - 0.5, - 0.5, - 5, - 5 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 0.5, - 0.5, - 5, - 5 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 0.5, - 0.5, - 5, - 5 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 0.5, - 0.5, - 5, - 5 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 5.5, - 0.5, - 10, - 5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 0.5, - 5.5, - 5, - 10 - ], - "texture": "#0" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/moss_star.json b/src/main/resources/assets/paradise_lost/models/block/moss_star.json deleted file mode 100644 index b2d248726..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/moss_star.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cross", - "textures": { - "cross": "paradise_lost:block/moss_star" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/three_dead_moss_stars.json b/src/main/resources/assets/paradise_lost/models/block/three_dead_moss_stars.json deleted file mode 100644 index d66c4a792..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/three_dead_moss_stars.json +++ /dev/null @@ -1,285 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "paradise_lost:block/moss_star", - "all": "paradise_lost:block/moss_star" - }, - "elements": [ - { - "from": [ - 6, - 0, - 9 - ], - "to": [ - 10, - 6, - 13 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 6, - 5.95, - 9 - ], - "to": [ - 10, - 5.95, - 13 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 0, - 2 - ], - "to": [ - 6, - 4, - 6 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 9 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 9 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 9 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 9 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 3.95, - 2 - ], - "to": [ - 6, - 3.95, - 6 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 8, - 0, - 4 - ], - "to": [ - 12, - 6, - 8 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 8, - 5.95, - 4 - ], - "to": [ - 12, - 5.95, - 8 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/three_moss_stars.json b/src/main/resources/assets/paradise_lost/models/block/three_moss_stars.json deleted file mode 100644 index 82c4a86ef..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/three_moss_stars.json +++ /dev/null @@ -1,543 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "paradise_lost:block/moss_star", - "all": "paradise_lost:block/moss_star" - }, - "elements": [ - { - "from": [ - 6, - 0, - 9 - ], - "to": [ - 10, - 6, - 13 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 6, - 5.95, - 9 - ], - "to": [ - 10, - 5.95, - 13 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 0, - 2 - ], - "to": [ - 6, - 4, - 6 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 9 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 9 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 9 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 9 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 2, - 3.95, - 2 - ], - "to": [ - 6, - 3.95, - 6 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 8, - 0, - 4 - ], - "to": [ - 12, - 6, - 8 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 8, - 5.95, - 4 - ], - "to": [ - 12, - 5.95, - 8 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 7.5, - 5.2, - 11 - ], - "to": [ - 8.5, - 8.7, - 11 - ], - "rotation": { - "origin": [ - 8, - 8, - 11 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "north": { - "uv": [ - 1, - 0, - 3, - 5 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 3, - 0, - 1, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 8, - 5.2, - 10.5 - ], - "to": [ - 8, - 8.7, - 11.5 - ], - "rotation": { - "origin": [ - 8, - 8, - 11 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "west": { - "uv": [ - 13, - 0, - 15, - 5 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 15, - 0, - 13, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 3.5, - 3.2, - 4 - ], - "to": [ - 4.5, - 6.7, - 4 - ], - "rotation": { - "origin": [ - 4, - 8, - 4 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "north": { - "uv": [ - 1, - 0, - 3, - 5 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 3, - 0, - 1, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 4, - 3.2, - 3.5 - ], - "to": [ - 4, - 6.7, - 4.5 - ], - "rotation": { - "origin": [ - 4, - 8, - 4 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "west": { - "uv": [ - 13, - 0, - 15, - 5 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 15, - 0, - 13, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9.5, - 5.2, - 6 - ], - "to": [ - 10.5, - 8.7, - 6 - ], - "rotation": { - "origin": [ - 10, - 8, - 6 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "north": { - "uv": [ - 1, - 0, - 3, - 5 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 3, - 0, - 1, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 10, - 5.2, - 5.5 - ], - "to": [ - 10, - 8.7, - 6.5 - ], - "rotation": { - "origin": [ - 10, - 8, - 6 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "west": { - "uv": [ - 13, - 0, - 15, - 5 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 15, - 0, - 13, - 5 - ], - "texture": "#all" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/two_dead_moss_stars.json b/src/main/resources/assets/paradise_lost/models/block/two_dead_moss_stars.json deleted file mode 100644 index 0e0579d57..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/two_dead_moss_stars.json +++ /dev/null @@ -1,193 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "paradise_lost:block/moss_star", - "all": "paradise_lost:block/moss_star" - }, - "elements": [ - { - "from": [ - 3, - 0, - 3 - ], - "to": [ - 7, - 6, - 7 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 3, - 5.95, - 3 - ], - "to": [ - 7, - 5.95, - 7 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 8, - 0, - 8 - ], - "to": [ - 12, - 4, - 12 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 9 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 9 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 9 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 9 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 8, - 3.95, - 8 - ], - "to": [ - 12, - 3.95, - 12 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/two_moss_stars.json b/src/main/resources/assets/paradise_lost/models/block/two_moss_stars.json deleted file mode 100644 index 44605a11e..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/two_moss_stars.json +++ /dev/null @@ -1,365 +0,0 @@ -{ - "parent": "block/block", - "textures": { - "particle": "paradise_lost:block/moss_star", - "all": "paradise_lost:block/moss_star" - }, - "elements": [ - { - "from": [ - 3, - 0, - 3 - ], - "to": [ - 7, - 6, - 7 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 11 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 11 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 11 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 11 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 3, - 5.95, - 3 - ], - "to": [ - 7, - 5.95, - 7 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 8, - 0, - 8 - ], - "to": [ - 12, - 4, - 12 - ], - "faces": { - "down": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all", - "cullface": "down" - }, - "up": { - "uv": [ - 4, - 1, - 8, - 5 - ], - "texture": "#all" - }, - "north": { - "uv": [ - 4, - 5, - 8, - 9 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 0, - 5, - 4, - 9 - ], - "texture": "#all" - }, - "west": { - "uv": [ - 8, - 5, - 12, - 9 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 12, - 5, - 16, - 9 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 8, - 3.95, - 8 - ], - "to": [ - 12, - 3.95, - 12 - ], - "faces": { - "up": { - "uv": [ - 8, - 1, - 12, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 4.5, - 5.2, - 5 - ], - "to": [ - 5.5, - 8.7, - 5 - ], - "rotation": { - "origin": [ - 5, - 5.6, - 5 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "north": { - "uv": [ - 1, - 0, - 3, - 5 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 3, - 0, - 1, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 5, - 5.2, - 4.5 - ], - "to": [ - 5, - 8.7, - 5.5 - ], - "rotation": { - "origin": [ - 5, - 5.6, - 5 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "west": { - "uv": [ - 13, - 0, - 15, - 5 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 15, - 0, - 13, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 9.5, - 3.2, - 10 - ], - "to": [ - 10.5, - 6.7, - 10 - ], - "rotation": { - "origin": [ - 10, - 8, - 10 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "north": { - "uv": [ - 1, - 0, - 3, - 5 - ], - "texture": "#all" - }, - "south": { - "uv": [ - 3, - 0, - 1, - 5 - ], - "texture": "#all" - } - } - }, - { - "from": [ - 10, - 3.2, - 9.5 - ], - "to": [ - 10, - 6.7, - 10.5 - ], - "rotation": { - "origin": [ - 10, - 8, - 10 - ], - "axis": "y", - "angle": 45, - "rescale": true - }, - "shade": false, - "faces": { - "west": { - "uv": [ - 13, - 0, - 15, - 5 - ], - "texture": "#all" - }, - "east": { - "uv": [ - 15, - 0, - 13, - 5 - ], - "texture": "#all" - } - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_body.json b/src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_body.json deleted file mode 100644 index 5a4a8a6a0..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_body.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "paradise_lost:template/stellated_tint", - "textures": { - "face": "paradise_lost:block/weeping_cloudburst_body" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_bottom.json b/src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_bottom.json deleted file mode 100644 index e856ca5ab..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_bottom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "paradise_lost:template/stellated_tint", - "textures": { - "face": "paradise_lost:block/weeping_cloudburst_bottom" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_top.json b/src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_top.json deleted file mode 100644 index 86b4ad2f7..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/weeping_cloudburst_top.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "paradise_lost:template/bilayer_stellated", - "textures": { - "face": "paradise_lost:block/weeping_cloudburst_top_flower", - "face_tint": "paradise_lost:block/weeping_cloudburst_top_stalk" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/giant_lily.json b/src/main/resources/assets/paradise_lost/models/item/giant_lily.json deleted file mode 100644 index f3994c4f4..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/giant_lily.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/giant_lotus" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/halophia.json b/src/main/resources/assets/paradise_lost/models/item/halophia.json deleted file mode 100644 index 2f27ae15c..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/halophia.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "paradise_lost:block/halophia" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/lichen.json b/src/main/resources/assets/paradise_lost/models/item/lichen.json deleted file mode 100644 index e8f8b5089..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/lichen.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/lichen" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/lichen_pile.json b/src/main/resources/assets/paradise_lost/models/item/lichen_pile.json deleted file mode 100644 index b75174cfa..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/lichen_pile.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/lichen_pile" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/lucatiel_lichen.json b/src/main/resources/assets/paradise_lost/models/item/lucatiel_lichen.json deleted file mode 100644 index cae24b459..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/lucatiel_lichen.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/lucatiel_lichen" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/lucatiel_lichen_pile.json b/src/main/resources/assets/paradise_lost/models/item/lucatiel_lichen_pile.json deleted file mode 100644 index 1c6b6ae57..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/lucatiel_lichen_pile.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/lucatiel_lichen_pile" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/moss_ball.json b/src/main/resources/assets/paradise_lost/models/item/moss_ball.json deleted file mode 100644 index 27a7aa0bd..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/moss_ball.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "paradise_lost:item/moss_ball" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/moss_star.json b/src/main/resources/assets/paradise_lost/models/item/moss_star.json deleted file mode 100644 index b6244afae..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/moss_star.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "paradise_lost:block/moss_star" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/weeping_cloudburst.json b/src/main/resources/assets/paradise_lost/models/item/weeping_cloudburst.json deleted file mode 100644 index 249dc803b..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/weeping_cloudburst.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "paradise_lost:item/weeping_cloudburst" - } -} diff --git a/src/main/resources/assets/paradise_lost/textures/block/dry_moss_star.png b/src/main/resources/assets/paradise_lost/textures/block/dry_moss_star.png deleted file mode 100644 index bf11babe5bf6ba4f332ae315e37bd5fc6519cde1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`KAtX)Ar-fhC0G|H%wRrm@%6u^ z>#_gLMy3CnZ>VIlWxk2Z{k1<~(!2k2*qjB_&I&A8t8mtUIYCeH9>em0yZ>LrF?2RQ h@i1jcVTe1+uvN=w+y2FS1A*o;c)I$ztaD0e0szdOF9rYr diff --git a/src/main/resources/assets/paradise_lost/textures/block/giant_lilypad.png b/src/main/resources/assets/paradise_lost/textures/block/giant_lilypad.png deleted file mode 100644 index 910108d4e881e219da9aac324dcb7b5f42d84831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmV-#0g(QQP)P-!eeRV|prK*w~2GXMYp0d!JMQvg8b*k%9#0SHM%K~#9!m6L^G#6S!L zvmp0ha$fYzXnW^Ihkw7l!gj>VG(rUBa6E5K0st-QnWmZ-K&0mx0UVi)=#emS9F@Ny zTnY&|fzJshz|0Tu0z_OXV735MOm4-Z0u5xG21h?7We*Dp9ZS>#rHj5cJ5~NSU;vAR zT=7n766a3I5lPqtdL(iJb2Ei364hp>qInRMEr;!?fHs6kN|_Q#s7Q(IVN4UwN?PWQ zbLU}<1CZ72Vg~3q`zb;KH3M5fI}WKNNi@HULC#Dt0VGMR;4+u3hIV687k~q#DD{BC zn=i4Ir~cjfFiDE-nYFv$(n<|m#LDl8uvmaeJw01d46}N?KfS*l_rme9vvha5@SSPGC)e|71Em>Dg8YIR9G=}s19HMVT^vIyZq4mFE_lF!gZboz`lHii z4u3weyLnCftA6Es$8-eJ%(FF=zL@m=-~8uq!TuSSZ`jRQ<};CF-J*iyrG2p~2Ug3> q5iyzCq4d7ddbgoa!K!&Lna$gT8JDx1To(qkfx*+&&t;ucLK6V?QWWiC>vt;|cOc^Bx>r^kIXGZPMj#rI)U*T9xh6 zT|PPUzaAV2aGJTe2VoGHYo`dh=y0QUY1M7(2V}p@!{M)o07C{2hCKv!m}PLQB_w32 zwXJr0Q>wq$WBv6oa4s%~Xbfk_5>bnB6{WjuRi`?>%i}Bp1jf4#0uF{DToT(uh--(6 zXi9JCuDaD#?Sqp)9+-KXfnc7;YatdDF@m(#t0KCT>ZYq(m-@Q@CC|!%33HwegNs8H z9Zdw=Qd^eorF5rPZEuzSCXR#58x0(U69}>x1`*O>N3b12$Tn47+dpTkzstiQZ**XQ ulLzE^6w}3oi&|2VTW(Rks%-UEchx^mWCX!Xs;CM80000r9+91aEf71I{M$V0@nHNI?x)v-{dU8muT%{pq zjf&AkKLzzz;SBv5!By=~&RH6=I9xQl)5$!=+u@e|ta#HcF4vx$39@uIaY*fp4xfDX q4_{Jq*dqlc!GEHKdU=yt_b|TFU_77{Wj_mOFN3G6pUXO@geCxV?LL11 diff --git a/src/main/resources/assets/paradise_lost/textures/block/lucatiel_lichen.png b/src/main/resources/assets/paradise_lost/textures/block/lucatiel_lichen.png deleted file mode 100644 index 9cad2b3567b7d4dffa494c39fef76e3a71bf8896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!P=HT}YnZ8Zl8s$}sZE88i?6Xw zk%Mb%^UTjc*&I(7$B>F!x@R~USr`QlZ4hJoKk0oeBj-ld%!{D`T?-Z}JvpRSuF?>* zM#X5NpMrX13Yb?QqL}R=nvJmut_>1X;S9IHdMPhfhBH qhcBr)?2&?!;6Kqqy}U`Sdl+A7Fdk5fvY!RCm%-E3&t;ucLK6U_c|O_z diff --git a/src/main/resources/assets/paradise_lost/textures/block/moss_ball_large.png b/src/main/resources/assets/paradise_lost/textures/block/moss_ball_large.png deleted file mode 100644 index 3d91982de5dfee3903f26f39b2cf1ed3d90a47fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy(g8jpu0XnLwQ0d5-JAx)lp^DR zOdYoedE8X~vQuzhDN3XE)M-oJ*cAjv*Dd&IW}i9W~&Xd}7c4+U%~0 z?(Ltie-t?*@=5xj|AQOfb#>-FKJhC+HuXwd!{Qyxg-nurT~6FGT3IY<(xIZ++rXgg z=>9RLnM0w+bh(D_ay1{O*$io?cx1TNF5~bkoZ+lFVeQNW<8RtGcDQBb&9&t$G?Hd| z^^!}W{in*aeH=-*m+$lx*Khv4Yu#t7^Bm^;9N!;~{`Wo6+ex-8TKK^u9o26Zm(msG zMZAuDwR$G)`e@<-t_{c3ovKxp)~#>oY!NMM@H?OT%ggaN$EqKddzddshKu@3T)zPH O9fPN` z2r4mjSZg_iOc<)(eM8;RY7`R|3aN0bXJ9SqctwXfLi8`B>l|tq(GlBmjQ27ktv2F} zu-*FzS0#2IrqBMdI)cQ%+74FmzOLh@D1>=rs1onfgswnwIaAaT1R3l`mZo(&0v+t% zXWWcXkJLgClWb7lqUyb2$HeJJ2GS~$kkW#;yQoIo)aG0D-tHM3vT=R}^4TB)qW}PC WuLV%-v^W0%0000kf_|5kk$ z&yW9K&j6{PKR;clpP-nM`K>4T|NNkoKlTd2&+R*WC#6j|w(jb(|J-UX|DDe?U`f2h z!+4A95|1&%GoeSk1zcDE_P=ADAmPy$;_Sfo;3^Npu}s&}ob^kYfz~m2y85}Sb4q9e E0Fu!?*#H0l diff --git a/src/main/resources/assets/paradise_lost/textures/block/weeping_cloudburst_body.png b/src/main/resources/assets/paradise_lost/textures/block/weeping_cloudburst_body.png deleted file mode 100644 index 08fe5039b44dbe9bd8a85f7a3eecdb83edefa80e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!M1W6-E0DG;@K2pt9@Lg%6z5dc zWYMz1reKn8&X2<~Ksm;eAirP+hi5m^fSgcI7srr_Te1GFybJ~$hkyQmRQWuPTVP^= zwTQd)LD{WyLXPt;`4WDt=6!Pw6JO-FN|~R0V&Ztk-m2EHVKrah joG26X?vLCDUbAbh31_sE_%7}Yw1C0W)z4*}Q$iB}ysbI@_3&99iRkbNswPKgTu2MX+Vyfr;B4q#jV;C8yOEca2zp^wRvM-@ck z^Z&fsC42YZsb0`}04T>;666=m;PC858j$1d>Eaktack?T?Tm*Vc$ghjK7GG`Bdl-j zI_Cq&PgLuj72PNh`o%^k{j@VpRN)5rPaP6mdJUo}MX#7nGz P#xQug`njxgN@xNA;ZP>I diff --git a/src/main/resources/assets/paradise_lost/textures/item/moss_ball.png b/src/main/resources/assets/paradise_lost/textures/item/moss_ball.png deleted file mode 100644 index 0d44f723277f60f39b9c83121acaf996bcd69fcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!M1W6-E0A^yRW`9#Dww1jkg1bW zWSrAr*tObprb4_3P>!)A$S;_|;n|HeAjjX+#WAGfRfZ e`!xH5xcdI7j9zx<53mD`X7F_Nb6Mw<&;$ULH9Z9Y diff --git a/src/main/resources/assets/paradise_lost/textures/item/weeping_cloudburst.png b/src/main/resources/assets/paradise_lost/textures/item/weeping_cloudburst.png deleted file mode 100644 index cd8e2909579b6a7e12ae3c460279543a3921fb4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`KAtX)Ar-fhC87=#HvRwqU@mKd z&$hJBI?w+rnB6pEzM0_sVzs14aEfun;${0yBh4nSlN3AkWu+oE(;lsr|X`9o>-GSyZc)I$ztaD0e0s!WfE@}V( diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/giant_lily.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/giant_lily.json deleted file mode 100644 index 09593b51f..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/giant_lily.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:giant_lily" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/halophia.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/halophia.json deleted file mode 100644 index 466b41008..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/halophia.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "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": { - "items": [ - "minecraft:shears" - ] - } - } - ], - "name": "paradise_lost:halophia" - }, - { - "type": "minecraft:item", - "conditions": [ - { - "condition": "minecraft:random_chance", - "chance": 0.0 - } - ], - "functions": [ - { - "function": "minecraft:apply_bonus", - "enchantment": "minecraft:fortune", - "formula": "minecraft:uniform_bonus_count", - "parameters": { - "bonusMultiplier": 0 - } - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "minecraft:wheat_seeds" - } - ] - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/lichen.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/lichen.json deleted file mode 100644 index 65d08c4d9..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/lichen.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:lichen" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/lichen_pile.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/lichen_pile.json deleted file mode 100644 index 82cbe2526..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/lichen_pile.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:lichen_pile" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/lucatiel_lichen.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/lucatiel_lichen.json deleted file mode 100644 index 480c6bfce..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/lucatiel_lichen.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:lucatiel_lichen" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/lucatiel_lichen_pile.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/lucatiel_lichen_pile.json deleted file mode 100644 index 78db94967..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/lucatiel_lichen_pile.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:lucatiel_lichen_pile" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/moss_ball.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/moss_ball.json deleted file mode 100644 index 66594afd2..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/moss_ball.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:moss_ball" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/moss_star.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/moss_star.json deleted file mode 100644 index fab42d753..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/moss_star.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:moss_star" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/weeping_cloudburst.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/weeping_cloudburst.json deleted file mode 100644 index e74eeb643..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/weeping_cloudburst.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:weeping_cloudburst" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_axe.json b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_axe.json index 55ecf1c01..0c5dce23f 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_axe.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_axe.json @@ -3,7 +3,6 @@ "values": [ "paradise_lost:aurel_bookshelf", "paradise_lost:food_bowl", - "paradise_lost:giant_lily", "paradise_lost:packed_swedroot", "paradise_lost:swedroot_spread", "#paradise_lost:leaf_piles", diff --git a/src/main/resources/data/paradise_lost/tags/blocks/plants/lichen_spreadable.json b/src/main/resources/data/paradise_lost/tags/blocks/plants/lichen_spreadable.json deleted file mode 100644 index 8aef203cc..000000000 --- a/src/main/resources/data/paradise_lost/tags/blocks/plants/lichen_spreadable.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "replace": false, - "values": [ - "#minecraft:dirt", - "minecraft:stone", - "minecraft:blackstone", - "minecraft:deepslate", - "paradise_lost:floestone" - ] -} diff --git a/src/main/resources/data/paradise_lost/tags/blocks/underwater_bonemeals.json b/src/main/resources/data/paradise_lost/tags/blocks/underwater_bonemeals.json index 990911d42..d275da3f4 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/underwater_bonemeals.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/underwater_bonemeals.json @@ -1,6 +1,5 @@ { "replace": false, "values": [ - "paradise_lost:halophia" ] } From 41f4eabb5f197b1471ca1086ec259530038a432c Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Thu, 25 Apr 2024 21:15:13 -0500 Subject: [PATCH 05/24] switch incubus core versions - chests --- gradle.properties | 2 +- .../net/id/paradiselost/ParadiseLost.java | 5 - .../blocks/BlockRegistration.java | 274 ++++++++++++++++++ .../blocks/ParadiseLostBlocks.java | 220 ++++---------- .../blockentity/FoodBowlBlockEntity.java | 19 +- .../blockentity/IncubatorBlockEntity.java | 16 +- .../blockentity/TreeTapBlockEntity.java | 49 ++-- .../blocks/natural/plant/LichenBlock.java | 129 --------- .../blocks/natural/plant/LichenPileBlock.java | 86 ------ .../natural/tree/ParadiseLostLeavesBlock.java | 2 +- .../client/model/ParadiseLostModelLayers.java | 2 - .../client/model/entity/RookModel.java | 80 ----- .../block/IncubatorBlockEntityRenderer.java | 4 +- .../entity/ParadiseLostEntityRenderers.java | 9 - .../entity/misc/RookEyeFeatureRenderer.java | 56 ---- .../rendering/entity/misc/RookRenderer.java | 54 ---- .../entity/projectile/DartRenderer.java | 24 -- .../rendering/ui/BloodstoneHUDRenderer.java | 16 - .../util/ParadiseLostColorProviders.java | 4 +- .../id/paradiselost/commands/LUVCommand.java | 52 ---- .../commands/ParadiseLostCommands.java | 1 - .../net/id/paradiselost/component/LUV.java | 122 -------- .../component/ParadiseLostComponents.java | 3 - .../effect/ParadiseLostStatusEffects.java | 19 -- .../effect/SimmeringStatusEffect.java | 40 --- .../effect/condition/Conditions.java | 33 --- .../effect/condition/VenomCondition.java | 61 ---- .../entities/ParadiseLostEntityTypes.java | 9 - .../entities/hostile/HellenroseEntity.java | 4 +- .../entities/misc/RookEntity.java | 212 -------------- .../entities/passive/moa/MoaEntity.java | 4 +- .../entities/projectile/DartEntity.java | 38 --- .../entities/projectile/PoisonDartEntity.java | 42 --- .../projectile/PoisonNeedleEntity.java | 29 -- .../paradiselost/items/ParadiseLostItems.java | 147 +++++----- .../bloodstone/BloodstoneCapturedData.java | 10 - .../items/utils/ParadiseLostRarity.java | 9 - .../net/id/paradiselost/mixin/Plugin.java | 7 - .../mixin/block/BlockEntityTypeMixin.java | 34 +++ .../render/EntityRenderDispatcherMixin.java | 25 -- .../mixin/entity/EntityMixin.java | 26 +- .../mixin/entity/LivingEntityMixin.java | 24 -- .../paradiselost/mixin/item/AxeItemMixin.java | 2 +- .../paradiselost/mixin/util/RarityMixin.java | 31 -- .../mixin/util/SignTypeAccessor.java | 13 + .../id/paradiselost/util/CompatConfig.java | 12 - .../util/ParadiseLostSignType.java | 9 + .../ParadiseLostTreeConfiguredFeatures.java | 82 +++--- .../ParadiseLostTreePlacedFeatures.java | 8 +- .../generator/AurelTowerGenerator.java | 10 +- src/main/resources/paradise_lost.mixins.json | 4 +- 51 files changed, 563 insertions(+), 1610 deletions(-) create mode 100644 src/main/java/net/id/paradiselost/blocks/BlockRegistration.java delete mode 100644 src/main/java/net/id/paradiselost/blocks/natural/plant/LichenBlock.java delete mode 100644 src/main/java/net/id/paradiselost/blocks/natural/plant/LichenPileBlock.java delete mode 100644 src/main/java/net/id/paradiselost/client/model/entity/RookModel.java delete mode 100644 src/main/java/net/id/paradiselost/client/rendering/entity/misc/RookEyeFeatureRenderer.java delete mode 100644 src/main/java/net/id/paradiselost/client/rendering/entity/misc/RookRenderer.java delete mode 100644 src/main/java/net/id/paradiselost/client/rendering/entity/projectile/DartRenderer.java delete mode 100644 src/main/java/net/id/paradiselost/commands/LUVCommand.java delete mode 100644 src/main/java/net/id/paradiselost/component/LUV.java delete mode 100644 src/main/java/net/id/paradiselost/effect/ParadiseLostStatusEffects.java delete mode 100644 src/main/java/net/id/paradiselost/effect/SimmeringStatusEffect.java delete mode 100644 src/main/java/net/id/paradiselost/effect/condition/Conditions.java delete mode 100644 src/main/java/net/id/paradiselost/effect/condition/VenomCondition.java delete mode 100644 src/main/java/net/id/paradiselost/entities/misc/RookEntity.java delete mode 100644 src/main/java/net/id/paradiselost/entities/projectile/DartEntity.java delete mode 100644 src/main/java/net/id/paradiselost/entities/projectile/PoisonDartEntity.java delete mode 100644 src/main/java/net/id/paradiselost/entities/projectile/PoisonNeedleEntity.java delete mode 100644 src/main/java/net/id/paradiselost/items/utils/ParadiseLostRarity.java create mode 100644 src/main/java/net/id/paradiselost/mixin/block/BlockEntityTypeMixin.java delete mode 100644 src/main/java/net/id/paradiselost/mixin/client/render/EntityRenderDispatcherMixin.java delete mode 100644 src/main/java/net/id/paradiselost/mixin/util/RarityMixin.java create mode 100644 src/main/java/net/id/paradiselost/mixin/util/SignTypeAccessor.java delete mode 100644 src/main/java/net/id/paradiselost/util/CompatConfig.java create mode 100644 src/main/java/net/id/paradiselost/util/ParadiseLostSignType.java diff --git a/gradle.properties b/gradle.properties index 68479eaf8..ed26b15eb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ loaderVersion=0.15.7 javaVersion=17 fabricApiVersion=0.77.0+1.19.2 -incubusCoreVersion=1.9.4 +incubusCoreVersion=2.0.0 customportalapiVersion=0.0.1-beta63.5-1.19.X cardinalComponentsVersion=5.0.1 trinketsVersion=3.4.0 diff --git a/src/main/java/net/id/paradiselost/ParadiseLost.java b/src/main/java/net/id/paradiselost/ParadiseLost.java index bd132c437..d5f56404d 100644 --- a/src/main/java/net/id/paradiselost/ParadiseLost.java +++ b/src/main/java/net/id/paradiselost/ParadiseLost.java @@ -17,8 +17,6 @@ import net.id.paradiselost.client.rendering.util.ParadiseLostColorProviders; import net.id.paradiselost.commands.ParadiseLostCommands; import net.id.paradiselost.config.ParadiseLostConfig; -import net.id.paradiselost.effect.ParadiseLostStatusEffects; -import net.id.paradiselost.effect.condition.Conditions; import net.id.paradiselost.entities.ParadiseLostEntityTypes; import net.id.paradiselost.entities.passive.moa.MoaRaces; import net.id.paradiselost.fluids.ParadiseLostFluids; @@ -83,7 +81,6 @@ public void onInitialize() { ParadiseLostFeatures.init(); ParadiseLostBiomes.init(); ParadiseLostDimension.init(); - ParadiseLostStatusEffects.init(); ParadiseLostBlocks.init(); ParadiseLostFluids.init(); ParadiseLostEntityTypes.init(); @@ -94,7 +91,6 @@ public void onInitialize() { ParadiseLostGameRules.init(); ParadiseLostLootNumberProviderTypes.init(); ParadiseLostSoundEvents.init(); - Conditions.init(); MoaRaces.init(); ParadiseLostScreens.init(); ParadiseLostLore.init(); @@ -123,7 +119,6 @@ public void onInitializeClient() { ParadiseLostBlocks.initClient(); ParadiseLostItemRenderers.initClient(); ParadiseLostScreens.initClient(); - Conditions.clientInit(); ParadiseLostScreens.clientInit(); } diff --git a/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java b/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java new file mode 100644 index 000000000..64e28ffd7 --- /dev/null +++ b/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java @@ -0,0 +1,274 @@ +package net.id.paradiselost.blocks; + +import net.fabricmc.fabric.mixin.lookup.BlockEntityTypeAccessor; +import net.id.incubus_core.util.RegistryQueue; +import net.id.paradiselost.blocks.natural.ParadiseLostSaplingBlock; +import net.id.paradiselost.blocks.natural.tree.FruitingLeavesBlock; +import net.id.paradiselost.blocks.natural.tree.ParadiseLostLeavesBlock; +import net.id.paradiselost.items.ParadiseLostItems; +import net.id.paradiselost.mixin.util.SignTypeAccessor; +import net.id.paradiselost.registry.ParadiseLostRegistryQueues; +import net.id.paradiselost.util.ParadiseLostSignType; +import net.id.paradiselost.world.feature.tree.generator.MotherAurelSaplingGenerator; +import net.id.paradiselost.world.feature.tree.generator.OrangeSaplingGenerator; +import net.minecraft.block.*; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.block.sapling.SaplingGenerator; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.SignType; +import org.jetbrains.annotations.NotNull; + +import java.util.Arrays; +import java.util.Iterator; + +import static net.id.paradiselost.ParadiseLost.MOD_ID; +import static net.id.paradiselost.ParadiseLost.locate; +import static net.id.paradiselost.blocks.ParadiseLostBlockActions.cutoutMippedRenderLayer; +import static net.id.paradiselost.blocks.ParadiseLostBlockActions.cutoutRenderLayer; +import static net.id.paradiselost.blocks.ParadiseLostBlockActions.flammableLeaves; +import static net.id.paradiselost.blocks.ParadiseLostBlockActions.flammableLog; +import static net.id.paradiselost.blocks.ParadiseLostBlockActions.flammablePlanks; +import static net.id.paradiselost.blocks.ParadiseLostBlockActions.stripsTo; + +public class BlockRegistration { + + @SafeVarargs + public static V add(String id, V block, RegistryQueue.Action... additionalActions) { + return ParadiseLostRegistryQueues.BLOCK.add(locate(id), block, additionalActions); + } + + static class ParadiseLostFarmlandBlock extends FarmlandBlock { + ParadiseLostFarmlandBlock(Settings settings) { + super(settings); + } + } + + static class ParadiseLostPaneBlock extends PaneBlock { + ParadiseLostPaneBlock(Settings settings) { + super(settings); + } + } + + static class ParadiseLostStairsBlock extends StairsBlock { + ParadiseLostStairsBlock(BlockState baseBlockState, Settings settings) { + super(baseBlockState, settings); + } + } + + + // WOOD BLOCK SET + + public static WoodBlockSet registerWoodBlockSet(String id, SaplingGenerator saplingGenerator, MapColor woodColor, MapColor barkColor, MapColor leafColor) { + return registerWoodBlockSet( + id+"_sapling", "potted_"+id+"_sapling", + id+"_log", id+"_wood", "stripped_"+id+"_log", "stripped_"+id+"_wood", + id+"_leaves", + id+"_planks", id+"_stairs",id+"_slab", + id+"_fence",id+"_fence_gate", + id+"_door",id+"_trapdoor", + id+"_button",id+"_pressure_plate", + saplingGenerator, woodColor, barkColor, leafColor + ); + } + + public static WoodBlockSet registerWoodBlockSetMotherAurel() { + String id = "mother_aurel"; + var saplingSettings = AbstractBlock.Settings.copy(Blocks.OAK_SAPLING).mapColor(MapColor.GOLD).luminance(state -> 3); + var flowerPotSettings = AbstractBlock.Settings.copy(Blocks.POTTED_OAK_SAPLING).luminance(state -> 3); + var leavesSettings = AbstractBlock.Settings.copy(Blocks.OAK_LEAVES).mapColor(MapColor.GOLD).luminance(state -> 5); + SaplingBlock sapling = add(id+"_sapling", new ParadiseLostSaplingBlock(new MotherAurelSaplingGenerator(), saplingSettings)); + return registerWoodBlockSet( + sapling, + add("potted_"+id+"_sapling", new FlowerPotBlock(sapling, flowerPotSettings)), + id+"_log", id+"_wood", "stripped_"+id+"_log", "stripped_"+id+"_wood", + add(id+"_leaves", new ParadiseLostLeavesBlock(leavesSettings, true), flammableLeaves, cutoutMippedRenderLayer), + id+"_planks", id+"_stairs",id+"_slab", + id+"_fence",id+"_fence_gate", + id+"_door",id+"_trapdoor", + id+"_button",id+"_pressure_plate", + MapColor.GOLD, MapColor.TERRACOTTA_RED + ); + } + + public static WoodBlockSet registerWoodBlockSetOrange() { + String id = "orange"; + var leavesSettings = AbstractBlock.Settings.copy(Blocks.OAK_LEAVES).mapColor(MapColor.PALE_GREEN).sounds(BlockSoundGroup.AZALEA_LEAVES); + FruitingLeavesBlock leaves = add(id+"_leaves", new FruitingLeavesBlock(leavesSettings, () -> ParadiseLostItems.ORANGE), flammableLeaves, cutoutMippedRenderLayer); + return registerWoodBlockSet( + id+"_sapling", "potted_"+id+"_sapling", + id+"_log", id+"_wood", "stripped_"+id+"_log", "stripped_"+id+"_wood", + leaves, + id+"_planks", id+"_stairs",id+"_slab", + id+"_fence",id+"_fence_gate", + id+"_door",id+"_trapdoor", + id+"_button",id+"_pressure_plate", + new OrangeSaplingGenerator(), MapColor.TERRACOTTA_LIGHT_GRAY, MapColor.RAW_IRON_PINK + ); + } + + public static WoodBlockSet registerWoodBlockSetWisteria() { + String id = "wisteria"; + return registerWoodBlockSet( + null, null, + id+"_log", id+"_wood", "stripped_"+id+"_log", "stripped_"+id+"_wood", + null, + id+"_planks", id+"_stairs",id+"_slab", + id+"_fence",id+"_fence_gate", + id+"_door",id+"_trapdoor", + id+"_button",id+"_pressure_plate", + MapColor.PALE_YELLOW, MapColor.BROWN + ); + } + + private static WoodBlockSet registerWoodBlockSet( + String saplingId, String flowerPotId, + String logId, String woodId, String strippedLogId, String strippedWoodId, + String leavesId, + String plankId, String plankStairsId, String plankSlabId, + String fenceId, String fenceGateId, + String doorId, String trapdoorId, + String buttonId, String pressurePlateId, + SaplingGenerator saplingGenerator, MapColor woodColor, MapColor barkColor, MapColor leafColor + ) { + var saplingSettings = AbstractBlock.Settings.copy(Blocks.OAK_SAPLING).mapColor(woodColor); + var flowerPotSettings = AbstractBlock.Settings.copy(Blocks.POTTED_OAK_SAPLING); + var logSettings = AbstractBlock.Settings.copy(Blocks.OAK_LOG).mapColor(barkColor); + var leavesSettings = AbstractBlock.Settings.copy(Blocks.OAK_LEAVES).mapColor(leafColor); + var plankSettings = AbstractBlock.Settings.copy(Blocks.OAK_PLANKS).mapColor(woodColor); + var doorSettings = AbstractBlock.Settings.copy(Blocks.OAK_DOOR).mapColor(woodColor); + var trapdoorSettings = AbstractBlock.Settings.copy(Blocks.OAK_TRAPDOOR).mapColor(woodColor); + var buttonSettings = AbstractBlock.Settings.copy(Blocks.OAK_BUTTON).mapColor(woodColor); + var pressurePlateSettings = AbstractBlock.Settings.copy(Blocks.OAK_PRESSURE_PLATE).mapColor(woodColor); + + + SaplingBlock sapling = add(saplingId, new SaplingBlock(saplingGenerator, saplingSettings), cutoutRenderLayer); + PillarBlock strippedLog = add(strippedLogId, new PillarBlock(logSettings), flammableLog); + PillarBlock strippedWood = add(strippedWoodId, new PillarBlock(logSettings), flammableLog); + Block planks = add(plankId, new Block(plankSettings), flammablePlanks); + return new WoodBlockSet( + sapling, add(flowerPotId, new FlowerPotBlock(sapling, flowerPotSettings)), + add(logId, new PillarBlock(logSettings), flammableLog, stripsTo(strippedLog)), add(woodId, new PillarBlock(logSettings), flammableLog, stripsTo(strippedWood)), strippedLog, strippedWood, + add(leavesId, new LeavesBlock(leavesSettings), flammableLeaves, cutoutMippedRenderLayer), + planks, add(plankStairsId, new ParadiseLostStairsBlock(planks.getDefaultState(), plankSettings), flammablePlanks), add(plankSlabId, new SlabBlock(plankSettings), flammablePlanks), + add(fenceId, new FenceBlock(plankSettings), flammablePlanks), add(fenceGateId, new FenceGateBlock(plankSettings), flammablePlanks), + add(doorId, new DoorBlock(doorSettings)), add(trapdoorId, new TrapdoorBlock(trapdoorSettings)), + add(buttonId, new WoodenButtonBlock(buttonSettings)), add(pressurePlateId, new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, pressurePlateSettings)) + ); + } + + private static WoodBlockSet registerWoodBlockSet( + SaplingBlock sapling, FlowerPotBlock flowerPot, + String logId, String woodId, String strippedLogId, String strippedWoodId, + LeavesBlock leaves, + String plankId, String plankStairsId, String plankSlabId, + String fenceId, String fenceGateId, + String doorId, String trapdoorId, + String buttonId, String pressurePlateId, + MapColor woodColor, MapColor barkColor + ) { + var logSettings = AbstractBlock.Settings.copy(Blocks.OAK_LOG).mapColor(barkColor); + var plankSettings = AbstractBlock.Settings.copy(Blocks.OAK_PLANKS).mapColor(woodColor); + var doorSettings = AbstractBlock.Settings.copy(Blocks.OAK_DOOR).mapColor(woodColor); + var trapdoorSettings = AbstractBlock.Settings.copy(Blocks.OAK_TRAPDOOR).mapColor(woodColor); + var buttonSettings = AbstractBlock.Settings.copy(Blocks.OAK_BUTTON).mapColor(woodColor); + var pressurePlateSettings = AbstractBlock.Settings.copy(Blocks.OAK_PRESSURE_PLATE).mapColor(woodColor); + + PillarBlock strippedLog = add(strippedLogId, new PillarBlock(logSettings), flammableLog); + PillarBlock strippedWood = add(strippedWoodId, new PillarBlock(logSettings), flammableLog); + Block planks = add(plankId, new Block(plankSettings), flammablePlanks); + return new WoodBlockSet( + sapling, flowerPot, + add(logId, new PillarBlock(logSettings), flammableLog, stripsTo(strippedLog)), add(woodId, new PillarBlock(logSettings), flammableLog, stripsTo(strippedWood)), strippedLog, strippedWood, + leaves, + planks, add(plankStairsId, new ParadiseLostStairsBlock(planks.getDefaultState(), plankSettings), flammablePlanks), add(plankSlabId, new SlabBlock(plankSettings), flammablePlanks), + add(fenceId, new FenceBlock(plankSettings), flammablePlanks), add(fenceGateId, new FenceGateBlock(plankSettings), flammablePlanks), + add(doorId, new DoorBlock(doorSettings)), add(trapdoorId, new TrapdoorBlock(trapdoorSettings)), + add(buttonId, new WoodenButtonBlock(buttonSettings)), add(pressurePlateId, new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, pressurePlateSettings)) + ); + } + + private static WoodBlockSet registerWoodBlockSet( + String saplingId, String flowerPotId, + String logId, String woodId, String strippedLogId, String strippedWoodId, + LeavesBlock leaves, + String plankId, String plankStairsId, String plankSlabId, + String fenceId, String fenceGateId, + String doorId, String trapdoorId, + String buttonId, String pressurePlateId, + SaplingGenerator saplingGenerator, MapColor woodColor, MapColor barkColor + ) { + var saplingSettings = AbstractBlock.Settings.copy(Blocks.OAK_SAPLING).mapColor(woodColor); + var flowerPotSettings = AbstractBlock.Settings.copy(Blocks.POTTED_OAK_SAPLING); + var logSettings = AbstractBlock.Settings.copy(Blocks.OAK_LOG).mapColor(barkColor); + var plankSettings = AbstractBlock.Settings.copy(Blocks.OAK_PLANKS).mapColor(woodColor); + var doorSettings = AbstractBlock.Settings.copy(Blocks.OAK_DOOR).mapColor(woodColor); + var trapdoorSettings = AbstractBlock.Settings.copy(Blocks.OAK_TRAPDOOR).mapColor(woodColor); + var buttonSettings = AbstractBlock.Settings.copy(Blocks.OAK_BUTTON).mapColor(woodColor); + var pressurePlateSettings = AbstractBlock.Settings.copy(Blocks.OAK_PRESSURE_PLATE).mapColor(woodColor); + + SaplingBlock sapling = add(saplingId, new SaplingBlock(saplingGenerator, saplingSettings), cutoutRenderLayer); + PillarBlock strippedLog = add(strippedLogId, new PillarBlock(logSettings), flammableLog); + PillarBlock strippedWood = add(strippedWoodId, new PillarBlock(logSettings), flammableLog); + Block planks = add(plankId, new Block(plankSettings), flammablePlanks); + return new WoodBlockSet( + sapling, add(flowerPotId, new FlowerPotBlock(sapling, flowerPotSettings)), + add(logId, new PillarBlock(logSettings), flammableLog, stripsTo(strippedLog)), add(woodId, new PillarBlock(logSettings), flammableLog, stripsTo(strippedWood)), strippedLog, strippedWood, + leaves, + planks, add(plankStairsId, new ParadiseLostStairsBlock(planks.getDefaultState(), plankSettings), flammablePlanks), add(plankSlabId, new SlabBlock(plankSettings), flammablePlanks), + add(fenceId, new FenceBlock(plankSettings), flammablePlanks), add(fenceGateId, new FenceGateBlock(plankSettings), flammablePlanks), + add(doorId, new DoorBlock(doorSettings)), add(trapdoorId, new TrapdoorBlock(trapdoorSettings)), + add(buttonId, new WoodenButtonBlock(buttonSettings)), add(pressurePlateId, new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, pressurePlateSettings)) + ); + } + + public record WoodBlockSet( + SaplingBlock sapling, FlowerPotBlock flowerPot, + PillarBlock log, PillarBlock wood, PillarBlock strippedLog, PillarBlock strippedWood, + LeavesBlock leaves, + Block plank, StairsBlock plankStairs, SlabBlock plankSlab, + FenceBlock fence, FenceGateBlock fenceGate, + DoorBlock door, TrapdoorBlock trapdoor, + WoodenButtonBlock button, PressurePlateBlock pressurePlate + ) implements Iterable { + public @NotNull Iterator iterator() { + return Arrays.stream(new Block[]{ + sapling, flowerPot, + log, wood, strippedLog, strippedWood, + leaves, + plank, plankStairs, plankSlab, + fence, fenceGate, + door, trapdoor, + button, pressurePlate + }).iterator(); + } + } + + // SIGN SET + + public static SignSet registerSignSet(String woodId) { + SignType signType = SignTypeAccessor.callRegister(new ParadiseLostSignType(MOD_ID + "_" + woodId)); + + var signSettings = AbstractBlock.Settings.copy(Blocks.OAK_SIGN); + + SignBlock signBlock = new SignBlock(signSettings, signType); + WallSignBlock wallSignBlock = new WallSignBlock(signSettings.dropsLike(signBlock), signType); + + ((BlockEntityTypeAccessor) BlockEntityType.SIGN).getBlocks().add(signBlock); + ((BlockEntityTypeAccessor) BlockEntityType.SIGN).getBlocks().add(wallSignBlock); + + add(woodId + "_sign", signBlock); + add(woodId + "_wall_sign", wallSignBlock); + + return new SignSet(signType, signBlock, wallSignBlock); + } + + public record SignSet( + SignType type, + SignBlock sign, + WallSignBlock wallSign + ) implements Iterable { + public @NotNull Iterator iterator() { + return Arrays.stream(new Block[]{sign, wallSign}).iterator(); + } + } +} diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 7ae9ea8ec..8c8170fdc 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -2,7 +2,6 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.id.incubus_core.woodtypefactory.api.chest.ChestFactory; import net.id.paradiselost.ParadiseLost; import net.id.paradiselost.blocks.decorative.*; import net.id.paradiselost.blocks.mechanical.CherineCampfireBlock; @@ -32,17 +31,16 @@ import net.id.paradiselost.tag.ParadiseLostBlockTags; import net.id.paradiselost.world.feature.tree.generator.*; import net.id.incubus_core.util.RegistryQueue.Action; -import net.id.incubus_core.woodtypefactory.api.WoodSettingsFactory; -import net.id.incubus_core.woodtypefactory.api.WoodTypeFactory; import net.minecraft.block.*; import net.minecraft.block.AbstractBlock.Settings; +import net.minecraft.client.render.TexturedRenderLayers; +import net.minecraft.client.util.SpriteIdentifier; import net.minecraft.entity.effect.StatusEffects; import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.state.property.Properties; import net.minecraft.tag.BlockTags; +import net.minecraft.util.Identifier; import net.minecraft.util.math.intprovider.UniformIntProvider; import net.minecraft.util.registry.Registry; - import java.util.List; import static net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings.copy; @@ -50,6 +48,7 @@ import static net.id.paradiselost.ParadiseLost.locate; import static net.id.paradiselost.blocks.ParadiseLostBlockActions.*; import static net.minecraft.block.Blocks.*; +import static net.id.paradiselost.blocks.BlockRegistration.*; @SuppressWarnings("unused") public class ParadiseLostBlocks { @@ -178,119 +177,53 @@ protected static Settings flowerPot() { public static final CampfireBlock CHERINE_CAMPFIRE = add("cherine_campfire", new CherineCampfireBlock(false, 1, Settings.copy(CAMPFIRE)), cutoutRenderLayer); + protected static Settings leafPile() { + return of(Material.REPLACEABLE_PLANT).strength(0.2f).sounds(BlockSoundGroup.VINE).nonOpaque().suffocates(never).blockVision(never); + } // Aurel Wood - private static final WoodSettingsFactory aurelColors = new WoodSettingsFactory(MapColor.DARK_RED, MapColor.DARK_RED); - public static final WoodTypeFactory AUREL = new WoodTypeFactory(aurelColors, locate("aurel"), new AurelSaplingGenerator()); - public static final ChestFactory AUREL_CHEST_FACTORY = new ChestFactory(ParadiseLost.MOD_ID, "skyroot", AUREL.settings.chest()); - - - public static final SaplingBlock AUREL_SAPLING = AUREL.sapling(); - public static final FlowerPotBlock POTTED_AUREL_SAPLING = AUREL.pottedSapling(); - public static final PillarBlock AUREL_LOG = AUREL.log(); - public static final PillarBlock AUREL_WOOD = AUREL.wood(); - public static final PillarBlock STRIPPED_AUREL_LOG = AUREL.strippedLog(); - public static final PillarBlock STRIPPED_AUREL_WOOD = AUREL.strippedWood(); - public static final PillarBlock MOTTLED_AUREL_LOG = add("mottled_aurel_log", new PillarBlock(aurelColors.log()), flammableLog, stripsTo(STRIPPED_AUREL_LOG)); - public static final ChuteBlock MOTTLED_AUREL_FALLEN_LOG = add("mottled_aurel_fallen_log", new ChuteBlock(aurelColors.log()), flammableLog, cutoutRenderLayer); - public static final LeavesBlock AUREL_LEAVES = AUREL.leaves(); - public static final LeafPileBlock AUREL_LEAF_PILE = add("aurel_leaf_pile", new LeafPileBlock(aurelColors.leafPile()), flammableLeaves, cutoutMippedRenderLayer); - public static final Block AUREL_PLANKS = AUREL.planks(); - public static final Block AUREL_BOOKSHELF = add("aurel_bookshelf", new Block(copy(BOOKSHELF).mapColor(aurelColors.plankColor())), flammable(30, 20)); - public static final FenceBlock AUREL_FENCE = AUREL.fence(); - public static final FenceGateBlock AUREL_FENCE_GATE = AUREL.fenceGate(); - public static final SlabBlock AUREL_SLAB = AUREL.slab(); - public static final StairsBlock AUREL_STAIRS = AUREL.stairs(); - public static final TrapdoorBlock AUREL_TRAPDOOR = AUREL.trapdoor(); - public static final DoorBlock AUREL_DOOR = AUREL.door(); - public static final WoodenButtonBlock AUREL_BUTTON = AUREL.button(); - public static final PressurePlateBlock AUREL_PRESSURE_PLATE = AUREL.pressurePlate(); - public static final SignBlock AUREL_SIGN = AUREL.signFactory().signBlock; - public static final WallSignBlock AUREL_WALL_SIGN = AUREL.signFactory().wallSignBlock; + public static final WoodBlockSet AUREL_WOODSTUFF = registerWoodBlockSet("aurel", new AurelSaplingGenerator(), MapColor.DARK_RED, MapColor.DARK_RED, MapColor.PALE_GREEN); + public static final PillarBlock MOTTLED_AUREL_LOG = add("mottled_aurel_log", new PillarBlock(copy(OAK_LOG).mapColor(MapColor.DARK_RED)), flammableLog, stripsTo(AUREL_WOODSTUFF.strippedLog())); + public static final ChuteBlock MOTTLED_AUREL_FALLEN_LOG = add("mottled_aurel_fallen_log", new ChuteBlock(copy(OAK_LOG).mapColor(MapColor.DARK_RED)), flammableLog, cutoutRenderLayer); + public static final LeafPileBlock AUREL_LEAF_PILE = add("aurel_leaf_pile", new LeafPileBlock(leafPile().mapColor(MapColor.PALE_GREEN)), flammableLeaves, cutoutMippedRenderLayer); + public static final Block AUREL_BOOKSHELF = add("aurel_bookshelf", new Block(copy(BOOKSHELF).mapColor(MapColor.DARK_RED)), flammable(30, 20)); + public static final SignSet AUREL_SIGNS = registerSignSet("aurel"); // Mother Aurel Wood - private static final WoodSettingsFactory motherAurelColors = new WoodSettingsFactory(MapColor.OAK_TAN, MapColor.TERRACOTTA_RED, MapColor.GOLD, MapColor.TERRACOTTA_RED); - public static final WoodTypeFactory MOTHER_AUREL = new WoodTypeFactory(motherAurelColors, locate("mother_aurel")); - public static final ChestFactory MOTHER_AUREL_CHEST_FACTORY = new ChestFactory(ParadiseLost.MOD_ID, "golden_oak", MOTHER_AUREL.settings.chest()); - - public static final SaplingBlock MOTHER_AUREL_SAPLING = add("mother_aurel_sapling", new ParadiseLostSaplingBlock(new MotherAurelSaplingGenerator(), motherAurelColors.sapling().luminance(state -> 7)), cutoutRenderLayer); - public static final FlowerPotBlock POTTED_MOTHER_AUREL_SAPLING = add("potted_mother_aurel_sapling", new FlowerPotBlock(MOTHER_AUREL_SAPLING, flowerPot().luminance(state -> 7)), cutoutRenderLayer); - public static final PillarBlock MOTHER_AUREL_LOG = MOTHER_AUREL.log(); - public static final PillarBlock MOTHER_AUREL_WOOD = MOTHER_AUREL.wood(); - public static final PillarBlock STRIPPED_MOTHER_AUREL_LOG = MOTHER_AUREL.strippedLog(); - public static final PillarBlock STRIPPED_MOTHER_AUREL_WOOD = MOTHER_AUREL.strippedWood(); - public static final ParadiseLostLeavesBlock MOTHER_AUREL_LEAVES = add("mother_aurel_leaves", new ParadiseLostLeavesBlock(motherAurelColors.leaves().luminance((value -> 11)), true), flammableLeaves, cutoutMippedRenderLayer); - public static final Block MOTHER_AUREL_PLANKS = MOTHER_AUREL.planks(); - public static final FenceBlock MOTHER_AUREL_FENCE = MOTHER_AUREL.fence(); - public static final FenceGateBlock MOTHER_AUREL_FENCE_GATE = MOTHER_AUREL.fenceGate(); - public static final SlabBlock MOTHER_AUREL_SLAB = MOTHER_AUREL.slab(); - public static final StairsBlock MOTHER_AUREL_STAIRS = MOTHER_AUREL.stairs(); - public static final TrapdoorBlock MOTHER_AUREL_TRAPDOOR = MOTHER_AUREL.trapdoor(); - public static final DoorBlock MOTHER_AUREL_DOOR = MOTHER_AUREL.door(); - public static final WoodenButtonBlock MOTHER_AUREL_BUTTON = MOTHER_AUREL.button(); - public static final PressurePlateBlock MOTHER_AUREL_PRESSURE_PLATE = MOTHER_AUREL.pressurePlate(); - public static final SignBlock MOTHER_AUREL_SIGN = MOTHER_AUREL.signFactory().signBlock; - public static final WallSignBlock MOTHER_AUREL_WALL_SIGN = MOTHER_AUREL.signFactory().wallSignBlock; + public static final WoodBlockSet MOTHER_AUREL_WOODSTUFF = registerWoodBlockSetMotherAurel(); + public static final SignSet MOTHER_AUREL_SIGNS = registerSignSet("mother_aurel"); // Orange Wood - private static final WoodSettingsFactory orangeColors = new WoodSettingsFactory(MapColor.RAW_IRON_PINK, MapColor.TERRACOTTA_LIGHT_GRAY, MapColor.GREEN); - public static final WoodTypeFactory ORANGE = new WoodTypeFactory(orangeColors, locate("orange"), new OrangeSaplingGenerator()); - - public static final SaplingBlock ORANGE_SAPLING = ORANGE.sapling(); - public static final FlowerPotBlock POTTED_ORANGE_SAPLING = ORANGE.pottedSapling(); - public static final PillarBlock ORANGE_LOG = ORANGE.log(); - public static final PillarBlock ORANGE_WOOD = ORANGE.wood(); - public static final PillarBlock STRIPPED_ORANGE_LOG = ORANGE.strippedLog(); - public static final PillarBlock STRIPPED_ORANGE_WOOD = ORANGE.strippedWood(); - public static final FruitingLeavesBlock ORANGE_LEAVES = add("orange_leaves", new FruitingLeavesBlock(orangeColors.leaves().sounds(BlockSoundGroup.AZALEA_LEAVES), () -> ParadiseLostItems.ORANGE), flammableLeaves, cutoutMippedRenderLayer); - public static final Block ORANGE_PLANKS = ORANGE.planks(); - public static final FenceBlock ORANGE_FENCE = ORANGE.fence(); - public static final FenceGateBlock ORANGE_FENCE_GATE = ORANGE.fenceGate(); - public static final SlabBlock ORANGE_SLAB = ORANGE.slab(); - public static final StairsBlock ORANGE_STAIRS = ORANGE.stairs(); - public static final TrapdoorBlock ORANGE_TRAPDOOR = ORANGE.trapdoor(); - public static final DoorBlock ORANGE_DOOR = ORANGE.door(); - public static final WoodenButtonBlock ORANGE_BUTTON = ORANGE.button(); - public static final PressurePlateBlock ORANGE_PRESSURE_PLATE = ORANGE.pressurePlate(); - public static final SignBlock ORANGE_SIGN = ORANGE.signFactory().signBlock; - public static final WallSignBlock ORANGE_WALL_SIGN = ORANGE.signFactory().wallSignBlock; + public static final WoodBlockSet ORANGE_WOODSTUFF = registerWoodBlockSetOrange(); + public static final SignSet ORANGE_SIGNS = registerSignSet("orange"); // Wisteria Wood - private static final WoodSettingsFactory wisteriaColors = new WoodSettingsFactory(MapColor.PALE_YELLOW, MapColor.BROWN); - public static final WoodTypeFactory WISTERIA = new WoodTypeFactory(wisteriaColors, locate("wisteria")); - - public static final PillarBlock WISTERIA_LOG = WISTERIA.log(); - public static final PillarBlock WISTERIA_WOOD = WISTERIA.wood(); - public static final PillarBlock STRIPPED_WISTERIA_LOG = WISTERIA.strippedLog(); - public static final PillarBlock STRIPPED_WISTERIA_WOOD = WISTERIA.strippedWood(); - public static final Block WISTERIA_PLANKS = WISTERIA.planks(); - public static final FenceBlock WISTERIA_FENCE = WISTERIA.fence(); - public static final FenceGateBlock WISTERIA_FENCE_GATE = WISTERIA.fenceGate(); - public static final SlabBlock WISTERIA_SLAB = WISTERIA.slab(); - public static final StairsBlock WISTERIA_STAIRS = WISTERIA.stairs(); - public static final TrapdoorBlock WISTERIA_TRAPDOOR = WISTERIA.trapdoor(); - public static final DoorBlock WISTERIA_DOOR = WISTERIA.door(); - public static final WoodenButtonBlock WISTERIA_BUTTON = WISTERIA.button(); - public static final PressurePlateBlock WISTERIA_PRESSURE_PLATE = WISTERIA.pressurePlate(); - public static final SignBlock WISTERIA_SIGN = WISTERIA.signFactory().signBlock; - public static final WallSignBlock WISTERIA_WALL_SIGN = WISTERIA.signFactory().wallSignBlock; - - private static final WoodSettingsFactory roseWisteriaColors = wisteriaColors.withLeafColor(MapColor.PINK); - public static final WisteriaLeavesBlock ROSE_WISTERIA_LEAVES = add("rose_wisteria_leaves", new WisteriaLeavesBlock(roseWisteriaColors.noCollideLeaves(), false), flammableLeaves, cutoutMippedRenderLayer); - public static final LeafPileBlock ROSE_WISTERIA_LEAF_PILE = add("rose_wisteria_leaf_pile", new LeafPileBlock(roseWisteriaColors.leafPile()), flammableLeaves, cutoutMippedRenderLayer); - public static final SaplingBlock ROSE_WISTERIA_SAPLING = add("rose_wisteria_sapling", new ParadiseLostSaplingBlock(new RoseWisteriaSaplingGenerator(), roseWisteriaColors.sapling()), cutoutRenderLayer); + public static final WoodBlockSet WISTERIA_WOODSTUFF = registerWoodBlockSetWisteria(); + public static final SignSet WISTERIA_SIGNS = registerSignSet("wisteria"); + + protected static Settings wisteriaLeaf() { + return copy(OAK_LEAVES); + } + protected static Settings wisteriaHanger() { + return of(Material.DECORATION).strength(0.2f).noCollision().breakInstantly().sounds(BlockSoundGroup.GRASS).suffocates(never).blockVision(never); + } + protected static Settings wisteriaSapling() { + return copy(Blocks.OAK_SAPLING); + } + + public static final WisteriaLeavesBlock ROSE_WISTERIA_LEAVES = add("rose_wisteria_leaves", new WisteriaLeavesBlock(wisteriaLeaf().mapColor(MapColor.PINK), false), flammableLeaves, cutoutMippedRenderLayer); + public static final LeafPileBlock ROSE_WISTERIA_LEAF_PILE = add("rose_wisteria_leaf_pile", new LeafPileBlock(leafPile().mapColor(MapColor.PINK)), flammableLeaves, cutoutMippedRenderLayer); + public static final SaplingBlock ROSE_WISTERIA_SAPLING = add("rose_wisteria_sapling", new ParadiseLostSaplingBlock(new RoseWisteriaSaplingGenerator(), wisteriaSapling().mapColor(MapColor.PINK)), cutoutRenderLayer); public static final FlowerPotBlock POTTED_ROSE_WISTERIA_SAPLING = add("potted_rose_wisteria_sapling", new FlowerPotBlock(ROSE_WISTERIA_SAPLING, flowerPot()), cutoutRenderLayer); - public static final ParadiseLostHangerBlock ROSE_WISTERIA_HANGER = add("rose_wisteria_hanger", new ParadiseLostHangerBlock(roseWisteriaColors.hanger()), flammableLeaves, cutoutRenderLayer); + public static final ParadiseLostHangerBlock ROSE_WISTERIA_HANGER = add("rose_wisteria_hanger", new ParadiseLostHangerBlock(wisteriaHanger().mapColor(MapColor.PINK)), flammableLeaves, cutoutRenderLayer); - private static final WoodSettingsFactory frostWisteriaColors = wisteriaColors.withLeafColor(MapColor.LIGHT_BLUE); - public static final WisteriaLeavesBlock FROST_WISTERIA_LEAVES = add("frost_wisteria_leaves", new WisteriaLeavesBlock(frostWisteriaColors.noCollideLeaves(), false), flammableLeaves, cutoutMippedRenderLayer); - public static final LeafPileBlock FROST_WISTERIA_LEAF_PILE = add("frost_wisteria_leaf_pile", new LeafPileBlock(frostWisteriaColors.leafPile()), flammableLeaves, cutoutMippedRenderLayer); - public static final SaplingBlock FROST_WISTERIA_SAPLING = add("frost_wisteria_sapling", new ParadiseLostSaplingBlock(new FrostWisteriaSaplingGenerator(), frostWisteriaColors.sapling()), cutoutRenderLayer); + public static final WisteriaLeavesBlock FROST_WISTERIA_LEAVES = add("frost_wisteria_leaves", new WisteriaLeavesBlock(wisteriaLeaf().mapColor(MapColor.LIGHT_BLUE), false), flammableLeaves, cutoutMippedRenderLayer); + public static final LeafPileBlock FROST_WISTERIA_LEAF_PILE = add("frost_wisteria_leaf_pile", new LeafPileBlock(leafPile().mapColor(MapColor.LIGHT_BLUE)), flammableLeaves, cutoutMippedRenderLayer); + public static final SaplingBlock FROST_WISTERIA_SAPLING = add("frost_wisteria_sapling", new ParadiseLostSaplingBlock(new FrostWisteriaSaplingGenerator(), wisteriaSapling().mapColor(MapColor.LIGHT_BLUE)), cutoutRenderLayer); public static final FlowerPotBlock POTTED_FROST_WISTERIA_SAPLING = add("potted_frost_wisteria_sapling", new FlowerPotBlock(FROST_WISTERIA_SAPLING, flowerPot()), cutoutRenderLayer); - public static final ParadiseLostHangerBlock FROST_WISTERIA_HANGER = add("frost_wisteria_hanger", new ParadiseLostHangerBlock(frostWisteriaColors.hanger()), flammableLeaves, cutoutRenderLayer); + public static final ParadiseLostHangerBlock FROST_WISTERIA_HANGER = add("frost_wisteria_hanger", new ParadiseLostHangerBlock(wisteriaHanger().mapColor(MapColor.LIGHT_BLUE)), flammableLeaves, cutoutRenderLayer); - private static final WoodSettingsFactory lavenderWisteriaColors = wisteriaColors.withLeafColor(MapColor.MAGENTA); - public static final WisteriaLeavesBlock LAVENDER_WISTERIA_LEAVES = add("lavender_wisteria_leaves", new WisteriaLeavesBlock(lavenderWisteriaColors.noCollideLeaves(), false), flammableLeaves, cutoutMippedRenderLayer); - public static final LeafPileBlock LAVENDER_WISTERIA_LEAF_PILE = add("lavender_wisteria_leaf_pile", new LeafPileBlock(lavenderWisteriaColors.leafPile()), flammableLeaves, cutoutMippedRenderLayer); - public static final SaplingBlock LAVENDER_WISTERIA_SAPLING = add("lavender_wisteria_sapling", new ParadiseLostSaplingBlock(new LavenderWisteriaSaplingGenerator(), lavenderWisteriaColors.sapling()), cutoutRenderLayer); + public static final WisteriaLeavesBlock LAVENDER_WISTERIA_LEAVES = add("lavender_wisteria_leaves", new WisteriaLeavesBlock(wisteriaLeaf().mapColor(MapColor.MAGENTA), false), flammableLeaves, cutoutMippedRenderLayer); + public static final LeafPileBlock LAVENDER_WISTERIA_LEAF_PILE = add("lavender_wisteria_leaf_pile", new LeafPileBlock(leafPile().mapColor(MapColor.MAGENTA)), flammableLeaves, cutoutMippedRenderLayer); + public static final SaplingBlock LAVENDER_WISTERIA_SAPLING = add("lavender_wisteria_sapling", new ParadiseLostSaplingBlock(new LavenderWisteriaSaplingGenerator(), wisteriaSapling().mapColor(MapColor.MAGENTA)), cutoutRenderLayer); public static final FlowerPotBlock POTTED_LAVENDER_WISTERIA_SAPLING = add("potted_lavender_wisteria_sapling", new FlowerPotBlock(LAVENDER_WISTERIA_SAPLING, flowerPot()), cutoutRenderLayer); - public static final ParadiseLostHangerBlock LAVENDER_WISTERIA_HANGER = add("lavender_wisteria_hanger", new ParadiseLostHangerBlock(lavenderWisteriaColors.hanger()), flammableLeaves, cutoutRenderLayer); + public static final ParadiseLostHangerBlock LAVENDER_WISTERIA_HANGER = add("lavender_wisteria_hanger", new ParadiseLostHangerBlock(wisteriaHanger().mapColor(MapColor.MAGENTA)), flammableLeaves, cutoutRenderLayer); // Grasses private static Settings shrub() { @@ -390,70 +323,29 @@ private static Settings cherineTorch() { // public static final DungeonSwitchBlock DUNGEON_SWITCH = add("dungeonswitch", new DungeonSwitchBlock(of(Material.METAL, MapColor.BLUE).strength(-1.0F, 3600000.0F))); // Chests - public static final ChestFactory CRYSTAL_CHEST_FACTORY = new ChestFactory(ParadiseLost.MOD_ID, "crystal", AUREL.settings.chest()); - - public static final ChestBlock CRYSTAL_CHEST = add("crystal_chest", CRYSTAL_CHEST_FACTORY.chest); - public static final ChestBlock MOTHER_AUREL_CHEST = add("golden_oak_chest", MOTHER_AUREL_CHEST_FACTORY.chest); - public static final ChestBlock ORANGE_CHEST = ORANGE.chestFactory().chest; - public static final ChestBlock AUREL_CHEST = add("skyroot_chest", AUREL_CHEST_FACTORY.chest); - public static final ChestBlock WISTERIA_CHEST = WISTERIA.chestFactory().chest; - - @SafeVarargs - private static V add(String id, V block, Action... additionalActions) { - return ParadiseLostRegistryQueues.BLOCK.add(locate(id), block, additionalActions); - } - - /* - This is the same thing the add method above, but it doesn't wait to register or perform the actions. - This is required because some block settings code uses ID caches, so without it some blocks - behave like air. - */ - @SafeVarargs - private static T addImmediately(String name, T block, Action... actions) { - var id = locate(name); - Registry.register(Registry.BLOCK, id, block); - for (var action : actions) { - action.accept(id, block); - } - return block; - } +// public static final ChestBlock CRYSTAL_CHEST = add("crystal_chest", CRYSTAL_CHEST_FACTORY.chest); +// public static final ChestBlock MOTHER_AUREL_CHEST = add("golden_oak_chest", MOTHER_AUREL_CHEST_FACTORY.chest); +// public static final ChestBlock ORANGE_CHEST = ORANGE.chestFactory().chest; +// public static final ChestBlock AUREL_CHEST = add("skyroot_chest", AUREL_CHEST_FACTORY.chest); +// public static final ChestBlock WISTERIA_CHEST = WISTERIA.chestFactory().chest; public static void init() { ParadiseLostRegistryQueues.BLOCK.register(); - - for (var woodType : List.of(AUREL, MOTHER_AUREL, ORANGE, WISTERIA)) { - woodType.registerCreatedBlocks(); - woodType.registerFlammability(); - woodType.registerStripping(); - } } @Environment(EnvType.CLIENT) public static void initClient() { - for (var woodType : List.of(AUREL, MOTHER_AUREL, ORANGE, WISTERIA)) { - woodType.registerBlockEntityRenderers(); - woodType.registerRenderLayers(); + for (var signSet : List.of(AUREL_SIGNS, MOTHER_AUREL_SIGNS, ORANGE_SIGNS, WISTERIA_SIGNS)) { + TexturedRenderLayers.WOOD_TYPE_TEXTURES.put( + signSet.type(), new SpriteIdentifier( + TexturedRenderLayers.SIGNS_ATLAS_TEXTURE, new Identifier("entity/signs/" + signSet.type().getName()) + ) + ); } - AUREL_CHEST_FACTORY.registerChestRenderers(); - MOTHER_AUREL_CHEST_FACTORY.registerChestRenderers(); - CRYSTAL_CHEST_FACTORY.registerChestRenderers(); +// AUREL_CHEST_FACTORY.registerChestRenderers(); +// MOTHER_AUREL_CHEST_FACTORY.registerChestRenderers(); +// CRYSTAL_CHEST_FACTORY.registerChestRenderers(); } - private static class ParadiseLostFarmlandBlock extends FarmlandBlock { - ParadiseLostFarmlandBlock(Settings settings) { - super(settings); - } - } - private static class ParadiseLostPaneBlock extends PaneBlock { - ParadiseLostPaneBlock(Settings settings) { - super(settings); - } - } - - private static class ParadiseLostStairsBlock extends StairsBlock { - ParadiseLostStairsBlock(BlockState baseBlockState, Settings settings) { - super(baseBlockState, settings); - } - } } diff --git a/src/main/java/net/id/paradiselost/blocks/blockentity/FoodBowlBlockEntity.java b/src/main/java/net/id/paradiselost/blocks/blockentity/FoodBowlBlockEntity.java index a337025a5..a5ce68234 100644 --- a/src/main/java/net/id/paradiselost/blocks/blockentity/FoodBowlBlockEntity.java +++ b/src/main/java/net/id/paradiselost/blocks/blockentity/FoodBowlBlockEntity.java @@ -1,7 +1,6 @@ package net.id.paradiselost.blocks.blockentity; import net.id.paradiselost.blocks.mechanical.FoodBowlBlock; -import net.id.incubus_core.be.InventoryBlockEntity; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.entity.ItemEntity; @@ -15,7 +14,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class FoodBowlBlockEntity extends BlockEntity implements InventoryBlockEntity { +public class FoodBowlBlockEntity extends BlockEntity { private final DefaultedList inventory; public FoodBowlBlockEntity(BlockPos pos, BlockState state) { @@ -57,19 +56,7 @@ private void updateState() { world.setBlockState(pos, getCachedState().with(FoodBowlBlock.FULL, !inventory.get(0).isEmpty())); } - @Override - public @NotNull HopperStrategy getHopperStrategy() { - return HopperStrategy.IN_ANY_OUT_BOTTOM; - } - - @SuppressWarnings("ConstantConditions") - @Override - public boolean canInsert(int slot, ItemStack stack, @Nullable Direction dir) { - return InventoryBlockEntity.super.canInsert(slot, stack, dir) && stack.isFood() && stack.getItem().getFoodComponent().isMeat(); - } - - @Override - public DefaultedList getItems() { - return inventory; + public ItemStack getContainedItem() { + return inventory.get(0); } } diff --git a/src/main/java/net/id/paradiselost/blocks/blockentity/IncubatorBlockEntity.java b/src/main/java/net/id/paradiselost/blocks/blockentity/IncubatorBlockEntity.java index 133cbadaa..1fe15fa74 100644 --- a/src/main/java/net/id/paradiselost/blocks/blockentity/IncubatorBlockEntity.java +++ b/src/main/java/net/id/paradiselost/blocks/blockentity/IncubatorBlockEntity.java @@ -3,7 +3,6 @@ import net.id.paradiselost.component.MoaGenes; import net.id.paradiselost.items.ParadiseLostItems; import net.id.paradiselost.util.ParadiseLostSoundEvents; -import net.id.incubus_core.be.InventoryBlockEntity; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.entity.player.PlayerEntity; @@ -18,7 +17,7 @@ import java.util.UUID; -public class IncubatorBlockEntity extends BlockEntity implements InventoryBlockEntity { +public class IncubatorBlockEntity extends BlockEntity { private UUID owner; private int hatchTicks = 100; @@ -52,9 +51,12 @@ public void handleUse(PlayerEntity player, Hand hand, ItemStack handStack) { hatchTicks = (int) (12000 / world.getBiome(pos).value().getTemperature()); } - @Override - public DefaultedList getItems() { - return inventory; + public boolean hasItem() { + return !inventory.isEmpty(); + } + + public ItemStack getItem() { + return inventory.get(0); } @Override @@ -69,8 +71,4 @@ public void readNbt(NbtCompound nbt) { hatchTicks = nbt.getInt("hatchTicks"); } - @Override - public @NotNull HopperStrategy getHopperStrategy() { - return HopperStrategy.ALL_PASS; - } } diff --git a/src/main/java/net/id/paradiselost/blocks/blockentity/TreeTapBlockEntity.java b/src/main/java/net/id/paradiselost/blocks/blockentity/TreeTapBlockEntity.java index b0f0d80f0..7279887c9 100644 --- a/src/main/java/net/id/paradiselost/blocks/blockentity/TreeTapBlockEntity.java +++ b/src/main/java/net/id/paradiselost/blocks/blockentity/TreeTapBlockEntity.java @@ -1,12 +1,13 @@ package net.id.paradiselost.blocks.blockentity; -import net.id.incubus_core.be.InventoryBlockEntity; import net.id.paradiselost.recipe.ParadiseLostRecipeTypes; import net.id.paradiselost.recipe.TreeTapRecipe; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.HopperBlockEntity; +import net.minecraft.block.entity.LootableContainerBlockEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.Inventories; import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; @@ -14,20 +15,21 @@ import net.minecraft.network.Packet; import net.minecraft.network.listener.ClientPlayPacketListener; import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; +import net.minecraft.screen.ScreenHandler; import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.state.property.Properties; +import net.minecraft.text.Text; import net.minecraft.util.Hand; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Optional; -public class TreeTapBlockEntity extends BlockEntity implements InventoryBlockEntity { +public class TreeTapBlockEntity extends LootableContainerBlockEntity { private final DefaultedList inventory; @@ -47,24 +49,13 @@ public void handleUse(PlayerEntity player, Hand hand, ItemStack handStack) { markDirty(); } - @Override - public boolean canInsert(int slot, ItemStack stack, @Nullable Direction dir) { - return this.getHopperStrategy().canInsert(dir) && this.inventory.get(0).isEmpty(); - } - - @Override - public boolean canExtract(int slot, ItemStack stack, Direction dir) { - return this.getHopperStrategy().canExtract(dir); - } - - @Override - public @NotNull HopperStrategy getHopperStrategy() { - return HopperStrategy.IN_ANY; + public DefaultedList getItems() { + return inventory; } @Override - public DefaultedList getItems() { - return inventory; + public int size() { + return 1; } @Override @@ -76,6 +67,16 @@ public void setStack(int slot, ItemStack stack) { inventoryChanged(); } + @Override + protected DefaultedList getInvStackList() { + return null; + } + + @Override + protected void setInvStackList(DefaultedList list) { + + } + private void inventoryChanged() { markDirty(); if (world != null && !world.isClient) updateInClientWorld(); @@ -94,7 +95,17 @@ public void writeNbt(NbtCompound nbt) { Inventories.writeNbt(nbt, inventory); } - public BlockState getTappedState() { + @Override + protected Text getContainerName() { + return null; + } + + @Override + protected ScreenHandler createScreenHandler(int syncId, PlayerInventory playerInventory) { + return null; + } + + public BlockState getTappedState() { return this.world.getBlockState(this.pos.offset(getCachedState().get(Properties.HORIZONTAL_FACING).getOpposite())); } diff --git a/src/main/java/net/id/paradiselost/blocks/natural/plant/LichenBlock.java b/src/main/java/net/id/paradiselost/blocks/natural/plant/LichenBlock.java deleted file mode 100644 index a623ea9a7..000000000 --- a/src/main/java/net/id/paradiselost/blocks/natural/plant/LichenBlock.java +++ /dev/null @@ -1,129 +0,0 @@ -package net.id.paradiselost.blocks.natural.plant; - -import net.id.incubus_core.condition.api.ConditionAPI; -import net.id.incubus_core.condition.api.Persistence; -import net.id.incubus_core.condition.base.ConditionManager; -import net.id.paradiselost.effect.condition.Conditions; -import net.id.paradiselost.tag.ParadiseLostBlockTags; -import net.id.paradiselost.util.ParadiseLostSoundEvents; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.piston.PistonBehavior; -import net.minecraft.entity.Entity; -import net.minecraft.entity.FallingBlockEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.random.Random; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; - -public class LichenBlock extends FallingBlock { - - public static final BooleanProperty ALLOW_FALL = BooleanProperty.of("allow_fall"); - public static final VoxelShape WALKING_SHAPE = Block.createCuboidShape(0, 0, 0, 16, 8, 16); - - private final boolean venomous; - - public LichenBlock(Settings settings, boolean venomous) { - super(settings); - this.venomous = venomous; - setDefaultState(getDefaultState().with(ALLOW_FALL, false)); - } - - @Override - public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { - entity.fallDistance = 0; - if (venomous) { - entity.slowMovement(state, new Vec3d(0.65D, 0.875D, 0.65D)); - if (entity instanceof LivingEntity livingEntity) { - ConditionManager manager = ConditionAPI.getConditionManager(livingEntity); - manager.add(Conditions.VENOM, Persistence.TEMPORARY, 1F); - } - } - else { - entity.slowMovement(state, new Vec3d(0.85D, 0.9D, 0.85D)); - } - } - - @Override - public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { - for (int i = random.nextInt(2); i < 3; i++) { - BlockPos.streamOutwards(pos, 3, 2, 3) - .filter(temp -> world.getBlockState(temp).isIn(ParadiseLostBlockTags.LICHEN_SPREADABLES)) - .filter(temp -> world.isAir(temp.up()) && world.getLightLevel(temp.up()) <= 9) - .filter(temp -> random.nextBoolean()) - .findFirst() - .ifPresent(spreadPoint -> { - world.setBlockState(spreadPoint, getDefaultState()); - world.playSound(null, spreadPoint, ParadiseLostSoundEvents.BLOCK_LICHEN_SPREADS, SoundCategory.BLOCKS, 1, 0.9F + random.nextFloat() / 10); - }); - } - } - - @Override - public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - return WALKING_SHAPE; - } - - @Override - public float getJumpVelocityMultiplier() { - return 0.9F; - } - - @Override - public void onSteppedOn(World world, BlockPos topPos, BlockState state, Entity entity) { - BlockPos pos = topPos.down(venomous ? 2 : 4); - while (pos.getY() != topPos.getY() + 1) { - tryFall(world, pos, state); - pos = pos.up(); - } - } - - @Override - public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { - if (state.get(ALLOW_FALL)) { - tryFall(world, pos, state); - } - } - - public void tryFall(World world, BlockPos pos, BlockState state) { - if (canFallThrough(world.getBlockState(pos.down())) && pos.getY() >= world.getBottomY()) { - if (state.getPistonBehavior().equals(PistonBehavior.BLOCK) || state.getBlock().getHardness() == -1F) { - return; - } - FallingBlockEntity fallingBlockEntity = FallingBlockEntity.spawnFromBlock(world, pos, state); - this.configureFallingBlockEntity(fallingBlockEntity); - - BlockPos.iterateOutwards(pos, 1, 0, 1).forEach(checkPos -> { - var checkState = world.getBlockState(checkPos); - if (!checkPos.equals(pos) && checkState.isOf(this)) { - world.setBlockState(checkPos, checkState.with(ALLOW_FALL, true)); - } - }); - } - } - - @Override - protected int getFallDelay() { - return 3; - } - - @Override - public int getColor(BlockState state, BlockView world, BlockPos pos) { - return venomous ? 0x4d333c : 0x503639; - } - - @Override - protected void appendProperties(StateManager.Builder builder) { - super.appendProperties(builder); - builder.add(ALLOW_FALL); - } -} diff --git a/src/main/java/net/id/paradiselost/blocks/natural/plant/LichenPileBlock.java b/src/main/java/net/id/paradiselost/blocks/natural/plant/LichenPileBlock.java deleted file mode 100644 index 2fece969d..000000000 --- a/src/main/java/net/id/paradiselost/blocks/natural/plant/LichenPileBlock.java +++ /dev/null @@ -1,86 +0,0 @@ -package net.id.paradiselost.blocks.natural.plant; - -import net.id.paradiselost.effect.condition.Conditions; -import net.id.paradiselost.tag.ParadiseLostBlockTags; -import net.id.incubus_core.condition.api.ConditionAPI; -import net.id.incubus_core.condition.api.Persistence; -import net.id.incubus_core.condition.base.ConditionManager; -import net.minecraft.block.*; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.random.Random; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; - -public class LichenPileBlock extends FallingBlock implements Fertilizable { - - public static final VoxelShape SHAPE = Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 2.0D, 16.0D); - public static final VoxelShape WALKING_SHAPE = Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 1.0D, 16.0D); - - private final boolean venomous; - - public LichenPileBlock(Settings settings, boolean venomous) { - super(settings); - this.venomous = venomous; - } - - @Override - public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { - if (venomous) { - entity.slowMovement(state, new Vec3d(0.925D, 1D, 0.925D)); - if (entity instanceof LivingEntity livingEntity) { - ConditionManager manager = ConditionAPI.getConditionManager(livingEntity); - manager.add(Conditions.VENOM, Persistence.TEMPORARY, 0.6F); - } - } - else { - entity.slowMovement(state, new Vec3d(0.975D, 1D, 0.975D)); - } - } - - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - return SHAPE; - } - - @Override - public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - return WALKING_SHAPE; - } - - @Override - protected int getFallDelay() { - return 3; - } - - @Override - public int getColor(BlockState state, BlockView world, BlockPos pos) { - return venomous ? 0x4d333c : 0x503639; - } - - @Override - public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { - return true; - } - - @Override - public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { - return true; - } - - @Override - public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { - BlockPos.streamOutwards(pos, 3, 1, 3) - .filter(world::isAir) - .filter(temp -> { - var floor = world.getBlockState(temp); - return floor.getBlock() instanceof LichenBlock || floor.isIn(ParadiseLostBlockTags.LICHEN_SPREADABLES); - }) - .filter(temp -> random.nextInt(60) == 0) - .forEach(spreadPoint -> world.setBlockState(spreadPoint, getDefaultState())); - } -} diff --git a/src/main/java/net/id/paradiselost/blocks/natural/tree/ParadiseLostLeavesBlock.java b/src/main/java/net/id/paradiselost/blocks/natural/tree/ParadiseLostLeavesBlock.java index 4862a48d7..786f44722 100644 --- a/src/main/java/net/id/paradiselost/blocks/natural/tree/ParadiseLostLeavesBlock.java +++ b/src/main/java/net/id/paradiselost/blocks/natural/tree/ParadiseLostLeavesBlock.java @@ -47,7 +47,7 @@ public void onEntityCollision(BlockState state, World world, BlockPos pos, Entit @Override public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { - if (state.isOf(ParadiseLostBlocks.MOTHER_AUREL_LEAVES) && random.nextInt(75) == 0) { + if (state.isOf(ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.leaves()) && random.nextInt(75) == 0) { Direction direction = Direction.DOWN; BlockPos blockPos = pos.offset(direction); BlockState blockState = world.getBlockState(blockPos); diff --git a/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java b/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java index 1bbdabda4..762527db8 100644 --- a/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java +++ b/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java @@ -21,8 +21,6 @@ public class ParadiseLostModelLayers { public static final EntityModelLayer HELLENROSE = register("hellenrose", "main", ParadiseLostPlantModel.getTexturedModelData()); public static final EntityModelLayer PARADISE_HARE = register("corsican_hare", "main", ParadiseHareModel.getTexturedModelData()); public static final EntityModelLayer MOA = register("moa", "main", MoaModel.getTexturedModelData()); - public static final EntityModelLayer ROOK = register("rook", "main", RookModel.getTexturedModelData()); - public static final EntityModelLayer ROOK_GLOW = register("rook_glow", "glow", RookModel.getTexturedModelData()); public static final EntityModelLayer AMBYST = register("ambyst", "main", AmbystModel.getTexturedModelData()); public static final EntityModelLayer PHOENIX_ARMOR = register("phoenix_armor", "main", PhoenixArmorModel.getTexturedModelData()); diff --git a/src/main/java/net/id/paradiselost/client/model/entity/RookModel.java b/src/main/java/net/id/paradiselost/client/model/entity/RookModel.java deleted file mode 100644 index f08985a23..000000000 --- a/src/main/java/net/id/paradiselost/client/model/entity/RookModel.java +++ /dev/null @@ -1,80 +0,0 @@ -package net.id.paradiselost.client.model.entity; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.component.LUV; -import net.id.paradiselost.entities.misc.RookEntity; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.model.*; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.entity.model.EntityModel; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.math.MathHelper; - -@Environment(EnvType.CLIENT) -public class RookModel extends EntityModel { - - private final ModelPart body; - - public float lookAlpha, translation, blinkTicks; - - public RookModel(ModelPart root) { - body = root.getChild("body"); - } - - public static TexturedModelData getTexturedModelData() { - ModelData modelData = new ModelData(); - var mainData = modelData.getRoot(); - mainData.addChild("body", ModelPartBuilder.create().uv(0, 0).cuboid(-16, -8, 0, 32, 32, 0), ModelTransform.NONE); - return TexturedModelData.of(modelData, 64, 64); - } - - @Override - public void setAngles(RookEntity rook, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) { - var cameraEntity = MinecraftClient.getInstance().getCameraEntity(); - var cameraPos = cameraEntity.getEyePos(); - var rookPos = rook.getPos(); - - byte luv = 127; - - if (cameraEntity instanceof PlayerEntity player) { - luv = LUV.getLUV(player).getValue(); - } - - - var difX = rook.getX() - cameraEntity.getX(); - var difZ = rook.getZ() - cameraEntity.getZ(); - var angle = (float) MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(difZ, difX)) + 90); - - var faceValue = MathHelper.angleBetween(angle, MathHelper.wrapDegrees(cameraEntity.getHeadYaw())) / 180; - - lookAlpha = MathHelper.lerp(faceValue, 0.8F, 0); - - lookAlpha = (float) MathHelper.lerp(cameraPos.distanceTo(rookPos) / 12F, 0, lookAlpha); - - if (lookAlpha < 0.075F || cameraPos.distanceTo(rookPos) < 4.5F) { - lookAlpha = 0F; - } - - if (luv >= 0 && luv < 40) { - lookAlpha = 0F; - } - else if (luv == 127 || luv < 0) { - lookAlpha = 0.7F; - } - - var time = rook.age + MinecraftClient.getInstance().getTickDelta(); - translation = (float) (Math.sin(time / 25) / 8 + 0.125); - - this.blinkTicks = rook.blinkTicks; - } - - @Override - public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) { - matrices.push(); - matrices.translate(0, -translation, 0); - body.render(matrices, vertices, light, overlay, red, green, blue, lookAlpha); - matrices.pop(); - } -} diff --git a/src/main/java/net/id/paradiselost/client/rendering/block/IncubatorBlockEntityRenderer.java b/src/main/java/net/id/paradiselost/client/rendering/block/IncubatorBlockEntityRenderer.java index a7e531746..4ef3b90d5 100644 --- a/src/main/java/net/id/paradiselost/client/rendering/block/IncubatorBlockEntityRenderer.java +++ b/src/main/java/net/id/paradiselost/client/rendering/block/IncubatorBlockEntityRenderer.java @@ -18,11 +18,11 @@ public IncubatorBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { @Override public void render(IncubatorBlockEntity entity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { - if (!entity.isEmpty()) { + if (entity.hasItem()) { matrices.push(); matrices.translate(0.5, 0.55, 0.5); matrices.scale(0.9F, 0.9F, 0.9F); - MinecraftClient.getInstance().getItemRenderer().renderItem(entity.getStack(0), ModelTransformation.Mode.FIXED, light, overlay, matrices, vertexConsumers, 0); + MinecraftClient.getInstance().getItemRenderer().renderItem(entity.getItem(), ModelTransformation.Mode.FIXED, light, overlay, matrices, vertexConsumers, 0); matrices.pop(); } } diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java b/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java index 499d2cb41..396daf0bf 100644 --- a/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java +++ b/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java @@ -5,10 +5,8 @@ import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; import net.id.incubus_core.blocklikeentities.api.client.BlockLikeEntityRenderer; import net.id.paradiselost.client.rendering.entity.hostile.HellenroseRenderer; -import net.id.paradiselost.client.rendering.entity.misc.RookRenderer; import net.id.paradiselost.client.rendering.entity.passive.ParadiseHareRenderer; import net.id.paradiselost.client.rendering.entity.passive.MoaEntityRenderer; -import net.id.paradiselost.client.rendering.entity.projectile.DartRenderer; import net.id.paradiselost.entities.ParadiseLostEntityTypes; import net.minecraft.client.render.entity.EntityRendererFactory; import net.minecraft.entity.Entity; @@ -28,14 +26,7 @@ public static void initClient() { register(ParadiseLostEntityTypes.MOA, MoaEntityRenderer::new); register(ParadiseLostEntityTypes.PARADISE_HARE, ParadiseHareRenderer::new); // register(ParadiseLostEntityTypes.AMBYST, AmbystRenderer::new); - // projectile - register(DartRenderer::new, - ParadiseLostEntityTypes.POISON_DART, - ParadiseLostEntityTypes.POISON_NEEDLE - ); - // other - register(ParadiseLostEntityTypes.ROOK, RookRenderer::new); } @SafeVarargs diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/misc/RookEyeFeatureRenderer.java b/src/main/java/net/id/paradiselost/client/rendering/entity/misc/RookEyeFeatureRenderer.java deleted file mode 100644 index e82007f26..000000000 --- a/src/main/java/net/id/paradiselost/client/rendering/entity/misc/RookEyeFeatureRenderer.java +++ /dev/null @@ -1,56 +0,0 @@ -package net.id.paradiselost.client.rendering.entity.misc; - -import com.google.common.collect.ImmutableList; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.ParadiseLost; -import net.id.paradiselost.client.model.entity.RookModel; -import net.id.paradiselost.entities.misc.RookEntity; -import net.minecraft.client.render.OverlayTexture; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; -import net.minecraft.client.render.entity.feature.FeatureRendererContext; -import net.minecraft.client.util.math.MatrixStack; - -import java.util.List; - -@Environment(EnvType.CLIENT) -public class RookEyeFeatureRenderer extends EyesFeatureRenderer { - - public static final List EYES; - private final FeatureRendererContext context; - - public RookEyeFeatureRenderer(FeatureRendererContext featureRendererContext) { - super(featureRendererContext); - this.context = featureRendererContext; - } - - @Override - public void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, RookEntity entity, float limbAngle, float limbDistance, float tickDelta, float animationProgress, float headYaw, float headPitch) { - var model = getContextModel(); - if (model.blinkTicks <= 0 && model.lookAlpha > 0.185F) { - VertexConsumer vertexConsumer = vertexConsumers.getBuffer(this.getEyesTexture(entity)); - this.getContextModel().render(matrices, vertexConsumer, 15728640, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1); - } - } - - @Override - public RenderLayer getEyesTexture() { - return EYES.get(0); - } - - public RenderLayer getEyesTexture(RookEntity entity) { - return EYES.get(entity.getAscencion()); - } - - static { - EYES = ImmutableList.of( - RenderLayer.getEyes(ParadiseLost.locate("textures/entity/corvid/rook_eye1.png")), - RenderLayer.getEyes(ParadiseLost.locate("textures/entity/corvid/rook_eye2.png")), - RenderLayer.getEyes(ParadiseLost.locate("textures/entity/corvid/rook_eye3.png")), - RenderLayer.getEyes(ParadiseLost.locate("textures/entity/corvid/rook_eye4.png")) - ); - } -} diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/misc/RookRenderer.java b/src/main/java/net/id/paradiselost/client/rendering/entity/misc/RookRenderer.java deleted file mode 100644 index cfc278672..000000000 --- a/src/main/java/net/id/paradiselost/client/rendering/entity/misc/RookRenderer.java +++ /dev/null @@ -1,54 +0,0 @@ -package net.id.paradiselost.client.rendering.entity.misc; - -import com.google.common.collect.ImmutableList; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.ParadiseLost; -import net.id.paradiselost.client.model.ParadiseLostModelLayers; -import net.id.paradiselost.client.model.entity.RookModel; -import net.id.paradiselost.entities.misc.RookEntity; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.render.entity.MobEntityRenderer; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.Identifier; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -@Environment(EnvType.CLIENT) -public class RookRenderer extends MobEntityRenderer { - - public static final List TEXTURES; - - public RookRenderer(EntityRendererFactory.Context context) { - super(context, new RookModel(context.getPart(ParadiseLostModelLayers.ROOK)), 0); - //addFeature(new RookEyeFeatureRenderer(this)); - } - - @Override - public void render(RookEntity mobEntity, float f, float g, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i) { - super.render(mobEntity, f, g, matrixStack, vertexConsumerProvider, i); - } - - @Nullable - @Override - protected RenderLayer getRenderLayer(RookEntity entity, boolean showBody, boolean translucent, boolean showOutline) { - return RenderLayer.getEntityTranslucent(getTexture(entity)); - } - - @Override - public Identifier getTexture(RookEntity entity) { - return TEXTURES.get(entity.getAscencion()); - } - - static { - TEXTURES = ImmutableList.of( - ParadiseLost.locate("textures/entity/corvid/rook1.png"), - ParadiseLost.locate("textures/entity/corvid/rook2.png"), - ParadiseLost.locate("textures/entity/corvid/rook3.png"), - ParadiseLost.locate("textures/entity/corvid/rook4.png") - ); - } -} diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/projectile/DartRenderer.java b/src/main/java/net/id/paradiselost/client/rendering/entity/projectile/DartRenderer.java deleted file mode 100644 index 55084d127..000000000 --- a/src/main/java/net/id/paradiselost/client/rendering/entity/projectile/DartRenderer.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.id.paradiselost.client.rendering.entity.projectile; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.ParadiseLost; -import net.id.paradiselost.entities.projectile.DartEntity; -import net.id.paradiselost.entities.projectile.PoisonNeedleEntity; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.render.entity.ProjectileEntityRenderer; -import net.minecraft.util.Identifier; - -@Environment(EnvType.CLIENT) -public class DartRenderer extends ProjectileEntityRenderer { - - public DartRenderer(EntityRendererFactory.Context renderManager) { - super(renderManager); - this.shadowOpacity = 0.0F; - } - - @Override - public Identifier getTexture(DartEntity entity) { - return ParadiseLost.locate("textures/entity/projectile/dart/poison" + (entity instanceof PoisonNeedleEntity ? "_needle" : "_dart") + ".png"); - } -} diff --git a/src/main/java/net/id/paradiselost/client/rendering/ui/BloodstoneHUDRenderer.java b/src/main/java/net/id/paradiselost/client/rendering/ui/BloodstoneHUDRenderer.java index 04e7952d2..136392a72 100644 --- a/src/main/java/net/id/paradiselost/client/rendering/ui/BloodstoneHUDRenderer.java +++ b/src/main/java/net/id/paradiselost/client/rendering/ui/BloodstoneHUDRenderer.java @@ -3,7 +3,6 @@ import com.mojang.blaze3d.systems.RenderSystem; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.id.incubus_core.condition.api.Severity; import net.id.paradiselost.ParadiseLost; import net.id.paradiselost.items.tools.bloodstone.*; import net.minecraft.client.MinecraftClient; @@ -137,21 +136,6 @@ private static void renderCondition(MatrixStack matrixStack, MinecraftClient cli RenderSystem.setShaderTexture(0, ParadiseLost.locate("textures/hud/bloodstone/condition_bar.png")); DrawableHelper.drawTexture(matrixStack, -7, -7, 0, 0, 109, 12, 109, 12); matrixStack.pop(); - - Text title = Text.translatable("condition.condition." + conditionData.id()).append(" - ").append(getSeverityWithColor(conditionData.severity())); - renderText(matrixStack, client, title, offsetX + 17, offsetY - 9); - } - - public static Text getSeverityWithColor(Float rawSeverity) { - Severity sev = Severity.getSeverity(rawSeverity); - MutableText text = Text.translatable(sev.getTranslationKey()); - return switch (sev) { - case EXTREME -> text.formatted(Formatting.GRAY); - case DIRE -> text.formatted(Formatting.RED); - case ACUTE -> text.formatted(Formatting.YELLOW); - case MILD -> text.formatted(Formatting.GREEN); - case NEGLIGIBLE -> text.formatted(Formatting.AQUA); - }; } private static void renderRing(MatrixStack matrixStack, int offsetX, int offsetY) { diff --git a/src/main/java/net/id/paradiselost/client/rendering/util/ParadiseLostColorProviders.java b/src/main/java/net/id/paradiselost/client/rendering/util/ParadiseLostColorProviders.java index 3c70c2fc5..35fae9a82 100644 --- a/src/main/java/net/id/paradiselost/client/rendering/util/ParadiseLostColorProviders.java +++ b/src/main/java/net/id/paradiselost/client/rendering/util/ParadiseLostColorProviders.java @@ -19,13 +19,13 @@ public static void initClient() { } private static void initBlocks() { - ColorProviderRegistryImpl.BLOCK.register(((state, world, pos, tintIndex) -> world != null && pos != null ? BiomeColors.getFoliageColor(world, pos) : FoliageColors.getDefaultColor()), ParadiseLostBlocks.AUREL_LEAVES, ParadiseLostBlocks.AUREL_LEAF_PILE, ParadiseLostBlocks.SHAMROCK); + ColorProviderRegistryImpl.BLOCK.register(((state, world, pos, tintIndex) -> world != null && pos != null ? BiomeColors.getFoliageColor(world, pos) : FoliageColors.getDefaultColor()), ParadiseLostBlocks.AUREL_WOODSTUFF.leaves(), ParadiseLostBlocks.AUREL_LEAF_PILE, ParadiseLostBlocks.SHAMROCK); ColorProviderRegistryImpl.BLOCK.register(((state, world, pos, tintIndex) -> world != null && pos != null ? BiomeColors.getGrassColor(world, pos) : GrassColors.getColor(0.5D, 1.0D)), ParadiseLostBlocks.HIGHLANDS_GRASS, ParadiseLostBlocks.GRASS, ParadiseLostBlocks.GRASS_FLOWERING, ParadiseLostBlocks.SHORT_GRASS, ParadiseLostBlocks.TALL_GRASS, ParadiseLostBlocks.FERN, ParadiseLostBlocks.BUSH); ColorProviderRegistryImpl.BLOCK.register(((state, world, pos, tintIndex) -> world != null && pos != null ? BiomeColors.getWaterColor(world, pos) : -1), ParadiseLostBlocks.SPRING_WATER); } private static void initItems() { - ColorProviderRegistryImpl.ITEM.register(((stack, tintIndex) -> 0xf1ff99), ParadiseLostBlocks.AUREL_LEAVES.asItem(), ParadiseLostBlocks.AUREL_LEAF_PILE.asItem(), ParadiseLostBlocks.SHAMROCK.asItem()); + ColorProviderRegistryImpl.ITEM.register(((stack, tintIndex) -> 0xf1ff99), ParadiseLostBlocks.AUREL_WOODSTUFF.leaves().asItem(), ParadiseLostBlocks.AUREL_LEAF_PILE.asItem(), ParadiseLostBlocks.SHAMROCK.asItem()); ColorProviderRegistryImpl.ITEM.register(((stack, tintIndex) -> tintIndex == 0 ? 0xa2dbc2 : -1), ParadiseLostBlocks.HIGHLANDS_GRASS.asItem(), ParadiseLostBlocks.GRASS.asItem(), ParadiseLostBlocks.GRASS_FLOWERING.asItem(), ParadiseLostBlocks.SHORT_GRASS.asItem(), ParadiseLostBlocks.TALL_GRASS.asItem(), ParadiseLostBlocks.FERN.asItem(), ParadiseLostBlocks.BUSH.asItem()); } diff --git a/src/main/java/net/id/paradiselost/commands/LUVCommand.java b/src/main/java/net/id/paradiselost/commands/LUVCommand.java deleted file mode 100644 index eb62abee1..000000000 --- a/src/main/java/net/id/paradiselost/commands/LUVCommand.java +++ /dev/null @@ -1,52 +0,0 @@ -package net.id.paradiselost.commands; - -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.arguments.IntegerArgumentType; -import net.id.paradiselost.component.LUV; -import net.id.incubus_core.misc.WorthinessChecker; -import net.minecraft.command.argument.EntityArgumentType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.server.command.ServerCommandSource; -import net.minecraft.text.Text; - -import java.util.Optional; - -import static net.minecraft.server.command.CommandManager.argument; -import static net.minecraft.server.command.CommandManager.literal; - -public class LUVCommand { - - public static void register(CommandDispatcher dispatcher) { - dispatcher.register(literal("LUV") - .requires((source) -> source.hasPermissionLevel(2)) - .then(literal("query") - .then(argument("target", EntityArgumentType.player()) - .executes((context) -> queryLUV(context.getSource(), EntityArgumentType.getPlayer(context, "target"))) - ) - ) - .then(literal("set") - .then(argument("target", EntityArgumentType.player()) - .then(argument("value", IntegerArgumentType.integer(-128, 128)) - .executes((context) -> setLUV(context.getSource(), EntityArgumentType.getPlayer(context, "target"), (byte) IntegerArgumentType.getInteger(context, "value"))) - ) - ) - ) - ); - } - - public static int queryLUV(ServerCommandSource source, PlayerEntity target) { - source.sendFeedback(Text.translatable("commands.paradise_lost.LUV.success.query", LUV.getLUV(target).getValue()), false); - return 1; - } - - public static int setLUV(ServerCommandSource source, PlayerEntity target, byte value) { - if (WorthinessChecker.isPlayerWorthy(target.getUuid(), Optional.of(target))) { - LUV.getLUV(target).setValue(value); - source.sendFeedback(Text.translatable("commands.paradise_lost.LUV.success.set", target.getDisplayName(), LUV.getLUV(target).getValue()), false); - } - else { - source.sendError(Text.translatable("commands.paradise_lost.LUV.failure.set")); - } - return 1; - } -} diff --git a/src/main/java/net/id/paradiselost/commands/ParadiseLostCommands.java b/src/main/java/net/id/paradiselost/commands/ParadiseLostCommands.java index 5d6863eae..dbe279238 100644 --- a/src/main/java/net/id/paradiselost/commands/ParadiseLostCommands.java +++ b/src/main/java/net/id/paradiselost/commands/ParadiseLostCommands.java @@ -13,7 +13,6 @@ public static void init() { register(MoaStatCommand::register); register(FloatingBlockCommand::register); register(LoreCommand::register); - register(LUVCommand::register); } private static void register(Consumer> command) { diff --git a/src/main/java/net/id/paradiselost/component/LUV.java b/src/main/java/net/id/paradiselost/component/LUV.java deleted file mode 100644 index 5bfb8bc62..000000000 --- a/src/main/java/net/id/paradiselost/component/LUV.java +++ /dev/null @@ -1,122 +0,0 @@ -package net.id.paradiselost.component; - -import dev.onyxstudios.cca.api.v3.component.sync.AutoSyncedComponent; -import dev.onyxstudios.cca.api.v3.component.tick.CommonTickingComponent; -import dev.onyxstudios.cca.api.v3.entity.PlayerComponent; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.random.Random; -import net.minecraft.world.World; - -/** - * What are you doing here? - * Dawn will soon break... - * Child of light, this is not for you to see. - * - * - * @author why, that is not for you to know, is it? - */ -public class LUV implements AutoSyncedComponent, CommonTickingComponent, PlayerComponent { - - private final PlayerEntity player; - private byte value; - - public LUV(PlayerEntity player) { - value = (byte) player.getRandom().nextInt(128); - this.player = player; - } - - public static LUV getLUV(PlayerEntity player) { - return ParadiseLostComponents.LUV.get(player); - } - - @Override - public void tick() { - var playerPos = player.getBlockPos(); - var world = player.getEntityWorld(); - var random = player.getRandom(); - - if (value >= 36 || world.getMoonPhase() == 0) { - handleRookSpawning(world, playerPos, random); - } - } - - public void handleRookSpawning(World world, BlockPos pos, Random random) { -// var dayTime = world.getTimeOfDay(); -// -// var rookCount = (long) world.getEntitiesByClass(RookEntity.class, Box.of(Vec3d.ofCenter(pos), 64, 64, 64), entity -> true).size(); -// var rookCap = (value == 48 || value == 100 || value >= 126) ? 64 : 16; -// -// var scaling = 0.5 + Math.sqrt(rookCount); -// var luvModifier = 1.0; -// -// if (world.getRegistryKey() == ParadiseLostDimension.PARADISE_LOST_WORLD_KEY) { -// if (value == 48 || (value >= 0 && value < 30)) -// luvModifier = 2; -// else if (value > 100 && value < 110) -// luvModifier = 0.5; -// else if (value < 0) -// luvModifier = 0.25; -// } -// else { -// luvModifier = 4; -// } -// -// if (rookCount < rookCap && world.getTime() % 20 == 0 && (dayTime > 14000 && dayTime < 22000)) { -// var posStream = BlockPos.streamOutwards(pos, 32, 32, 32); -// double finalLuvModifier = luvModifier; -// posStream -// .filter(blockPos -> blockPos.getManhattanDistance(pos) > 22) -// .forEach(blockPos -> { -// var upPos = blockPos.up(); -// var floorPos = blockPos.down(); -// var state = world.getBlockState(blockPos); -// var upState = world.getBlockState(upPos); -// var floorState = blockPos.down(); -// -// if (world.getLightLevel(LightType.BLOCK, blockPos) > 4 || state.isFullCube(world, blockPos) || upState.isFullCube(world, upPos) || world.isAir(floorPos)) -// return; -// -// var roofed = 3; -// -// for (int i = 1; i <= 4; i++) { -// var checkPos = upPos.up(i); -// if (!world.getBlockState(checkPos).isTranslucent(world, checkPos)) { -// roofed = 1; -// break; -// } -// } -// -// if (random.nextInt((int) (30000 * roofed * scaling * finalLuvModifier)) == 0) { -// var rook = new RookEntity(ParadiseLostEntityTypes.ROOK, world); -// rook.setPos(blockPos.getX() + 0.5, blockPos.getY() + 0.1, blockPos.getZ() + 0.5); -// world.spawnEntity(rook); -// } -// }); -// } - } - - public byte getValue() { - return value; - } - - public void setValue(byte value) { - this.value = value; - } - - @Override - public void readFromNbt(NbtCompound tag) { - value = tag.getByte("LUV"); - } - - @Override - public void writeToNbt(NbtCompound tag) { - tag.putByte("LUV", value); - } - - @Override - public boolean shouldCopyForRespawn(boolean lossless, boolean keepInventory, boolean sameCharacter) { - return sameCharacter; - } -} diff --git a/src/main/java/net/id/paradiselost/component/ParadiseLostComponents.java b/src/main/java/net/id/paradiselost/component/ParadiseLostComponents.java index 580511887..74406c2cc 100644 --- a/src/main/java/net/id/paradiselost/component/ParadiseLostComponents.java +++ b/src/main/java/net/id/paradiselost/component/ParadiseLostComponents.java @@ -13,13 +13,10 @@ public class ParadiseLostComponents implements EntityComponentInitializer { public static final ComponentKey MOA_GENETICS_KEY = ComponentRegistry.getOrCreate(ParadiseLost.locate("moa_genetics"), MoaGenes.class); public static final ComponentKey LORE_STATE = ComponentRegistry.getOrCreate(ParadiseLost.locate("lore_state"), LoreState.class); - - public static final ComponentKey LUV = ComponentRegistry.getOrCreate(ParadiseLost.locate("luv"), net.id.paradiselost.component.LUV.class); @Override public void registerEntityComponentFactories(EntityComponentFactoryRegistry registry) { registry.registerFor(MoaEntity.class, MOA_GENETICS_KEY, moa -> new MoaGenes()); registry.registerForPlayers(LORE_STATE, LoreState.Impl::new, RespawnCopyStrategy.ALWAYS_COPY); - registry.registerForPlayers(LUV, net.id.paradiselost.component.LUV::new); } } diff --git a/src/main/java/net/id/paradiselost/effect/ParadiseLostStatusEffects.java b/src/main/java/net/id/paradiselost/effect/ParadiseLostStatusEffects.java deleted file mode 100644 index 22e78334a..000000000 --- a/src/main/java/net/id/paradiselost/effect/ParadiseLostStatusEffects.java +++ /dev/null @@ -1,19 +0,0 @@ -package net.id.paradiselost.effect; - -import net.id.paradiselost.ParadiseLost; -import net.id.paradiselost.registry.ParadiseLostRegistryQueues; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectCategory; - -public class ParadiseLostStatusEffects { - - public static void init() { - ParadiseLostRegistryQueues.STATUS_EFFECT.register(); - } - - public static SimmeringStatusEffect SIMMERING = add("simmering", new SimmeringStatusEffect(StatusEffectCategory.BENEFICIAL, 0xFFFFFF)); - - private static V add(String id, V entry) { - return ParadiseLostRegistryQueues.STATUS_EFFECT.add(ParadiseLost.locate(id), entry); - } -} diff --git a/src/main/java/net/id/paradiselost/effect/SimmeringStatusEffect.java b/src/main/java/net/id/paradiselost/effect/SimmeringStatusEffect.java deleted file mode 100644 index a5125e848..000000000 --- a/src/main/java/net/id/paradiselost/effect/SimmeringStatusEffect.java +++ /dev/null @@ -1,40 +0,0 @@ -package net.id.paradiselost.effect; - -import net.id.paradiselost.util.ParadiseLostSoundEvents; -import net.id.incubus_core.condition.api.Condition; -import net.id.incubus_core.condition.api.ConditionModifier; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectCategory; -import net.minecraft.particle.ParticleTypes; - -public class SimmeringStatusEffect extends StatusEffect implements ConditionModifier { - - protected SimmeringStatusEffect(StatusEffectCategory category, int color) { - super(category, color); - } - - @Override - public void applyUpdateEffect(LivingEntity entity, int amplifier) { - var random = entity.getRandom(); - var world = entity.getEntityWorld(); - - if (world.getTime() % (random.nextInt(10) + 6) == 0) { - if (random.nextBoolean()) { - entity.heal(1F); - entity.playSound(ParadiseLostSoundEvents.EFFECT_SIMMERING_SIMMER, random.nextFloat() * 0.4F + 0.4F, random.nextFloat() * 0.5F + 1); - } - world.addParticle(ParticleTypes.CLOUD, entity.getParticleX(1), entity.getRandomBodyY(), entity.getParticleZ(1), 0.0D, 0.1, 0.0D); - } - } - - @Override - public boolean canApplyUpdateEffect(int duration, int amplifier) { - return true; - } - - @Override - public float getDecayMultiplier(Condition condition) { - return 2.25F; - } -} diff --git a/src/main/java/net/id/paradiselost/effect/condition/Conditions.java b/src/main/java/net/id/paradiselost/effect/condition/Conditions.java deleted file mode 100644 index dcbaa3a87..000000000 --- a/src/main/java/net/id/paradiselost/effect/condition/Conditions.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.id.paradiselost.effect.condition; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.ParadiseLost; -import net.id.paradiselost.client.rendering.ui.ParadiseLostOverlayRegistrar; -import net.id.incubus_core.condition.IncubusCondition; -import net.id.incubus_core.condition.api.Condition; -import net.id.incubus_core.condition.api.ConditionAPI; -import net.minecraft.util.registry.Registry; - -public class Conditions { - public static final Condition VENOM = register("venom", new VenomCondition()); - - private static Condition register(String id, Condition condition) { - return Registry.register(IncubusCondition.CONDITION_REGISTRY, ParadiseLost.locate(id), condition); - } - - public static void init() { - } - - @Environment(EnvType.CLIENT) - public static void clientInit() { - ParadiseLostOverlayRegistrar.register(new ParadiseLostOverlayRegistrar.Overlay( - ParadiseLost.locate("textures/hud/condition/venom.png"), - (player) -> ConditionAPI.isVisible(VENOM, player), - (player) -> { - var manager = ConditionAPI.getConditionManager(player); - return manager.getScaledSeverity(VENOM); - } - )); - } -} diff --git a/src/main/java/net/id/paradiselost/effect/condition/VenomCondition.java b/src/main/java/net/id/paradiselost/effect/condition/VenomCondition.java deleted file mode 100644 index 8e581b047..000000000 --- a/src/main/java/net/id/paradiselost/effect/condition/VenomCondition.java +++ /dev/null @@ -1,61 +0,0 @@ -package net.id.paradiselost.effect.condition; - -import net.id.paradiselost.client.rendering.particle.ParadiseLostParticles; -import net.id.paradiselost.tag.ParadiseLostEntityTypeTags; -import net.id.incubus_core.condition.api.Condition; -import net.id.incubus_core.condition.api.Severity; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.world.World; - -public class VenomCondition extends Condition { - - public VenomCondition() { - super(ParadiseLostEntityTypeTags.VENOM_IMMUNITY, 300, 300, 0.5F, 0.025F, 400, 0.05F); - } - - @Override - public void tick(World world, LivingEntity entity, Severity severity, float rawSeverity) { - if (rawSeverity > visThreshold && world.getTime() % 20 == 0) { - - StatusEffectInstance poisonEffect = new StatusEffectInstance(StatusEffects.POISON, 100, 0, true, false, true); - if (severity == Severity.MILD) { - poisonEffect = new StatusEffectInstance(StatusEffects.POISON, 100, 1, true, false, true); - } else if (severity == Severity.ACUTE) { - poisonEffect = new StatusEffectInstance(StatusEffects.POISON, 100, 2, true, false, true); - } else if (severity == Severity.DIRE || severity == Severity.EXTREME) { - poisonEffect = new StatusEffectInstance(StatusEffects.POISON, 200, 2, true, false, true); - } - - StatusEffectInstance witherEffect = null; - if (severity == Severity.DIRE || severity == Severity.EXTREME) { - witherEffect = new StatusEffectInstance(StatusEffects.WITHER, 100, 1, true, false, true); - } - - entity.addStatusEffect(poisonEffect); - if (witherEffect != null) { - entity.addStatusEffect(witherEffect); - } - } - } - - @Override - public void tickPlayer(World world, PlayerEntity player, Severity severity, float rawSeverity) { - tick(world, player, severity, rawSeverity); - } - - @Override - public void clientTick(ClientWorld world, LivingEntity entity, Severity severity, float rawSeverity) { - if (severity.isAsOrMoreSevere(Severity.MILD)) { - var random = world.getRandom(); - var self = MinecraftClient.getInstance().player == entity; - if (random.nextFloat() < ((severity.isAsOrMoreSevere(Severity.DIRE) ? 0.6 : 0.2) / (self ? 3 : 1))) { - world.addImportantParticle(ParadiseLostParticles.VENOM_BUBBLE, entity.getParticleX(1), entity.getRandomBodyY(), entity.getParticleZ(1), (entity.getVelocity().x / 15) + ((random.nextDouble() * 0.005) - 0.0025), 0.025 + random.nextDouble() * 0.035, (entity.getVelocity().z / 15) + ((random.nextDouble() * 0.005) - 0.0025)); - } - } - } -} diff --git a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java index 5b43b6c35..6fc802789 100644 --- a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java +++ b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java @@ -8,12 +8,10 @@ import net.id.paradiselost.entities.block.FloatingBlockEntity; import net.id.paradiselost.entities.block.SliderEntity; import net.id.paradiselost.entities.hostile.HellenroseEntity; -import net.id.paradiselost.entities.misc.RookEntity; import net.id.paradiselost.entities.passive.ParadiseHareEntity; import net.id.paradiselost.entities.passive.ParadiseLostAnimalEntity; import net.id.paradiselost.entities.passive.ambyst.FindLogSensor; import net.id.paradiselost.entities.passive.moa.MoaEntity; -import net.id.paradiselost.entities.projectile.*; import net.id.paradiselost.mixin.brain.ActivityInvoker; import net.id.paradiselost.mixin.brain.MemoryModuleTypeInvoker; import net.id.paradiselost.mixin.brain.SensorTypeInvoker; @@ -59,16 +57,9 @@ public class ParadiseLostEntityTypes { attributes(MoaEntity::createMoaAttributes), spawnRestrictions(ParadiseLostAnimalEntity::isValidNaturalParadiseLostSpawn)); public static final EntityType PARADISE_HARE = add("corsican_hare", of(ParadiseHareEntity::new, CREATURE, changing(0.55F, 0.55F), 5), attributes(ParadiseHareEntity::createParadiseHareAttributes), spawnRestrictions(ParadiseLostAnimalEntity::isValidNaturalParadiseLostSpawn)); - public static final EntityType ROOK = add("rook", of(RookEntity::new, MISC, fixed(0.75F, 1.8F), 5), - attributes(RookEntity::createRookAttributes), spawnRestrictions((type, world, spawnReason, pos, random) -> false)); // public static final EntityType AMBYST = add("ambyst", of(AmbystEntity::new, CREATURE, changing(0.6F, 0.42F), 5), // attributes(AmbystEntity::createAmbystAttributes), spawnRestrictions(ParadiseLostAnimalEntity::isValidNaturalParadiseLostSpawn)); - // Projectile - public static final EntityType POISON_DART = add("poison_dart", of(PoisonDartEntity::new, MISC, changing(0.5F, 0.5F), 5)); - public static final EntityType POISON_NEEDLE = add("poison_needle", of(PoisonNeedleEntity::new, MISC, changing(0.5F, 0.5F), 5)); - - //Brain public static final Activity HIDEINLOG = ActivityInvoker.invokeRegister(ParadiseLost.locate("hideinlog").toString()); diff --git a/src/main/java/net/id/paradiselost/entities/hostile/HellenroseEntity.java b/src/main/java/net/id/paradiselost/entities/hostile/HellenroseEntity.java index 45fd0d496..bd53cfb2e 100644 --- a/src/main/java/net/id/paradiselost/entities/hostile/HellenroseEntity.java +++ b/src/main/java/net/id/paradiselost/entities/hostile/HellenroseEntity.java @@ -1,7 +1,6 @@ package net.id.paradiselost.entities.hostile; import net.id.paradiselost.entities.passive.ParadiseLostAnimalEntity; -import net.id.paradiselost.entities.projectile.PoisonNeedleEntity; import net.id.paradiselost.items.ParadiseLostItems; import net.id.paradiselost.tag.ParadiseLostBlockTags; import net.id.paradiselost.util.ParadiseLostSoundEvents; @@ -20,6 +19,7 @@ import net.minecraft.entity.mob.HostileEntity; import net.minecraft.entity.passive.PassiveEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.projectile.ArrowEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.server.world.ServerWorld; @@ -98,7 +98,7 @@ public static boolean canSpawn(EntityType type, Serv @Override public void attack(LivingEntity targetIn, float distFactor) { - PoisonNeedleEntity needle = new PoisonNeedleEntity(this, this.world); + ArrowEntity needle = new ArrowEntity(this.world, this); double x = targetIn.getX() - this.getX(); double y = targetIn.getBoundingBox().minY + (double) (targetIn.getHeight() / 3.0F) - needle.getY(); double z = targetIn.getZ() - this.getZ(); diff --git a/src/main/java/net/id/paradiselost/entities/misc/RookEntity.java b/src/main/java/net/id/paradiselost/entities/misc/RookEntity.java deleted file mode 100644 index 9398c8579..000000000 --- a/src/main/java/net/id/paradiselost/entities/misc/RookEntity.java +++ /dev/null @@ -1,212 +0,0 @@ -package net.id.paradiselost.entities.misc; - -import net.id.paradiselost.component.LUV; -import net.id.paradiselost.util.ParadiseLostSoundEvents; -import net.minecraft.block.BlockState; -import net.minecraft.entity.*; -import net.minecraft.entity.attribute.DefaultAttributeContainer; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.data.DataTracker; -import net.minecraft.entity.data.TrackedData; -import net.minecraft.entity.data.TrackedDataHandlerRegistry; -import net.minecraft.entity.mob.MobEntity; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.network.Packet; -import net.minecraft.network.packet.s2c.play.EntitySpawnS2CPacket; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.LightType; -import net.minecraft.world.LocalDifficulty; -import net.minecraft.world.ServerWorldAccess; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; - -import java.util.Comparator; - -import static net.id.paradiselost.tag.ParadiseLostItemTags.RIGHTEOUS_WEAPONS; -import static net.id.paradiselost.tag.ParadiseLostItemTags.SACRED_WEAPONS; - -public class RookEntity extends MobEntity { - - public static final TrackedData ASCENSION = DataTracker.registerData(RookEntity.class, TrackedDataHandlerRegistry.BYTE); - public int blinkTicks = 0; - - public RookEntity(EntityType type, World world) { - super(type, world); - } - - public static DefaultAttributeContainer.Builder createRookAttributes() { - return createMobAttributes() - .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.25D) - .add(EntityAttributes.GENERIC_MAX_HEALTH, 5.0D); - } - - @Override - protected void initDataTracker() { - super.initDataTracker(); - dataTracker.startTracking(ASCENSION, (byte) 0); - } - - @Override - public void tick() { - super.tick(); - - if (blinkTicks > 0) { - blinkTicks--; - } - - if (world.getTimeOfDay() % 24000 < 13000) { - this.remove(RemovalReason.DISCARDED); - } - - world.getPlayers() - .stream() - .min(Comparator.comparing(player -> player.getPos().distanceTo(getPos()))) - .ifPresent(player -> { - getLookControl().lookAt(player, 15, 15); - - if (player.distanceTo(this) < 14) { - byte luv = LUV.getLUV(player).getValue(); - if (!player.isSpectator() && world.getLightLevel(LightType.BLOCK, player.getBlockPos()) < 5 && world.isNight() && world.getTime() % 10 == 0 && (luv > 50 || luv < 0)) { - if (random.nextInt(luv < 0 ? 40 : 200) == 0) { - //player.damage(ParadiseLostDamageSources.NIGHTMARE, 9); - produceParticlesServer(ParticleTypes.SMOKE, random.nextInt(19), 0, 0); - produceParticlesServer(ParticleTypes.LARGE_SMOKE, random.nextInt(8), 0, 0); - player.playSound(ParadiseLostSoundEvents.ENTITY_NIGHTMARE_HURT, SoundCategory.AMBIENT, 1, 0.85F + random.nextFloat() * 0.25F); - } - } - } - }); - bodyYaw = headYaw; - - if (world.getTime() % 20 == 0 && random.nextBoolean()) { - blinkTicks = random.nextInt(5); - } - } - - public void produceParticlesServer(ParticleEffect parameters, int rolls, int maxAmount, float yOffset) { - if (world instanceof ServerWorld server) { - maxAmount = maxAmount + 1; - for (int i = 0; i < rolls; ++i) { - double d = this.random.nextGaussian() * 0.02D; - double e = this.random.nextGaussian() * 0.02D; - double f = this.random.nextGaussian() * 0.02D; - server.spawnParticles(parameters, this.getParticleX(1.0D), this.getRandomBodyY() + yOffset, this.getParticleZ(1.0D), 1 + random.nextInt(maxAmount), d, e, f, 0); - } - } - } - - public int getAscencion() { - return MathHelper.clamp(dataTracker.get(ASCENSION), 0, 3); - } - - @Nullable - @Override - public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty, SpawnReason spawnReason, @Nullable EntityData entityData, @Nullable NbtCompound entityNbt) { - if (!(entityData instanceof RookData)) { - entityData = new RookData((byte) random.nextInt(4)); - } - dataTracker.set(ASCENSION, ((RookData) entityData).ascension); - return super.initialize(world, difficulty, spawnReason, entityData, entityNbt); - } - - @Override - public void readCustomDataFromNbt(NbtCompound nbt) { - if (nbt.contains("ascension")) { - dataTracker.set(ASCENSION, nbt.getByte("ascension")); - } - super.readCustomDataFromNbt(nbt); - } - - @Override - public void writeCustomDataToNbt(NbtCompound nbt) { - nbt.putByte("ascension", dataTracker.get(ASCENSION)); - super.writeCustomDataToNbt(nbt); - } - - @Override - public Packet createSpawnPacket() { - return new EntitySpawnS2CPacket(this); - } - - @Override - public boolean damage(DamageSource source, float amount) { - var attacker = source.getAttacker(); - var success = false; - - if (attacker instanceof LivingEntity entity) { - var weapon = entity.getStackInHand(Hand.MAIN_HAND); - if (weapon.isIn(RIGHTEOUS_WEAPONS)) { - amount /= 4; - success = true; - } else if (weapon.isIn(SACRED_WEAPONS)) { - success = true; - } - } - - if (success) { - return super.damage(source, amount); - } - - if (source.isOutOfWorld()) { - remove(RemovalReason.DISCARDED); - } - - return false; - } - - @Override - public void onDeath(DamageSource source) { - super.onDeath(source); - } - - @Nullable - @Override - protected SoundEvent getHurtSound(DamageSource source) { - return null; - } - - @Nullable - @Override - protected SoundEvent getDeathSound() { - return ParadiseLostSoundEvents.ENTITY_NIGHTMARE_DEATH; - } - - @Nullable - @Override - protected SoundEvent getAmbientSound() { - return ParadiseLostSoundEvents.ENTITY_NIGHTMARE_AMBIENT; - } - - @Override - public int getMinAmbientSoundDelay() { - return 250; - } - - @Override - protected void pushAway(Entity entity) { - } - - @Override - public void pushAwayFrom(Entity entity) { - } - - @Override - protected void fall(double heightDifference, boolean onGround, BlockState landedState, BlockPos landedPosition) { - } - - @Override - public boolean handleFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { - return false; - } - - public record RookData(byte ascension) implements EntityData { - } -} diff --git a/src/main/java/net/id/paradiselost/entities/passive/moa/MoaEntity.java b/src/main/java/net/id/paradiselost/entities/passive/moa/MoaEntity.java index 4603002de..230c3b75c 100644 --- a/src/main/java/net/id/paradiselost/entities/passive/moa/MoaEntity.java +++ b/src/main/java/net/id/paradiselost/entities/passive/moa/MoaEntity.java @@ -679,7 +679,7 @@ public boolean shouldResetPath() { protected boolean isTargetPos(WorldView world, BlockPos pos) { if (world.getBlockEntity(pos) instanceof FoodBowlBlockEntity foodBowl) { - ItemStack foodStack = foodBowl.getStack(0); + ItemStack foodStack = foodBowl.getContainedItem(); return foodStack.isFood() && foodStack.getItem().getFoodComponent().isMeat(); } return false; @@ -700,7 +700,7 @@ public void tick() { protected void tryEat() { if (world.getBlockEntity(targetPos) instanceof FoodBowlBlockEntity foodBowl) { - ItemStack foodStack = foodBowl.getStack(0); + ItemStack foodStack = foodBowl.getContainedItem(); if (foodStack.isFood() && foodStack.getItem().getFoodComponent().isMeat()) { feedMob(foodStack); } diff --git a/src/main/java/net/id/paradiselost/entities/projectile/DartEntity.java b/src/main/java/net/id/paradiselost/entities/projectile/DartEntity.java deleted file mode 100644 index 51ae16834..000000000 --- a/src/main/java/net/id/paradiselost/entities/projectile/DartEntity.java +++ /dev/null @@ -1,38 +0,0 @@ -package net.id.paradiselost.entities.projectile; - -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.projectile.PersistentProjectileEntity; -import net.minecraft.world.World; - -public abstract class DartEntity extends PersistentProjectileEntity { - protected int ticksInAir; - - public DartEntity(EntityType entityType, double x, double y, double z, World world) { - super(entityType, x, y, z, world); - this.setNoGravity(true); - } - - public DartEntity(EntityType entityType, LivingEntity owner, World world) { - super(entityType, owner, world); - this.setNoGravity(true); - } - - public DartEntity(EntityType entityType, World world) { - super(entityType, world); - this.setNoGravity(true); - } - - @Override - public void tick() { - super.tick(); - - if (!this.onGround) { - this.ticksInAir++; - } - - if (this.ticksInAir > 500) { - this.discard(); - } - } -} diff --git a/src/main/java/net/id/paradiselost/entities/projectile/PoisonDartEntity.java b/src/main/java/net/id/paradiselost/entities/projectile/PoisonDartEntity.java deleted file mode 100644 index 27749dcda..000000000 --- a/src/main/java/net/id/paradiselost/entities/projectile/PoisonDartEntity.java +++ /dev/null @@ -1,42 +0,0 @@ -package net.id.paradiselost.entities.projectile; - -import net.id.paradiselost.effect.condition.Conditions; -import net.id.paradiselost.entities.ParadiseLostEntityTypes; -import net.id.incubus_core.condition.api.ConditionAPI; -import net.id.incubus_core.condition.api.Persistence; -import net.id.incubus_core.condition.base.ConditionManager; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class PoisonDartEntity extends DartEntity { - public PoisonDartEntity(EntityType entityType, World world) { - super(entityType, world); - } - - protected PoisonDartEntity(EntityType entityType, double x, double y, double z, World world) { - super(entityType, x, y, z, world); - } - - protected PoisonDartEntity(EntityType entityType, LivingEntity owner, World world) { - super(entityType, owner, world); - } - - public PoisonDartEntity(LivingEntity owner, World world) { - this(ParadiseLostEntityTypes.POISON_DART, owner, world); - } - - @Override - protected void onHit(LivingEntity target) { - super.onHit(target); - - ConditionManager manager = ConditionAPI.getConditionManager(target); - manager.add(Conditions.VENOM, Persistence.TEMPORARY, 120F); // this is probably an appropriate value - } - - @Override - protected ItemStack asItemStack() { - return ItemStack.EMPTY; - } -} diff --git a/src/main/java/net/id/paradiselost/entities/projectile/PoisonNeedleEntity.java b/src/main/java/net/id/paradiselost/entities/projectile/PoisonNeedleEntity.java deleted file mode 100644 index 3f077ceda..000000000 --- a/src/main/java/net/id/paradiselost/entities/projectile/PoisonNeedleEntity.java +++ /dev/null @@ -1,29 +0,0 @@ -package net.id.paradiselost.entities.projectile; - -import net.id.paradiselost.entities.ParadiseLostEntityTypes; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class PoisonNeedleEntity extends PoisonDartEntity { - public PoisonNeedleEntity(EntityType entityType, World world) { - super(entityType, world); - this.setNoGravity(false); - } - - public PoisonNeedleEntity(double x, double y, double z, World world) { - super(ParadiseLostEntityTypes.POISON_NEEDLE, x, y, z, world); - this.setNoGravity(false); - } - - public PoisonNeedleEntity(LivingEntity owner, World world) { - super(ParadiseLostEntityTypes.POISON_NEEDLE, owner, world); - this.setNoGravity(false); - } - - @Override - protected ItemStack asItemStack() { - return ItemStack.EMPTY; - } -} diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 374e1080e..58f20f9ab 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -17,7 +17,6 @@ import net.id.paradiselost.items.tools.bloodstone.CherineBloodstoneItem; import net.id.paradiselost.items.tools.bloodstone.SurtrumBloodstoneItem; import net.id.paradiselost.items.tools.bloodstone.OlviteBloodstoneItem; -import net.id.paradiselost.items.utils.ParadiseLostRarity; import net.id.paradiselost.registry.ParadiseLostRegistryQueues; import net.id.incubus_core.util.RegistryQueue.Action; import net.minecraft.block.Block; @@ -72,7 +71,6 @@ 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); } @@ -118,7 +116,6 @@ private static Settings wearable() { private static final Settings WEARABLE = wearable(); private static final Settings RARE_WEARABLE = wearable().rarity(RARE); - private static final Settings PARADISE_LOST_LOOT_WEARABLE = wearable().rarity(ParadiseLostRarity.PARADISE_LOST_LOOT); // Olvite public static final ArmorItem OLVITE_HELMET = add("olvite_helmet", new ArmorItem(ParadiseLostArmorMaterials.OLVITE, HEAD, WEARABLE)); @@ -213,10 +210,10 @@ private static FabricItemSettings 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_PLANKS = add("aurel_planks", ParadiseLostBlocks.AUREL_WOODSTUFF.plank(), building_block()); + public static final BlockItem MOTHER_AUREL_PLANKS = add("mother_aurel_planks", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.plank(), building_block()); + public static final BlockItem ORANGE_PLANKS = add("orange_planks", ParadiseLostBlocks.ORANGE_WOODSTUFF.plank(), building_block()); + public static final BlockItem WISTERIA_PLANKS = add("wisteria_planks", ParadiseLostBlocks.WISTERIA_WOODSTUFF.plank(), 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()); @@ -231,34 +228,34 @@ private static FabricItemSettings building_block() { // move this somewhere else 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 AUREL_LOG = add("aurel_log", ParadiseLostBlocks.AUREL_WOODSTUFF.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 MOTHER_AUREL_LOG = add("mother_aurel_log", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.log(), building_block()); + public static final BlockItem ORANGE_LOG = add("orange_log", ParadiseLostBlocks.ORANGE_WOODSTUFF.log(), building_block()); + public static final BlockItem WISTERIA_LOG = add("wisteria_log", ParadiseLostBlocks.WISTERIA_WOODSTUFF.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.AUREL_WOODSTUFF.strippedLog(), building_block()); + public static final BlockItem STRIPPED_MOTHER_AUREL_LOG = add("stripped_mother_aurel_log", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.strippedLog(), building_block()); + public static final BlockItem STRIPPED_ORANGE_LOG = add("stripped_orange_log", ParadiseLostBlocks.ORANGE_WOODSTUFF.strippedLog(), building_block()); + public static final BlockItem STRIPPED_WISTERIA_LOG = add("stripped_wisteria_log", ParadiseLostBlocks.WISTERIA_WOODSTUFF.strippedLog(), 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.AUREL_WOODSTUFF.strippedWood(), building_block()); + public static final BlockItem STRIPPED_MOTHER_AUREL_WOOD = add("stripped_mother_aurel_wood", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.strippedWood(), building_block()); + public static final BlockItem STRIPPED_ORANGE_WOOD = add("stripped_orange_wood", ParadiseLostBlocks.ORANGE_WOODSTUFF.strippedWood(), building_block()); + public static final BlockItem STRIPPED_WISTERIA_WOOD = add("stripped_wisteria_wood", ParadiseLostBlocks.WISTERIA_WOODSTUFF.strippedWood(), 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_WOODSTUFF.wood(), building_block()); + public static final BlockItem MOTHER_AUREL_WOOD = add("mother_aurel_wood", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.wood(), building_block()); + public static final BlockItem ORANGE_WOOD = add("orange_wood", ParadiseLostBlocks.ORANGE_WOODSTUFF.wood(), building_block()); + public static final BlockItem WISTERIA_WOOD = add("wisteria_wood", ParadiseLostBlocks.WISTERIA_WOODSTUFF.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_WOODSTUFF.plankSlab(), building_block()); + public static final BlockItem MOTHER_AUREL_SLAB = add("mother_aurel_slab", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.plankSlab(), building_block()); + public static final BlockItem ORANGE_SLAB = add("orange_slab", ParadiseLostBlocks.ORANGE_WOODSTUFF.plankSlab(), building_block()); + public static final BlockItem WISTERIA_SLAB = add("wisteria_slab", ParadiseLostBlocks.WISTERIA_WOODSTUFF.plankSlab(), building_block()); // smooth stuff // cobble variants public static final BlockItem MOSSY_FLOESTONE = add("mossy_floestone", ParadiseLostBlocks.MOSSY_FLOESTONE, building_block()); @@ -280,10 +277,10 @@ private static FabricItemSettings 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_WOODSTUFF.plankStairs(), building_block()); + public static final BlockItem MOTHER_AUREL_STAIRS = add("mother_aurel_stairs", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.plankStairs(), building_block()); + public static final BlockItem ORANGE_STAIRS = add("orange_stairs", ParadiseLostBlocks.ORANGE_WOODSTUFF.plankStairs(), building_block()); + public static final BlockItem WISTERIA_STAIRS = add("wisteria_stairs", ParadiseLostBlocks.WISTERIA_WOODSTUFF.plankStairs(), 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()); @@ -316,16 +313,16 @@ private static FabricItemSettings decoration() { private static final FabricItemSettings hat = decoration().equipmentSlot(stack -> HEAD); // saplings - public static final BlockItem AUREL_SAPLING = add("aurel_sapling", ParadiseLostBlocks.AUREL_SAPLING, decoration, compostable30); - public static final BlockItem MOTHER_AUREL_SAPLING = add("mother_aurel_sapling", ParadiseLostBlocks.MOTHER_AUREL_SAPLING, decoration, compostable30); - public static final BlockItem ORANGE_SAPLING = add("orange_sapling", ParadiseLostBlocks.ORANGE_SAPLING, decoration, compostable30); + public static final BlockItem AUREL_SAPLING = add("aurel_sapling", ParadiseLostBlocks.AUREL_WOODSTUFF.sapling(), decoration, compostable30); + public static final BlockItem MOTHER_AUREL_SAPLING = add("mother_aurel_sapling", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.sapling(), decoration, compostable30); + public static final BlockItem ORANGE_SAPLING = add("orange_sapling", ParadiseLostBlocks.ORANGE_WOODSTUFF.sapling(), decoration, compostable30); public static final BlockItem ROSE_WISTERIA_SAPLING = add("rose_wisteria_sapling", ParadiseLostBlocks.ROSE_WISTERIA_SAPLING, decoration, compostable30); public static final BlockItem FROST_WISTERIA_SAPLING = add("frost_wisteria_sapling", ParadiseLostBlocks.FROST_WISTERIA_SAPLING, decoration, compostable30); public static final BlockItem LAVENDER_WISTERIA_SAPLING = add("lavender_wisteria_sapling", ParadiseLostBlocks.LAVENDER_WISTERIA_SAPLING, decoration, compostable30); // leaves - public static final BlockItem AUREL_LEAVES = add("aurel_leaves", ParadiseLostBlocks.AUREL_LEAVES, decoration, compostable30); - public static final BlockItem MOTHER_AUREL_LEAVES = add("mother_aurel_leaves", ParadiseLostBlocks.MOTHER_AUREL_LEAVES, decoration, compostable30); - public static final BlockItem ORANGE_LEAVES = add("orange_leaves", ParadiseLostBlocks.ORANGE_LEAVES, decoration, compostable30); + public static final BlockItem AUREL_LEAVES = add("aurel_leaves", ParadiseLostBlocks.AUREL_WOODSTUFF.leaves(), decoration, compostable30); + public static final BlockItem MOTHER_AUREL_LEAVES = add("mother_aurel_leaves", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.leaves(), decoration, compostable30); + public static final BlockItem ORANGE_LEAVES = add("orange_leaves", ParadiseLostBlocks.ORANGE_WOODSTUFF.leaves(), decoration, compostable30); public static final BlockItem ROSE_WISTERIA_LEAVES = add("rose_wisteria_leaves", ParadiseLostBlocks.ROSE_WISTERIA_LEAVES, decoration, compostable30); public static final BlockItem FROST_WISTERIA_LEAVES = add("frost_wisteria_leaves", ParadiseLostBlocks.FROST_WISTERIA_LEAVES, decoration, compostable30); public static final BlockItem LAVENDER_WISTERIA_LEAVES = add("lavender_wisteria_leaves", ParadiseLostBlocks.LAVENDER_WISTERIA_LEAVES, decoration, compostable30); @@ -381,25 +378,25 @@ private static FabricItemSettings decoration() { public static final BlockItem CHERINE_CAMPFIRE = add("cherine_campfire", ParadiseLostBlocks.CHERINE_CAMPFIRE, decoration); // door-like things - public static final BlockItem AUREL_DOOR = add("aurel_door", ParadiseLostBlocks.AUREL_DOOR, decoration); - public static final BlockItem MOTHER_AUREL_DOOR = add("mother_aurel_door", ParadiseLostBlocks.MOTHER_AUREL_DOOR, decoration); - public static final BlockItem ORANGE_DOOR = add("orange_door", ParadiseLostBlocks.ORANGE_DOOR, decoration); - public static final BlockItem WISTERIA_DOOR = add("wisteria_door", ParadiseLostBlocks.WISTERIA_DOOR, decoration); - - public static final BlockItem AUREL_TRAPDOOR = add("aurel_trapdoor", ParadiseLostBlocks.AUREL_TRAPDOOR, decoration); - public static final BlockItem MOTHER_AUREL_TRAPDOOR = add("mother_aurel_trapdoor", ParadiseLostBlocks.MOTHER_AUREL_TRAPDOOR, decoration); - public static final BlockItem ORANGE_TRAPDOOR = add("orange_trapdoor", ParadiseLostBlocks.ORANGE_TRAPDOOR, decoration); - public static final BlockItem WISTERIA_TRAPDOOR = add("wisteria_trapdoor", ParadiseLostBlocks.WISTERIA_TRAPDOOR, decoration); - - public static final BlockItem AUREL_FENCE_GATE = add("aurel_fence_gate", ParadiseLostBlocks.AUREL_FENCE_GATE, decoration); - public static final BlockItem MOTHER_AUREL_FENCE_GATE = add("mother_aurel_fence_gate", ParadiseLostBlocks.MOTHER_AUREL_FENCE_GATE, decoration); - public static final BlockItem ORANGE_FENCE_GATE = add("orange_fence_gate", ParadiseLostBlocks.ORANGE_FENCE_GATE, decoration); - public static final BlockItem WISTERIA_FENCE_GATE = add("wisteria_fence_gate", ParadiseLostBlocks.WISTERIA_FENCE_GATE, decoration); + public static final BlockItem AUREL_DOOR = add("aurel_door", ParadiseLostBlocks.AUREL_WOODSTUFF.door(), decoration); + public static final BlockItem MOTHER_AUREL_DOOR = add("mother_aurel_door", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.door(), decoration); + public static final BlockItem ORANGE_DOOR = add("orange_door", ParadiseLostBlocks.ORANGE_WOODSTUFF.door(), decoration); + public static final BlockItem WISTERIA_DOOR = add("wisteria_door", ParadiseLostBlocks.WISTERIA_WOODSTUFF.door(), decoration); + + public static final BlockItem AUREL_TRAPDOOR = add("aurel_trapdoor", ParadiseLostBlocks.AUREL_WOODSTUFF.trapdoor(), decoration); + public static final BlockItem MOTHER_AUREL_TRAPDOOR = add("mother_aurel_trapdoor", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.trapdoor(), decoration); + public static final BlockItem ORANGE_TRAPDOOR = add("orange_trapdoor", ParadiseLostBlocks.ORANGE_WOODSTUFF.trapdoor(), decoration); + public static final BlockItem WISTERIA_TRAPDOOR = add("wisteria_trapdoor", ParadiseLostBlocks.WISTERIA_WOODSTUFF.trapdoor(), decoration); + + public static final BlockItem AUREL_FENCE_GATE = add("aurel_fence_gate", ParadiseLostBlocks.AUREL_WOODSTUFF.fenceGate(), decoration); + public static final BlockItem MOTHER_AUREL_FENCE_GATE = add("mother_aurel_fence_gate", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.fenceGate(), decoration); + public static final BlockItem ORANGE_FENCE_GATE = add("orange_fence_gate", ParadiseLostBlocks.ORANGE_WOODSTUFF.fenceGate(), decoration); + public static final BlockItem WISTERIA_FENCE_GATE = add("wisteria_fence_gate", ParadiseLostBlocks.WISTERIA_WOODSTUFF.fenceGate(), decoration); // fences - public static final BlockItem AUREL_FENCE = add("aurel_fence", ParadiseLostBlocks.AUREL_FENCE, decoration); - public static final BlockItem MOTHER_AUREL_FENCE = add("mother_aurel_fence", ParadiseLostBlocks.MOTHER_AUREL_FENCE, decoration); - public static final BlockItem ORANGE_FENCE = add("orange_fence", ParadiseLostBlocks.ORANGE_FENCE, decoration); - public static final BlockItem WISTERIA_FENCE = add("wisteria_fence", ParadiseLostBlocks.WISTERIA_FENCE, decoration); + public static final BlockItem AUREL_FENCE = add("aurel_fence", ParadiseLostBlocks.AUREL_WOODSTUFF.fence(), decoration); + public static final BlockItem MOTHER_AUREL_FENCE = add("mother_aurel_fence", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.fence(), decoration); + public static final BlockItem ORANGE_FENCE = add("orange_fence", ParadiseLostBlocks.ORANGE_WOODSTUFF.fence(), decoration); + public static final BlockItem WISTERIA_FENCE = add("wisteria_fence", ParadiseLostBlocks.WISTERIA_WOODSTUFF.fence(), decoration); // walls 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); @@ -417,38 +414,32 @@ private static FabricItemSettings decoration() { public static final BlockItem FARMLAND = add("farmland", ParadiseLostBlocks.FARMLAND, decoration); public static final BlockItem DIRT_PATH = add("grass_path", ParadiseLostBlocks.DIRT_PATH, decoration); // signs, wall stuff. - public static final SignItem AUREL_SIGN = add("aurel_sign", new SignItem(sign, ParadiseLostBlocks.AUREL_SIGN, ParadiseLostBlocks.AUREL_WALL_SIGN)); - public static final SignItem MOTHER_AUREL_SIGN = add("mother_aurel_sign", new SignItem(sign, ParadiseLostBlocks.MOTHER_AUREL_SIGN, ParadiseLostBlocks.MOTHER_AUREL_WALL_SIGN)); - public static final SignItem ORANGE_SIGN = add("orange_sign", new SignItem(sign, ParadiseLostBlocks.ORANGE_SIGN, ParadiseLostBlocks.ORANGE_WALL_SIGN)); - public static final SignItem WISTERIA_SIGN = add("wisteria_sign", new SignItem(sign, ParadiseLostBlocks.WISTERIA_SIGN, ParadiseLostBlocks.WISTERIA_WALL_SIGN)); + public static final SignItem AUREL_SIGN = add("aurel_sign", new SignItem(sign, ParadiseLostBlocks.AUREL_SIGNS.sign(), ParadiseLostBlocks.AUREL_SIGNS.wallSign())); + public static final SignItem MOTHER_AUREL_SIGN = add("mother_aurel_sign", new SignItem(sign, ParadiseLostBlocks.MOTHER_AUREL_SIGNS.sign(), ParadiseLostBlocks.MOTHER_AUREL_SIGNS.wallSign())); + public static final SignItem ORANGE_SIGN = add("orange_sign", new SignItem(sign, ParadiseLostBlocks.ORANGE_SIGNS.sign(), ParadiseLostBlocks.ORANGE_SIGNS.wallSign())); + public static final SignItem WISTERIA_SIGN = add("wisteria_sign", new SignItem(sign, ParadiseLostBlocks.WISTERIA_SIGNS.sign(), ParadiseLostBlocks.WISTERIA_SIGNS.wallSign())); // beds // etc. - public static final BlockItem AUREL_BUTTON = add("aurel_button", ParadiseLostBlocks.AUREL_BUTTON, decoration); - public static final BlockItem MOTHER_AUREL_BUTTON = add("mother_aurel_button", ParadiseLostBlocks.MOTHER_AUREL_BUTTON, decoration); - public static final BlockItem ORANGE_BUTTON = add("orange_button", ParadiseLostBlocks.ORANGE_BUTTON, decoration); - public static final BlockItem WISTERIA_BUTTON = add("wisteria_button", ParadiseLostBlocks.WISTERIA_BUTTON, decoration); + public static final BlockItem AUREL_BUTTON = add("aurel_button", ParadiseLostBlocks.AUREL_WOODSTUFF.button(), decoration); + public static final BlockItem MOTHER_AUREL_BUTTON = add("mother_aurel_button", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.button(), decoration); + public static final BlockItem ORANGE_BUTTON = add("orange_button", ParadiseLostBlocks.ORANGE_WOODSTUFF.button(), decoration); + public static final BlockItem WISTERIA_BUTTON = add("wisteria_button", ParadiseLostBlocks.WISTERIA_WOODSTUFF.button(), decoration); - public static final BlockItem AUREL_PRESSURE_PLATE = add("aurel_pressure_plate", ParadiseLostBlocks.AUREL_PRESSURE_PLATE, decoration); - public static final BlockItem MOTHER_AUREL_PRESSURE_PLATE = add("mother_aurel_pressure_plate", ParadiseLostBlocks.MOTHER_AUREL_PRESSURE_PLATE, decoration); - public static final BlockItem ORANGE_PRESSURE_PLATE = add("orange_pressure_plate", ParadiseLostBlocks.ORANGE_PRESSURE_PLATE, decoration); - public static final BlockItem WISTERIA_PRESSURE_PLATE = add("wisteria_pressure_plate", ParadiseLostBlocks.WISTERIA_PRESSURE_PLATE, decoration); + public static final BlockItem AUREL_PRESSURE_PLATE = add("aurel_pressure_plate", ParadiseLostBlocks.AUREL_WOODSTUFF.pressurePlate(), decoration); + public static final BlockItem MOTHER_AUREL_PRESSURE_PLATE = add("mother_aurel_pressure_plate", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.pressurePlate(), decoration); + public static final BlockItem ORANGE_PRESSURE_PLATE = add("orange_pressure_plate", ParadiseLostBlocks.ORANGE_WOODSTUFF.pressurePlate(), decoration); + public static final BlockItem WISTERIA_PRESSURE_PLATE = add("wisteria_pressure_plate", ParadiseLostBlocks.WISTERIA_WOODSTUFF.pressurePlate(), decoration); //TODO: Implement dungeon switch block // public static final BlockItem DUNGEON_SWITCH = add("dungeonswitch", ParadiseLostBlocks.DUNGEON_SWITCH, decoration); - // these should be moved... somewhere? - public static final BoatItem AUREL_BOAT = ParadiseLostBlocks.AUREL.boatFactory(boat).item; - public static final BoatItem MOTHER_AUREL_BOAT = ParadiseLostBlocks.MOTHER_AUREL.boatFactory(boat).item; - public static final BoatItem ORANGE_BOAT = ParadiseLostBlocks.ORANGE.boatFactory(boat).item; - public static final BoatItem WISTERIA_BOAT = ParadiseLostBlocks.WISTERIA.boatFactory(boat).item; - // Chests - public static final BlockItem AUREL_CHEST = add("skyroot_chest", ParadiseLostBlocks.AUREL_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); - public static final BlockItem MOTHER_AUREL_CHEST = add("golden_oak_chest", ParadiseLostBlocks.MOTHER_AUREL_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); - public static final BlockItem ORANGE_CHEST = add("orange_chest", ParadiseLostBlocks.ORANGE_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); - public static final BlockItem CRYSTAL_CHEST = add("crystal_chest", ParadiseLostBlocks.CRYSTAL_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); - public static final BlockItem WISTERIA_CHEST = add("wisteria_chest", ParadiseLostBlocks.WISTERIA_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); +// public static final BlockItem AUREL_CHEST = add("skyroot_chest", ParadiseLostBlocks.AUREL_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); +// public static final BlockItem MOTHER_AUREL_CHEST = add("golden_oak_chest", ParadiseLostBlocks.MOTHER_AUREL_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); +// public static final BlockItem ORANGE_CHEST = add("orange_chest", ParadiseLostBlocks.ORANGE_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); +// public static final BlockItem CRYSTAL_CHEST = add("crystal_chest", ParadiseLostBlocks.CRYSTAL_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); +// public static final BlockItem WISTERIA_CHEST = add("wisteria_chest", ParadiseLostBlocks.WISTERIA_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); public static void init() { ParadiseLostRegistryQueues.ITEM.register(); diff --git a/src/main/java/net/id/paradiselost/items/tools/bloodstone/BloodstoneCapturedData.java b/src/main/java/net/id/paradiselost/items/tools/bloodstone/BloodstoneCapturedData.java index 0fc74a480..f9e25568e 100644 --- a/src/main/java/net/id/paradiselost/items/tools/bloodstone/BloodstoneCapturedData.java +++ b/src/main/java/net/id/paradiselost/items/tools/bloodstone/BloodstoneCapturedData.java @@ -2,8 +2,6 @@ import net.id.paradiselost.entities.passive.moa.MoaAttributes; import net.id.paradiselost.entities.passive.moa.MoaEntity; -import net.id.incubus_core.condition.api.ConditionAPI; -import net.id.incubus_core.condition.base.ConditionManager; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.nbt.NbtCompound; @@ -128,14 +126,6 @@ public static BloodstoneCapturedData fromEntity(LivingEntity entity) { bloodstoneCapturedData.DF = "" + entity.getArmor(); bloodstoneCapturedData.TF = "" + MathHelper.floor(entity.getAttributeValue(EntityAttributes.GENERIC_ARMOR_TOUGHNESS)); - //abstentine - ConditionManager condMan = ConditionAPI.getConditionManager(entity); - ConditionAPI.getValidConditions(entity.getType()).forEach(condition -> { - float severity = condMan.getScaledSeverity(condition); - if (severity > 0) - bloodstoneCapturedData.conditionDataList.add(new ConditionData(condition.getId().getPath(), severity)); - - }); return bloodstoneCapturedData; } diff --git a/src/main/java/net/id/paradiselost/items/utils/ParadiseLostRarity.java b/src/main/java/net/id/paradiselost/items/utils/ParadiseLostRarity.java deleted file mode 100644 index 8e5ab7dae..000000000 --- a/src/main/java/net/id/paradiselost/items/utils/ParadiseLostRarity.java +++ /dev/null @@ -1,9 +0,0 @@ -package net.id.paradiselost.items.utils; - -import net.id.incubus_core.util.EnumExtender; -import net.minecraft.util.Formatting; -import net.minecraft.util.Rarity; - -public class ParadiseLostRarity { - public static Rarity PARADISE_LOST_LOOT = EnumExtender.add(Rarity.class, "PARADISE_LOST_LOOT", Formatting.GREEN); -} diff --git a/src/main/java/net/id/paradiselost/mixin/Plugin.java b/src/main/java/net/id/paradiselost/mixin/Plugin.java index b5a737442..525b6b054 100644 --- a/src/main/java/net/id/paradiselost/mixin/Plugin.java +++ b/src/main/java/net/id/paradiselost/mixin/Plugin.java @@ -1,7 +1,6 @@ package net.id.paradiselost.mixin; import net.fabricmc.loader.api.FabricLoader; -import net.id.paradiselost.util.CompatConfig; import org.objectweb.asm.tree.ClassNode; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; @@ -23,12 +22,6 @@ public String getRefMapperConfig() { @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { - if (mixinClassName.equals("net.id.paradiselost.mixin.client.ClientPlayerEntityMixin")) { - return !CompatConfig.SPECTRUM_WORKAROUND; - } - if (isDevel) { - return true; - } return !mixinClassName.startsWith("net.id.paradiselost.mixin.devel."); } diff --git a/src/main/java/net/id/paradiselost/mixin/block/BlockEntityTypeMixin.java b/src/main/java/net/id/paradiselost/mixin/block/BlockEntityTypeMixin.java new file mode 100644 index 000000000..ebbca5089 --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/block/BlockEntityTypeMixin.java @@ -0,0 +1,34 @@ +package net.id.paradiselost.mixin.block; + +import com.google.common.collect.ImmutableSet; +import net.minecraft.block.Block; +import net.minecraft.block.entity.BlockEntityType; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.HashSet; +import java.util.Set; + +@Mixin(BlockEntityType.class) +public class BlockEntityTypeMixin { + @Mutable + @Shadow + @Final + private Set blocks; + + /** + * Makes the set of blocks in the BlockEntityTypes mutable, so that they can be modified. + * Only do this once the set has been created (made immutable). + */ + @Inject(method = "", at = @At("RETURN")) + private void makeBlocksMutable(CallbackInfo ci) { + if (this.blocks instanceof ImmutableSet) { + this.blocks = new HashSet<>(this.blocks); + } + } +} diff --git a/src/main/java/net/id/paradiselost/mixin/client/render/EntityRenderDispatcherMixin.java b/src/main/java/net/id/paradiselost/mixin/client/render/EntityRenderDispatcherMixin.java deleted file mode 100644 index 65a6c8df1..000000000 --- a/src/main/java/net/id/paradiselost/mixin/client/render/EntityRenderDispatcherMixin.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.id.paradiselost.mixin.client.render; - -import net.id.paradiselost.entities.misc.RookEntity; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.entity.EntityRenderDispatcher; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.Entity; -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.CallbackInfo; - -@Mixin(EntityRenderDispatcher.class) -public class EntityRenderDispatcherMixin { - @Inject( - method = "renderHitbox", - at = @At("HEAD"), - cancellable = true - ) - private static void renderHitbox(MatrixStack matrices, VertexConsumer vertices, Entity entity, float tickDelta, CallbackInfo ci) { - if (entity instanceof RookEntity) { - ci.cancel(); - } - } -} diff --git a/src/main/java/net/id/paradiselost/mixin/entity/EntityMixin.java b/src/main/java/net/id/paradiselost/mixin/entity/EntityMixin.java index 7949d9863..f08b723a7 100644 --- a/src/main/java/net/id/paradiselost/mixin/entity/EntityMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/entity/EntityMixin.java @@ -1,7 +1,6 @@ package net.id.paradiselost.mixin.entity; import net.id.paradiselost.blocks.ParadiseLostBlocks; -import net.id.paradiselost.effect.ParadiseLostStatusEffects; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; @@ -14,9 +13,9 @@ @Mixin(Entity.class) public abstract class EntityMixin { - @Redirect(method = "getVelocityMultiplier", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;getVelocityMultiplier()F"), require = 2) - private float getVelocityMultiplier(Block target) { - //TODO: reimplement if we re-add slippery blocks +// @Redirect(method = "getVelocityMultiplier", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;getVelocityMultiplier()F"), require = 2) +// private float getVelocityMultiplier(Block target) { +// TODO: reimplement if we re-add slippery blocks // if (target == ParadiseLostBlocks.QUICKSOIL || target == ParadiseLostBlocks.QUICKSOIL_GLASS || target == ParadiseLostBlocks.QUICKSOIL_GLASS_PANE) { // Entity entity = ((Entity) (Object) this); // boolean isVehicle = entity instanceof BoatEntity || entity instanceof MinecartEntity; @@ -31,21 +30,6 @@ private float getVelocityMultiplier(Block target) { // return (1 + Math.max(calculatedChange, 0)); // } // } - return target.getVelocityMultiplier(); - } - - @Inject(method = "baseTick", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;updateSwimming()V")) - private void springWaterEffects(CallbackInfo ci) { - Entity entity = ((Entity) (Object) this); - - if (entity instanceof LivingEntity livingEntity) { - if (entity.world.getStatesInBoxIfLoaded(entity.getBoundingBox().contract(1.0E-6D)).anyMatch( - (state) -> state.getBlock().equals(ParadiseLostBlocks.SPRING_WATER)) - ) { - livingEntity.addStatusEffect(new StatusEffectInstance(ParadiseLostStatusEffects.SIMMERING, 6000000, 0, true, false, true)); - } else if (livingEntity.hasStatusEffect(ParadiseLostStatusEffects.SIMMERING)) { - livingEntity.removeStatusEffect(ParadiseLostStatusEffects.SIMMERING); - } - } - } +// return target.getVelocityMultiplier(); +// } } 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 c558a78dc..0c0352839 100644 --- a/src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java @@ -4,7 +4,6 @@ import dev.emi.trinkets.api.TrinketsApi; import net.id.paradiselost.entities.ParadiseLostEntityExtensions; import net.id.paradiselost.entities.ParadiseLostEntityTypes; -import net.id.paradiselost.entities.misc.RookEntity; import net.id.paradiselost.entities.passive.moa.MoaAttributes; import net.id.paradiselost.entities.passive.moa.MoaEntity; import net.id.paradiselost.tag.ParadiseLostItemTags; @@ -105,27 +104,4 @@ private void getMoaMaxHealth(CallbackInfoReturnable cir) { cir.cancel(); } } - - @SuppressWarnings("ConstantConditions") - @Inject(method = "addDeathParticles", at = @At("HEAD"), cancellable = true) - private void applyCustomDeathParticles(CallbackInfo ci) { - if (((LivingEntity) ((Object) this)) instanceof RookEntity) { - for (int i = 0; i < 20 + random.nextInt(20); ++i) { - double d = this.random.nextGaussian() * 0.02D; - double e = this.random.nextGaussian() * 0.02D; - double f = this.random.nextGaussian() * 0.02D; - if (random.nextInt(3) == 0) { - this.world.addParticle(ParticleTypes.LARGE_SMOKE, this.getParticleX(1.0D), this.getRandomBodyY(), this.getParticleZ(1.0D), d, e, f); - } - else { - this.world.addParticle(ParticleTypes.SMOKE, this.getParticleX(1.0D), this.getRandomBodyY(), this.getParticleZ(1.0D), d, e, f); - } - - if (random.nextInt(3) == 0) { - this.world.addParticle(ParticleTypes.CAMPFIRE_COSY_SMOKE, this.getParticleX(1.0D), this.getRandomBodyY(), this.getParticleZ(1.0D), d / 3, e, f / 3); - } - } - ci.cancel(); - } - } } diff --git a/src/main/java/net/id/paradiselost/mixin/item/AxeItemMixin.java b/src/main/java/net/id/paradiselost/mixin/item/AxeItemMixin.java index 56abc03e5..10b2ffb71 100644 --- a/src/main/java/net/id/paradiselost/mixin/item/AxeItemMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/item/AxeItemMixin.java @@ -28,7 +28,7 @@ public void useOnBlock(ItemUsageContext context, CallbackInfoReturnable items = supplier.generateLoot(new LootContext.Builder(server) diff --git a/src/main/java/net/id/paradiselost/mixin/util/RarityMixin.java b/src/main/java/net/id/paradiselost/mixin/util/RarityMixin.java deleted file mode 100644 index 0b4a85e6b..000000000 --- a/src/main/java/net/id/paradiselost/mixin/util/RarityMixin.java +++ /dev/null @@ -1,31 +0,0 @@ -package net.id.paradiselost.mixin.util; - -import net.id.incubus_core.util.EnumExtender; -import net.minecraft.util.Formatting; -import net.minecraft.util.Rarity; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Mutable; -import org.spongepowered.asm.mixin.Shadow; - -import java.util.Arrays; - -@Mixin(Rarity.class) -public final class RarityMixin { - @SuppressWarnings("ShadowTarget") - @Shadow(aliases = "field_8905") - @Mutable - @Final private static Rarity[] VALUES; - - static { - EnumExtender.register(Rarity.class, (name, args) -> { - Rarity entry = (Rarity) (Object) new RarityMixin(name, VALUES.length, (Formatting) args[0]); - VALUES = Arrays.copyOf(VALUES, VALUES.length + 1); - return VALUES[VALUES.length - 1] = entry; - }); - } - - private RarityMixin(String valueName, int ordinal, Formatting formatting) { - throw new AssertionError(); - } -} diff --git a/src/main/java/net/id/paradiselost/mixin/util/SignTypeAccessor.java b/src/main/java/net/id/paradiselost/mixin/util/SignTypeAccessor.java new file mode 100644 index 000000000..24fe43b99 --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/util/SignTypeAccessor.java @@ -0,0 +1,13 @@ +package net.id.paradiselost.mixin.util; + +import net.minecraft.util.SignType; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +@Mixin(SignType.class) +public interface SignTypeAccessor { + @Invoker + static SignType callRegister(SignType type) { + throw new AssertionError(); + } +} diff --git a/src/main/java/net/id/paradiselost/util/CompatConfig.java b/src/main/java/net/id/paradiselost/util/CompatConfig.java deleted file mode 100644 index a5c0a42e5..000000000 --- a/src/main/java/net/id/paradiselost/util/CompatConfig.java +++ /dev/null @@ -1,12 +0,0 @@ -package net.id.paradiselost.util; - -import static net.id.incubus_core.util.Config.getBoolean; -import static net.id.incubus_core.util.Config.isLoaded; -import static net.id.paradiselost.ParadiseLost.locate; - -public final class CompatConfig { - private CompatConfig() { - } - - public static final boolean SPECTRUM_WORKAROUND = getBoolean(locate("spectrum_workaround"), isLoaded("spectrum")); -} diff --git a/src/main/java/net/id/paradiselost/util/ParadiseLostSignType.java b/src/main/java/net/id/paradiselost/util/ParadiseLostSignType.java new file mode 100644 index 000000000..99f3fe031 --- /dev/null +++ b/src/main/java/net/id/paradiselost/util/ParadiseLostSignType.java @@ -0,0 +1,9 @@ +package net.id.paradiselost.util; + +import net.minecraft.util.SignType; + +public class ParadiseLostSignType extends SignType { + public ParadiseLostSignType(String name) { + super(name); + } +} diff --git a/src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostTreeConfiguredFeatures.java b/src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostTreeConfiguredFeatures.java index 137aef5cb..2d2b8abdc 100644 --- a/src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostTreeConfiguredFeatures.java +++ b/src/main/java/net/id/paradiselost/world/feature/configured_features/ParadiseLostTreeConfiguredFeatures.java @@ -58,7 +58,7 @@ public class ParadiseLostTreeConfiguredFeatures extends ParadiseLostConfiguredFe public static final RegistryEntry> FALLEN_LAVENDER_LEAVES = register("fallen_lavender_leaves", ParadiseLostFeatures.ORGANIC_GROUNDCOVER_FEATURE, new ProjectedOrganicCoverConfig(new WeightedBlockStateProvider(DataPool.builder().add(LAVENDER_WISTERIA_LEAF_PILE.getDefaultState(), 10).add(LAVENDER_WISTERIA_LEAVES.getDefaultState().with(LeavesBlock.PERSISTENT, true), 2).build()), UniformIntProvider.create(4, 10), ConstantIntProvider.create(7), UniformIntProvider.create(3, 6), 1.2)); public static final RegistryEntry> SHIELD_FALLEN_LEAVES = register("shield_fallen_leaves", Feature.RANDOM_PATCH, Configs.FALLEN_LEAVES_CONFIG); // Logs - public static final RegistryEntry> THICKET_FALLEN_LOG = register("thicket_fallen_log", ParadiseLostFeatures.FALLEN_PILLAR_FEATURE, new LongFeatureConfig(UniformIntProvider.create(3, 6), BlockStateProvider.of(AUREL_LOG), BlockStateProvider.of(LIVERWORT_CARPET), BlockStateProvider.of(LIVERWORT_CARPET), 0.5F, 0.35F, Configs.GENERIC_FLOOR_WHITELIST)); + public static final RegistryEntry> THICKET_FALLEN_LOG = register("thicket_fallen_log", ParadiseLostFeatures.FALLEN_PILLAR_FEATURE, new LongFeatureConfig(UniformIntProvider.create(3, 6), BlockStateProvider.of(AUREL_WOODSTUFF.log()), BlockStateProvider.of(LIVERWORT_CARPET), BlockStateProvider.of(LIVERWORT_CARPET), 0.5F, 0.35F, Configs.GENERIC_FLOOR_WHITELIST)); public static final RegistryEntry> MOTTLED_FALLEN_LOG = register("mottled_fallen_log", ParadiseLostFeatures.FALLEN_PILLAR_FEATURE, new LongFeatureConfig(UniformIntProvider.create(3, 5), BlockStateProvider.of(MOTTLED_AUREL_LOG), BlockStateProvider.of(GRASS), BlockStateProvider.of(ROOTCAP), 0.3F, 0.15F, Configs.GENERIC_FLOOR_WHITELIST)); public static final RegistryEntry> MOTTLED_HOLLOW_FALLEN_LOG = register("mottled_hollow_fallen_log", ParadiseLostFeatures.FALLEN_PILLAR_FEATURE, new LongFeatureConfig(UniformIntProvider.create(3, 5), BlockStateProvider.of(MOTTLED_AUREL_FALLEN_LOG), BlockStateProvider.of(GRASS_FLOWERING), BlockStateProvider.of(ROOTCAP), 0.4F, 0.25F, Configs.GENERIC_FLOOR_WHITELIST)); @@ -116,7 +116,7 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl private static final RandomPatchFeatureConfig FALLEN_LEAVES_CONFIG = blockPatch(96, 10, 7, new WeightedBlockStateProvider( DataPool.builder() .add(AUREL_LEAF_PILE.getDefaultState(), 8) - .add(AUREL_LEAVES.getDefaultState().with(LeavesBlock.PERSISTENT, true), 1) + .add(AUREL_WOODSTUFF.leaves().getDefaultState().with(LeavesBlock.PERSISTENT, true), 1) )); /* @@ -124,42 +124,42 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl */ //Aurels private static final TreeFeatureConfig AUREL_CONFIG = generateTree( - AUREL_LOG.getDefaultState(), AUREL_LEAVES.getDefaultState(), DIRT.getDefaultState(), + AUREL_WOODSTUFF.log().getDefaultState(), AUREL_WOODSTUFF.leaves().getDefaultState(), DIRT.getDefaultState(), new StraightTrunkPlacer(4, 2, 0), new BlobFoliagePlacer(ConstantIntProvider.create(2), ConstantIntProvider.create(0), 3), new TwoLayersFeatureSize(1, 0, 1), true, false ); private static final TreeFeatureConfig FANCY_AUREL_CONFIG = generateTree( - AUREL_LOG.getDefaultState(), AUREL_LEAVES.getDefaultState(), DIRT.getDefaultState(), + AUREL_WOODSTUFF.log().getDefaultState(), AUREL_WOODSTUFF.leaves().getDefaultState(), DIRT.getDefaultState(), new LargeOakTrunkPlacer(4, 11, 0), new LargeOakFoliagePlacer(ConstantIntProvider.create(2), ConstantIntProvider.create(4), 4), new TwoLayersFeatureSize(0, 0, 0, OptionalInt.of(4)), true, false ); private static final TreeFeatureConfig THICKET_AUREL_CONFIG = generateTree( - AUREL_LOG.getDefaultState(), AUREL_LEAVES.getDefaultState(), DIRT.getDefaultState(), + AUREL_WOODSTUFF.log().getDefaultState(), AUREL_WOODSTUFF.leaves().getDefaultState(), DIRT.getDefaultState(), new LargeOakTrunkPlacer(12, 4, 1), new BlobFoliagePlacer(ConstantIntProvider.create(4), ConstantIntProvider.create(4), 3), new TwoLayersFeatureSize(0, 0, 0, OptionalInt.of(4)), true, false ); private static final TreeFeatureConfig AUREL_SHRUB_CONFIG = generateTree( - AUREL_LOG.getDefaultState(), AUREL_LEAVES.getDefaultState(), DIRT.getDefaultState(), + AUREL_WOODSTUFF.log().getDefaultState(), AUREL_WOODSTUFF.leaves().getDefaultState(), DIRT.getDefaultState(), new StraightTrunkPlacer(1, 1, 0), new BlobFoliagePlacer(UniformIntProvider.create(1, 3), ConstantIntProvider.create(0), 1), new TwoLayersFeatureSize(1, 0, 1), true, false ); private static final TreeFeatureConfig MOTTLED_AUREL_CONFIG = generateTree( - MOTTLED_AUREL_LOG.getDefaultState(), AUREL_LEAVES.getDefaultState(), DIRT.getDefaultState(), + MOTTLED_AUREL_LOG.getDefaultState(), AUREL_WOODSTUFF.leaves().getDefaultState(), DIRT.getDefaultState(), new OvergrownTrunkPlacer(5, 10, 0, BlockStateProvider.of(ROOTCAP), 1 / 14F), new BlobFoliagePlacer(UniformIntProvider.create(2, 3), ConstantIntProvider.create(0), 3), new TwoLayersFeatureSize(1, 0, 1), true, false ); private static final TreeFeatureConfig DWARF_MOTTLED_AUREL_CONFIG = generateTree( - MOTTLED_AUREL_LOG.getDefaultState(), AUREL_LEAVES.getDefaultState(), DIRT.getDefaultState(), + MOTTLED_AUREL_LOG.getDefaultState(), AUREL_WOODSTUFF.leaves().getDefaultState(), DIRT.getDefaultState(), new BendingTrunkPlacer(5, 3, 2, 4, UniformIntProvider.create(1, 3)), new RandomSpreadFoliagePlacer(UniformIntProvider.create(3, 4), ConstantIntProvider.create(0), ConstantIntProvider.create(3), 68), new TwoLayersFeatureSize(1, 0, 1), @@ -168,19 +168,19 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl //Fruit trees private static final TreeFeatureConfig ORANGE_TREE_SAPLING_CONFIG = generateTree( - ORANGE_LOG.getDefaultState(), ORANGE_LEAVES.getDefaultState(), DIRT.getDefaultState(), + ORANGE_WOODSTUFF.log().getDefaultState(), ORANGE_WOODSTUFF.leaves().getDefaultState(), DIRT.getDefaultState(), new BendingTrunkPlacer(3, 2, 1, 3, UniformIntProvider.create(1, 2)), new RandomSpreadFoliagePlacer(UniformIntProvider.create(3, 4), ConstantIntProvider.create(0), ConstantIntProvider.create(3), 63), new TwoLayersFeatureSize(1, 0, 1), false, false ); - private static final BlockState ORANGE_LEAVES_BASIC = ORANGE_LEAVES.getDefaultState().with(FruitingLeavesBlock.CAPPED, true).with(FruitingLeavesBlock.NATURAL, true); - private static final BlockState ORANGE_LEAVES_FLOWERING = ORANGE_LEAVES.getDefaultState().with(FruitingLeavesBlock.CAPPED, true).with(FruitingLeavesBlock.NATURAL, true).with(FruitingLeavesBlock.GROWTH, 1); - private static final BlockState ORANGE_LEAVES_FRUITING = ORANGE_LEAVES.getDefaultState().with(FruitingLeavesBlock.CAPPED, true).with(FruitingLeavesBlock.NATURAL, true).with(FruitingLeavesBlock.GROWTH, 2); + private static final BlockState ORANGE_LEAVES_BASIC = ORANGE_WOODSTUFF.leaves().getDefaultState().with(FruitingLeavesBlock.CAPPED, true).with(FruitingLeavesBlock.NATURAL, true); + private static final BlockState ORANGE_LEAVES_FLOWERING = ORANGE_WOODSTUFF.leaves().getDefaultState().with(FruitingLeavesBlock.CAPPED, true).with(FruitingLeavesBlock.NATURAL, true).with(FruitingLeavesBlock.GROWTH, 1); + private static final BlockState ORANGE_LEAVES_FRUITING = ORANGE_WOODSTUFF.leaves().getDefaultState().with(FruitingLeavesBlock.CAPPED, true).with(FruitingLeavesBlock.NATURAL, true).with(FruitingLeavesBlock.GROWTH, 2); private static final TreeFeatureConfig ORANGE_TREE_WILD_CONFIG = generateTree( - BlockStateProvider.of(ORANGE_LOG), + BlockStateProvider.of(ORANGE_WOODSTUFF.log()), new WeightedBlockStateProvider( DataPool.builder() .add(ORANGE_LEAVES_BASIC, 2) @@ -196,7 +196,7 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl //Wisterias private static final TreeFeatureConfig ROSE_WISTERIA_CONFIG = generateTree( - WISTERIA_LOG.getDefaultState(), ROSE_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), + WISTERIA_WOODSTUFF.log().getDefaultState(), ROSE_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), new WisteriaTrunkPlacer( UniformIntProvider.create(3, 4), UniformIntProvider.create(3, 4), // branch count @@ -209,7 +209,7 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl true, false ); private static final TreeFeatureConfig LAVENDER_WISTERIA_CONFIG = generateTree( - WISTERIA_LOG.getDefaultState(), LAVENDER_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), + WISTERIA_WOODSTUFF.log().getDefaultState(), LAVENDER_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), new WisteriaTrunkPlacer( UniformIntProvider.create(3, 4), UniformIntProvider.create(3, 4), // branch count @@ -222,7 +222,7 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl true, false ); private static final TreeFeatureConfig FROST_WISTERIA_CONFIG = generateTree( - WISTERIA_LOG.getDefaultState(), FROST_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), + WISTERIA_WOODSTUFF.log().getDefaultState(), FROST_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), new WisteriaTrunkPlacer( UniformIntProvider.create(3, 4), UniformIntProvider.create(3, 4), // branch count @@ -235,7 +235,7 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl true, false ); private static final TreeFeatureConfig FANCY_ROSE_WISTERIA_CONFIG = generateTree( - WISTERIA_LOG.getDefaultState(), ROSE_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), + WISTERIA_WOODSTUFF.log().getDefaultState(), ROSE_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), new WisteriaTrunkPlacer( UniformIntProvider.create(3, 4), UniformIntProvider.create(3, 4), // branch count @@ -248,7 +248,7 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl true, false ); private static final TreeFeatureConfig FANCY_LAVENDER_WISTERIA_CONFIG = generateTree( - WISTERIA_LOG.getDefaultState(), LAVENDER_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), + WISTERIA_WOODSTUFF.log().getDefaultState(), LAVENDER_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), new WisteriaTrunkPlacer( UniformIntProvider.create(3, 4), UniformIntProvider.create(3, 4), // branch count @@ -261,7 +261,7 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl true, false ); private static final TreeFeatureConfig FANCY_FROST_WISTERIA_CONFIG = generateTree( - WISTERIA_LOG.getDefaultState(), FROST_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), + WISTERIA_WOODSTUFF.log().getDefaultState(), FROST_WISTERIA_LEAVES.getDefaultState(), DIRT.getDefaultState(), new WisteriaTrunkPlacer( UniformIntProvider.create(3, 4), UniformIntProvider.create(3, 4), // branch count @@ -276,7 +276,7 @@ private static TreeFeatureConfig generateTree(BlockStateProvider logProvider, Bl //Special trees private static final TreeFeatureConfig MOTHER_AUREL_CONFIG = generateTree( - MOTHER_AUREL_LOG.getDefaultState(), MOTHER_AUREL_LEAVES.getDefaultState(), DIRT.getDefaultState(), + MOTHER_AUREL_WOODSTUFF.log().getDefaultState(), MOTHER_AUREL_WOODSTUFF.leaves().getDefaultState(), DIRT.getDefaultState(), new LargeOakTrunkPlacer(8, 1, 1), new BlobFoliagePlacer(ConstantIntProvider.create(3), ConstantIntProvider.create(2), 3), new TwoLayersFeatureSize(3, 0, 3, OptionalInt.of(2)), @@ -308,70 +308,70 @@ private static RandomFeatureEntry entry(RegistryEntry AUREL_TREE = register("aurel_tree", ParadiseLostTreeConfiguredFeatures.AUREL_TREE, placed(AUREL_SAPLING)); - public static final RegistryEntry MOTHER_AUREL_TREE = register("mother_aurel_tree", ParadiseLostTreeConfiguredFeatures.MOTHER_AUREL_TREE, placed(MOTHER_AUREL_SAPLING)); - public static final RegistryEntry ORANGE_TREE = register("orange_tree", ParadiseLostTreeConfiguredFeatures.ORANGE_TREE, placed(ORANGE_SAPLING)); + public static final RegistryEntry AUREL_TREE = register("aurel_tree", ParadiseLostTreeConfiguredFeatures.AUREL_TREE, placed(AUREL_WOODSTUFF.sapling())); + public static final RegistryEntry MOTHER_AUREL_TREE = register("mother_aurel_tree", ParadiseLostTreeConfiguredFeatures.MOTHER_AUREL_TREE, placed(MOTHER_AUREL_WOODSTUFF.sapling())); + public static final RegistryEntry ORANGE_TREE = register("orange_tree", ParadiseLostTreeConfiguredFeatures.ORANGE_TREE, placed(ORANGE_WOODSTUFF.sapling())); // Wisteria public static final RegistryEntry ROSE_WISTERIA_TREE = register("rose_wisteria_tree", ParadiseLostTreeConfiguredFeatures.ROSE_WISTERIA_TREE, placed(ROSE_WISTERIA_SAPLING)); public static final RegistryEntry LAVENDER_WISTERIA_TREE = register("lavender_wisteria_tree", ParadiseLostTreeConfiguredFeatures.LAVENDER_WISTERIA_TREE, placed(LAVENDER_WISTERIA_SAPLING)); @@ -38,7 +38,7 @@ public class ParadiseLostTreePlacedFeatures extends ParadiseLostPlacedFeatures { public static final RegistryEntry FANCY_ROSE_WISTERIA_TREE = register("fancy_rose_wisteria_tree", ParadiseLostTreeConfiguredFeatures.FANCY_ROSE_WISTERIA_TREE, placed(ROSE_WISTERIA_SAPLING)); public static final RegistryEntry FANCY_LAVENDER_WISTERIA_TREE = register("fancy_lavender_wisteria_tree", ParadiseLostTreeConfiguredFeatures.FANCY_LAVENDER_WISTERIA_TREE, placed(LAVENDER_WISTERIA_SAPLING)); public static final RegistryEntry FANCY_FROST_WISTERIA_TREE = register("fancy_frost_wisteria_tree", ParadiseLostTreeConfiguredFeatures.FANCY_FROST_WISTERIA_TREE, placed(FROST_WISTERIA_SAPLING)); - public static final RegistryEntry FANCY_AUREL_TREE = register("fancy_aurel_tree", ParadiseLostTreeConfiguredFeatures.FANCY_AUREL_TREE, placed(AUREL_SAPLING)); + public static final RegistryEntry FANCY_AUREL_TREE = register("fancy_aurel_tree", ParadiseLostTreeConfiguredFeatures.FANCY_AUREL_TREE, placed(AUREL_WOODSTUFF.sapling())); // Tree Assortments public static final RegistryEntry SCATTERED_TREES = register("scattered_trees", ParadiseLostTreeConfiguredFeatures.SCATTERED_TREES, CountMultilayerPlacementModifier.of(6), CountPlacementModifier.of(UniformIntProvider.create(0, 6))); public static final RegistryEntry SHIELD_TREES = register("shield_trees", ParadiseLostTreeConfiguredFeatures.SHIELD_TREES, CountMultilayerPlacementModifier.of(5), CountPlacementModifier.of(UniformIntProvider.create(0, 6))); diff --git a/src/main/java/net/id/paradiselost/world/feature/structure/generator/AurelTowerGenerator.java b/src/main/java/net/id/paradiselost/world/feature/structure/generator/AurelTowerGenerator.java index cbed39680..d45ec5c8c 100644 --- a/src/main/java/net/id/paradiselost/world/feature/structure/generator/AurelTowerGenerator.java +++ b/src/main/java/net/id/paradiselost/world/feature/structure/generator/AurelTowerGenerator.java @@ -58,11 +58,11 @@ protected void handleMetadata(String metadata, BlockPos pos, ServerWorldAccess w @Override public void generate(StructureWorldAccess world, StructureAccessor structureAccessor, ChunkGenerator chunkGenerator, Random random, BlockBox boundingBox, ChunkPos chunkPos, BlockPos pos) { // Fill in pillars - fillSupport(world, pos.down().north(2).east(2), ParadiseLostBlocks.AUREL_LOG.getDefaultState()); - fillSupport(world, pos.down().north(2).east(-2), ParadiseLostBlocks.AUREL_LOG.getDefaultState()); - fillSupport(world, pos.down().north(-2).east(2), ParadiseLostBlocks.AUREL_LOG.getDefaultState()); - fillSupport(world, pos.down().north(-2).east(-2), ParadiseLostBlocks.AUREL_LOG.getDefaultState()); - fillSupport(world, pos.down(), ParadiseLostBlocks.STRIPPED_AUREL_LOG.getDefaultState()); + fillSupport(world, pos.down().north(2).east(2), ParadiseLostBlocks.AUREL_WOODSTUFF.log().getDefaultState()); + fillSupport(world, pos.down().north(2).east(-2), ParadiseLostBlocks.AUREL_WOODSTUFF.log().getDefaultState()); + fillSupport(world, pos.down().north(-2).east(2), ParadiseLostBlocks.AUREL_WOODSTUFF.log().getDefaultState()); + fillSupport(world, pos.down().north(-2).east(-2), ParadiseLostBlocks.AUREL_WOODSTUFF.log().getDefaultState()); + fillSupport(world, pos.down(), ParadiseLostBlocks.AUREL_WOODSTUFF.strippedLog().getDefaultState()); // Add path blocks for (int x = -2; x <= 2; x++) { for (int z = -2; z <= 2; z++) { diff --git a/src/main/resources/paradise_lost.mixins.json b/src/main/resources/paradise_lost.mixins.json index 9d215eeb7..2b612a0d1 100644 --- a/src/main/resources/paradise_lost.mixins.json +++ b/src/main/resources/paradise_lost.mixins.json @@ -4,6 +4,7 @@ "package": "net.id.paradiselost.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ + "block.BlockEntityTypeMixin", "block.BlockMixin", "block.CropBlockMixin", "block.EnchantingTableBlockMixin", @@ -32,7 +33,7 @@ "world.ExplosionMixin", "util.DefaultedRegistryMixin", "util.NbtCompoundAccessor", - "util.RarityMixin", + "util.SignTypeAccessor", "util.SlotAccessor", "brain.MemoryModuleTypeInvoker", "brain.ActivityInvoker", @@ -47,7 +48,6 @@ "client.render.BackgroundRendererMixin", "client.render.CloudRendererMixin", "client.render.EntityModelsMixin", - "client.render.EntityRenderDispatcherMixin", "client.render.FluidRendererMixin", "client.render.InGameHudMixin", "client.render.InGameOverlayRendererMixin", From ded800cae9939319cf417a68cd72bbb31b0ccdb4 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Fri, 26 Apr 2024 12:55:30 -0500 Subject: [PATCH 06/24] +boats -chests and surtrum tweak --- .../blocks/BlockRegistration.java | 6 +-- .../blocks/ParadiseLostBlocks.java | 10 ---- .../paradiselost/items/ParadiseLostItems.java | 46 +++++++++++++++--- .../armor/ParadiseLostArmorMaterials.java | 4 +- .../mixin/entity/BoatEntityMixin.java | 29 +++++++++++ .../mixin/entity/BoatEntityTypeMixin.java | 32 ++++++++++++ .../mixin/entity/ChestBoatEntityMixin.java | 34 +++++++++++++ .../id/paradiselost/util/EnumExtender.java | 26 ++++++++++ .../textures/entity/chest/crystal/normal.png | Bin 602 -> 0 bytes .../entity/chest/crystal/normal_left.png | Bin 631 -> 0 bytes .../entity/chest/crystal/normal_right.png | Bin 669 -> 0 bytes .../entity/chest/golden_oak/normal.png | Bin 1303 -> 0 bytes .../entity/chest/golden_oak/normal_left.png | Bin 1413 -> 0 bytes .../entity/chest/golden_oak/normal_right.png | Bin 1509 -> 0 bytes .../textures/entity/chest/orange/normal.png | Bin 581 -> 0 bytes .../entity/chest/orange/normal_left.png | Bin 639 -> 0 bytes .../entity/chest/orange/normal_right.png | Bin 664 -> 0 bytes .../textures/entity/chest/skyroot/normal.png | Bin 1265 -> 0 bytes .../entity/chest/skyroot/normal_left.png | Bin 1342 -> 0 bytes .../entity/chest/skyroot/normal_right.png | Bin 1370 -> 0 bytes .../textures/entity/chest/wisteria/normal.png | Bin 642 -> 0 bytes .../entity/chest/wisteria/normal_left.png | Bin 670 -> 0 bytes .../entity/chest/wisteria/normal_right.png | Bin 692 -> 0 bytes .../textures/entity/corvid/rook1.png | Bin 173 -> 0 bytes .../textures/entity/corvid/rook2.png | Bin 170 -> 0 bytes .../textures/entity/corvid/rook3.png | Bin 183 -> 0 bytes .../textures/entity/corvid/rook4.png | Bin 199 -> 0 bytes .../textures/entity/corvid/rook_eye1.png | Bin 93 -> 0 bytes .../textures/entity/corvid/rook_eye2.png | Bin 92 -> 0 bytes .../textures/entity/corvid/rook_eye3.png | Bin 101 -> 0 bytes .../textures/entity/corvid/rook_eye4.png | Bin 97 -> 0 bytes .../entity/projectile/dart/poison_dart.png | Bin 166 -> 0 bytes .../entity/projectile/dart/poison_needle.png | Bin 193 -> 0 bytes .../resources/data/c/tags/blocks/chests.json | 6 --- .../loot_tables/blocks/golden_oak_chest.json | 20 -------- .../loot_tables/blocks/orange_chest.json | 20 -------- .../loot_tables/blocks/skyroot_chest.json | 20 -------- .../loot_tables/blocks/wisteria_chest.json | 20 -------- .../paradise_lost/recipes/aurel_chest.json | 16 ------ .../recipes/chest_from_paradise_chest.json | 11 ----- .../recipes/golden_oak_chest.json | 16 ------ .../paradise_lost/recipes/orange_chest.json | 16 ------ .../recipes/refined_surtrum_from_raw.json | 22 +++------ .../paradise_lost/recipes/wisteria_chest.json | 16 ------ .../paradise_lost/tags/blocks/chests.json | 6 --- .../tags/blocks/mineable_by_axe.json | 1 - .../tags/blocks/wooden_chests.json | 10 ---- .../data/paradise_lost/tags/items/chests.json | 10 ---- src/main/resources/paradise_lost.mixins.json | 3 ++ 49 files changed, 175 insertions(+), 225 deletions(-) create mode 100644 src/main/java/net/id/paradiselost/mixin/entity/BoatEntityMixin.java create mode 100644 src/main/java/net/id/paradiselost/mixin/entity/BoatEntityTypeMixin.java create mode 100644 src/main/java/net/id/paradiselost/mixin/entity/ChestBoatEntityMixin.java create mode 100644 src/main/java/net/id/paradiselost/util/EnumExtender.java delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/crystal/normal.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/crystal/normal_left.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/crystal/normal_right.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/golden_oak/normal.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/golden_oak/normal_left.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/golden_oak/normal_right.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/orange/normal.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/orange/normal_left.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/orange/normal_right.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/skyroot/normal.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/skyroot/normal_left.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/skyroot/normal_right.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/wisteria/normal.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/wisteria/normal_left.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/chest/wisteria/normal_right.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/corvid/rook1.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/corvid/rook2.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/corvid/rook3.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/corvid/rook4.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye1.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye2.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye3.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye4.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/projectile/dart/poison_dart.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/projectile/dart/poison_needle.png delete mode 100644 src/main/resources/data/c/tags/blocks/chests.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/golden_oak_chest.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/orange_chest.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/skyroot_chest.json delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/wisteria_chest.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/aurel_chest.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/chest_from_paradise_chest.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/golden_oak_chest.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/orange_chest.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/wisteria_chest.json delete mode 100644 src/main/resources/data/paradise_lost/tags/blocks/chests.json delete mode 100644 src/main/resources/data/paradise_lost/tags/blocks/wooden_chests.json delete mode 100644 src/main/resources/data/paradise_lost/tags/items/chests.json diff --git a/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java b/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java index 64e28ffd7..e8ce2db5d 100644 --- a/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java +++ b/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java @@ -151,7 +151,7 @@ sapling, add(flowerPotId, new FlowerPotBlock(sapling, flowerPotSettings)), add(leavesId, new LeavesBlock(leavesSettings), flammableLeaves, cutoutMippedRenderLayer), planks, add(plankStairsId, new ParadiseLostStairsBlock(planks.getDefaultState(), plankSettings), flammablePlanks), add(plankSlabId, new SlabBlock(plankSettings), flammablePlanks), add(fenceId, new FenceBlock(plankSettings), flammablePlanks), add(fenceGateId, new FenceGateBlock(plankSettings), flammablePlanks), - add(doorId, new DoorBlock(doorSettings)), add(trapdoorId, new TrapdoorBlock(trapdoorSettings)), + add(doorId, new DoorBlock(doorSettings), cutoutMippedRenderLayer), add(trapdoorId, new TrapdoorBlock(trapdoorSettings), cutoutMippedRenderLayer), add(buttonId, new WoodenButtonBlock(buttonSettings)), add(pressurePlateId, new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, pressurePlateSettings)) ); } @@ -182,7 +182,7 @@ private static WoodBlockSet registerWoodBlockSet( leaves, planks, add(plankStairsId, new ParadiseLostStairsBlock(planks.getDefaultState(), plankSettings), flammablePlanks), add(plankSlabId, new SlabBlock(plankSettings), flammablePlanks), add(fenceId, new FenceBlock(plankSettings), flammablePlanks), add(fenceGateId, new FenceGateBlock(plankSettings), flammablePlanks), - add(doorId, new DoorBlock(doorSettings)), add(trapdoorId, new TrapdoorBlock(trapdoorSettings)), + add(doorId, new DoorBlock(doorSettings), cutoutMippedRenderLayer), add(trapdoorId, new TrapdoorBlock(trapdoorSettings), cutoutMippedRenderLayer), add(buttonId, new WoodenButtonBlock(buttonSettings)), add(pressurePlateId, new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, pressurePlateSettings)) ); } @@ -216,7 +216,7 @@ sapling, add(flowerPotId, new FlowerPotBlock(sapling, flowerPotSettings)), leaves, planks, add(plankStairsId, new ParadiseLostStairsBlock(planks.getDefaultState(), plankSettings), flammablePlanks), add(plankSlabId, new SlabBlock(plankSettings), flammablePlanks), add(fenceId, new FenceBlock(plankSettings), flammablePlanks), add(fenceGateId, new FenceGateBlock(plankSettings), flammablePlanks), - add(doorId, new DoorBlock(doorSettings)), add(trapdoorId, new TrapdoorBlock(trapdoorSettings)), + add(doorId, new DoorBlock(doorSettings), cutoutMippedRenderLayer), add(trapdoorId, new TrapdoorBlock(trapdoorSettings), cutoutMippedRenderLayer), add(buttonId, new WoodenButtonBlock(buttonSettings)), add(pressurePlateId, new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, pressurePlateSettings)) ); } diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 8c8170fdc..2f5b9c4f9 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -322,13 +322,6 @@ private static Settings cherineTorch() { //dungeon // public static final DungeonSwitchBlock DUNGEON_SWITCH = add("dungeonswitch", new DungeonSwitchBlock(of(Material.METAL, MapColor.BLUE).strength(-1.0F, 3600000.0F))); - // Chests -// public static final ChestBlock CRYSTAL_CHEST = add("crystal_chest", CRYSTAL_CHEST_FACTORY.chest); -// public static final ChestBlock MOTHER_AUREL_CHEST = add("golden_oak_chest", MOTHER_AUREL_CHEST_FACTORY.chest); -// public static final ChestBlock ORANGE_CHEST = ORANGE.chestFactory().chest; -// public static final ChestBlock AUREL_CHEST = add("skyroot_chest", AUREL_CHEST_FACTORY.chest); -// public static final ChestBlock WISTERIA_CHEST = WISTERIA.chestFactory().chest; - public static void init() { ParadiseLostRegistryQueues.BLOCK.register(); } @@ -342,9 +335,6 @@ TexturedRenderLayers.SIGNS_ATLAS_TEXTURE, new Identifier("entity/signs/" + signS ) ); } -// AUREL_CHEST_FACTORY.registerChestRenderers(); -// MOTHER_AUREL_CHEST_FACTORY.registerChestRenderers(); -// CRYSTAL_CHEST_FACTORY.registerChestRenderers(); } diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 58f20f9ab..702a9350d 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -19,10 +19,14 @@ import net.id.paradiselost.items.tools.bloodstone.OlviteBloodstoneItem; import net.id.paradiselost.registry.ParadiseLostRegistryQueues; import net.id.incubus_core.util.RegistryQueue.Action; +import net.id.paradiselost.util.EnumExtender; import net.minecraft.block.Block; import net.minecraft.block.DoorBlock; +import net.minecraft.block.SignBlock; import net.minecraft.block.TallFlowerBlock; import net.minecraft.block.TallPlantBlock; +import net.minecraft.block.WallSignBlock; +import net.minecraft.entity.vehicle.BoatEntity; import net.minecraft.fluid.Fluids; import net.minecraft.item.*; import net.minecraft.item.Item.Settings; @@ -30,7 +34,14 @@ import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Rarity; +import net.minecraft.util.SignType; +import org.jetbrains.annotations.NotNull; +import java.util.Arrays; +import java.util.Iterator; +import java.util.Locale; + +import static net.id.paradiselost.ParadiseLost.MOD_ID; import static net.id.paradiselost.ParadiseLost.locate; import static net.id.paradiselost.items.ParadiseLostItemActions.*; import static net.minecraft.entity.EquipmentSlot.*; @@ -309,7 +320,6 @@ private static FabricItemSettings decoration() { private static final FabricItemSettings decoration = decoration(); private static final FabricItemSettings sign = decoration().maxCount(16); - private static final FabricItemSettings boat = decoration().maxCount(1); private static final FabricItemSettings hat = decoration().equipmentSlot(stack -> HEAD); // saplings @@ -434,12 +444,12 @@ private static FabricItemSettings decoration() { //TODO: Implement dungeon switch block // public static final BlockItem DUNGEON_SWITCH = add("dungeonswitch", ParadiseLostBlocks.DUNGEON_SWITCH, decoration); - // Chests -// public static final BlockItem AUREL_CHEST = add("skyroot_chest", ParadiseLostBlocks.AUREL_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); -// public static final BlockItem MOTHER_AUREL_CHEST = add("golden_oak_chest", ParadiseLostBlocks.MOTHER_AUREL_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); -// public static final BlockItem ORANGE_CHEST = add("orange_chest", ParadiseLostBlocks.ORANGE_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); -// public static final BlockItem CRYSTAL_CHEST = add("crystal_chest", ParadiseLostBlocks.CRYSTAL_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); -// public static final BlockItem WISTERIA_CHEST = add("wisteria_chest", ParadiseLostBlocks.WISTERIA_CHEST, new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_DECORATIONS)); + public static final BoatSet AUREL_BOATS = addBoatItems("aurel", ParadiseLostBlocks.AUREL_WOODSTUFF.plank()); + public static final BoatSet MOTHER_AUREL_BOATS = addBoatItems("mother_aurel", ParadiseLostBlocks.MOTHER_AUREL_WOODSTUFF.plank()); + public static final BoatSet ORANGE_BOATS = addBoatItems("orange", ParadiseLostBlocks.ORANGE_WOODSTUFF.plank()); + public static final BoatSet WISTERIA_BOATS = addBoatItems("wisteria", ParadiseLostBlocks.WISTERIA_WOODSTUFF.plank()); + + public static final BoatSet[] BOAT_SETS = new BoatSet[] {AUREL_BOATS, MOTHER_AUREL_BOATS, ORANGE_BOATS, WISTERIA_BOATS}; public static void init() { ParadiseLostRegistryQueues.ITEM.register(); @@ -457,13 +467,23 @@ private static BlockItem add(String id, Block block, Settings settings, Action { + public @NotNull Iterator iterator() { + return Arrays.stream(new Item[]{boat, chestBoat}).iterator(); + } + } } diff --git a/src/main/java/net/id/paradiselost/items/armor/ParadiseLostArmorMaterials.java b/src/main/java/net/id/paradiselost/items/armor/ParadiseLostArmorMaterials.java index 5387bf9de..70c8101fa 100644 --- a/src/main/java/net/id/paradiselost/items/armor/ParadiseLostArmorMaterials.java +++ b/src/main/java/net/id/paradiselost/items/armor/ParadiseLostArmorMaterials.java @@ -10,13 +10,13 @@ public class ParadiseLostArmorMaterials { public static final ArmorMaterial OLVITE = ArmorMaterialsAccessor.callInit("PARADISE_LOST_OLVITE", -1, - "paradise_lost_olvite", 15, new int[]{2, 5, 6, 2}, 9, ParadiseLostSoundEvents.ITEM_ARMOR_EQUIP_OLVITE, + "paradise_lost_olvite", 15, new int[]{2, 4, 6, 2}, 9, ParadiseLostSoundEvents.ITEM_ARMOR_EQUIP_OLVITE, 0f, 0f, IngredientUtil.itemIngredient(ParadiseLostItems.OLVITE)); public static final ArmorMaterial GLAZED_GOLD = ArmorMaterialsAccessor.callInit("PARADISE_LOST_GLAZED_GOLD", -1, "paradise_lost_glazed_gold", 14, new int[]{1, 3, 5, 2}, 25, ParadiseLostSoundEvents.ITEM_ARMOR_EQUIP_GLAZED_GOLD, 0f, 0f, IngredientUtil.itemIngredient(ParadiseLostItems.GOLDEN_AMBER)); public static final ArmorMaterial SURTRUM = ArmorMaterialsAccessor.callInit("PARADISE_LOST_SURTRUM", -1, - "paradise_lost_surtrum", 15, new int[]{3, 6, 8, 3}, 15, ParadiseLostSoundEvents.ITEM_ARMOR_EQUIP_SURTRUM, + "paradise_lost_surtrum", 15, new int[]{2, 5, 6, 3}, 15, ParadiseLostSoundEvents.ITEM_ARMOR_EQUIP_SURTRUM, 0f, 0.1f, IngredientUtil.itemIngredient(ParadiseLostItems.REFINED_SURTRUM)); diff --git a/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityMixin.java b/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityMixin.java new file mode 100644 index 000000000..50870fec4 --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityMixin.java @@ -0,0 +1,29 @@ +package net.id.paradiselost.mixin.entity; + +import net.id.paradiselost.items.ParadiseLostItems; +import net.minecraft.entity.vehicle.BoatEntity; +import net.minecraft.item.Item; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BoatEntity.class) +public abstract class BoatEntityMixin { + @Shadow + public abstract BoatEntity.Type getBoatType(); + + @Inject(method = "asItem", at = @At(value = "FIELD", target = "Lnet/minecraft/item/Items;OAK_BOAT:Lnet/minecraft/item/Item;", opcode = Opcodes.GETSTATIC), cancellable = true) + private void checkCustomBoats(CallbackInfoReturnable cir) { + BoatEntity.Type type = this.getBoatType(); + if (type != BoatEntity.Type.OAK) { + for (var entry : ParadiseLostItems.BOAT_SETS){ + if (type == entry.type()){ + cir.setReturnValue(entry.boat()); + } + } + } + } +} diff --git a/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityTypeMixin.java b/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityTypeMixin.java new file mode 100644 index 000000000..352959a62 --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityTypeMixin.java @@ -0,0 +1,32 @@ +package net.id.paradiselost.mixin.entity; + +import net.id.paradiselost.util.EnumExtender; +import net.minecraft.block.Block; +import net.minecraft.entity.vehicle.BoatEntity; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.Arrays; + +@Mixin(BoatEntity.Type.class) +public class BoatEntityTypeMixin { + @SuppressWarnings("ShadowTarget") + @Shadow + @Mutable + @Final + private static BoatEntity.Type[] field_7724; + + static { + EnumExtender.register(BoatEntity.Type.class, (name, args) -> { + BoatEntity.Type entry = (BoatEntity.Type) (Object) new BoatEntityTypeMixin(name, field_7724.length, (Block) args[0], (String) args[1]); + field_7724 = Arrays.copyOf(field_7724, field_7724.length + 1); + return field_7724[field_7724.length - 1] = entry; + }); + } + + private BoatEntityTypeMixin(String valueName, int ordinal, Block baseBlock, String name) { + throw new AssertionError(); + } +} diff --git a/src/main/java/net/id/paradiselost/mixin/entity/ChestBoatEntityMixin.java b/src/main/java/net/id/paradiselost/mixin/entity/ChestBoatEntityMixin.java new file mode 100644 index 000000000..1b2b3eb6d --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/entity/ChestBoatEntityMixin.java @@ -0,0 +1,34 @@ +package net.id.paradiselost.mixin.entity; + +import net.id.paradiselost.items.ParadiseLostItems; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.vehicle.BoatEntity; +import net.minecraft.entity.vehicle.ChestBoatEntity; +import net.minecraft.item.Item; +import net.minecraft.world.World; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(ChestBoatEntity.class) +public class ChestBoatEntityMixin extends BoatEntity { + + public ChestBoatEntityMixin(EntityType entityType, World world) { + super(entityType, world); + } + + @Inject(method = "asItem", at = @At(value = "FIELD", target = "Lnet/minecraft/item/Items;OAK_CHEST_BOAT:Lnet/minecraft/item/Item;", opcode = Opcodes.GETSTATIC), cancellable = true) + private void checkCustomBoats(CallbackInfoReturnable cir) { + BoatEntity.Type type = this.getBoatType(); + if (type != BoatEntity.Type.OAK) { + for (var entry : ParadiseLostItems.BOAT_SETS){ + if (type == entry.type()){ + cir.setReturnValue(entry.chestBoat()); + } + } + } + } +} diff --git a/src/main/java/net/id/paradiselost/util/EnumExtender.java b/src/main/java/net/id/paradiselost/util/EnumExtender.java new file mode 100644 index 000000000..7668b587f --- /dev/null +++ b/src/main/java/net/id/paradiselost/util/EnumExtender.java @@ -0,0 +1,26 @@ +package net.id.paradiselost.util; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiFunction; + +public class EnumExtender { + private static final Map>, BiFunction>> extensibles = new HashMap<>(); + + public static > void register(Class extensible, BiFunction callback) { + extensibles.put(extensible, callback); + } + + @SuppressWarnings("unchecked") + public static > T add(Class to, String name, Object... arguments) { + if (extensibles.containsKey(to)) { + try { + return (T) extensibles.get(to).apply(name, arguments); + } catch (ClassCastException | IndexOutOfBoundsException e) { + throw new IllegalArgumentException("Invalid arguments for entry " + name + " of enum " + to + ". Arguments must match the enum constructor."); + } + } else { + throw new UnsupportedOperationException("Attempted to extend inextensible enum " + to + ". Create a mixin for it from the template in EnumExtender."); + } + } +} diff --git a/src/main/resources/assets/paradise_lost/textures/entity/chest/crystal/normal.png b/src/main/resources/assets/paradise_lost/textures/entity/chest/crystal/normal.png deleted file mode 100644 index e8e8ac34f352bba8547611247b3479c06814eb27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmV-g0;TaPEl5A?00001bW%=J06^y0W&i*Iz)3_wRCwC$mDhr$FbqS9 z?1YUW)64(=>0(n%woEeh3Eg_82&IW(xWB!>9d?ZrRYaukH4XpP&CSE|+=-YO*q&sh zVg~=;;C6W)1|S+~ROwfQfB;p%{|xT#9+#&lh=snl1a(Ng1|W)Ru_e&(N!4!<57`h*YSW)!8^JLL2|(yiz-C}?ItO}r zivjMRL^aR|AYvdTB%pf;k_Z8v68o5em)M64suKIi9MmO7{O$yGiADa% zGFFv_AE>mrNN*(TXFvHhOA%HHOUX?t%*DtJgb~(tgXAVnDHS6(IL~`-k~}?6Ms5IQ zzz#uflDxbYrMi^?tpV-YCQULGBR7C@N_GfxlO!cEa)XKa*e|(B0*KPtV3COE`;?nh oM2b=4-q@z$(xpq6E`7az1Fz{H1{WiChX4Qo07*qoM6N<$f`hvPxBvhE diff --git a/src/main/resources/assets/paradise_lost/textures/entity/chest/crystal/normal_left.png b/src/main/resources/assets/paradise_lost/textures/entity/chest/crystal/normal_left.png deleted file mode 100644 index f55c32095056ead752c3d20be15ed75b272ec49e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 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 diff --git a/src/main/resources/assets/paradise_lost/textures/entity/chest/orange/normal_left.png b/src/main/resources/assets/paradise_lost/textures/entity/chest/orange/normal_left.png deleted file mode 100644 index 836430dd89789e7853310e3a5412f063b08cdc7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmV-_0)YLAP)00DGTPE!Ct=GbNc00HYsL_t(|+U=F;j-)UQgehO^Au#v6 z|Eq2sP=`o~CVT$k6KzuslpHIVWqEm7DwGi+Dd{|^a_RE%`dS6R%)oh2iBB-38>)Hf&%D9&d0g%{`F*C^WJsuEAjzTQ^em)DR z@r(fl;#7d7#I`5w$tEi3^&lJQab!SKOOR4R$sp#a-B99`0UdY=EC!46VHwQzz%xQl z5kU!-I1B)ts-UwEDpLk!BZGq+g@Y<*Dk$$#4itDfsdB1`BK3*w`J$w%;O(tzaIOFx zkyjrpPF(|SSbeO}HvmknfXwO_WsQQNYp`u=5OK@rGE%`(8ILrQt6atmMjCS?rwm|L zXV{M`m@&{RzhhA5Pn}_{!CViT8P*u^jDZCj7UK&3bq~}sDEW5`>;NVFRuAyl3Hm?x z!FZ%0_=AxqL6vjgM)5$7BNL+J_L}tV9s`RLr+xK(Ppzu2Cy$y41vE0!>WQIUrHZb> z69-R0POIk>I)0}rSBn1rZM4;)s)tg|>T(Sj>_nIXus}CIo>w*1tZ59_+tBMdGC%gpg6YG3HnlxU6!m zi6QR)00m8my#EtKpH}LVIXgHt$fXLHIReur#1r)yb4L60GOeK{=soVR1$)5KMBvp{ zzn3;fD{_AUXBWM$S)$u}7^H?7Q3E-|we&P7sTi!xE-Fk8PHr!4c!%V}?2HE!@bJyVdNK?LPq~ZR4(F#5!rV4I$&w7x9l!Bq^-$rsETUXnu z%&4pA!=iTk2D_6(lO-V!(sK6TELhM3IU?N1VU+_cH9gq>H41vbE#zQFHBdwZ_i3&X y^i2ir>f8)+#qO`Zjk)t}{Lg>>^Pm5GZ@vIsCLHpf-%7Rs0000Px(t4TybRCt{2noV!xL>R~aL3ZN2ZPe6kDzR*vt;%Itq?Pu<4fY7%0dWR#L3{ze z1mA>f5ho6#yP*-WHG;uPvk<7vSI5U2WU*eK1^Sfm1nZG^r%*-=0k5d7F z)03avYh#Gr-af94AwK>5%L-QTNZ)h2oi>Yh6BN25B{20Dv+2N4U@Te3WjTC}|vC93$rVjqY~ZeuL@Wcrryp zt3j((g`ONS$MX*h6+K-MrUU&p>nd7J7v>^w?b4yFE)tKfseYrGWn<1P!4Sc+eA*lO z%c0(C2B(2rq-v=tWB@>1uE-Chff^pXrfCt(FN?wk;C%of`T-jLaZqD{r5`XC@P|KL zmq{T5#Cho86c|sYAs^7JtD#=!o!`u?z+5=xuL4CMz&pXH`wgvzZl@jc=H&3m7XY3i zXe2c2>fP)E@(TI&KX@J75Ac40($u(_3IBR#-p%HRC$|A;Zh!XV(7zWoTxmN?d88ZO z%!O@ooUUwg8(=({;`AbXpILUSKa-tw=Suk zQBXa9dp%5CPZa>dK_z$+iyEc_;~E2IZG_I4%m4trPD^+W=~kftqT@-E{`KWW>au0( z%!LDE;$8D6O!_5V5(?lgKfyH_SnkI7qbdO0zt_ZoS($V_U0J)%+dA(E1_|m`QF(TF zkx~Ae}czNf#SEJ;UWaW{*=N{be0s!iqCEHpRQ)c^VV#;hR zn1#XB7~7y*6%bJX;GnmQ{hdZqIf0*l_x=^KExIHWAiUNFV}QZ^KCvyjBoqKRGj0HQ zL+D{=8DCqj zTe!}mn_KJGQRAc1L0udQ0Q_l;0YrZrG$zsC1~*9;1+SAxBoc{4B9TZW5{X12kw_#G b$s7I!M93~bBVpv=00000NkvXXu0mjfKZH-c diff --git a/src/main/resources/assets/paradise_lost/textures/entity/chest/skyroot/normal_left.png b/src/main/resources/assets/paradise_lost/textures/entity/chest/skyroot/normal_left.png deleted file mode 100644 index d4be8612753cdd7552cd8001d4fdf9f1dba1bd82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1342 zcmV-E1;P4>P)Px(_(?=TRCt{2nL%&kL=?yWk(_uEHyawvrV_jDma3HyEYeC{Bsf8j%bg?QjKqyk zfw=Jn5J$wd+9Tq^VRr=*Y7uCGq=7?S(yY?NiJf$14$jzPdnR@4aht>ZE_L6`i#>1N zJkR`H0)QV5zwrRz!;d~KAtn1eyB_<$<4yqpM6bYcryzPI(MA#VN#lF;?@8)sOoIjh zzjWGYx7+yqi%-0-zxp=S4G#A10swl>EU=lR9N0wHzjjY?uy=Q1pGCg1(E#AVy=}DH z?WG*QfBIW+-E7nW0R6!b%|;#l!7$OkMsz&7zXJehnHtaw+vp(E+GU~vz^kn-Y;SKb zP39O zR__umQ{&o=Y8h*W7pXNe(XQ^oCqAdooMd0Wab!o6G?a zr6a8aB8XmrQ7v=VwaCu;$|iFFXo}PHrm*SHYX^We!;7qUn&tq6c6*ZbNf#q^2>|{q z(PhBW9}LlRW|8a&Q$4b$O4zO5Wx`h$nF9bMD}H>oX?u<6Xg2CFNjZ@XbjG9WKC~Ov zabnVCOw0}`#4#2y+o53|(p?R+>la$eOWA$A5Te8nHI%XA277u@pGCg1$sB-1gI`3A==jgQKplkJ&Ko?v$4lbj z?K@i@?|#ByYJSj;{^)YoQRV==v$+9)pZ+v$*^?ZlW1VAs=Hk)Aoon#}0BbP95xU%Q zWDdaAdM#mN3zz7+W1Xk&E5py8%wP?~_D}0uh$NPU zJdzkKpe#2kiRHm0<;XccjjZ+EPtTUV&u0hk<$Y8xnFA2rs)n|kkhSt4U}Y=Hb<0|Lkgx>!TTF3DDJG7K&b+-!bc|g;jfalkuVaO?*0IjfnfLR5FHHI4 z!3dN2Oje10r60YwMRe3jc+ZLBqDu5)B(XO)UdiP5wxTi+hew4$X`Sxo) z4aQ-2kVW~4G)YRXouJjb3`7um5aK<^)4%*296HlLuRFG0;MfA{q=L zxi&&^wRX)&M&GEG@o=XR*bW^R9mmC6t##on$Nffj$*(Ud{jS=kv*cO=X%07{e%*l$ zAgS=m_UjJppa}EG90318lCU?U6**Q@Ia0L{Au+8h`$Xk`tbRZcsQCXylMQ{ zZ-dMD0pYhng+ifFC=?2XLZMJ76bgkxp-=$$9}Fj}cptJTkpKVy07*qoM6N<$f@dU^ AcK`qY diff --git a/src/main/resources/assets/paradise_lost/textures/entity/chest/skyroot/normal_right.png b/src/main/resources/assets/paradise_lost/textures/entity/chest/skyroot/normal_right.png deleted file mode 100644 index 69f3e428296b65008a1c50be534305738633348a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1370 zcmV-g1*Q6lP)Px)6iGxuRCt{2n$K_JL=?xr5l%d5nhgZAiNtC{w^|T_MMBy=a08CZ|A07yxFGI` zD?(fld*s0X(B)QyI3Pjcu-!_Cs;f5ikd$mtNZi^E$Q+zE89U>|Gfuien$N}dym|A> zZ{Ey2y8r;EC%=aPaIN)X0U5dBG{btW3IOo@006-35Ag&z7fXEW_2-^fE=mVxLzRog4W0-_Dc$StI9JkpM#s(Rv*ro$_ZXZQw5r@b<) z4Q6BKm(v-++21a%Ua7>MiK|yC(ACSs{r#iVa&+s}K3!a9NQ_{1N!x*@p}h>&Yt>9) zEty<5BnId^&@^)GEwhBR(&P>+;@<9$d8%Iuxi{B~!dmmTx$8jg0Z<8RtsE( zHrJ!HGPBVgX!U(ket`C5O11rfmwP;smzj-oe_ChM##t+w8GzfZrqU_x```Y6jvle| ztFj6J;N|AiT6)x88Qcl#{;Y7Br$P5(oT*%uPiPhZ9CZJ}K{qn>>$Pe8Of2Z+}W=2v>ngKvFB&fTecO5UyC;@AvP+0#Ud+_JPvCfY!tJKSfFX~K$=;_53K!%Fm&;M1& diff --git a/src/main/resources/assets/paradise_lost/textures/entity/chest/wisteria/normal.png b/src/main/resources/assets/paradise_lost/textures/entity/chest/wisteria/normal.png deleted file mode 100644 index bcae1917841b4e72733f0addf1a9f82f7306ffb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)FSjNl9#M zY*kfNi;Ih0U0s5Lf{*T5H2?qr0d!JMQvg8b*k%9#0qaRbK~#9!?UmtfoG=iC@eE5B zJDkZS?fXA!cSMUp3W|lQ{<=>F-^gM-EXOhopU=Rl4zyFN!S0yte z|BNI>5tCgTJY(zzOtJ4I^pj;>*SgkP$t#18k6$rbf^o;fpk_d1TqbxvKVuvdq$!9= z307bUa&{%?AepX}#h6rsbwSQ@=r&+fTo!wRoFV!R#vRHa3)P@ML7+R>YXIE=x(zJJ zAnBwU)SR*8z^%WCGEfA{U;!3%7Ez3Ltifo6Z}i^+NfR{Pf;H7=FeMQc6w_HXv07^)fIz~fuRQV6ML;83Lj2J=z*mx|m}tNSb-Iv$U?UkxWZ zTUrO_CU$OceFg*w3NR)9*kQkcy8x7+8T2P`X8_zxU`7Yz;JlYW;oZgU8VK3kHPGJF zbh8H9o(OpFDH!QaCxLSjyIUG|)Y5J}#$!w4e`slApbyD5_p7#Nt;IyKQs;iv3`%=@ z$~+Y#h=7#3UTX&C`u>Z`c{1!sU9U9*dd^D#te7WiHE@U2^;$E4=SBMeb1G71l?f)LBtF@y+P)gDHZSGe$zl}`|FJ8QO c@#5d}8_R?w6BWR$XEl=kFRgF=j8jQHE>*oJ$+XRh(&-eFg_zdDu8L1WUbsmChEU0<~j|HM# z1suLd_hY#z$Haaxxek(g0;0ic>K#yFFzxN2J%fP|yH0_<1+R$SJMG#R5O>riF^y!n zcFsTxTmnq31F|8S4ubgeGY}$@1L_L!8yU$c%E_pUNH=9V);rTt2ae72!Q z^Ocs2YP$j;0)Zij|D8ck0G;`j0AQc8SMW8UYX-(1L6WWksV6`Tf@!0Jzdr+#0=)i8 zfb78Kmu7$;cLM#(`=I?wgYg@$G&ZX3`!=!~y#Fp-w())3{=zcmG;f)=ZLUrahkd8k z5J3Q0#hiI2afs5KbxxpT8xeZmiJW8{2WLZ8(3$U_M#&5rhOt1jQdXR{0gXEmLIA{| zg-PuAVW459MM1~muJ-|u9njtZmF|hgfmX2&>bAyP85c57Y1`IqE!c-;LS>r69g{Q9 zv)9bk%~RIutcE+@-Y(z9Qn=uH`BIvO2M-=Rc<`tBA4}OEUy)+V5C8xG07*qoM6N<$ Eg2ECmt^fc4 diff --git a/src/main/resources/assets/paradise_lost/textures/entity/chest/wisteria/normal_right.png b/src/main/resources/assets/paradise_lost/textures/entity/chest/wisteria/normal_right.png deleted file mode 100644 index 97bb094bc3a9081240912b839d42dfc4e722419b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmV;l0!#ggP)P)t-s0RRBS zw~|IQAJfaGJS`gC*tP%w0Kc$`GbR;SLn_9)l)J2kwWNNilWm1=MNd2=l6p`qCm%^k zNgo^+Y;0_ci;GoNRb5?Of`WpNQ0F-S0004WQchCAc0U)0!G2SQsL2a$|&R=8PYdk!-CnGT9p>Jj2UgPf0-OmEvdksLnhlaQ@ zsJM@zD19mI8Wh`xDpA<12zZe0UQiDW%Z58;Nq}ZppiC@App!uASzsT*`W$#q61$Qp zb`ikctV9s^9l*#W#J)-2^+_Zk0|16I$cd#003ZtLr>vwF1QL-b+i5G)9+UTMrXU1?%p51NsOL_H%$E%DD8 zZ0%8*daqHavG%OFaUz`|O5tdG2viITVyrpU2nfgkTW|&`Mc8ZWvp@{nR+J7o0nS_s zym}`>C}m?18|GwBqcce9s2#U*kp87$X?RM2djqx3z=Z*&T)^=zAV-h56>LEwPyp3B z!`R|DM{pH;Z@n?{uw226GgMPK1ejW@*sDBpn!gaJb8Vh3az^dN+eiy<0X@0^0000F! z$v^m6dH(-D;VdctV_^@w!7)aO#q7({`dO!Z^p{vRSM*qe=D&kH$sJCT{SThKIDDqj zaNmc;xBnfKS$0=OO{xFf4~}G;V+l6%`Gt4#r`F8tpZrn!+ztN8O-2n8=E+kS8UD&V U;dfYaSP$e5Pgg&ebxsLQ0Ey>5(EtDd diff --git a/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook2.png b/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook2.png deleted file mode 100644 index 01162b438937a80602f17c967accc152edf794e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^4j{}3Bp8~6e2Re-Q%R6tFasmwl)vkMykt)o$B>F! z$v^m6dH(<3;4CTsWML2U9|JbyDIXgIPyP7FyzBPl>h($ diff --git a/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook3.png b/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook3.png deleted file mode 100644 index bed4ecfe5331453412e1cba7b94bdf3df9113cd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^4j{}3Bp8~6e2Re-Q%R6tFasmwl)vkMyaG=b$B>F! z$v^m6PxMr2Jf3emsIgWOtyhNi@3wx>!CdNNCSXosvvD)C+{vs27 fX2ZN=8q5qCmG_>@)~O@_?PlbP0l+XkKXv0DE diff --git a/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook4.png b/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook4.png deleted file mode 100644 index 4b6e29b1bec4d39f991479778b5721b8e7e7e50e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^4j{}3Bp8~6e2Re-Q%R6tFasmwl)vkMyarDf$B>F! z$v^m6e@N8-|L82S|Gz;!yK&vW)IYpwe}10-A$g`E`S=f+Ge0c)KkB$xa~CVS^fK?Z zaYK<3bo3n9FTHAUOo4d$ubZ#TH1tvKzU@%mN+yA|Qi68As9R_rM^IJW+O vz_I_|1CH(g{(m9Qjw|&(f-NGEJ%MZtpG_VtGSOQZ19G9KtDnm{r-UW|?!!)| diff --git a/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye1.png b/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye1.png deleted file mode 100644 index 7decb319e61655871665c9715d3fc8a9396f82c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^4j{}3Bp8~6e2Re-Q%R6tFatx`_C0G|fY-VGy`NzT;xLI-^NSmjtpUXO@geCwugcW80 diff --git a/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye3.png b/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye3.png deleted file mode 100644 index 1899471ddd22c7b579a60f9939aa01e0ee2b626d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^4j{}3Bp8~6e2Re-Q%R6tFatx`FVdQ&MBb@0OM5`bN~PV diff --git a/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye4.png b/src/main/resources/assets/paradise_lost/textures/entity/corvid/rook_eye4.png deleted file mode 100644 index f0327713c49371fd042e2abe3b75b03554cfdb57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^4j{}3Bp8~6e2Re-Q%R6tFatx`zHQo%?Z@Xf0)gYrfF4JWS-l6<-1-DBM{qG1DjL}Tmb&VcAkxzmXu#!mP(y-s cF@nRuAmXd6Z#2oy0O$+`Pgg&ebxsLQ0Kd;g_y7O^ diff --git a/src/main/resources/data/c/tags/blocks/chests.json b/src/main/resources/data/c/tags/blocks/chests.json deleted file mode 100644 index e20695a47..000000000 --- a/src/main/resources/data/c/tags/blocks/chests.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "#paradise_lost:chests" - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/golden_oak_chest.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/golden_oak_chest.json deleted file mode 100644 index 2594b39ac..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/golden_oak_chest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:golden_oak_chest" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/orange_chest.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/orange_chest.json deleted file mode 100644 index 51a36b93d..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/orange_chest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:orange_chest" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/skyroot_chest.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/skyroot_chest.json deleted file mode 100644 index 58d9dc5ab..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/skyroot_chest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:skyroot_chest" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/wisteria_chest.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/wisteria_chest.json deleted file mode 100644 index 654525806..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/blocks/wisteria_chest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "paradise_lost:wisteria_chest" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/recipes/aurel_chest.json b/src/main/resources/data/paradise_lost/recipes/aurel_chest.json deleted file mode 100644 index 548594116..000000000 --- a/src/main/resources/data/paradise_lost/recipes/aurel_chest.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "# #", - "###" - ], - "key": { - "#": { - "item": "paradise_lost:aurel_planks" - } - }, - "result": { - "item": "paradise_lost:skyroot_chest" - } -} diff --git a/src/main/resources/data/paradise_lost/recipes/chest_from_paradise_chest.json b/src/main/resources/data/paradise_lost/recipes/chest_from_paradise_chest.json deleted file mode 100644 index 541d24436..000000000 --- a/src/main/resources/data/paradise_lost/recipes/chest_from_paradise_chest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "paradise_lost:chests" - } - ], - "result": { - "item": "minecraft:chest" - } -} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/golden_oak_chest.json b/src/main/resources/data/paradise_lost/recipes/golden_oak_chest.json deleted file mode 100644 index d4da97aca..000000000 --- a/src/main/resources/data/paradise_lost/recipes/golden_oak_chest.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "# #", - "###" - ], - "key": { - "#": { - "item": "paradise_lost:mother_aurel_planks" - } - }, - "result": { - "item": "paradise_lost:golden_oak_chest" - } -} diff --git a/src/main/resources/data/paradise_lost/recipes/orange_chest.json b/src/main/resources/data/paradise_lost/recipes/orange_chest.json deleted file mode 100644 index 35ce46288..000000000 --- a/src/main/resources/data/paradise_lost/recipes/orange_chest.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "# #", - "###" - ], - "key": { - "#": { - "item": "paradise_lost:orange_planks" - } - }, - "result": { - "item": "paradise_lost:orange_chest" - } -} diff --git a/src/main/resources/data/paradise_lost/recipes/refined_surtrum_from_raw.json b/src/main/resources/data/paradise_lost/recipes/refined_surtrum_from_raw.json index 9e5106da9..82f4d36df 100644 --- a/src/main/resources/data/paradise_lost/recipes/refined_surtrum_from_raw.json +++ b/src/main/resources/data/paradise_lost/recipes/refined_surtrum_from_raw.json @@ -1,15 +1,9 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "minecraft:lava_bucket" - }, - { - "item": "paradise_lost:raw_surtrum" - } - ], - "result": { - "item": "paradise_lost:refined_surtrum", - "count": 1 - } -} \ No newline at end of file + "type": "minecraft:smelting", + "ingredient": { + "item": "paradise_lost:surtrum" + }, + "result": "paradise_lost:refined_surtrum", + "experience": 0.8, + "cookingtime": 200 +} diff --git a/src/main/resources/data/paradise_lost/recipes/wisteria_chest.json b/src/main/resources/data/paradise_lost/recipes/wisteria_chest.json deleted file mode 100644 index ef64a99e5..000000000 --- a/src/main/resources/data/paradise_lost/recipes/wisteria_chest.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "# #", - "###" - ], - "key": { - "#": { - "item": "paradise_lost:wisteria_planks" - } - }, - "result": { - "item": "paradise_lost:wisteria_chest" - } -} diff --git a/src/main/resources/data/paradise_lost/tags/blocks/chests.json b/src/main/resources/data/paradise_lost/tags/blocks/chests.json deleted file mode 100644 index 125734dbd..000000000 --- a/src/main/resources/data/paradise_lost/tags/blocks/chests.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "#paradise_lost:wooden_chests" - ] -} diff --git a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_axe.json b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_axe.json index 0c5dce23f..a8014f4bc 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_axe.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_axe.json @@ -8,7 +8,6 @@ "#paradise_lost:leaf_piles", "#paradise_lost:bushes", "#paradise_lost:hangers", - "#paradise_lost:wooden_chests", "paradise_lost:cherine_campfire" ] } \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/tags/blocks/wooden_chests.json b/src/main/resources/data/paradise_lost/tags/blocks/wooden_chests.json deleted file mode 100644 index 87c8786ec..000000000 --- a/src/main/resources/data/paradise_lost/tags/blocks/wooden_chests.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "replace": false, - "values": [ - "paradise_lost:skyroot_chest", - "paradise_lost:golden_oak_chest", - "paradise_lost:orange_chest", - "paradise_lost:crystal_chest", - "paradise_lost:wisteria_chest" - ] -} diff --git a/src/main/resources/data/paradise_lost/tags/items/chests.json b/src/main/resources/data/paradise_lost/tags/items/chests.json deleted file mode 100644 index 1fdf4c08e..000000000 --- a/src/main/resources/data/paradise_lost/tags/items/chests.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "replace": false, - "values": [ - "paradise_lost:crystal_chest", - "paradise_lost:golden_oak_chest", - "paradise_lost:orange_chest", - "paradise_lost:skyroot_chest", - "paradise_lost:wisteria_chest" - ] -} diff --git a/src/main/resources/paradise_lost.mixins.json b/src/main/resources/paradise_lost.mixins.json index 2b612a0d1..29137beee 100644 --- a/src/main/resources/paradise_lost.mixins.json +++ b/src/main/resources/paradise_lost.mixins.json @@ -10,6 +10,9 @@ "block.EnchantingTableBlockMixin", "block.FarmlandBlockMixin", "enchantment.EnchantmentHelperMixin", + "entity.BoatEntityMixin", + "entity.BoatEntityTypeMixin", + "entity.ChestBoatEntityMixin", "entity.CowEntityMixin", "entity.EntityMixin", "entity.LivingEntityMixin", From cc149abf1e9099a80e1b24af522cd6a63b902b22 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Fri, 26 Apr 2024 16:23:51 -0500 Subject: [PATCH 07/24] -carved stone --- .../blocks/ParadiseLostBlocks.java | 22 -- .../entities/block/SliderEntity.java | 2 +- .../paradiselost/items/ParadiseLostItems.java | 15 -- .../blockstates/carved_stone.json | 7 - .../blockstates/carved_stone_eye.json | 7 - .../blockstates/carved_stone_eye_lit.json | 7 - .../blockstates/carved_stone_panel.json | 7 - .../blockstates/carved_stone_panel_lit.json | 7 - .../blockstates/carved_stone_slab.json | 13 -- .../blockstates/carved_stone_stairs.json | 209 ------------------ .../blockstates/carved_stone_wall.json | 90 -------- .../blockstates/cracked_carved_stone.json | 7 - .../blockstates/glyphed_carved_stone.json | 7 - .../blockstates/mossy_carved_stone.json | 7 - .../blockstates/mossy_carved_stone_slab.json | 13 -- .../mossy_carved_stone_stairs.json | 209 ------------------ .../blockstates/mossy_carved_stone_wall.json | 90 -------- .../models/block/carved_stone.json | 6 - .../models/block/carved_stone_eye.json | 6 - .../models/block/carved_stone_eye_lit.json | 6 - .../models/block/carved_stone_panel.json | 6 - .../models/block/carved_stone_panel_lit.json | 6 - .../models/block/carved_stone_slab.json | 8 - .../models/block/carved_stone_slab_top.json | 8 - .../models/block/carved_stone_stairs.json | 8 - .../block/carved_stone_stairs_inner.json | 8 - .../block/carved_stone_stairs_outer.json | 8 - .../block/carved_stone_wall_inventory.json | 6 - .../models/block/carved_stone_wall_post.json | 6 - .../models/block/carved_stone_wall_side.json | 6 - .../block/carved_stone_wall_side_tall.json | 6 - .../models/block/cracked_carved_stone.json | 6 - .../models/block/glyphed_carved_stone.json | 6 - .../models/block/mossy_carved_stone.json | 6 - .../models/block/mossy_carved_stone_slab.json | 8 - .../block/mossy_carved_stone_slab_top.json | 8 - .../block/mossy_carved_stone_stairs.json | 8 - .../mossy_carved_stone_stairs_inner.json | 8 - .../mossy_carved_stone_stairs_outer.json | 8 - .../mossy_carved_stone_wall_inventory.json | 6 - .../block/mossy_carved_stone_wall_post.json | 6 - .../block/mossy_carved_stone_wall_side.json | 6 - .../mossy_carved_stone_wall_side_tall.json | 6 - .../models/item/carved_stone.json | 3 - .../models/item/carved_stone_double_slab.json | 3 - .../models/item/carved_stone_eye.json | 3 - .../models/item/carved_stone_eye_lit.json | 3 - .../models/item/carved_stone_panel.json | 3 - .../models/item/carved_stone_panel_lit.json | 3 - .../models/item/carved_stone_slab.json | 3 - .../models/item/carved_stone_stairs.json | 3 - .../models/item/carved_stone_wall.json | 3 - .../models/item/cracked_carved_stone.json | 3 - .../models/item/glyphed_carved_stone.json | 3 - .../models/item/mossy_carved_stone.json | 3 - .../item/mossy_carved_stone_double_slab.json | 3 - .../models/item/mossy_carved_stone_slab.json | 3 - .../item/mossy_carved_stone_stairs.json | 3 - .../models/item/mossy_carved_stone_wall.json | 3 - .../textures/block/carved_stone.png | Bin 204 -> 0 bytes .../textures/block/carved_stone_eye.png | Bin 207 -> 0 bytes .../textures/block/carved_stone_eye_lit.png | Bin 238 -> 0 bytes .../textures/block/carved_stone_panel.png | Bin 207 -> 0 bytes .../textures/block/carved_stone_panel_lit.png | Bin 228 -> 0 bytes .../textures/block/cracked_carved_stone.png | Bin 205 -> 0 bytes .../textures/block/glyphed_carved_stone.png | Bin 228 -> 0 bytes .../textures/block/mossy_carved_stone.png | Bin 240 -> 0 bytes .../recipes/carved_stone_eye.json | 16 -- ...ne_eye_from_carved_stone_stonecutting.json | 8 - .../recipes/carved_stone_panel.json | 15 -- ..._panel_from_carved_stone_stonecutting.json | 8 - .../recipes/carved_stone_slab.json | 15 -- ...e_slab_from_carved_stone_stonecutting.json | 8 - .../recipes/carved_stone_stairs.json | 17 -- ...stairs_from_carved_stone_stonecutting.json | 8 - .../recipes/carved_stone_wall.json | 16 -- ...e_wall_from_carved_stone_stonecutting.json | 8 - .../recipes/cracked_carved_stone.json | 9 - .../mossy_carved_stone_from_moss_block.json | 15 -- .../recipes/mossy_carved_stone_from_vine.json | 15 -- .../recipes/mossy_carved_stone_slab.json | 15 -- ..._from_mossy_carved_stone_stonecutting.json | 8 - .../recipes/mossy_carved_stone_stairs.json | 17 -- ..._from_mossy_carved_stone_stonecutting.json | 8 - .../recipes/mossy_carved_stone_wall.json | 16 -- ..._from_mossy_carved_stone_stonecutting.json | 8 - .../tags/blocks/carved_stone_blocks.json | 13 -- .../tags/blocks/stone_blocks.json | 1 - .../tags/blocks/stone_slabs.json | 4 +- .../tags/blocks/stone_stairs.json | 4 +- .../tags/blocks/stone_walls.json | 4 +- .../paradise_lost/tags/items/stone_slabs.json | 4 +- .../tags/items/stone_stairs.json | 4 +- .../paradise_lost/tags/items/stone_walls.json | 4 +- 94 files changed, 7 insertions(+), 1204 deletions(-) delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/carved_stone_eye.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/carved_stone_eye_lit.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/carved_stone_panel.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/carved_stone_panel_lit.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/carved_stone_slab.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/carved_stone_stairs.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/carved_stone_wall.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/cracked_carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/glyphed_carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_slab.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_stairs.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_wall.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_eye.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_eye_lit.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_panel.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_panel_lit.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_slab.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_slab_top.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs_inner.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs_outer.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_inventory.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_post.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_side.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_side_tall.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/cracked_carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/glyphed_carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_slab.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_slab_top.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs_inner.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs_outer.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_inventory.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_post.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_side.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_side_tall.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/carved_stone_double_slab.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/carved_stone_eye.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/carved_stone_eye_lit.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/carved_stone_panel.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/carved_stone_panel_lit.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/carved_stone_slab.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/carved_stone_stairs.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/carved_stone_wall.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/cracked_carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/glyphed_carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_double_slab.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_slab.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_stairs.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_wall.json delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/carved_stone.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/carved_stone_eye.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/carved_stone_eye_lit.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/carved_stone_panel.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/carved_stone_panel_lit.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/cracked_carved_stone.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/glyphed_carved_stone.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/mossy_carved_stone.png delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_eye.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_eye_from_carved_stone_stonecutting.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_panel.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_panel_from_carved_stone_stonecutting.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_slab.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_slab_from_carved_stone_stonecutting.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_stairs.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_stairs_from_carved_stone_stonecutting.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_wall.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/carved_stone_wall_from_carved_stone_stonecutting.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/cracked_carved_stone.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/mossy_carved_stone_from_moss_block.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/mossy_carved_stone_from_vine.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/mossy_carved_stone_slab.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/mossy_carved_stone_slab_from_mossy_carved_stone_stonecutting.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/mossy_carved_stone_stairs.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/mossy_carved_stone_stairs_from_mossy_carved_stone_stonecutting.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/mossy_carved_stone_wall.json delete mode 100644 src/main/resources/data/paradise_lost/recipes/mossy_carved_stone_wall_from_mossy_carved_stone_stonecutting.json delete mode 100644 src/main/resources/data/paradise_lost/tags/blocks/carved_stone_blocks.json diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 2f5b9c4f9..61ee5955d 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -141,28 +141,6 @@ private static Settings floestoneBrick() { 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); - } - - public static final Block CARVED_STONE = add("carved_stone", new Block(carvedStone())); - public static final SlabBlock CARVED_STONE_SLAB = add("carved_stone_slab", new SlabBlock(carvedStone())); - public static final ParadiseLostStairsBlock CARVED_STONE_STAIRS = add("carved_stone_stairs", new ParadiseLostStairsBlock(CARVED_STONE.getDefaultState(), carvedStone())); - public static final WallBlock CARVED_STONE_WALL = add("carved_stone_wall", new WallBlock(carvedStone())); - - public static final Block MOSSY_CARVED_STONE = add("mossy_carved_stone", new Block(carvedStone())); - public static final SlabBlock MOSSY_CARVED_STONE_SLAB = add("mossy_carved_stone_slab", new SlabBlock(carvedStone())); - public static final ParadiseLostStairsBlock MOSSY_CARVED_STONE_STAIRS = add("mossy_carved_stone_stairs", new ParadiseLostStairsBlock(CARVED_STONE.getDefaultState(), carvedStone())); - public static final WallBlock MOSSY_CARVED_STONE_WALL = add("mossy_carved_stone_wall", new WallBlock(carvedStone())); - - public static final Block CRACKED_CARVED_STONE = add("cracked_carved_stone", new Block(carvedStone())); - public static final Block GLYPHED_CARVED_STONE = add("glyphed_carved_stone", new Block(carvedStone().luminance(value -> 3))); - public static final Block CARVED_STONE_PANEL = add("carved_stone_panel", new Block(carvedStone())); - public static final Block CARVED_STONE_PANEL_LIT = add("carved_stone_panel_lit", new Block(carvedStone().luminance(value -> 12))); - public static final Block CARVED_STONE_EYE = add("carved_stone_eye", new Block(carvedStone())); - public static final Block CARVED_STONE_EYE_LIT = add("carved_stone_eye_lit", new Block(carvedStone().luminance(value -> 8))); - private static Settings amberTiles() { return of(Material.STONE, MapColor.GOLD).requiresTool().sounds(BlockSoundGroup.CALCITE).strength(2, 6); } diff --git a/src/main/java/net/id/paradiselost/entities/block/SliderEntity.java b/src/main/java/net/id/paradiselost/entities/block/SliderEntity.java index 2de0bc720..cf416a48e 100644 --- a/src/main/java/net/id/paradiselost/entities/block/SliderEntity.java +++ b/src/main/java/net/id/paradiselost/entities/block/SliderEntity.java @@ -23,7 +23,7 @@ public SliderEntity(EntityType entityType, World worl } public SliderEntity(World world, double x, double y, double z, Direction direction) { - super(ParadiseLostEntityTypes.SLIDER, world, x, y, z, ParadiseLostBlocks.CRACKED_CARVED_STONE.getDefaultState()); + super(ParadiseLostEntityTypes.SLIDER, world, x, y, z, ParadiseLostBlocks.GOLDEN_AMBER_TILE.getDefaultState()); this.setDirection(direction); } diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 702a9350d..02b0d12a5 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -276,15 +276,6 @@ private static FabricItemSettings 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 @@ -299,8 +290,6 @@ private static FabricItemSettings 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()); @@ -309,8 +298,6 @@ private static FabricItemSettings 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 @@ -413,8 +400,6 @@ private static FabricItemSettings 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); // panes & chains public static final BlockItem OLVITE_CHAIN = add("olvite_chain", ParadiseLostBlocks.OLVITE_CHAIN, decoration); diff --git a/src/main/resources/assets/paradise_lost/blockstates/carved_stone.json b/src/main/resources/assets/paradise_lost/blockstates/carved_stone.json deleted file mode 100644 index 12b3a4fc5..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/carved_stone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/carved_stone" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_eye.json b/src/main/resources/assets/paradise_lost/blockstates/carved_stone_eye.json deleted file mode 100644 index c78072698..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_eye.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/carved_stone_eye" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_eye_lit.json b/src/main/resources/assets/paradise_lost/blockstates/carved_stone_eye_lit.json deleted file mode 100644 index a09b07cf9..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_eye_lit.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/carved_stone_eye_lit" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_panel.json b/src/main/resources/assets/paradise_lost/blockstates/carved_stone_panel.json deleted file mode 100644 index 604ca1269..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_panel.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/carved_stone_panel" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_panel_lit.json b/src/main/resources/assets/paradise_lost/blockstates/carved_stone_panel_lit.json deleted file mode 100644 index 2c23606d0..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_panel_lit.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/carved_stone_panel_lit" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_slab.json b/src/main/resources/assets/paradise_lost/blockstates/carved_stone_slab.json deleted file mode 100644 index abe783cb4..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "paradise_lost:block/carved_stone_slab" - }, - "type=top": { - "model": "paradise_lost:block/carved_stone_slab_top" - }, - "type=double": { - "model": "paradise_lost:block/carved_stone" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_stairs.json b/src/main/resources/assets/paradise_lost/blockstates/carved_stone_stairs.json deleted file mode 100644 index ac5d742f0..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=straight": { - "model": "paradise_lost:block/carved_stone_stairs" - }, - "facing=west,half=bottom,shape=straight": { - "model": "paradise_lost:block/carved_stone_stairs", - "y": 180, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "paradise_lost:block/carved_stone_stairs", - "y": 90, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "paradise_lost:block/carved_stone_stairs", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "paradise_lost:block/carved_stone_stairs_outer" - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "paradise_lost:block/carved_stone_stairs_outer" - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "paradise_lost:block/carved_stone_stairs_inner" - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_left": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "paradise_lost:block/carved_stone_stairs_inner" - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "paradise_lost:block/carved_stone_stairs", - "x": 180, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "paradise_lost:block/carved_stone_stairs", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "paradise_lost:block/carved_stone_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "paradise_lost:block/carved_stone_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "paradise_lost:block/carved_stone_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_left": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "paradise_lost:block/carved_stone_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_wall.json b/src/main/resources/assets/paradise_lost/blockstates/carved_stone_wall.json deleted file mode 100644 index 3afc70090..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/carved_stone_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "when": { - "up": "true" - }, - "apply": { - "model": "paradise_lost:block/carved_stone_wall_post" - } - }, - { - "when": { - "north": "low" - }, - "apply": { - "model": "paradise_lost:block/carved_stone_wall_side", - "uvlock": true - } - }, - { - "when": { - "east": "low" - }, - "apply": { - "model": "paradise_lost:block/carved_stone_wall_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "low" - }, - "apply": { - "model": "paradise_lost:block/carved_stone_wall_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "low" - }, - "apply": { - "model": "paradise_lost:block/carved_stone_wall_side", - "y": 270, - "uvlock": true - } - }, - { - "when": { - "north": "tall" - }, - "apply": { - "model": "paradise_lost:block/carved_stone_wall_side_tall", - "uvlock": true - } - }, - { - "when": { - "east": "tall" - }, - "apply": { - "model": "paradise_lost:block/carved_stone_wall_side_tall", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "tall" - }, - "apply": { - "model": "paradise_lost:block/carved_stone_wall_side_tall", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "tall" - }, - "apply": { - "model": "paradise_lost:block/carved_stone_wall_side_tall", - "y": 270, - "uvlock": true - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/cracked_carved_stone.json b/src/main/resources/assets/paradise_lost/blockstates/cracked_carved_stone.json deleted file mode 100644 index 9bae88530..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/cracked_carved_stone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/cracked_carved_stone" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/glyphed_carved_stone.json b/src/main/resources/assets/paradise_lost/blockstates/glyphed_carved_stone.json deleted file mode 100644 index 09f2dff59..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/glyphed_carved_stone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/glyphed_carved_stone" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone.json b/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone.json deleted file mode 100644 index a9a3644a7..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/mossy_carved_stone" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_slab.json b/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_slab.json deleted file mode 100644 index 0eec476c3..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "paradise_lost:block/mossy_carved_stone_slab" - }, - "type=top": { - "model": "paradise_lost:block/mossy_carved_stone_slab_top" - }, - "type=double": { - "model": "paradise_lost:block/mossy_carved_stone" - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_stairs.json b/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_stairs.json deleted file mode 100644 index e68626ab3..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=straight": { - "model": "paradise_lost:block/mossy_carved_stone_stairs" - }, - "facing=west,half=bottom,shape=straight": { - "model": "paradise_lost:block/mossy_carved_stone_stairs", - "y": 180, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "paradise_lost:block/mossy_carved_stone_stairs", - "y": 90, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "paradise_lost:block/mossy_carved_stone_stairs", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer" - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer" - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner" - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner" - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "paradise_lost:block/mossy_carved_stone_stairs", - "x": 180, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "paradise_lost:block/mossy_carved_stone_stairs", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "paradise_lost:block/mossy_carved_stone_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "paradise_lost:block/mossy_carved_stone_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "paradise_lost:block/mossy_carved_stone_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - } - } -} diff --git a/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_wall.json b/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_wall.json deleted file mode 100644 index 8534b2489..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/mossy_carved_stone_wall.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "multipart": [ - { - "when": { - "up": "true" - }, - "apply": { - "model": "paradise_lost:block/mossy_carved_stone_wall_post" - } - }, - { - "when": { - "north": "low" - }, - "apply": { - "model": "paradise_lost:block/mossy_carved_stone_wall_side", - "uvlock": true - } - }, - { - "when": { - "east": "low" - }, - "apply": { - "model": "paradise_lost:block/mossy_carved_stone_wall_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "low" - }, - "apply": { - "model": "paradise_lost:block/mossy_carved_stone_wall_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "low" - }, - "apply": { - "model": "paradise_lost:block/mossy_carved_stone_wall_side", - "y": 270, - "uvlock": true - } - }, - { - "when": { - "north": "tall" - }, - "apply": { - "model": "paradise_lost:block/mossy_carved_stone_wall_side_tall", - "uvlock": true - } - }, - { - "when": { - "east": "tall" - }, - "apply": { - "model": "paradise_lost:block/mossy_carved_stone_wall_side_tall", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "tall" - }, - "apply": { - "model": "paradise_lost:block/mossy_carved_stone_wall_side_tall", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "tall" - }, - "apply": { - "model": "paradise_lost:block/mossy_carved_stone_wall_side_tall", - "y": 270, - "uvlock": true - } - } - ] -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone.json deleted file mode 100644 index 47576bd1d..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_eye.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_eye.json deleted file mode 100644 index dfc892b79..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_eye.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/carved_stone_eye" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_eye_lit.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_eye_lit.json deleted file mode 100644 index f7500605c..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_eye_lit.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/carved_stone_eye_lit" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_panel.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_panel.json deleted file mode 100644 index c9e625e26..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_panel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/carved_stone_panel" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_panel_lit.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_panel_lit.json deleted file mode 100644 index ad5040d33..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_panel_lit.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/carved_stone_panel_lit" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_slab.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_slab.json deleted file mode 100644 index ce202025d..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/slab", - "textures": { - "bottom": "paradise_lost:block/carved_stone", - "top": "paradise_lost:block/carved_stone", - "side": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_slab_top.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_slab_top.json deleted file mode 100644 index 852ab3463..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/slab_top", - "textures": { - "bottom": "paradise_lost:block/carved_stone", - "top": "paradise_lost:block/carved_stone", - "side": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs.json deleted file mode 100644 index 0443106c7..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "paradise_lost:block/carved_stone", - "top": "paradise_lost:block/carved_stone", - "side": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs_inner.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs_inner.json deleted file mode 100644 index 0c80854b4..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/inner_stairs", - "textures": { - "bottom": "paradise_lost:block/carved_stone", - "top": "paradise_lost:block/carved_stone", - "side": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs_outer.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs_outer.json deleted file mode 100644 index 1ca2edede..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_stairs_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/outer_stairs", - "textures": { - "bottom": "paradise_lost:block/carved_stone", - "top": "paradise_lost:block/carved_stone", - "side": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_inventory.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_inventory.json deleted file mode 100644 index c6af30e04..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_inventory.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_post.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_post.json deleted file mode 100644 index b1fa3a647..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/template_wall_post", - "textures": { - "wall": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_side.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_side.json deleted file mode 100644 index 47b0d7449..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/template_wall_side", - "textures": { - "wall": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_side_tall.json b/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_side_tall.json deleted file mode 100644 index 46975cb0f..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/carved_stone_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "paradise_lost:block/carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/cracked_carved_stone.json b/src/main/resources/assets/paradise_lost/models/block/cracked_carved_stone.json deleted file mode 100644 index 451caf886..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/cracked_carved_stone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/cracked_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/glyphed_carved_stone.json b/src/main/resources/assets/paradise_lost/models/block/glyphed_carved_stone.json deleted file mode 100644 index 83dee453a..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/glyphed_carved_stone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/glyphed_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone.json deleted file mode 100644 index deaae8305..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_slab.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_slab.json deleted file mode 100644 index 51236b353..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_slab.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/slab", - "textures": { - "bottom": "paradise_lost:block/mossy_carved_stone", - "top": "paradise_lost:block/mossy_carved_stone", - "side": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_slab_top.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_slab_top.json deleted file mode 100644 index b1980510c..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_slab_top.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/slab_top", - "textures": { - "bottom": "paradise_lost:block/mossy_carved_stone", - "top": "paradise_lost:block/mossy_carved_stone", - "side": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs.json deleted file mode 100644 index e07e33e0b..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "paradise_lost:block/mossy_carved_stone", - "top": "paradise_lost:block/mossy_carved_stone", - "side": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs_inner.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs_inner.json deleted file mode 100644 index f2ea493a1..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs_inner.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/inner_stairs", - "textures": { - "bottom": "paradise_lost:block/mossy_carved_stone", - "top": "paradise_lost:block/mossy_carved_stone", - "side": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs_outer.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs_outer.json deleted file mode 100644 index f20e88458..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_stairs_outer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/outer_stairs", - "textures": { - "bottom": "paradise_lost:block/mossy_carved_stone", - "top": "paradise_lost:block/mossy_carved_stone", - "side": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_inventory.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_inventory.json deleted file mode 100644 index 3e2cd0c91..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_inventory.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/wall_inventory", - "textures": { - "wall": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_post.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_post.json deleted file mode 100644 index 9879c4ec7..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_post.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/template_wall_post", - "textures": { - "wall": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_side.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_side.json deleted file mode 100644 index 4b649c673..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_side.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/template_wall_side", - "textures": { - "wall": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_side_tall.json b/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_side_tall.json deleted file mode 100644 index 5788024e4..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/mossy_carved_stone_wall_side_tall.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/template_wall_side_tall", - "textures": { - "wall": "paradise_lost:block/mossy_carved_stone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/carved_stone.json b/src/main/resources/assets/paradise_lost/models/item/carved_stone.json deleted file mode 100644 index 98c2fe95d..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/carved_stone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/carved_stone" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/carved_stone_double_slab.json b/src/main/resources/assets/paradise_lost/models/item/carved_stone_double_slab.json deleted file mode 100644 index 98c2fe95d..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/carved_stone_double_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/carved_stone" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/carved_stone_eye.json b/src/main/resources/assets/paradise_lost/models/item/carved_stone_eye.json deleted file mode 100644 index 8339c1a70..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/carved_stone_eye.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/carved_stone_eye" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/carved_stone_eye_lit.json b/src/main/resources/assets/paradise_lost/models/item/carved_stone_eye_lit.json deleted file mode 100644 index 2f2e58a0d..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/carved_stone_eye_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/carved_stone_eye_lit" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/carved_stone_panel.json b/src/main/resources/assets/paradise_lost/models/item/carved_stone_panel.json deleted file mode 100644 index 2d968608b..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/carved_stone_panel.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/carved_stone_panel" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/carved_stone_panel_lit.json b/src/main/resources/assets/paradise_lost/models/item/carved_stone_panel_lit.json deleted file mode 100644 index 6036b739f..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/carved_stone_panel_lit.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/carved_stone_panel_lit" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/carved_stone_slab.json b/src/main/resources/assets/paradise_lost/models/item/carved_stone_slab.json deleted file mode 100644 index fbdb6bb41..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/carved_stone_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/carved_stone_slab" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/carved_stone_stairs.json b/src/main/resources/assets/paradise_lost/models/item/carved_stone_stairs.json deleted file mode 100644 index b636ae18c..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/carved_stone_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/carved_stone_stairs" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/carved_stone_wall.json b/src/main/resources/assets/paradise_lost/models/item/carved_stone_wall.json deleted file mode 100644 index 79b5b6e08..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/carved_stone_wall.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/carved_stone_wall_inventory" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/cracked_carved_stone.json b/src/main/resources/assets/paradise_lost/models/item/cracked_carved_stone.json deleted file mode 100644 index c6ff9fe9b..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/cracked_carved_stone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/cracked_carved_stone" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/glyphed_carved_stone.json b/src/main/resources/assets/paradise_lost/models/item/glyphed_carved_stone.json deleted file mode 100644 index ae97bfdcf..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/glyphed_carved_stone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/glyphed_carved_stone" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone.json b/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone.json deleted file mode 100644 index 3f289f73a..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/mossy_carved_stone" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_double_slab.json b/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_double_slab.json deleted file mode 100644 index 3f289f73a..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_double_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/mossy_carved_stone" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_slab.json b/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_slab.json deleted file mode 100644 index 743e3c387..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/mossy_carved_stone_slab" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_stairs.json b/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_stairs.json deleted file mode 100644 index f75263cb7..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/mossy_carved_stone_stairs" -} diff --git a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_wall.json b/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_wall.json deleted file mode 100644 index 5b7d6160c..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/mossy_carved_stone_wall.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/mossy_carved_stone_wall_inventory" -} diff --git a/src/main/resources/assets/paradise_lost/textures/block/carved_stone.png b/src/main/resources/assets/paradise_lost/textures/block/carved_stone.png deleted file mode 100644 index 5b4b548dd1975fc55a717467aaf580095349b459..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xn;?MYeG~~TYaaKy-R37ctLiF znX$#x{u$TB^yPpGiacE$Ln>~Wo^#}5FywH$sK4O5{ile@ioN=!%2&>W^qyO}EUqc- z`M$Jk6SgZjhA=JR-k`fl$jXB8VA36l4O^=UqpbqBe>s-?bbtI-pU$1eU#_@@OuHaF zsq2Jk;c_OI82cATQ;r^sXcNAF{_XVFg)jg8Wr)dOYOVYh19BdNr>mdKI;Vst0LB$MY-Ef@MVPmtVN{h~ciFbTwT@Kn7{QEO=lsnV>!cGewpaU2@UHx3vIVCg! E0I2FrQ2+n{ diff --git a/src/main/resources/assets/paradise_lost/textures/block/carved_stone_eye_lit.png b/src/main/resources/assets/paradise_lost/textures/block/carved_stone_eye_lit.png deleted file mode 100644 index 4a5ba11b7dc19d96eefdd4dda4c15fe4d3168779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!dVo)eYeG~~TYYCic1dVJxRbq$ znX$#x{uy4$J)w>JSDydxKl5kB=Kq(T{qK6^?F`h?}#7pL_TI zuN0pdV!*j#YuMFUTf3XW;`Xz9DVut7bBo+7(8A5T-G@yGywoGd|uK3 diff --git a/src/main/resources/assets/paradise_lost/textures/block/carved_stone_panel.png b/src/main/resources/assets/paradise_lost/textures/block/carved_stone_panel.png deleted file mode 100644 index f5425dff0a3b75bdd8bd8a73911b2879eff3936c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xn;?MtCPJ;L3T+(R8m`g=hXfg zp#kA$#ul>T-%^1JN~W`nB>NFyJx%U;jxYl)IQmedFgEn;R;sPxe^0xHj@K zs2q6ZdwkDcragypXFIWUcnH`y0)Rcc(+UHoDRP?vtLKQ7qqguRrjAU=MvMt>4r-u03E>K>FVdQ&MBb@ E0G8)T?f?J) diff --git a/src/main/resources/assets/paradise_lost/textures/block/carved_stone_panel_lit.png b/src/main/resources/assets/paradise_lost/textures/block/carved_stone_panel_lit.png deleted file mode 100644 index 6865bda38881cbcfd4a55ca56b31df98a30dad82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!N`Oy@tCPJ;#peH^0pV@+o&Ga_ zPVJv@>DhlXV~d2Sq=M{{mFNG5HtuIR^D70YzS`5pF{I*FY+q|5gChrXd&RFV_8t=v*Ydyq+ub#N7E)V?MlkzT)}+=*H#sjI-0WygU<`ev2uy b)9V@Q%2`U3Uw>E(bOwW`tDnm{r-UW|lJR0n diff --git a/src/main/resources/assets/paradise_lost/textures/block/cracked_carved_stone.png b/src/main/resources/assets/paradise_lost/textures/block/cracked_carved_stone.png deleted file mode 100644 index cadb09bf0820138209084c22537b2528eadfa551..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xn;?MtCPJ;LR3;)eP=;-iJ7rQ zXh8VX{uvT);xd2=ialK%Ln>~W_8nzpW)L{kboZb1_3o$K`>cO|cv+)Yr~T;34b6Nv z#^}xkDjIW_tQFvO?VY9&ptOa{Q`+Ztg!}e&7nt78zc2s%)^zK`mJ_dhc7JfAuPX47 z!xI;izJLQtvsSUVx=LT2am3`tmUpu^eG29N`++lIA5)J&PTyak^$eb_elF{r5}E+B CYEGB{ diff --git a/src/main/resources/assets/paradise_lost/textures/block/glyphed_carved_stone.png b/src/main/resources/assets/paradise_lost/textures/block/glyphed_carved_stone.png deleted file mode 100644 index de9827a024513df4a1c2531516909e94fe4741e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Vt`MGtCPJ;TYYCjR8nX_ctLiF znX$#x{u!#KexZ%~{b&BPaSoL#;=c-1T<7WH7*cV|wAYjGhyw@n-izM<{y*3#)aw`; zqjO-Z*iJirz8eOIw02*9d^39GN*9LBUp1UPw>4%=zUbno;*k0D Date: Fri, 26 Apr 2024 16:55:26 -0500 Subject: [PATCH 08/24] #757 --- .../net/id/paradiselost/screen/handler/MoaScreenHandler.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/id/paradiselost/screen/handler/MoaScreenHandler.java b/src/main/java/net/id/paradiselost/screen/handler/MoaScreenHandler.java index f997b9b8b..9538064c4 100644 --- a/src/main/java/net/id/paradiselost/screen/handler/MoaScreenHandler.java +++ b/src/main/java/net/id/paradiselost/screen/handler/MoaScreenHandler.java @@ -145,6 +145,7 @@ public MoaEntity moa() { @Override public ItemStack transferSlot(PlayerEntity player, int sourceSlot) { ItemStack result = ItemStack.EMPTY; + if (!moa.hasChest()) return result; Slot slot = slots.get(sourceSlot); if (!slot.hasStack()) { return result; From b813548964733c95b0a3cb8dee2f1664be69f34e Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Fri, 26 Apr 2024 17:07:31 -0500 Subject: [PATCH 09/24] #765 --- .../entities/passive/moa/MoaAttributes.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/id/paradiselost/entities/passive/moa/MoaAttributes.java b/src/main/java/net/id/paradiselost/entities/passive/moa/MoaAttributes.java index c9046b7f1..f49f61829 100644 --- a/src/main/java/net/id/paradiselost/entities/passive/moa/MoaAttributes.java +++ b/src/main/java/net/id/paradiselost/entities/passive/moa/MoaAttributes.java @@ -3,12 +3,12 @@ import net.id.paradiselost.component.MoaGenes; public enum MoaAttributes { - GROUND_SPEED(0.24F, 1F, 0.152F), - GLIDING_SPEED(0.055F, 0.25F, 0.039F), - GLIDING_DECAY(0.9F, 0.5F, 0.08F), - JUMPING_STRENGTH(0.25F, 0.15F, 0.02F), + GROUND_SPEED(0.24F, 1F, 0.1F), + GLIDING_SPEED(0.055F, 0.25F, 0.03F), + GLIDING_DECAY(0.5F, 0.9F, 0.06F), + JUMPING_STRENGTH(0.15F, 0.25F, 0.02F), DROP_MULTIPLIER(1, 6, 1), - MAX_HEALTH(10, 40, 6); + MAX_HEALTH(10, 40, 5); public final float min, max, gradeInterval; From 917a1f61e85a3c8479059a95e8e9f217419f37a4 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sat, 27 Apr 2024 17:59:16 -0500 Subject: [PATCH 10/24] #720 --- build.gradle.kts | 2 +- .../id/paradiselost/entities/util/FloatingBlockHelperImpls.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 24553770a..a52e721d8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,7 +20,7 @@ val satinVersion: String by properties val clothConfigVersion: String by properties plugins { - id("fabric-loom") version "0.12-SNAPSHOT" + id("fabric-loom") version "1.0-SNAPSHOT" id("com.modrinth.minotaur") version "1.2.1" id("de.guntram.mcmod.crowdin-translate") version "1.4+1.19" `maven-publish` diff --git a/src/main/java/net/id/paradiselost/entities/util/FloatingBlockHelperImpls.java b/src/main/java/net/id/paradiselost/entities/util/FloatingBlockHelperImpls.java index ea277ae9a..46a7bcd68 100644 --- a/src/main/java/net/id/paradiselost/entities/util/FloatingBlockHelperImpls.java +++ b/src/main/java/net/id/paradiselost/entities/util/FloatingBlockHelperImpls.java @@ -168,6 +168,8 @@ public boolean tryCreate(World world, BlockPos pos, boolean force) { FloatingBlockEntity upper = new FloatingBlockEntity(world, pos.up(), upperState, true); FloatingBlockEntity lower = new FloatingBlockEntity(world, pos, state, true); upper.dropItem = false; + world.setBlockState(pos, Blocks.AIR.getDefaultState()); + world.setBlockState(pos.up(), Blocks.AIR.getDefaultState()); BlockLikeSet structure = new BlockLikeSet(lower, upper, Vec3i.ZERO.up()); structure.spawn(world); return true; From f35439c8d362ef36b34ea2f68e7f61836680dd10 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sat, 27 Apr 2024 20:45:48 -0500 Subject: [PATCH 11/24] checkstyle --- .../blocks/BlockRegistration.java | 58 +++++++++---------- .../blocks/ParadiseLostBlocks.java | 5 -- .../blockentity/FoodBowlBlockEntity.java | 3 - .../blockentity/IncubatorBlockEntity.java | 1 - .../blocks/mechanical/NitraBlock.java | 4 +- .../rendering/ui/BloodstoneHUDRenderer.java | 2 - .../entities/ParadiseLostEntityTypes.java | 1 - .../paradiselost/items/ParadiseLostItems.java | 6 +- .../mixin/entity/BoatEntityMixin.java | 4 +- .../mixin/entity/ChestBoatEntityMixin.java | 5 +- .../mixin/entity/EntityMixin.java | 8 --- .../mixin/entity/LivingEntityMixin.java | 1 - .../mixin/world/ExplosionMixin.java | 35 +++++------ 13 files changed, 49 insertions(+), 84 deletions(-) diff --git a/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java b/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java index e8ce2db5d..6d1aa52b3 100644 --- a/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java +++ b/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java @@ -60,13 +60,13 @@ static class ParadiseLostStairsBlock extends StairsBlock { public static WoodBlockSet registerWoodBlockSet(String id, SaplingGenerator saplingGenerator, MapColor woodColor, MapColor barkColor, MapColor leafColor) { return registerWoodBlockSet( - id+"_sapling", "potted_"+id+"_sapling", - id+"_log", id+"_wood", "stripped_"+id+"_log", "stripped_"+id+"_wood", - id+"_leaves", - id+"_planks", id+"_stairs",id+"_slab", - id+"_fence",id+"_fence_gate", - id+"_door",id+"_trapdoor", - id+"_button",id+"_pressure_plate", + id + "_sapling", "potted_" + id + "_sapling", + id + "_log", id + "_wood", "stripped_" + id + "_log", "stripped_" + id + "_wood", + id + "_leaves", + id + "_planks", id + "_stairs", id + "_slab", + id + "_fence", id + "_fence_gate", + id + "_door", id + "_trapdoor", + id + "_button", id + "_pressure_plate", saplingGenerator, woodColor, barkColor, leafColor ); } @@ -76,16 +76,16 @@ public static WoodBlockSet registerWoodBlockSetMotherAurel() { var saplingSettings = AbstractBlock.Settings.copy(Blocks.OAK_SAPLING).mapColor(MapColor.GOLD).luminance(state -> 3); var flowerPotSettings = AbstractBlock.Settings.copy(Blocks.POTTED_OAK_SAPLING).luminance(state -> 3); var leavesSettings = AbstractBlock.Settings.copy(Blocks.OAK_LEAVES).mapColor(MapColor.GOLD).luminance(state -> 5); - SaplingBlock sapling = add(id+"_sapling", new ParadiseLostSaplingBlock(new MotherAurelSaplingGenerator(), saplingSettings)); + SaplingBlock sapling = add(id + "_sapling", new ParadiseLostSaplingBlock(new MotherAurelSaplingGenerator(), saplingSettings)); return registerWoodBlockSet( sapling, - add("potted_"+id+"_sapling", new FlowerPotBlock(sapling, flowerPotSettings)), - id+"_log", id+"_wood", "stripped_"+id+"_log", "stripped_"+id+"_wood", - add(id+"_leaves", new ParadiseLostLeavesBlock(leavesSettings, true), flammableLeaves, cutoutMippedRenderLayer), - id+"_planks", id+"_stairs",id+"_slab", - id+"_fence",id+"_fence_gate", - id+"_door",id+"_trapdoor", - id+"_button",id+"_pressure_plate", + add("potted_" + id + "_sapling", new FlowerPotBlock(sapling, flowerPotSettings)), + id + "_log", id + "_wood", "stripped_" + id + "_log", "stripped_" + id + "_wood", + add(id + "_leaves", new ParadiseLostLeavesBlock(leavesSettings, true), flammableLeaves, cutoutMippedRenderLayer), + id + "_planks", id + "_stairs", id + "_slab", + id + "_fence", id + "_fence_gate", + id + "_door", id + "_trapdoor", + id + "_button", id + "_pressure_plate", MapColor.GOLD, MapColor.TERRACOTTA_RED ); } @@ -93,15 +93,15 @@ public static WoodBlockSet registerWoodBlockSetMotherAurel() { public static WoodBlockSet registerWoodBlockSetOrange() { String id = "orange"; var leavesSettings = AbstractBlock.Settings.copy(Blocks.OAK_LEAVES).mapColor(MapColor.PALE_GREEN).sounds(BlockSoundGroup.AZALEA_LEAVES); - FruitingLeavesBlock leaves = add(id+"_leaves", new FruitingLeavesBlock(leavesSettings, () -> ParadiseLostItems.ORANGE), flammableLeaves, cutoutMippedRenderLayer); + FruitingLeavesBlock leaves = add(id + "_leaves", new FruitingLeavesBlock(leavesSettings, () -> ParadiseLostItems.ORANGE), flammableLeaves, cutoutMippedRenderLayer); return registerWoodBlockSet( - id+"_sapling", "potted_"+id+"_sapling", - id+"_log", id+"_wood", "stripped_"+id+"_log", "stripped_"+id+"_wood", + id + "_sapling", "potted_" + id + "_sapling", + id + "_log", id + "_wood", "stripped_" + id + "_log", "stripped_" + id + "_wood", leaves, - id+"_planks", id+"_stairs",id+"_slab", - id+"_fence",id+"_fence_gate", - id+"_door",id+"_trapdoor", - id+"_button",id+"_pressure_plate", + id + "_planks", id + "_stairs", id + "_slab", + id + "_fence", id + "_fence_gate", + id + "_door", id + "_trapdoor", + id + "_button", id + "_pressure_plate", new OrangeSaplingGenerator(), MapColor.TERRACOTTA_LIGHT_GRAY, MapColor.RAW_IRON_PINK ); } @@ -110,12 +110,12 @@ public static WoodBlockSet registerWoodBlockSetWisteria() { String id = "wisteria"; return registerWoodBlockSet( null, null, - id+"_log", id+"_wood", "stripped_"+id+"_log", "stripped_"+id+"_wood", + id + "_log", id + "_wood", "stripped_" + id + "_log", "stripped_" + id + "_wood", null, - id+"_planks", id+"_stairs",id+"_slab", - id+"_fence",id+"_fence_gate", - id+"_door",id+"_trapdoor", - id+"_button",id+"_pressure_plate", + id + "_planks", id + "_stairs", id + "_slab", + id + "_fence", id + "_fence_gate", + id + "_door", id + "_trapdoor", + id + "_button", id + "_pressure_plate", MapColor.PALE_YELLOW, MapColor.BROWN ); } @@ -229,7 +229,7 @@ public record WoodBlockSet( FenceBlock fence, FenceGateBlock fenceGate, DoorBlock door, TrapdoorBlock trapdoor, WoodenButtonBlock button, PressurePlateBlock pressurePlate - ) implements Iterable { + ) implements Iterable { public @NotNull Iterator iterator() { return Arrays.stream(new Block[]{ sapling, flowerPot, @@ -266,7 +266,7 @@ public record SignSet( SignType type, SignBlock sign, WallSignBlock wallSign - ) implements Iterable { + ) implements Iterable { public @NotNull Iterator iterator() { return Arrays.stream(new Block[]{sign, wallSign}).iterator(); } diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 61ee5955d..03d15131c 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -2,7 +2,6 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.id.paradiselost.ParadiseLost; import net.id.paradiselost.blocks.decorative.*; import net.id.paradiselost.blocks.mechanical.CherineCampfireBlock; import net.id.paradiselost.blocks.mechanical.FoodBowlBlock; @@ -26,11 +25,9 @@ import net.id.paradiselost.blocks.natural.plant.*; import net.id.paradiselost.blocks.natural.tree.*; import net.id.paradiselost.fluids.ParadiseLostFluids; -import net.id.paradiselost.items.ParadiseLostItems; import net.id.paradiselost.registry.ParadiseLostRegistryQueues; import net.id.paradiselost.tag.ParadiseLostBlockTags; import net.id.paradiselost.world.feature.tree.generator.*; -import net.id.incubus_core.util.RegistryQueue.Action; import net.minecraft.block.*; import net.minecraft.block.AbstractBlock.Settings; import net.minecraft.client.render.TexturedRenderLayers; @@ -40,12 +37,10 @@ import net.minecraft.tag.BlockTags; import net.minecraft.util.Identifier; import net.minecraft.util.math.intprovider.UniformIntProvider; -import net.minecraft.util.registry.Registry; import java.util.List; import static net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings.copy; import static net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings.of; -import static net.id.paradiselost.ParadiseLost.locate; import static net.id.paradiselost.blocks.ParadiseLostBlockActions.*; import static net.minecraft.block.Blocks.*; import static net.id.paradiselost.blocks.BlockRegistration.*; diff --git a/src/main/java/net/id/paradiselost/blocks/blockentity/FoodBowlBlockEntity.java b/src/main/java/net/id/paradiselost/blocks/blockentity/FoodBowlBlockEntity.java index a5ce68234..4004c77bf 100644 --- a/src/main/java/net/id/paradiselost/blocks/blockentity/FoodBowlBlockEntity.java +++ b/src/main/java/net/id/paradiselost/blocks/blockentity/FoodBowlBlockEntity.java @@ -10,9 +10,6 @@ import net.minecraft.util.Hand; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; public class FoodBowlBlockEntity extends BlockEntity { private final DefaultedList inventory; diff --git a/src/main/java/net/id/paradiselost/blocks/blockentity/IncubatorBlockEntity.java b/src/main/java/net/id/paradiselost/blocks/blockentity/IncubatorBlockEntity.java index 1fe15fa74..7720f987e 100644 --- a/src/main/java/net/id/paradiselost/blocks/blockentity/IncubatorBlockEntity.java +++ b/src/main/java/net/id/paradiselost/blocks/blockentity/IncubatorBlockEntity.java @@ -13,7 +13,6 @@ import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; import java.util.UUID; diff --git a/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java b/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java index 0da476a1e..637f9230e 100644 --- a/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java +++ b/src/main/java/net/id/paradiselost/blocks/mechanical/NitraBlock.java @@ -59,7 +59,7 @@ public static void ignite(World world, BlockPos pos, float power) { } private static void ignite(World world, BlockPos pos, float power, @Nullable LivingEntity igniter) { - Explosion explosion = new Explosion(world, igniter, null, null, pos.getX(), pos.getY()+0.5D, pos.getZ(), power, false, Explosion.DestructionType.BREAK); + Explosion explosion = new Explosion(world, igniter, null, null, pos.getX(), pos.getY() + 0.5D, pos.getZ(), power, false, Explosion.DestructionType.BREAK); if (!world.isClient) { explosion.collectBlocksAndDamageEntities(); world.emitGameEvent(igniter, GameEvent.PRIME_FUSE, pos); @@ -95,7 +95,7 @@ public void onProjectileHit(World world, BlockState state, BlockHitResult hit, P BlockPos blockPos = hit.getBlockPos(); Entity entity = projectile.getOwner(); if (projectile.isOnFire() && projectile.canModifyAt(world, blockPos)) { - ignite(world, blockPos, 2F, entity instanceof LivingEntity ? (LivingEntity)entity : null); + ignite(world, blockPos, 2F, entity instanceof LivingEntity ? (LivingEntity) entity : null); world.removeBlock(blockPos, false); } } diff --git a/src/main/java/net/id/paradiselost/client/rendering/ui/BloodstoneHUDRenderer.java b/src/main/java/net/id/paradiselost/client/rendering/ui/BloodstoneHUDRenderer.java index 136392a72..47b7a4ded 100644 --- a/src/main/java/net/id/paradiselost/client/rendering/ui/BloodstoneHUDRenderer.java +++ b/src/main/java/net/id/paradiselost/client/rendering/ui/BloodstoneHUDRenderer.java @@ -15,9 +15,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; -import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.util.Formatting; import net.minecraft.util.Pair; import net.minecraft.util.hit.EntityHitResult; import net.minecraft.util.hit.HitResult; diff --git a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java index 6fc802789..5e0a0b3af 100644 --- a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java +++ b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java @@ -34,7 +34,6 @@ import static net.id.paradiselost.ParadiseLost.locate; import static net.minecraft.entity.EntityDimensions.changing; -import static net.minecraft.entity.EntityDimensions.fixed; import static net.minecraft.entity.SpawnGroup.*; @SuppressWarnings({"unused", "SameParameterValue"}) diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 02b0d12a5..fd498b19b 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -22,10 +22,7 @@ import net.id.paradiselost.util.EnumExtender; import net.minecraft.block.Block; import net.minecraft.block.DoorBlock; -import net.minecraft.block.SignBlock; -import net.minecraft.block.TallFlowerBlock; import net.minecraft.block.TallPlantBlock; -import net.minecraft.block.WallSignBlock; import net.minecraft.entity.vehicle.BoatEntity; import net.minecraft.fluid.Fluids; import net.minecraft.item.*; @@ -34,7 +31,6 @@ import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Rarity; -import net.minecraft.util.SignType; import org.jetbrains.annotations.NotNull; import java.util.Arrays; @@ -500,7 +496,7 @@ public record BoatSet( BoatEntity.Type type, BoatItem boat, BoatItem chestBoat - ) implements Iterable { + ) implements Iterable { public @NotNull Iterator iterator() { return Arrays.stream(new Item[]{boat, chestBoat}).iterator(); } diff --git a/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityMixin.java b/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityMixin.java index 50870fec4..132fc3d7e 100644 --- a/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/entity/BoatEntityMixin.java @@ -19,8 +19,8 @@ public abstract class BoatEntityMixin { private void checkCustomBoats(CallbackInfoReturnable cir) { BoatEntity.Type type = this.getBoatType(); if (type != BoatEntity.Type.OAK) { - for (var entry : ParadiseLostItems.BOAT_SETS){ - if (type == entry.type()){ + for (var entry : ParadiseLostItems.BOAT_SETS) { + if (type == entry.type()) { cir.setReturnValue(entry.boat()); } } diff --git a/src/main/java/net/id/paradiselost/mixin/entity/ChestBoatEntityMixin.java b/src/main/java/net/id/paradiselost/mixin/entity/ChestBoatEntityMixin.java index 1b2b3eb6d..3d283bed4 100644 --- a/src/main/java/net/id/paradiselost/mixin/entity/ChestBoatEntityMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/entity/ChestBoatEntityMixin.java @@ -8,7 +8,6 @@ import net.minecraft.world.World; import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -24,8 +23,8 @@ public ChestBoatEntityMixin(EntityType entityType, World w private void checkCustomBoats(CallbackInfoReturnable cir) { BoatEntity.Type type = this.getBoatType(); if (type != BoatEntity.Type.OAK) { - for (var entry : ParadiseLostItems.BOAT_SETS){ - if (type == entry.type()){ + for (var entry : ParadiseLostItems.BOAT_SETS) { + if (type == entry.type()) { cir.setReturnValue(entry.chestBoat()); } } diff --git a/src/main/java/net/id/paradiselost/mixin/entity/EntityMixin.java b/src/main/java/net/id/paradiselost/mixin/entity/EntityMixin.java index f08b723a7..f1badd8fc 100644 --- a/src/main/java/net/id/paradiselost/mixin/entity/EntityMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/entity/EntityMixin.java @@ -1,15 +1,7 @@ package net.id.paradiselost.mixin.entity; -import net.id.paradiselost.blocks.ParadiseLostBlocks; -import net.minecraft.block.Block; import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.effect.StatusEffectInstance; 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.Redirect; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(Entity.class) public abstract class EntityMixin { 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 0c0352839..96651353e 100644 --- a/src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java @@ -12,7 +12,6 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.particle.ParticleTypes; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/net/id/paradiselost/mixin/world/ExplosionMixin.java b/src/main/java/net/id/paradiselost/mixin/world/ExplosionMixin.java index 58daf5789..179084088 100644 --- a/src/main/java/net/id/paradiselost/mixin/world/ExplosionMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/world/ExplosionMixin.java @@ -12,7 +12,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.ItemEntity; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.loot.context.LootContext; @@ -21,7 +20,6 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; @@ -31,11 +29,6 @@ import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import java.util.List; @Mixin(Explosion.class) public abstract class ExplosionMixin extends Object implements ExplosionExtensions { @@ -105,17 +98,17 @@ public void affectWorld(boolean particles, SoundEvent customSound) { Util.shuffle(this.affectedBlocks, this.world.random); ObjectListIterator var5 = this.affectedBlocks.iterator(); - while(var5.hasNext()) { - BlockPos blockPos = (BlockPos)var5.next(); + while (var5.hasNext()) { + BlockPos blockPos = (BlockPos) var5.next(); BlockState blockState = this.world.getBlockState(blockPos); Block block = blockState.getBlock(); if (!blockState.isAir()) { BlockPos blockPos2 = blockPos.toImmutable(); this.world.getProfiler().push("explosion_blocks"); - if (block.shouldDropItemsOnExplosion((Explosion) (Object)this)) { + if (block.shouldDropItemsOnExplosion((Explosion) (Object) this)) { World var11 = this.world; if (var11 instanceof ServerWorld) { - ServerWorld serverWorld = (ServerWorld)var11; + ServerWorld serverWorld = (ServerWorld) var11; BlockEntity blockEntity = blockState.hasBlockEntity() ? this.world.getBlockEntity(blockPos) : null; LootContext.Builder builder = (new LootContext.Builder(serverWorld)).random(this.world.random).parameter(LootContextParameters.ORIGIN, Vec3d.ofCenter(blockPos)).parameter(LootContextParameters.TOOL, ItemStack.EMPTY).optionalParameter(LootContextParameters.BLOCK_ENTITY, blockEntity).optionalParameter(LootContextParameters.THIS_ENTITY, this.entity); if (this.destructionType == Explosion.DestructionType.DESTROY) { @@ -130,24 +123,22 @@ public void affectWorld(boolean particles, SoundEvent customSound) { } this.world.setBlockState(blockPos, Blocks.AIR.getDefaultState(), 3); - block.onDestroyedByExplosion(this.world, blockPos, (Explosion) (Object)this); + block.onDestroyedByExplosion(this.world, blockPos, (Explosion) (Object) this); this.world.getProfiler().pop(); } } var5 = objectArrayList.iterator(); - while(var5.hasNext()) { - Pair pair = (Pair)var5.next(); - Block.dropStack(this.world, (BlockPos)pair.getSecond(), (ItemStack)pair.getFirst()); + while (var5.hasNext()) { + Pair pair = (Pair) var5.next(); + Block.dropStack(this.world, pair.getSecond(), pair.getFirst()); } } if (this.createFire) { - ObjectListIterator var13 = this.affectedBlocks.iterator(); - while(var13.hasNext()) { - BlockPos blockPos3 = (BlockPos)var13.next(); + for (BlockPos blockPos3 : this.affectedBlocks) { if (this.random.nextInt(3) == 0 && this.world.getBlockState(blockPos3).isAir() && this.world.getBlockState(blockPos3.down()).isOpaqueFullCube(this.world, blockPos3.down())) { this.world.setBlockState(blockPos3, AbstractFireBlock.getState(this.world, blockPos3)); } @@ -159,12 +150,12 @@ public void affectWorld(boolean particles, SoundEvent customSound) { private static void tryMergeStack(ObjectArrayList> stacks, ItemStack stack, BlockPos pos) { int i = stacks.size(); - for(int j = 0; j < i; ++j) { - Pair pair = (Pair)stacks.get(j); - ItemStack itemStack = (ItemStack)pair.getFirst(); + for (int j = 0; j < i; ++j) { + Pair pair = stacks.get(j); + ItemStack itemStack = pair.getFirst(); if (ItemEntity.canMerge(itemStack, stack)) { ItemStack itemStack2 = ItemEntity.merge(itemStack, stack, 16); - stacks.set(j, Pair.of(itemStack2, (BlockPos)pair.getSecond())); + stacks.set(j, Pair.of(itemStack2, pair.getSecond())); if (stack.isEmpty()) { return; } From b84aa324e89e2df66fa1d4b2e33d912dc7f1054b Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sun, 28 Apr 2024 15:22:58 -0500 Subject: [PATCH 12/24] bloomed calcite + worldgen + levita brick --- .../blocks/BlockRegistration.java | 17 ++ .../blocks/ParadiseLostBlocks.java | 32 +-- .../blocks/natural/crop/CropGrowthBlock.java | 25 +++ .../config/ParadiseLostConfig.java | 2 +- .../paradiselost/items/ParadiseLostItems.java | 7 +- .../mixin/item/PotionItemMixin.java | 66 ++++++ .../features/VitrouliteSpireFeature.java | 4 +- src/main/resources/asset_helper.py | 5 +- .../blockstates/bloomed_calcite.json | 7 + .../blockstates/levita_brick.json | 7 + .../blockstates/levita_brick_slab.json | 13 ++ .../blockstates/levita_brick_stairs.json | 209 ++++++++++++++++++ .../paradise_lost/blockstates/vitroulite.json | 7 - .../assets/paradise_lost/lang/en_us.json | 37 +--- .../models/block/bloomed_calcite.json | 6 + .../models/block/levita_brick.json | 6 + .../models/block/levita_brick_slab.json | 8 + .../models/block/levita_brick_slab_top.json | 8 + .../models/block/levita_brick_stairs.json | 8 + .../block/levita_brick_stairs_inner.json | 8 + .../block/levita_brick_stairs_outer.json | 8 + .../models/block/vitroulite.json | 6 - .../models/item/bloomed_calcite.json | 3 + .../models/item/levita_brick.json | 3 + .../models/item/levita_brick_slab.json | 3 + .../models/item/levita_brick_stairs.json | 3 + .../paradise_lost/models/item/portal.json | 4 +- .../paradise_lost/models/item/vitroulite.json | 3 - .../textures/block/bloomed_calcite.png | Bin 0 -> 460 bytes .../textures/block/levita_brick.png | Bin 0 -> 527 bytes .../textures/block/vitroulite.png | Bin 208 -> 0 bytes .../advancements/enter_paradise_lost.json | 2 +- .../loot_tables/blocks/bloomed_calcite.json | 20 ++ .../{vitroulite.json => levita_brick.json} | 2 +- .../loot_tables/blocks/levita_brick_slab.json | 33 +++ .../blocks/levita_brick_stairs.json | 20 ++ .../paradise_lost/recipes/levita_brick.json | 16 ++ .../recipes/levita_brick_slab.json | 15 ++ .../recipes/levita_brick_stairs.json | 17 ++ .../tags/blocks/mineable_by_pickaxe.json | 2 +- .../tags/blocks/mineable_by_shovel.json | 3 + .../tags/blocks/requires_stone_tool.json | 3 +- .../data/paradise_lost/tags/blocks/slabs.json | 1 + .../paradise_lost/tags/blocks/stairs.json | 1 + .../data/paradise_lost/tags/items/slabs.json | 1 + .../data/paradise_lost/tags/items/stairs.json | 1 + .../worldgen/density_function/bulk.json | 8 +- .../worldgen/density_function/hills.json | 8 +- .../worldgen/density_function/ridges.json | 2 +- .../worldgen/density_function/spackle.json | 2 +- .../worldgen/noise_settings/noise.json | 8 +- src/main/resources/paradise_lost.mixins.json | 1 + 52 files changed, 584 insertions(+), 97 deletions(-) create mode 100644 src/main/java/net/id/paradiselost/blocks/natural/crop/CropGrowthBlock.java create mode 100644 src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java create mode 100644 src/main/resources/assets/paradise_lost/blockstates/bloomed_calcite.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/levita_brick.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/levita_brick_slab.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/levita_brick_stairs.json delete mode 100644 src/main/resources/assets/paradise_lost/blockstates/vitroulite.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/bloomed_calcite.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita_brick.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita_brick_slab.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita_brick_slab_top.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs_inner.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs_outer.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/vitroulite.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/bloomed_calcite.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita_brick.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita_brick_slab.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/levita_brick_stairs.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/vitroulite.json create mode 100644 src/main/resources/assets/paradise_lost/textures/block/bloomed_calcite.png create mode 100644 src/main/resources/assets/paradise_lost/textures/block/levita_brick.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/block/vitroulite.png create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/bloomed_calcite.json rename src/main/resources/data/paradise_lost/loot_tables/blocks/{vitroulite.json => levita_brick.json} (86%) create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/levita_brick_slab.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/levita_brick_stairs.json create mode 100644 src/main/resources/data/paradise_lost/recipes/levita_brick.json create mode 100644 src/main/resources/data/paradise_lost/recipes/levita_brick_slab.json create mode 100644 src/main/resources/data/paradise_lost/recipes/levita_brick_stairs.json diff --git a/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java b/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java index 6d1aa52b3..2e0c70a35 100644 --- a/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java +++ b/src/main/java/net/id/paradiselost/blocks/BlockRegistration.java @@ -243,6 +243,23 @@ public record WoodBlockSet( } } + public static SimpleBlockSet registerSimpleBlockSet(String blockId, AbstractBlock.Settings settings) { + Block block = add(blockId, new Block(settings)); + ParadiseLostStairsBlock stairs = add(blockId + "_stairs", new ParadiseLostStairsBlock(block.getDefaultState(), settings)); + SlabBlock slab = add(blockId + "_slab", new SlabBlock(settings)); + return new SimpleBlockSet(block, stairs, slab); + } + + public record SimpleBlockSet( + Block block, StairsBlock stairs, SlabBlock slab + ) implements Iterable { + public @NotNull Iterator iterator() { + return Arrays.stream(new Block[]{ + block, stairs, slab + }).iterator(); + } + } + // SIGN SET public static SignSet registerSignSet(String woodId) { diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index 03d15131c..c87ac8def 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -3,25 +3,10 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.id.paradiselost.blocks.decorative.*; -import net.id.paradiselost.blocks.mechanical.CherineCampfireBlock; -import net.id.paradiselost.blocks.mechanical.FoodBowlBlock; -import net.id.paradiselost.blocks.mechanical.FourBiteCakeBlock; -import net.id.paradiselost.blocks.mechanical.IncubatorBlock; -import net.id.paradiselost.blocks.mechanical.NitraBlock; -import net.id.paradiselost.blocks.mechanical.TreeTapBlock; -import net.id.paradiselost.blocks.natural.ParadiseLostGrassBlock; -import net.id.paradiselost.blocks.natural.ParadiseLostSaplingBlock; -import net.id.paradiselost.blocks.natural.ParadiseLostSnowyBlock; -import net.id.paradiselost.blocks.natural.PoofBlock; -import net.id.paradiselost.blocks.natural.SurtrumOreBlock; -import net.id.paradiselost.blocks.natural.cloud.ParadiseLostCloudBlock; -import net.id.paradiselost.blocks.natural.cloud.BlueParadiseLostCloudBlock; -import net.id.paradiselost.blocks.natural.cloud.GoldenParadiseLostCloudBlock; -import net.id.paradiselost.blocks.natural.cloud.PinkParadiseLostCloudBlock; -import net.id.paradiselost.blocks.natural.crop.AmadrysCropBlock; -import net.id.paradiselost.blocks.natural.crop.BlackcurrantBushBlock; -import net.id.paradiselost.blocks.natural.crop.FlaxCropBlock; -import net.id.paradiselost.blocks.natural.crop.SwedrootCropBlock; +import net.id.paradiselost.blocks.mechanical.*; +import net.id.paradiselost.blocks.natural.*; +import net.id.paradiselost.blocks.natural.cloud.*; +import net.id.paradiselost.blocks.natural.crop.*; import net.id.paradiselost.blocks.natural.plant.*; import net.id.paradiselost.blocks.natural.tree.*; import net.id.paradiselost.fluids.ParadiseLostFluids; @@ -82,12 +67,10 @@ private static Settings cloud() { // Fluids public static final FluidBlock DENSE_CLOUD = add("dense_cloud", new FluidBlock(ParadiseLostFluids.DENSE_CLOUD, of(Material.WATER).noCollision().strength(100f).dropsNothing())); public static final FluidBlock SPRING_WATER = add("spring_water", new FluidBlock(ParadiseLostFluids.SPRING_WATER, of(Material.WATER).noCollision().strength(100f).dropsNothing())); - // Organic Extra - public static final Block VITROULITE = add("vitroulite", new Block(of(Material.DENSE_ICE).requiresTool().hardness(0.5f).sounds(BlockSoundGroup.GLASS))); // Smooth Floestone private static Settings floestone() { - return of(Material.STONE, MapColor.WHITE_GRAY).requiresTool().strength(0.5f, 1f).sounds(BlockSoundGroup.STONE); + return of(Material.STONE, MapColor.WHITE_GRAY).requiresTool().strength(0.5f, 5f).sounds(BlockSoundGroup.STONE); } public static final Block FLOESTONE = add("floestone", new Block(floestone())); @@ -136,6 +119,9 @@ private static Settings floestoneBrick() { 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())); + // LEVITA BRICK + public static final SimpleBlockSet LEVITA_BRICK_SET = registerSimpleBlockSet("levita_brick", of(Material.AGGREGATE, MapColor.LIGHT_BLUE_GRAY).requiresTool().strength(0.3f, 3f).sounds(BlockSoundGroup.CALCITE)); + private static Settings amberTiles() { return of(Material.STONE, MapColor.GOLD).requiresTool().sounds(BlockSoundGroup.CALCITE).strength(2, 6); } @@ -144,6 +130,8 @@ private static Settings amberTiles() { public static final SlabBlock GOLDEN_AMBER_TILE_SLAB = add("golden_amber_tile_slab", new SlabBlock(amberTiles())); public static final ParadiseLostStairsBlock GOLDEN_AMBER_TILE_STAIRS = add("golden_amber_tile_stairs", new ParadiseLostStairsBlock(GOLDEN_AMBER_TILE.getDefaultState(), amberTiles())); + public static final Block BLOOMED_CALCITE = add("bloomed_calcite", new CropGrowthBlock(copy(CALCITE).ticksRandomly(), 2)); + protected static Settings flowerPot() { return copy(POTTED_OAK_SAPLING); } diff --git a/src/main/java/net/id/paradiselost/blocks/natural/crop/CropGrowthBlock.java b/src/main/java/net/id/paradiselost/blocks/natural/crop/CropGrowthBlock.java new file mode 100644 index 000000000..0f39844d9 --- /dev/null +++ b/src/main/java/net/id/paradiselost/blocks/natural/crop/CropGrowthBlock.java @@ -0,0 +1,25 @@ +package net.id.paradiselost.blocks.natural.crop; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.CropBlock; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; + +public class CropGrowthBlock extends Block { + + final int boostChance; + + public CropGrowthBlock(Settings settings, int boostChance) { + super(settings); + this.boostChance = boostChance; + } + + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + BlockState upBlock = world.getBlockState(pos.up(2)); + if (upBlock.getBlock() instanceof CropBlock && random.nextInt(this.boostChance) == 0) { + upBlock.randomTick(world, pos.up(2), random); + } + } +} diff --git a/src/main/java/net/id/paradiselost/config/ParadiseLostConfig.java b/src/main/java/net/id/paradiselost/config/ParadiseLostConfig.java index afba66c9e..f9cd63ee0 100644 --- a/src/main/java/net/id/paradiselost/config/ParadiseLostConfig.java +++ b/src/main/java/net/id/paradiselost/config/ParadiseLostConfig.java @@ -12,7 +12,7 @@ public class ParadiseLostConfig implements ConfigData { public static ParadiseLostConfig CONFIG; - protected String ParadiseLostPortalBaseBlock = "minecraft:glowstone"; + protected String ParadiseLostPortalBaseBlock = "paradise_lost:bloomed_calcite"; public static void init() { diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index fd498b19b..cc3f136ba 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -198,11 +198,13 @@ private static FabricItemSettings building_block() { return new FabricItemSettings().group(ParadiseLostItemGroups.PARADISE_LOST_BUILDING_BLOCKS); } + public static final BlockItem BLOOMED_CALCITE = add("bloomed_calcite", ParadiseLostBlocks.BLOOMED_CALCITE, 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()); @@ -272,6 +274,7 @@ private static FabricItemSettings 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 LEVITA_BRICK = add("levita_brick", ParadiseLostBlocks.LEVITA_BRICK_SET.block(), building_block()); public static final BlockItem GOLDEN_AMBER_TILE = add("golden_amber_tile", ParadiseLostBlocks.GOLDEN_AMBER_TILE, building_block()); // stairs @@ -286,6 +289,7 @@ private static FabricItemSettings 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 LEVITA_BRICK_STAIRS = add("levita_brick_stairs", ParadiseLostBlocks.LEVITA_BRICK_SET.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()); @@ -294,6 +298,7 @@ private static FabricItemSettings 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 LEVITA_BRICK_SLAB = add("levita_brick_slab", ParadiseLostBlocks.LEVITA_BRICK_SET.slab(), building_block()); public static final BlockItem GOLDEN_AMBER_TILE_SLAB = add("golden_amber_tile_slab", ParadiseLostBlocks.GOLDEN_AMBER_TILE_SLAB, building_block()); // colorfuls diff --git a/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java b/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java new file mode 100644 index 000000000..3d9605340 --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java @@ -0,0 +1,66 @@ +package net.id.paradiselost.mixin.item; + +import net.id.paradiselost.blocks.ParadiseLostBlocks; +import net.id.paradiselost.tag.ParadiseLostBlockTags; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.CauldronBlock; +import net.minecraft.block.CryingObsidianBlock; +import net.minecraft.block.RedstoneOreBlock; +import net.minecraft.client.particle.FireworksSparkParticle; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.projectile.FireworkRocketEntity; +import net.minecraft.entity.projectile.thrown.PotionEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUsage; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.item.Items; +import net.minecraft.item.PotionItem; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.potion.PotionUtil; +import net.minecraft.potion.Potions; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.stat.Stats; +import net.minecraft.util.ActionResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.World; +import net.minecraft.world.event.GameEvent; +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(PotionItem.class) +public class PotionItemMixin { + + @Inject(method = "useOnBlock", at = @At("RETURN"), cancellable = true) + public void useOnBlock(ItemUsageContext context, CallbackInfoReturnable cir) { + World world = context.getWorld(); + BlockPos blockPos = context.getBlockPos(); + PlayerEntity playerEntity = context.getPlayer(); + ItemStack itemStack = context.getStack(); + BlockState blockState = world.getBlockState(blockPos); + Random random = world.random; + if (blockState.isOf(Blocks.CALCITE) && (PotionUtil.getPotion(itemStack) == Potions.HEALING || PotionUtil.getPotion(itemStack) == Potions.STRONG_HEALING)) { + playerEntity.setStackInHand(context.getHand(), ItemUsage.exchangeStack(itemStack, playerEntity, new ItemStack(Items.GLASS_BOTTLE))); + world.setBlockState(blockPos, ParadiseLostBlocks.BLOOMED_CALCITE.getDefaultState()); + // particles + for (int i = 0; i < 16; i++) { + double xOffset = random.nextDouble(); + double yOffset = random.nextDouble(); + double zOffset = random.nextDouble(); + world.addParticle(ParticleTypes.ENTITY_EFFECT, blockPos.getX()+xOffset, blockPos.getY()+yOffset, blockPos.getZ()+zOffset, 0.97, 0.15, 0.14); + } + if (!world.isClient) { + // sound + world.playSound(null, blockPos, SoundEvents.ITEM_BOTTLE_EMPTY, SoundCategory.BLOCKS, 1.0F, 1.0F); + } + cir.setReturnValue(ActionResult.success(world.isClient)); + cir.cancel(); + } + } +} diff --git a/src/main/java/net/id/paradiselost/world/feature/features/VitrouliteSpireFeature.java b/src/main/java/net/id/paradiselost/world/feature/features/VitrouliteSpireFeature.java index 2723c6b28..7714b3f6d 100644 --- a/src/main/java/net/id/paradiselost/world/feature/features/VitrouliteSpireFeature.java +++ b/src/main/java/net/id/paradiselost/world/feature/features/VitrouliteSpireFeature.java @@ -37,7 +37,7 @@ public boolean generate(FeatureContext context) { var height = random.nextInt(3) + 1; for (int i = 0; i <= height; i++) { - world.setBlockState(origin.up(i), ParadiseLostBlocks.VITROULITE.getDefaultState(), Block.NOTIFY_LISTENERS); + world.setBlockState(origin.up(i), Blocks.PACKED_ICE.getDefaultState(), Block.NOTIFY_LISTENERS); } for (Direction dir : Direction.values()) { @@ -95,7 +95,7 @@ public boolean generate(FeatureContext context) { } static { - secStates.add(ParadiseLostBlocks.VITROULITE.getDefaultState()); + secStates.add(Blocks.PACKED_ICE.getDefaultState()); secStates.add(ParadiseLostBlocks.COBBLED_FLOESTONE.getDefaultState()); secStates.add(ParadiseLostBlocks.FLOESTONE.getDefaultState()); } diff --git a/src/main/resources/asset_helper.py b/src/main/resources/asset_helper.py index 514c50117..f59cdf860 100644 --- a/src/main/resources/asset_helper.py +++ b/src/main/resources/asset_helper.py @@ -80,7 +80,10 @@ def generate_slab_block(block_id, base_block_id, texture): -generate_standard_item("nitra_bulb") +generate_standard_block("bloomed_calcite") +generate_standard_block("levita_brick") +generate_stairs_block("levita_brick_stairs", "levita_brick") +generate_slab_block("levita_brick_slab", "levita_brick", "levita_brick") diff --git a/src/main/resources/assets/paradise_lost/blockstates/bloomed_calcite.json b/src/main/resources/assets/paradise_lost/blockstates/bloomed_calcite.json new file mode 100644 index 000000000..f62d6169b --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/bloomed_calcite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "paradise_lost:block/bloomed_calcite" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/levita_brick.json b/src/main/resources/assets/paradise_lost/blockstates/levita_brick.json new file mode 100644 index 000000000..7a8923434 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/levita_brick.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "paradise_lost:block/levita_brick" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/levita_brick_slab.json b/src/main/resources/assets/paradise_lost/blockstates/levita_brick_slab.json new file mode 100644 index 000000000..66764abe0 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/levita_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "paradise_lost:block/levita_brick_slab" + }, + "type=double": { + "model": "paradise_lost:block/levita_brick" + }, + "type=top": { + "model": "paradise_lost:block/levita_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/levita_brick_stairs.json b/src/main/resources/assets/paradise_lost/blockstates/levita_brick_stairs.json new file mode 100644 index 000000000..92a4c1c6e --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/levita_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/levita_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/levita_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "paradise_lost:block/levita_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "paradise_lost:block/levita_brick_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "paradise_lost:block/levita_brick_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "paradise_lost:block/levita_brick_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/levita_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/levita_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "paradise_lost:block/levita_brick_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "paradise_lost:block/levita_brick_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "paradise_lost:block/levita_brick_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "paradise_lost:block/levita_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "paradise_lost:block/levita_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "paradise_lost:block/levita_brick_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/vitroulite.json b/src/main/resources/assets/paradise_lost/blockstates/vitroulite.json deleted file mode 100644 index ea9cccaa0..000000000 --- a/src/main/resources/assets/paradise_lost/blockstates/vitroulite.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "paradise_lost:block/vitroulite" - } - } -} 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 a1720de90..a2b63c81c 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -43,7 +43,7 @@ "block.paradise_lost.dense_cloud": "Dense Cloud", "block.paradise_lost.spring_water": "Spring Water", - "block.paradise_lost.vitroulite": "Vitroulite", + "block.paradise_lost.bloomed_calcite": "Bloomed Calcite", "block.paradise_lost.floestone": "Floestone", "block.paradise_lost.floestone_slab": "Floestone Slab", @@ -76,22 +76,9 @@ "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", - "block.paradise_lost.carved_stone_wall": "Carved Stone Wall", - - "block.paradise_lost.mossy_carved_stone": "Mossy Carved Stone", - "block.paradise_lost.mossy_carved_stone_slab": "Mossy Carved Stone Slab", - "block.paradise_lost.mossy_carved_stone_stairs": "Mossy Carved Stone Stairs", - "block.paradise_lost.mossy_carved_stone_wall": "Mossy Carved Stone Wall", - - "block.paradise_lost.cracked_carved_stone": "Cracked Carved Stone", - "block.paradise_lost.glyphed_carved_stone": "Glyphed Carved Stone", - "block.paradise_lost.carved_stone_panel": "Carved Stone Panel", - "block.paradise_lost.carved_stone_panel_lit": "Lit Carved Stone Panel", - "block.paradise_lost.carved_stone_eye": "Carved Stone Eye", - "block.paradise_lost.carved_stone_eye_lit": "Lit Carved Stone Eye", + "block.paradise_lost.levita_brick": "Levita Brick", + "block.paradise_lost.levita_brick_slab": "Levita Brick Slab", + "block.paradise_lost.levita_brick_stairs": "Levita Brick Stairs", "block.paradise_lost.golden_amber_tile": "Golden Amber Tile", "block.paradise_lost.golden_amber_tile_slab": "Golden Amber Tile Slab", @@ -201,19 +188,9 @@ "block.paradise_lost.shamrock": "Shamrock", "block.paradise_lost.malt_sprig": "Malt Sprig", "block.paradise_lost.honey_nettle": "Honey Nettle", - "block.paradise_lost.halophia": "Halophia", - "block.paradise_lost.giant_lily": "Giant's Lily", - "block.paradise_lost.weeping_cloudburst": "Weeping Cloudburst", - "block.paradise_lost.moss_star": "Moss Star", - "block.paradise_lost.moss_ball": "Moss Ball", "block.paradise_lost.liverwort": "Liverwort", "block.paradise_lost.liverwort_carpet": "Liverwort Carpet", - "block.paradise_lost.lichen": "Lichen", - "block.paradise_lost.lichen_pile": "Lichen Pile", - "block.paradise_lost.lucatiel_lichen": "Lucatiel Lichen", - "block.paradise_lost.lucatiel_lichen_pile": "Lucatiel Lichen Pile", - "block.paradise_lost.swedroot_spread": "Swedroot Spread", "block.paradise_lost.rootcap": "Rootcap", @@ -256,12 +233,6 @@ "block.paradise_lost.food_bowl": "Feeding Trough", "block.paradise_lost.tree_tap": "Tree Tap", "block.paradise_lost.nitra_bunch": "Nitra Bunch", - - "block.paradise_lost.crystal_chest": "Crystal Chest", - "block.paradise_lost.golden_oak_chest": "Mother Aurel Chest", - "block.paradise_lost.orange_chest": "Orange Chest", - "block.paradise_lost.skyroot_chest": "Aurel Chest", - "block.paradise_lost.wisteria_chest": "Wisteria Chest", "book.edition": "%dst Edition", diff --git a/src/main/resources/assets/paradise_lost/models/block/bloomed_calcite.json b/src/main/resources/assets/paradise_lost/models/block/bloomed_calcite.json new file mode 100644 index 000000000..9a57ad478 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/bloomed_calcite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "paradise_lost:block/bloomed_calcite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/levita_brick.json b/src/main/resources/assets/paradise_lost/models/block/levita_brick.json new file mode 100644 index 000000000..5b726850d --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita_brick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "paradise_lost:block/levita_brick" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/levita_brick_slab.json b/src/main/resources/assets/paradise_lost/models/block/levita_brick_slab.json new file mode 100644 index 000000000..d70743a6b --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "paradise_lost:block/levita_brick", + "top": "paradise_lost:block/levita_brick", + "side": "paradise_lost:block/levita_brick" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/levita_brick_slab_top.json b/src/main/resources/assets/paradise_lost/models/block/levita_brick_slab_top.json new file mode 100644 index 000000000..9ca272b66 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "paradise_lost:block/levita_brick", + "top": "paradise_lost:block/levita_brick", + "side": "paradise_lost:block/levita_brick" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs.json b/src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs.json new file mode 100644 index 000000000..d2811d164 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "paradise_lost:block/levita_brick", + "top": "paradise_lost:block/levita_brick", + "side": "paradise_lost:block/levita_brick" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs_inner.json b/src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs_inner.json new file mode 100644 index 000000000..bdaf2b1d3 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "paradise_lost:block/levita_brick", + "top": "paradise_lost:block/levita_brick", + "side": "paradise_lost:block/levita_brick" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs_outer.json b/src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs_outer.json new file mode 100644 index 000000000..8802fd611 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/levita_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "paradise_lost:block/levita_brick", + "top": "paradise_lost:block/levita_brick", + "side": "paradise_lost:block/levita_brick" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/vitroulite.json b/src/main/resources/assets/paradise_lost/models/block/vitroulite.json deleted file mode 100644 index f1f6e785f..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/vitroulite.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "paradise_lost:block/vitroulite" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/bloomed_calcite.json b/src/main/resources/assets/paradise_lost/models/item/bloomed_calcite.json new file mode 100644 index 000000000..54b5e6b41 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/bloomed_calcite.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/bloomed_calcite" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita_brick.json b/src/main/resources/assets/paradise_lost/models/item/levita_brick.json new file mode 100644 index 000000000..5340b17d5 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita_brick.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/levita_brick" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita_brick_slab.json b/src/main/resources/assets/paradise_lost/models/item/levita_brick_slab.json new file mode 100644 index 000000000..2626f4071 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/levita_brick_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/levita_brick_stairs.json b/src/main/resources/assets/paradise_lost/models/item/levita_brick_stairs.json new file mode 100644 index 000000000..fe00972e0 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/levita_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/levita_brick_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/portal.json b/src/main/resources/assets/paradise_lost/models/item/portal.json index 2b4ad07f6..036db987c 100644 --- a/src/main/resources/assets/paradise_lost/models/item/portal.json +++ b/src/main/resources/assets/paradise_lost/models/item/portal.json @@ -2,9 +2,9 @@ "parent": "block/cube_all", "ambientocclusion": false, "textures": { - "0": "block/glowstone", + "0": "paradise_lost:block/bloomed_calcite", "1": "paradise_lost:block/blue_portal", - "particle": "block/glowstone" + "particle": "paradise_lost:block/bloomed_calcite" }, "elements": [ { diff --git a/src/main/resources/assets/paradise_lost/models/item/vitroulite.json b/src/main/resources/assets/paradise_lost/models/item/vitroulite.json deleted file mode 100644 index ef1ff99ee..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/vitroulite.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:block/vitroulite" -} diff --git a/src/main/resources/assets/paradise_lost/textures/block/bloomed_calcite.png b/src/main/resources/assets/paradise_lost/textures/block/bloomed_calcite.png new file mode 100644 index 0000000000000000000000000000000000000000..cee78c8a6a13136fd16627f188038cf518f416b2 GIT binary patch literal 460 zcmV;-0WPx$hDk(0R5*=old)>!KoEvMFDh(=5yr6uvhTQ7g{zPzRf=ow0n+7RQw77}>fltK zA+|t!$pv8~xsp=EGaiN8M$7K}Gyi`vN=A7PMIp)6z(*yt~VnDxsv(-Jo*ZT*?vpLN!r>p!R)?rqA*mHa?bq{cLa}B`h z?N#HX`XGT7PrqCOtk^{{E{gTME=mI1r-+4th-7t@$3?NSnJiZXvhkbkK&%Xkl4-Wq z-n+`H+v9V|sPFq8pxNaEaFSS@$du}$929fSF4rC<*tTSei*@UCRR8(iOTgmxPN8*` z*EccE){JL!{ysfwAz>4UI7}0oU5<<5kC~r)RyW!DzeNRQ_m(~LN^TPx$$w@>(R5*=wk}+%BKp2Lfl*3RPWV@lX5F9Ty859s03WiP|3K;_J)Gnp;2L$>L z@^icu637rp!BbL$fTYyl9?DwvAWfcv`%0Iha|)01;Vlm=9tG61noh;>5MDf4Hsv}O;BC9zIy zlUOG_ES3O>`@4xX$Q!Mf5ym<}DQ)ixrF22OeqJ{LP)ge-qE>TIN~4sfRpyh(l{ zr8Lv&gy|Gq*F}7A4{bo#zO+U!2?0KTIj|v%C=CFpmpndw^oY`c)01-mc6J&71!1?- z1K{>%MU)0vh}rwH)axaWpI<$Ed4`k{$VUDC?MFdqwj<12$KjlDIH$Rr8MWFCq?8>0 zIw}aw`b-IP$OjnfgjPEnKb%$mE8H;1vycY`;Q5)GoV>dF>u-Q#*f1gHjm=%9G*U{0 z>$-)ojM!9^2IOHIhjY6XfGvM;_4sbV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/paradise_lost/textures/block/vitroulite.png b/src/main/resources/assets/paradise_lost/textures/block/vitroulite.png deleted file mode 100644 index 6076574b966810be400a80f2c00c056001dbd57d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xn;?M>)xYRXRq2=RMXrsd1iWH z#f`f!0unN;D)MT83d%fP978H@srH}bWN;K{S+n{xe`Vw|?G6u{l$S|t?%Ex})e{zP zGrOa`qOqefP_35#=XX4EVUuatNe=Tc<2Qo%^!^w#VP@11U%S{^;s@Q&Rs zbVj(zmVFN!boNXXiB Date: Sun, 28 Apr 2024 22:24:13 -0500 Subject: [PATCH 13/24] new loot tables --- .../loot_tables/chests/aurel_tower.json | 161 ++++++++----- .../loot_tables/chests/vault/armory.json | 216 ++++++++++++++++++ .../loot_tables/chests/vault/stable.json | 92 ++++++++ .../loot_tables/chests/vault/valuable.json | 167 ++++++++++++++ 4 files changed, 575 insertions(+), 61 deletions(-) create mode 100644 src/main/resources/data/paradise_lost/loot_tables/chests/vault/armory.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/chests/vault/stable.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/chests/vault/valuable.json diff --git a/src/main/resources/data/paradise_lost/loot_tables/chests/aurel_tower.json b/src/main/resources/data/paradise_lost/loot_tables/chests/aurel_tower.json index 783f23a65..d3f80f5f2 100644 --- a/src/main/resources/data/paradise_lost/loot_tables/chests/aurel_tower.json +++ b/src/main/resources/data/paradise_lost/loot_tables/chests/aurel_tower.json @@ -2,112 +2,151 @@ "type": "minecraft:chest", "pools": [ { - "rolls": { - "type": "minecraft:uniform", - "min": 4.0, - "max": 8.0 - }, - "bonus_rolls": 0.0, + "rolls": 1, + "bonus_rolls": 2, "entries": [ { "type": "minecraft:item", - "weight": 50, + "name": "minecraft:string", + "weight": 2, "functions": [ { "function": "minecraft:set_count", "count": { - "type": "minecraft:uniform", - "min": 5.0, - "max": 14.0 - }, - "add": false + "min": 1, + "max": 3 + } } - ], - "name": "minecraft:stick" + ] }, { "type": "minecraft:item", - "weight": 40, + "name": "minecraft:stick", + "weight": 3, "functions": [ { "function": "minecraft:set_count", "count": { - "type": "minecraft:uniform", - "min": 2.0, - "max": 7.0 - }, - "add": false + "min": 1, + "max": 10 + } } - ], - "name": "minecraft:string" + ] }, { "type": "minecraft:item", - "weight": 25, + "name": "minecraft:torch", + "weight": 2, "functions": [ { "function": "minecraft:set_count", "count": { - "type": "minecraft:uniform", - "min": 1.0, - "max": 6.0 - }, - "add": false + "min": 1, + "max": 5 + } } - ], - "name": "paradise_lost:olvite_nugget" + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:cold_parachute" + }, + { + "type": "minecraft:item", + "name": "minecraft:spyglass" + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:aurel_bucket" }, { "type": "minecraft:item", - "weight": 15, + "name": "paradise_lost:aurel_water_bucket" + } + ], + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.5 + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:nitra", "functions": [ { "function": "minecraft:set_count", "count": { - "type": "minecraft:uniform", - "min": 2.0, - "max": 4.0 - }, - "add": false + "min": 1, + "max": 2 + } } - ], - "name": "paradise_lost:cherine" - }, + ] + } + ] + }, + { + "rolls": 1, + "entries": [ { "type": "minecraft:item", - "weight": 10, + "name": "paradise_lost:blackcurrant", + "weight": 2, "functions": [ { "function": "minecraft:set_count", "count": { - "type": "minecraft:uniform", - "min": 1.0, - "max": 3.0 - }, - "add": false + "min": 1, + "max": 5 + } } - ], - "name": "paradise_lost:olvite" + ] }, { "type": "minecraft:item", - "weight": 20, - "name": "paradise_lost:aurel_bucket" - }, - { - "type": "minecraft:item", - "weight": 10, - "name": "paradise_lost:aurel_water_bucket" - }, - { - "type": "minecraft:item", - "weight": 15, - "name": "minecraft:saddle" + "name": "paradise_lost:amadrys_bushel", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] }, { "type": "minecraft:item", - "weight": 20, - "name": "paradise_lost:cold_parachute" + "name": "paradise_lost:cherine", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 9 + } + } + ] } ] } diff --git a/src/main/resources/data/paradise_lost/loot_tables/chests/vault/armory.json b/src/main/resources/data/paradise_lost/loot_tables/chests/vault/armory.json new file mode 100644 index 000000000..bb1e9d614 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/chests/vault/armory.json @@ -0,0 +1,216 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_upgrade_smithing_template" + } + ] + }, + { + "rolls": { + "min": 1, + "max": 2 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:olvite_helmet", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 0, + "max": 10 + }, + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.5 + } + ] + }, + { + "function": "minecraft:set_damage", + "damage": { + "min": 0, + "max": 100 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:olvite_chestplate", + "weight": 2, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 0, + "max": 10 + }, + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.5 + } + ] + }, + { + "function": "minecraft:set_damage", + "damage": { + "min": 0, + "max": 100 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:olvite_leggings", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 0, + "max": 10 + }, + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.5 + } + ] + }, + { + "function": "minecraft:set_damage", + "damage": { + "min": 0, + "max": 100 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:olvite_boots", + "weight": 2, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 0, + "max": 10 + }, + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.5 + } + ] + }, + { + "function": "minecraft:set_damage", + "damage": { + "min": 0, + "max": 100 + } + } + ] + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:cold_parachute", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "paradise_lost:amadrys_bread", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 7 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:olvite_chain", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:nitra_bunch", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:flint_and_steel", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "paradise_lost:olvite_sword", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_damage", + "damage": { + "min": 0, + "max": 100 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_sword", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": 20 + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/chests/vault/stable.json b/src/main/resources/data/paradise_lost/loot_tables/chests/vault/stable.json new file mode 100644 index 000000000..06eadc5d8 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/chests/vault/stable.json @@ -0,0 +1,92 @@ +{ + "pools": [ + { + "rolls": 3, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:olvite_bloodstone", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "minecraft:lead", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "paradise_lost:aurel_bucket", + "weight": 1 + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:orange", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 13 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:orange_sapling", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:swedroot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 7 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:food_bowl", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "paradise_lost:incubator", + "weight": 1 + } + ], + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.5 + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/chests/vault/valuable.json b/src/main/resources/data/paradise_lost/loot_tables/chests/vault/valuable.json new file mode 100644 index 000000000..0ab8e8d2d --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/chests/vault/valuable.json @@ -0,0 +1,167 @@ +{ + "pools": [ + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:golden_amber", + "weight": 6, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 6 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:levita_gem", + "weight": 1 + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_upgrade_smithing_template" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:name_tag", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "paradise_lost:levita_wand", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "paradise_lost:bloomed_calcite", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 12 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_axe" + }, + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_sword" + }, + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_hoe" + }, + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_pickaxe" + }, + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_shovel" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_axe", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 0, + "max": 20 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_sword", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 0, + "max": 20 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_hoe", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 0, + "max": 20 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_pickaxe", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 0, + "max": 20 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "paradise_lost:glazed_gold_shovel", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 0, + "max": 20 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.5 + } + ] + } + ] +} From bb7c928610e83b01e5993c7bb4732c34042541eb Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Tue, 30 Apr 2024 23:21:12 -0500 Subject: [PATCH 14/24] envoy ? --- .../client/model/ParadiseLostModelLayers.java | 9 ++ .../client/model/entity/EnvoyEntityModel.java | 14 +++ .../entity/EnvoyEyesFeatureRenderer.java | 32 +++++ .../entity/ParadiseLostEntityRenderers.java | 2 + .../entity/hostile/EnvoyEntityRenderer.java | 30 +++++ .../entities/ParadiseLostEntityTypes.java | 4 + .../entities/hostile/EnvoyEntity.java | 68 +++++++++++ .../world/dimension/ParadiseLostBiomes.java | 110 ++++++++++-------- .../textures/entity/envoy/envoy.png | Bin 0 -> 1321 bytes .../entity/envoy/envoy_enlightened.png | Bin 0 -> 1317 bytes .../entity/envoy/envoy_enlightened_eyes.png | Bin 0 -> 108 bytes .../dimension_type/paradise_lost.json | 6 +- 12 files changed, 223 insertions(+), 52 deletions(-) create mode 100644 src/main/java/net/id/paradiselost/client/model/entity/EnvoyEntityModel.java create mode 100644 src/main/java/net/id/paradiselost/client/model/entity/EnvoyEyesFeatureRenderer.java create mode 100644 src/main/java/net/id/paradiselost/client/rendering/entity/hostile/EnvoyEntityRenderer.java create mode 100644 src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java create mode 100644 src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy.png create mode 100644 src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened.png create mode 100644 src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened_eyes.png diff --git a/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java b/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java index 762527db8..5ab203023 100644 --- a/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java +++ b/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java @@ -8,7 +8,9 @@ import net.id.paradiselost.client.model.armor.PhoenixArmorModel; import net.id.paradiselost.client.model.block.DungeonSwitchModel; import net.id.paradiselost.client.model.entity.*; +import net.minecraft.client.model.Dilation; import net.minecraft.client.model.TexturedModelData; +import net.minecraft.client.render.entity.model.BipedEntityModel; import net.minecraft.client.render.entity.model.EntityModelLayer; import net.minecraft.util.Identifier; @@ -16,9 +18,16 @@ @Environment(EnvType.CLIENT) public class ParadiseLostModelLayers { + + public static final TexturedModelData INNER_ARMOR_MODEL_DATA = TexturedModelData.of(BipedEntityModel.getModelData(new Dilation(0.5F), 0.0F), 64, 32); + public static final TexturedModelData OUTER_ARMOR_MODEL_DATA = TexturedModelData.of(BipedEntityModel.getModelData(new Dilation(1.0F), 0.0F), 64, 32); + public static final Map ENTRIES = Maps.newHashMap(); public static final EntityModelLayer HELLENROSE = register("hellenrose", "main", ParadiseLostPlantModel.getTexturedModelData()); + public static final EntityModelLayer ENVOY = register("envoy", "main", EnvoyEntityModel.getTexturedModelData()); + public static final EntityModelLayer ENVOY_INNER_ARMOR = register("envoy", "inner_armor", INNER_ARMOR_MODEL_DATA); + public static final EntityModelLayer ENVOY_OUTER_ARMOR = register("envoy", "outer_armor", OUTER_ARMOR_MODEL_DATA); public static final EntityModelLayer PARADISE_HARE = register("corsican_hare", "main", ParadiseHareModel.getTexturedModelData()); public static final EntityModelLayer MOA = register("moa", "main", MoaModel.getTexturedModelData()); public static final EntityModelLayer AMBYST = register("ambyst", "main", AmbystModel.getTexturedModelData()); diff --git a/src/main/java/net/id/paradiselost/client/model/entity/EnvoyEntityModel.java b/src/main/java/net/id/paradiselost/client/model/entity/EnvoyEntityModel.java new file mode 100644 index 000000000..448ab26e7 --- /dev/null +++ b/src/main/java/net/id/paradiselost/client/model/entity/EnvoyEntityModel.java @@ -0,0 +1,14 @@ +package net.id.paradiselost.client.model.entity; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.id.paradiselost.entities.hostile.EnvoyEntity; +import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.entity.model.SkeletonEntityModel; + +@Environment(EnvType.CLIENT) +public class EnvoyEntityModel extends SkeletonEntityModel { + public EnvoyEntityModel(ModelPart modelPart) { + super(modelPart); + } +} diff --git a/src/main/java/net/id/paradiselost/client/model/entity/EnvoyEyesFeatureRenderer.java b/src/main/java/net/id/paradiselost/client/model/entity/EnvoyEyesFeatureRenderer.java new file mode 100644 index 000000000..cd8539c76 --- /dev/null +++ b/src/main/java/net/id/paradiselost/client/model/entity/EnvoyEyesFeatureRenderer.java @@ -0,0 +1,32 @@ +package net.id.paradiselost.client.model.entity; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.id.paradiselost.ParadiseLost; +import net.id.paradiselost.entities.hostile.EnvoyEntity; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; +import net.minecraft.client.render.entity.feature.FeatureRendererContext; +import net.minecraft.client.util.math.MatrixStack; + +@Environment(EnvType.CLIENT) +public class EnvoyEyesFeatureRenderer extends EyesFeatureRenderer> { + + private static final RenderLayer TEXTURE = RenderLayer.getEyes(ParadiseLost.locate("textures/entity/envoy/envoy_enlightened_eyes.png")); + + public EnvoyEyesFeatureRenderer(FeatureRendererContext> featureRendererContext) { + super(featureRendererContext); + } + + public void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, T entity, float limbAngle, float limbDistance, float tickDelta, float animationProgress, float headYaw, float headPitch) { + if (entity.getEnlightened()) { + super.render(matrices, vertexConsumers, light, entity, limbAngle, limbDistance, tickDelta, animationProgress, headYaw, headPitch); + } + } + + @Override + public RenderLayer getEyesTexture() { + return TEXTURE; + } +} diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java b/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java index 396daf0bf..5250191c8 100644 --- a/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java +++ b/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java @@ -4,6 +4,7 @@ import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; import net.id.incubus_core.blocklikeentities.api.client.BlockLikeEntityRenderer; +import net.id.paradiselost.client.rendering.entity.hostile.EnvoyEntityRenderer; import net.id.paradiselost.client.rendering.entity.hostile.HellenroseRenderer; import net.id.paradiselost.client.rendering.entity.passive.ParadiseHareRenderer; import net.id.paradiselost.client.rendering.entity.passive.MoaEntityRenderer; @@ -21,6 +22,7 @@ public static void initClient() { // hostile register(ParadiseLostEntityTypes.HELLENROSE, HellenroseRenderer::new); + register(ParadiseLostEntityTypes.ENVOY, EnvoyEntityRenderer::new); // passive register(ParadiseLostEntityTypes.MOA, MoaEntityRenderer::new); diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/hostile/EnvoyEntityRenderer.java b/src/main/java/net/id/paradiselost/client/rendering/entity/hostile/EnvoyEntityRenderer.java new file mode 100644 index 000000000..f84f09ca2 --- /dev/null +++ b/src/main/java/net/id/paradiselost/client/rendering/entity/hostile/EnvoyEntityRenderer.java @@ -0,0 +1,30 @@ +package net.id.paradiselost.client.rendering.entity.hostile; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.id.paradiselost.ParadiseLost; +import net.id.paradiselost.client.model.ParadiseLostModelLayers; +import net.id.paradiselost.client.model.entity.EnvoyEyesFeatureRenderer; +import net.id.paradiselost.entities.hostile.EnvoyEntity; +import net.minecraft.client.render.entity.EntityRendererFactory; +import net.minecraft.client.render.entity.SkeletonEntityRenderer; +import net.minecraft.entity.mob.AbstractSkeletonEntity; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class EnvoyEntityRenderer extends SkeletonEntityRenderer { + private static final Identifier TEXTURE = ParadiseLost.locate("textures/entity/envoy/envoy.png"); + private static final Identifier TEXTURE_ENLIGHTENED = ParadiseLost.locate("textures/entity/envoy/envoy_enlightened.png"); + + public EnvoyEntityRenderer(EntityRendererFactory.Context renderManager) { + super(renderManager, ParadiseLostModelLayers.ENVOY, ParadiseLostModelLayers.ENVOY_INNER_ARMOR, ParadiseLostModelLayers.ENVOY_OUTER_ARMOR); + this.addFeature(new EnvoyEyesFeatureRenderer(this)); + } + + public Identifier getTexture(AbstractSkeletonEntity entity) { + if (((EnvoyEntity) entity).getEnlightened()) { + return TEXTURE_ENLIGHTENED; + } + return TEXTURE; + } +} diff --git a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java index 5e0a0b3af..9aaed6025 100644 --- a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java +++ b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java @@ -7,6 +7,7 @@ import net.id.paradiselost.ParadiseLost; import net.id.paradiselost.entities.block.FloatingBlockEntity; import net.id.paradiselost.entities.block.SliderEntity; +import net.id.paradiselost.entities.hostile.EnvoyEntity; import net.id.paradiselost.entities.hostile.HellenroseEntity; import net.id.paradiselost.entities.passive.ParadiseHareEntity; import net.id.paradiselost.entities.passive.ParadiseLostAnimalEntity; @@ -24,6 +25,7 @@ import net.minecraft.entity.ai.brain.sensor.SensorType; import net.minecraft.entity.attribute.DefaultAttributeContainer; import net.minecraft.entity.mob.MobEntity; +import net.minecraft.entity.mob.SkeletonEntity; import net.minecraft.entity.passive.AnimalEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; @@ -50,6 +52,8 @@ public class ParadiseLostEntityTypes { // Hostile public static final EntityType HELLENROSE = add("hellenrose", of(HellenroseEntity::new, MONSTER, changing(1f, 1f), 5), attributes(HellenroseEntity::createHellenroseAttributes), spawnRestrictions(HellenroseEntity::canSpawn)); + public static final EntityType ENVOY = add("envoy", of(EnvoyEntity::new, MONSTER, changing(1f, 2f), 7), + attributes(EnvoyEntity::createEnvoyAttributes), spawnRestrictions(EnvoyEntity::canMobSpawn)); // passive public static final EntityType MOA = add("moa", of(MoaEntity::new, CREATURE, changing(1.0F, 2.0F), 5), diff --git a/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java new file mode 100644 index 000000000..7969051df --- /dev/null +++ b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java @@ -0,0 +1,68 @@ +package net.id.paradiselost.entities.hostile; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.attribute.DefaultAttributeContainer; +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.data.DataTracker; +import net.minecraft.entity.data.TrackedData; +import net.minecraft.entity.data.TrackedDataHandlerRegistry; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.entity.mob.SkeletonEntity; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.LocalDifficulty; +import net.minecraft.world.World; + +public class EnvoyEntity extends SkeletonEntity { + private static final TrackedData ENLIGHTENED; + + public EnvoyEntity(EntityType entityType, World world) { + super(entityType, world); + } + + public boolean getEnlightened() { + return this.dataTracker.get(ENLIGHTENED); + } + + protected void initDataTracker() { + super.initDataTracker(); + this.dataTracker.startTracking(ENLIGHTENED, false); + } + + protected void initEquipment(Random random, LocalDifficulty localDifficulty) { + } + + public boolean tryAttack(Entity target) { + if (!super.tryAttack(target)) { + return false; + } else { + if (target instanceof LivingEntity) { + ((LivingEntity) target).addStatusEffect(new StatusEffectInstance(StatusEffects.SLOWNESS, 200), this); + } + return true; + } + } + public static DefaultAttributeContainer.Builder createEnvoyAttributes() { + return createHostileAttributes() + .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.2D); + } + + @Override + public void writeCustomDataToNbt(NbtCompound compound) { + super.writeCustomDataToNbt(compound); + compound.putBoolean("Enlightened", this.dataTracker.get(ENLIGHTENED)); + } + + @Override + public void readCustomDataFromNbt(NbtCompound compound) { + super.readCustomDataFromNbt(compound); + this.dataTracker.set(ENLIGHTENED, compound.getBoolean("Enlightened")); + } + + static { + ENLIGHTENED = DataTracker.registerData(EnvoyEntity.class, TrackedDataHandlerRegistry.BOOLEAN); + } +} 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 6a8e8a577..b6ae4ffc9 100644 --- a/src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java +++ b/src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java @@ -261,14 +261,18 @@ private static Biome createHighlandsPlains() { .spawnSettings(createSpawnSettings( merge( Map.of( + SpawnGroup.MONSTER, List.of( + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) ), - Map.of( - ) + Map.of( + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.5F).downfall(1) // .category(Biome.Category.PLAINS) @@ -304,15 +308,18 @@ private static Biome createHighlandsForest() { .spawnSettings(createSpawnSettings( merge( Map.of( + SpawnGroup.MONSTER, List.of( + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 3, 7) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) ), - - Map.of( - ) + Map.of( + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.5F).downfall(1) // .category(Biome.Category.FOREST) @@ -344,16 +351,19 @@ private static Biome createTradewinds() { ) )) .spawnSettings(createSpawnSettings( - merge( - Map.of( - SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 3, 7) - ) - ) - ), - + merge( Map.of( + SpawnGroup.MONSTER, List.of( + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + ), + SpawnGroup.CREATURE, List.of( + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) + ) + ) + ), + Map.of( + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.5F).downfall(1) @@ -394,18 +404,17 @@ private static Biome createHighlandsThicket() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.HELLENROSE, 50, 1, 2) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 10, 1, 5) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) ), - - Map.of( - ParadiseLostEntityTypes.HELLENROSE, SpawnCost.of(0.75, 0.07) - ) + Map.of( + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.4F).downfall(2) // .category(Biome.Category.FOREST) @@ -440,20 +449,19 @@ private static Biome createHighlandsGrandGlade() { ) )) .spawnSettings(createSpawnSettings( - merge( - Map.of( - SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.HELLENROSE, 50, 1, 2) - ), - SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 10, 1, 5) - ) - ) - ), - + merge( Map.of( - ParadiseLostEntityTypes.HELLENROSE, SpawnCost.of(0.75, 0.07) + SpawnGroup.MONSTER, List.of( + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + ), + SpawnGroup.CREATURE, List.of( + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) + ) + ) + ), + Map.of( + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.4F).downfall(2) @@ -489,19 +497,17 @@ private static Biome createWisteriaWoods() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.HELLENROSE, 100, 3, 7) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) ), - SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 10, 1, 5) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) ), - - Map.of( - ParadiseLostEntityTypes.HELLENROSE, SpawnCost.of(0.7, 0.1) - ) + Map.of( + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.5F).downfall(1) // .category(Biome.Category.FOREST) @@ -541,6 +547,9 @@ private static Biome createAutumnalTundra() { .spawnSettings(createSpawnSettings( merge( Map.of( + SpawnGroup.MONSTER, List.of( + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13), @@ -548,9 +557,9 @@ private static Biome createAutumnalTundra() { ) ) ), - - Map.of( - ) + Map.of( + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.1F).downfall(2) // .category(Biome.Category.TAIGA) @@ -588,6 +597,9 @@ private static Biome createContinentalPlateau() { .spawnSettings(createSpawnSettings( merge( Map.of( + SpawnGroup.MONSTER, List.of( + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13), @@ -595,9 +607,9 @@ private static Biome createContinentalPlateau() { ) ) ), - - Map.of( - ) + Map.of( + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.25F).downfall(0) .build(); @@ -645,7 +657,7 @@ private static Biome createHighlandsShield() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.HELLENROSE, 50, 1, 3) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -655,7 +667,7 @@ private static Biome createHighlandsShield() { ) ), Map.of( - ParadiseLostEntityTypes.HELLENROSE, SpawnCost.of(1, 0.1) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.35F).downfall(2) diff --git a/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy.png b/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy.png new file mode 100644 index 0000000000000000000000000000000000000000..feb174efa9dbbc9f7328e603d16d0fd768e9231a GIT binary patch literal 1321 zcmV+^1=jkBP)Px(<4Ht8RA_T7IeyiVC;?5&Vsd7dsW;!EX<0Z8o9y@mz$u$>6_F?bX&n#SbJEKSQIJ3c{ne1epw1?EJ#$?&>S&le5l#C3r-<9_B- znueMh0bnGX4ZKrRBdDnnT;~v{(E!@FEWC!mpsLDoKm2np3epCIi4m4w;ILjlH3sd2 z@EgYPT9<**I4DlTmYqRW#WW0Zg@R<(bq@LV{+9rJw)h23qrrEjZ)9IcNYk?9xBfK& zQd%Z*^YFZjfZ|Vb(z?#%%q$z_?*o%Qy!8obUFVOVew2Lx(=gQ3Xy`62`qhnr} zHAZt|^4(=&I1I&4sC#rw)3SK|op%G1ri#T=`X3bxH7!drI+`2fg<0zp*}a4G!7B^% zo;o}v#r5{R`+f1xt4oVsW-JFFRRth3mLsj}d~oa2$bChyC1~tbok4m5KlA+**K60O zC6l7qA`ZK^*3I13>6k4L*3Ha%A8aCN{9;adV zj6OvKDPrMpzt^y9rc{HbWntG$D(h>Wcn+iA^eJgwmw`%3%Mk7-L6p6OSjOpcm`UMf z)ZroO)v8Rk%B5w`Gz`gLxAY|*fOrUtU#IbUlrdUanD;8{Yo0iS%KDo3Y;!ZwaFt8T z-ihl5<_Wv-s`Mp6dA7MpHlJs5W){~u zu^5m7VQAIiA*tUYp;}#9^u!pn#9c7l>qJVKDi&M*`~Rdy_B-?hQMXzyEqiHQXZPtA z(9RT-Qs3WxD0>i0k;Pgkt}E5V-*yXSZ)cm7mSN}5$MPmpT1MVX5~6It+?~4vt4oWX zs2=U@Y;*hG{eg06*$aosVxM}oiqmM2(lk~U<~?Bp?3&4m>jpf4zwP<}plxa6+OrTR z0dsfm4pi2srJomLXRRfQGyXLnJ$&E^M&sIUpoIN@xP29vhC!4O>;z#Q@8)tkfdcJ( zJ+6IOgry=bybZ&ynLTlBF9XGC*r&qG^9YHf5VfCOGcgSVb$BSU?G{RAEQeh)iEGaj zQHSpTFB#Q#i>~8*;kp1>9ol`mg=rX46;>AJy=M?HB$7T?q{ira|9!00000NkvXXu0mjf2}F#Z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened.png b/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened.png new file mode 100644 index 0000000000000000000000000000000000000000..a01b1dd4fdd19e0c840a4b1a5a424dccbb16c3de GIT binary patch literal 1317 zcmV+=1={+FP)Px(-$_J4RA_U-HRrb@6bejFWxr@fEc2i1B2 zGuLmNX`FDv2B;X#7zSgLQ#2fh{KzQzkx?>+5t*ZMlks&`&u0zo*!O`J<6-7AhJl_L z0$?bgkG#_}L+F_yeD46SUI$vYEWCz5zpl&iFv4@r3epC|i4m4w;GkAJF$S%J2ph)u zTCW46NzlByD?9zVj%`^KN+rpx?;UXY<4*y2@Y6lKdYunH|5EmagftvSej8pBAYVcR4a?e0utX{;PtahT}*^FBFD(W>AARwaa$gZ_2^zaqXOLbX%zQ7!_2Q)o$)qT@ zh{IlATTQGVglX$$l&Rglb35?ruC&ym731BOgs=e>g%;I2fiQhu-6dZv;?>=*(Wi+Z zMJycecN=cimTJ&&9NenS`r2wBp5y2>eOlHuWuTHVa>V;-5M?hRmPxuCXHs|>eQteL0w1pb9MtyrXgChz)6)?t z5QbJC9FY1g5~`Jj`9O?8Q``l^-A<&m@#*QN|9+m-$bOriKy|C-rNtm?n(RE@1X`J5 zTI&1TkL3WODY97W*!QKHgxgM`?QU<8F>-AG`B2_O#>mN=NrTD;%v`_Gx3VxFi0aYq z_7>M}-s&qaEe7#0S?p7*RPgF`GKRtO+-x9hfLpaW_Wg(l2)7*{0JJP^QhOSbBw*(H zjlT7@3F+s>*lBBt;!JqWyLWB}g3+Y56KHY&A8%gC*g6$x#j}`o>q<9{x6UO+p?saf~FfRluAI$MHWgW3Z)V|k2j@MWsDsCy3VohN8)>E8p3#C bwO9Bb67>xv6|4qW00000NkvXXu0mjfmv@U5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened_eyes.png b/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened_eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..8aae72e124befa07dfd048da6549616a8adc9c44 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQjEnx?oJHr&dIz4a@0Is978f1 z-yYw{%fP_Fyx`yeEqd#053raCF)%bF`B?*%Fnl=1q*KlRF*R{7NC$(btDnm{r-UW| DW|bYO literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/dimension_type/paradise_lost.json b/src/main/resources/data/paradise_lost/dimension_type/paradise_lost.json index 9c3464d42..73b1fc645 100644 --- a/src/main/resources/data/paradise_lost/dimension_type/paradise_lost.json +++ b/src/main/resources/data/paradise_lost/dimension_type/paradise_lost.json @@ -2,7 +2,7 @@ "logical_height": 384, "infiniburn": "#minecraft:infiniburn_overworld", "effects": "minecraft:overworld", - "ambient_light": 0.06, + "ambient_light": 0.03, "respawn_anchor_works": false, "has_raids": false, "min_y": -64, @@ -14,6 +14,6 @@ "has_skylight": true, "has_ceiling": false, "ultrawarm": false, - "monster_spawn_light_level": 0, - "monster_spawn_block_light_limit": 0 + "monster_spawn_light_level": 6, + "monster_spawn_block_light_limit": 6 } From a37b9d4298a8cf0b0de9ba55f4fe0b8184a827ef Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Wed, 1 May 2024 10:42:29 -0500 Subject: [PATCH 15/24] envoy 2 --- .../entities/hostile/EnvoyEntity.java | 17 ++++++ .../paradiselost/items/ParadiseLostItems.java | 1 + .../assets/paradise_lost/lang/en_us.json | 1 + .../models/item/envoy_spawn_egg.json | 3 ++ .../textures/entity/envoy/envoy.png | Bin 1321 -> 1664 bytes .../entity/envoy/envoy_enlightened.png | Bin 1317 -> 1659 bytes .../loot_tables/entities/envoy.json | 49 ++++++++++++++++++ 7 files changed, 71 insertions(+) create mode 100644 src/main/resources/assets/paradise_lost/models/item/envoy_spawn_egg.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/entities/envoy.json diff --git a/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java index 7969051df..de9eb0cb6 100644 --- a/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java +++ b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java @@ -10,8 +10,10 @@ import net.minecraft.entity.data.TrackedDataHandlerRegistry; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.entity.mob.EndermanEntity; import net.minecraft.entity.mob.SkeletonEntity; import net.minecraft.nbt.NbtCompound; +import net.minecraft.particle.ParticleTypes; import net.minecraft.util.math.random.Random; import net.minecraft.world.LocalDifficulty; import net.minecraft.world.World; @@ -35,6 +37,21 @@ protected void initDataTracker() { protected void initEquipment(Random random, LocalDifficulty localDifficulty) { } + public boolean isShaking() { + return this.getEnlightened() || super.isShaking(); + } + + + public void tick() { + if (this.world.isClient && this.getEnlightened() && this.random.nextInt(3) == 0) { + this.world.addParticle(ParticleTypes.CLOUD, + this.getParticleX(0.2), (this.getY() + this.random.nextDouble() * 0.6) + 0.85, this.getParticleZ(0.2), + (this.random.nextDouble() - 0.5) * 0.05, -this.random.nextDouble() * 0.025, (this.random.nextDouble() - 0.5) * 0.05 + ); + } + super.tick(); + } + public boolean tryAttack(Entity target) { if (!super.tryAttack(target)) { return false; diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index cc3f136ba..c3d6ac4f9 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 Settings misc() { public static final AurelBucketItem AUREL_MILK_BUCKET = add("aurel_milk_bucket", new AurelBucketItem(aurelBucket)); public static final SpawnEggItem HELLENROSE_SPAWN_EGG = add("hellenrose_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.HELLENROSE, 0x97DED4, 0x31897D, misc), spawnEggBehavior); + public static final SpawnEggItem ENVOY_SPAWN_EGG = add("envoy_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.ENVOY, 0xc5b1af, 0x993c3c, misc), spawnEggBehavior); public static final SpawnEggItem PARADISE_HARE_SPAWN_EGG = add("corsican_hare_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.PARADISE_HARE, 0xC5D6ED, 0x82A6D9, misc), spawnEggBehavior); public static final SpawnEggItem MOA_SPAWN_EGG = add("moa_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.MOA, 0xC55C2E4, 0xB3A8BB, misc), spawnEggBehavior); 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 a2b63c81c..e879f640c 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -338,6 +338,7 @@ "item.paradise_lost.cloud_vial": "Cloud Vial", "item.paradise_lost.hellenrose_spawn_egg": "Hellenrose Spawn Egg", + "item.paradise_lost.envoy_spawn_egg": "Envoy Spawn Egg", "item.paradise_lost.corsican_hare_spawn_egg": "Corsican Hare Spawn Egg", "item.paradise_lost.moa_spawn_egg": "Moa Spawn Egg", diff --git a/src/main/resources/assets/paradise_lost/models/item/envoy_spawn_egg.json b/src/main/resources/assets/paradise_lost/models/item/envoy_spawn_egg.json new file mode 100644 index 000000000..cbd5c36b9 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/envoy_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy.png b/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy.png index feb174efa9dbbc9f7328e603d16d0fd768e9231a..e79e04bb3192d2dc7c281f99a4209568cd59b3a4 100644 GIT binary patch delta 1635 zcmV-p2Auh+3V;oeFnCl-*}ktHbb;+*KUfIMNreKp5MN49oSsR-5H#fi02$k6`_Lg)KmQ+k zZ!f^lLJ18OP=B;6o_cK(fLklecF6yH^OFFg@+Ga^mDetrKc2pq}vlP=5$L+Q+SxWq$eCbTa zwXSGc$bA8}_Z9__25(W8C5 zaOQ1*s(--f-pe`H4-exj+qVhbNCJp0+o|8(rF^Gm=dg9viakiZvpVi#P2B; z3jAgI4{9zgq-a@cZOJ8|KNPMzchfx#c!3AO%rpVGX&0-AhF^M-pr-Nfi=U`DfRRos znw!gCkr??cW@bax1~N0aFH+@8m)W7~nD@W;Fn{6A*fts424HJ^4^Kb$Yrg!~l`7$` zUjD3V(dX9|0eEKcK-F_Iv!U(_a?fZW00aA~Z;S)`_^*-U|Lf~*7wEgfyEVRtUqpJ; zgQ8{e#K8V4qMh-0jsMpxhKiO21N#8jYUBX;8sPqKH@3$2z~W*H?6(e;gOlT9!q?rU z%zyRR8*g?bKhI1~h;UB?fPBv2=0_hB4FrfBJwi~^c>blA>wZ@jTaw3i^%+zaa0>rz z4USf^ZP#ukWHONu0HX^F9u^juKYwo1{(+OXc2=3*3-6v0r9xgsW;x2|?Y0DG5wvsk zRU(!JCl+hoNjUi{74qo4y_5?1w(;kcMSqIi*gbDI@;O7fLD90v=M3i0pA+)88_R$G zE73rJZKJPtgg|0!7qd)$=`D>^E0CRSZu&#q6tuh^ zuQOUF#U&F7(RaTpyz_2^~>WX~f@URGKT9unP$Cedv`^I(rp)fc8b4{IuKNMCc z(+KVukUDxqjGQ>>nVFmryPkTwLbP(7*A^E&sp%= za(qn47$5_k%mC)>91QGJ^Oh9=53Z}>%byVjuCA}Medth?>1~F3ew~`05+f&0dSqT- zGfk4?W1>;>BV}2_z2}8@&j=}~-rI`_>{z)@e(*qh6yVJNYoV-7){ZN^o06v&D)mjgyIlkg>%L zSw^=D-cli7Q)d1UC2>8J@7yK&+`%dZ=5q!{I*qTptM1q;yy2b*`JBOKV<#ZfrTdiY zDc$+MWWBLfv|Q)^^Y1Bjfsx%Inf~NSCdbEw>>A4+V*L0qBC(iSXIy4BFtb^<_)WHE#NUfz4o~)7&eURk{lIM3i7MMMh#VBC!}oI?eW>LqH|I$hFS; h9x8#*-B|4uz5y*^d^iq6wJ-nx002ovPDHLkV1kVJJiPz_ delta 1290 zcmV+l1@-!X4XFx{Fnqgjdl=U#!sq_$X7=auLWzcnpV0H-XkPz6RFwAb-d>YGOu#T-^EG2T7IeyiVC;?5&Vsd7dsW;!EX<0Z8o9y@m zz$u$>6_F?bX@6a(ey|U;RN##pH)THwabDvxp(7Ols8_2}^ut(PTJ*xM@G3A5Fix4045nWY%>K`S$*o0DQLi1x};E zccpJ+Ur0#PvgEh^H33puCUW!eyo-S1Pjb?_&g9H28|Ci&eE`!i zX9Q(cG9!ZXn3q@4x&S_~^;wzW{jq z=8eF3{a~NHoo(EsV_ujwMss8G-DP1o48>2Vdvr|GvUvTScLS5Aip5j<9~BHWElV;w znj7PVS?d$oy@T|@D+}|UIy@xB_4d8{eeut$OMi=AW-JFFRRth3mLsj}d~oa2$bChy zC1~tbok4m5KlA+**K60OC6l7qA`ZK^*3I13> z6k4L*3Ha%A8aCN{9;adVj6OvKDPrMpzt^y9rc{HbWntG$D(h>Wcn+iA^eJgwmw`%3 z%YP8=Cqb0GgjmMua+pcsWz^vz>eZ@Dw#ubt&om6lV7K%o9)NfVi(jYldXzC*S(x`K z>ua7kgv$Dw_iS@B(QuVZ%if9W2IdL7@T&ABL3y^hNj9Hna%L9SIpm*>4YK)sq&P;w zF9G8A1%Zz%KYR6qeVUfVRIwP40%2&?;eR2i-y)$}U0U?S7_`J)Fx=}zN|`DaTmJk1 zq(=5T^aN42S}rYnX1I20Br^3wh2#KQ*wVz!x zF%1KCcqp>%7D{F;hg~y?YtIu=hkx$>FB#Q#i>~8*;kp1>9ol`mg=rX46;>AJy=M?HB$7T?q{ira|9!00000NkvXXt^-0~f?Ilu AI{*Lx diff --git a/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened.png b/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened.png index a01b1dd4fdd19e0c840a4b1a5a424dccbb16c3de..5daa18d4b99c4fc5f7aa4566579ac6e0149f4c44 100644 GIT binary patch delta 1630 zcmV-k2BG<-3i}L@Fnw`uA;wPzmk#!@^bhsC7ZDf^VT@%D@?0o%E`dUBT{^&{d-4;p{;%U)MD}A-$-PavW6#!uT>CePNA#%2j9v{HW=P6rOw|V*WYYxncD^6aka{K zPK>B|GwhW$zDj7>1f7%S4~3MlwrQfr2kL0__y9k= z@*9Ad&$*lKS-=lG4Q8eZz==K3S)|B~-GB2=qgXJM8ef`ZXbcyRq?yKN1gx zI57EYSNQXXHBA*N!AKPMycuNMOPXc0FXrjXZXsos3H0{VD#Rz3t<3zKFtS-C;K15C zyMxIu%wJOl0GNwQM0Fh;X|2_Iee#XBe6J41M>>@fvX*#% zbX07cCb2|boK_$MZJ@VD`FB{;C|ec_voj(XiDE7;Q5-p;%)XO? zD+L@*CMjDM)rw7}R6@;L%mnh(Uw@N(?-y3RmBKkKxOg>aNH)#>Yfh)9T#BIkv5U&+gqN7>RQ4<2&jkf{~~?nPzau zfXvx5V&cL@-@@#SIP&rFFsU zV}J~FG6R^4OE7d?&D&N0JiV?)Z+%DnN5-;*d(RthUJ+7Iy}ut5IJ9|};>d~4D8QNjw@s6rZIe8IuHj1id0=F-ID?>9 z%WN;WeOw-b90Mmuc<#ti_J4IM2*T6*x;{RJ?wEg3CAh7k)nY}K#_3c_$k^hBETcOG zf2CAxC^Nr|lGqE?hmVM#I$5W{V!^=3W(oB6c#iGDAMJ}#EEw!Hb^|h9x=-0l>CXQp zy~cLYcAfvXzhu+}Ms|l}`jaP_o}Lo2Yb<++$@AxkB@$|#ncKz8=U3Sm2oTmZ^!NbP zip}?aG||;)s6<#DyD(p9uCrUa8IGL}dXOC&I|Sq_e#25Rv|u65S;Pz!|a c#%j0lU*kS}PFD#R>i_@%07*qoM6N<$g4Vb~s{jB1 delta 1285 zcmV+g1^W8?45bQ?Fn$u zm-o&#&-jwN3*oywzvt)oe!usA|J_FlRu<+10RQj^eQ-cI$A3ROO8oxoZ@%qI+v6;u zwKM7Br3o62L)J7S^InW2e23+XvNp05jKboN1hJ!Um`q%@_t_lT$Pthy2JW`H@jFh7p;ga+C3ORnKP) z?b!E$7UN;&Glqel83JG^pO3uLGehW^A$;!uuU-dQw|^|WhCsir%keP6bIuCV2E>UG zmR{hXRy#2Ut%C>~#`s#V1EWdMyt*qp{ko2ASrkeo$*k`kaQWj;0eJA!J-m9I4?q7> z_JxEr97lc|UK1c=|0fPyF-B!hDb$E`I<>RRPEi7s#3>AARwaa$gZ_2^zaq zXOLbX%zQ7!_2Q)o$)qT@h{IlATTQGVglX$$l&Rglb35?ruC&ym731BOgs=e>g%;I2 zfiQhu-6dZv;?>=*(Wi+ZMJycecN=cimTJ&&9NenS`r2wBp5y2>eOlHuWuTHVa>V;- z5PxMaA(lzH9A{E^8GUeoTBRbBt@6@hU|W`Cuv7X{4?sM`#jo9XU1f}x=VpWTwbeiz z!ur~3@ML2n)o_)U7K3BokIWNx;brMdgZ5-&gM6{b*yI$xcfddQ?~^YUmEx#ESOUcD z3j!am{~Xlz_h>i{8AgFp47;G zo1Q>*tL3G|AZwcJJl+IanPOV%``eG@0HP_fSnJsLrJ97>PND5?Z;>%_Z2$RC-bBX8 z$(u=o$_C6_ztOj{FdvBO(eCyZ*KXeGD=#eu@i1BJQ>#?)>UA=P!SdW}AZ&nJwSPJG z{fGw$w;dkdm54?VCMRbzV)>U>F34RX={n%OnA+^cWwuQ(WJH$XmS4^Z(jzs zWuY>H?I5n>om@^k(4dvCC$%q%xKt#Cw{f^tyDP5kMWA_g_e7ZaDneovRQtJA8{4wb z2M3gGr_gf41>CAlQu`{QI`r^=Nq$w^DLRhxh3f)jb!g}DCbnfsRal;z4GN_aW0O-r zv&s~PD5=#d75a6ZtZ9-T8O8Swc>j}`o>q<9{x6UO+p?saf~FfRluAI$MHWgW3Z)V| vk2j@MWsDsCy3VohN8)>E8p3#CwO9Bb67>xv6|4qW00000NkvXXu0mjfshx== diff --git a/src/main/resources/data/paradise_lost/loot_tables/entities/envoy.json b/src/main/resources/data/paradise_lost/loot_tables/entities/envoy.json new file mode 100644 index 000000000..4d30d3c39 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/entities/envoy.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:bloomed_calcite" + } + ], + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.05 + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 0, + "max": 2 + }, + "add": false + }, + { + "function": "minecraft:looting_enchant", + "count": { + "type": "minecraft:uniform", + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} From 7ac2467ca1c94ed48760022b360ac966aa94c0ad Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Wed, 1 May 2024 10:47:39 -0500 Subject: [PATCH 16/24] weedkiller --- .../client/model/ParadiseLostModelLayers.java | 1 - .../client/model/entity/HellenroseModel.java | 137 ------------ .../model/entity/ParadiseLostPlantModel.java | 137 ------------ .../entity/ParadiseLostEntityRenderers.java | 2 - .../entity/hostile/HellenroseRenderer.java | 25 --- .../entities/ParadiseLostEntityTypes.java | 4 - .../entities/hostile/HellenroseEntity.java | 207 ------------------ .../paradiselost/items/ParadiseLostItems.java | 2 - .../tag/ParadiseLostBlockTags.java | 1 - .../util/ParadiseLostSoundEvents.java | 2 - .../models/item/hellenrose_petal.json | 6 - .../models/item/hellenrose_spawn_egg.json | 3 - .../textures/entity/hellenrose.png | Bin 1251 -> 0 bytes .../textures/item/hellenrose_petal.png | Bin 171 -> 0 bytes .../loot_tables/entities/hellenrose.json | 34 --- .../plants/hellenrose_valid_ground.json | 6 - .../abstentine_toxicity.json | 6 - .../condition_immunities/venom.json | 6 - 18 files changed, 579 deletions(-) delete mode 100644 src/main/java/net/id/paradiselost/client/model/entity/HellenroseModel.java delete mode 100644 src/main/java/net/id/paradiselost/client/model/entity/ParadiseLostPlantModel.java delete mode 100644 src/main/java/net/id/paradiselost/client/rendering/entity/hostile/HellenroseRenderer.java delete mode 100644 src/main/java/net/id/paradiselost/entities/hostile/HellenroseEntity.java delete mode 100644 src/main/resources/assets/paradise_lost/models/item/hellenrose_petal.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/hellenrose_spawn_egg.json delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/hellenrose.png delete mode 100644 src/main/resources/assets/paradise_lost/textures/item/hellenrose_petal.png delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/entities/hellenrose.json delete mode 100644 src/main/resources/data/paradise_lost/tags/blocks/plants/hellenrose_valid_ground.json delete mode 100644 src/main/resources/data/paradise_lost/tags/entity_types/condition_immunities/abstentine_toxicity.json delete mode 100644 src/main/resources/data/paradise_lost/tags/entity_types/condition_immunities/venom.json diff --git a/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java b/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java index 5ab203023..887a91ab7 100644 --- a/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java +++ b/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java @@ -24,7 +24,6 @@ public class ParadiseLostModelLayers { public static final Map ENTRIES = Maps.newHashMap(); - public static final EntityModelLayer HELLENROSE = register("hellenrose", "main", ParadiseLostPlantModel.getTexturedModelData()); public static final EntityModelLayer ENVOY = register("envoy", "main", EnvoyEntityModel.getTexturedModelData()); public static final EntityModelLayer ENVOY_INNER_ARMOR = register("envoy", "inner_armor", INNER_ARMOR_MODEL_DATA); public static final EntityModelLayer ENVOY_OUTER_ARMOR = register("envoy", "outer_armor", OUTER_ARMOR_MODEL_DATA); diff --git a/src/main/java/net/id/paradiselost/client/model/entity/HellenroseModel.java b/src/main/java/net/id/paradiselost/client/model/entity/HellenroseModel.java deleted file mode 100644 index 32d119e01..000000000 --- a/src/main/java/net/id/paradiselost/client/model/entity/HellenroseModel.java +++ /dev/null @@ -1,137 +0,0 @@ -package net.id.paradiselost.client.model.entity; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.entities.hostile.HellenroseEntity; -import net.minecraft.client.model.*; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.entity.model.EntityModel; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.MathHelper; - -@Environment(EnvType.CLIENT) -public class HellenroseModel extends EntityModel { - private final ModelPart root; - private final ModelPart[] petals; - private final ModelPart[] leafs; - - public HellenroseModel(ModelPart modelRoot) { - this.root = modelRoot.getChild("root"); - this.petals = new ModelPart[5]; - this.leafs = new ModelPart[5]; - for (int i = 0; i < 5; i++) { - this.petals[i] = root.getChild("petal_" + (i + 1)); - this.leafs[i] = root.getChild("leaf_" + (i + 1)); - } - } - - public static TexturedModelData getTexturedModelData() { - ModelData modelData = new ModelData(); - ModelPartData modelRoot = modelData.getRoot(); - - ModelPartBuilder bodyBuilder = ModelPartBuilder.create(); - bodyBuilder.uv(40, 23).cuboid(-1.0F, -2.0F, -1.0F, 2.0F, 3.0F, 2.0F); - bodyBuilder.uv(8, 0).cuboid(-5.0F, -0.25F, -5.0F, 10.0F, 0.0F, 10.0F); - ModelPartData root = modelRoot.addChild("root", bodyBuilder, ModelTransform.pivot(0.0F, 24.0F, 0.0F)); - - ModelPartBuilder petal1Builder = ModelPartBuilder.create(); - petal1Builder.uv(0, 25).cuboid(0.0F, -1.0F, -3.0F, 8.0F, 0.01F, 6.0F); - root.addChild("petal_1", petal1Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0, 3.1416F - 0.3142F, 0.2618F)); - - ModelPartBuilder petal2Builder = ModelPartBuilder.create(); - petal2Builder.uv(0, 25).cuboid(0.0F, -1.0F, -3.0F, 8.0F, 0.01F, 6.0F); - root.addChild("petal_2", petal2Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0, 0.3142F, -0.2618F)); - - ModelPartBuilder petal3Builder = ModelPartBuilder.create(); - petal3Builder.uv(0, 16).cuboid(-3.0F, -1.0F, 0.0F, 6.0F, 0.01F, 8.0F); - root.addChild("petal_3", petal3Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.2618F, -0.6283F, 0.0F)); - - ModelPartBuilder petal4Builder = ModelPartBuilder.create(); - petal4Builder.uv(0, 16).cuboid(-3.0F, -1.0F, 0.0F, 6.0F, 0.01F, 8.0F); - root.addChild("petal_4", petal4Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.2618F, 3.1416F, 0)); - - ModelPartBuilder petal5Builder = ModelPartBuilder.create(); - petal5Builder.uv(0, 16).cuboid(-3.0F, -1.0F, 0.0F, 6.0F, 0.01F, 8.0F); - root.addChild("petal_5", petal5Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.2618F - 3.1416F, -0.6283F + 3.1416F, 3.1416F)); - - ModelPartBuilder leaf1_r1 = ModelPartBuilder.create(); - leaf1_r1.uv(0, 11).cuboid(0.0F, -0.5F, -2.0F, 7.0F, 0.01F, 4.0F); - root.addChild("leaf_1", leaf1_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0, 3.1416F - 0.9425F, 0.1745F)); - - ModelPartBuilder leaf2_r1 = ModelPartBuilder.create(); - leaf2_r1.uv(0, 3).cuboid(-2.0F, -0.5F, 0.0F, 4.0F, 0.01F, 7.0F); - root.addChild("leaf_2", leaf2_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.1745F, 0.0F, 0.0F)); - - ModelPartBuilder leaf3_r1 = ModelPartBuilder.create(); - leaf3_r1.uv(0, 11).cuboid(0.0F, -0.5F, -2.0F, 7.0F, 0.01F, 4.0F); - root.addChild("leaf_3", leaf3_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.0F, -0.3142F, -0.1745F)); - - ModelPartBuilder leaf5_r1 = ModelPartBuilder.create(); - leaf5_r1.uv(0, 11).cuboid(0.0F, -0.5F, -2.0F, 7.0F, 0.01F, 4.0F); - root.addChild("leaf_5", leaf5_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0, 3.1416F + 0.3142F, 0.1745F)); - - ModelPartBuilder leaf4_r1 = ModelPartBuilder.create(); - leaf4_r1.uv(0, 3).cuboid(-2.0F, -0.5F, 0.0F, 4.0F, 0.01F, 7.0F); - root.addChild("leaf_4", leaf4_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.1745F, 3.1416F - 0.6283F, 0)); - - ModelPartBuilder pistil = ModelPartBuilder.create(); - - pistil.uv(28, 25).cuboid(-2.0F, -2.5F, -2.0F, 4.0F, 2.0F, 4.0F); - root.addChild("pistil", pistil, ModelTransform.pivot(0.0F, 0.0F, 0.0F)); - - ModelPartBuilder stamenBuilder = ModelPartBuilder.create(); - ModelPartData stamen = root.addChild("stamen", stamenBuilder, ModelTransform.pivot(0.0F, 0.0F, 0.0F)); - - ModelPartBuilder stamen_w_r1 = ModelPartBuilder.create(); - stamen_w_r1.uv(38, 13).cuboid(1.0F, -7.0F, -2.0F, 0.0F, 5.0F, 4.0F); - stamen.addChild("stamen_w_r1", stamen_w_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.1745F)); - - ModelPartBuilder stamen_s_r1 = ModelPartBuilder.create(); - stamen_s_r1.uv(25, 17).cuboid(-2.0F, -7.0F, -1.0F, 4.0F, 5.0F, 0.0F); - stamen.addChild("stamen_s_r1", stamen_s_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, -2.9671F, 0.0F, 3.1416F)); - - ModelPartBuilder stamen_e_r1 = ModelPartBuilder.create(); - stamen_e_r1.uv(23, 13).cuboid(-1.0F, -7.0F, -2.0F, 0.0F, 5.0F, 4.0F); - stamen.addChild("stamen_e_r1", stamen_e_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.1745F)); - - ModelPartBuilder stamen_n_r1 = ModelPartBuilder.create(); - stamen_n_r1.uv(25, 17).cuboid(-2.0F, -7.0F, -1.0F, 4.0F, 5.0F, 0.0F); - stamen.addChild("stamen_n_r1", stamen_n_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.1745F, 0.0F, 0.0F)); - - return TexturedModelData.of(modelData, 48, 32); - } - - @Override - public void setAngles(HellenroseEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - this.setRotationAngle(petals[0], 0, 2.8274F, 0.2618F); - this.setRotationAngle(petals[1], 0, 0.3142F, -0.2618F); - this.setRotationAngle(petals[2], 0.2618F, -0.6283F, 0.0F); - this.setRotationAngle(petals[3], 0.2618F, 3.1416F, 0); - this.setRotationAngle(petals[4], 0.2618F, 0.6283F, 0); - - for (ModelPart petal : this.petals) { - petal.pitch *= 1 + 0.3F * MathHelper.sin(ageInTicks / 20); - petal.roll *= 1 + 0.3F * MathHelper.sin(ageInTicks / 20); - } - - // for (ModelPart petal : new ModelPart[] { this.petals[0], this.petals[1] }) { - // petal.pitch = MathHelper.sin(petal.yaw) * (-0.2618F + 0.2F * MathHelper.sin(ageInTicks / 20)); - // petal.roll = MathHelper.cos(petal.yaw) * (-0.2618F + 0.2F * MathHelper.sin(ageInTicks / 20)); - // } - // for (ModelPart petal : new ModelPart[] { this.petals[2], this.petals[3], this.petals[4] }) { - // petal.pitch = MathHelper.cos(petal.yaw) * (-0.2618F + 0.2F * MathHelper.sin(ageInTicks / 20)); - // petal.roll = MathHelper.sin(petal.yaw) * (-0.2618F + 0.2F * MathHelper.sin(ageInTicks / 20)); - // } - } - - @Override - public void render(MatrixStack matrixStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - this.root.render(matrixStack, buffer, packedLight, packedOverlay); - } - - public void setRotationAngle(ModelPart bone, float x, float y, float z) { - bone.pitch = x; - bone.yaw = y; - bone.roll = z; - } -} diff --git a/src/main/java/net/id/paradiselost/client/model/entity/ParadiseLostPlantModel.java b/src/main/java/net/id/paradiselost/client/model/entity/ParadiseLostPlantModel.java deleted file mode 100644 index fe46cf328..000000000 --- a/src/main/java/net/id/paradiselost/client/model/entity/ParadiseLostPlantModel.java +++ /dev/null @@ -1,137 +0,0 @@ -package net.id.paradiselost.client.model.entity; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.entities.hostile.HellenroseEntity; -import net.minecraft.client.model.*; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.entity.model.EntityModel; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.MathHelper; - -@Environment(EnvType.CLIENT) -public class ParadiseLostPlantModel extends EntityModel { - private final ModelPart root; - private final ModelPart[] petals; - private final ModelPart[] leafs; - - public ParadiseLostPlantModel(ModelPart modelRoot) { - root = modelRoot.getChild("root"); - petals = new ModelPart[5]; - leafs = new ModelPart[5]; - for (int i = 0; i < 5; i++) { - petals[i] = root.getChild("petal_" + (i + 1)); - leafs[i] = root.getChild("leaf_" + (i + 1)); - } - } - - public static TexturedModelData getTexturedModelData() { - ModelData modelData = new ModelData(); - ModelPartData modelRoot = modelData.getRoot(); - - ModelPartBuilder bodyBuilder = ModelPartBuilder.create(); - bodyBuilder.uv(40, 23).cuboid(-1.0F, -2.0F, -1.0F, 2.0F, 3.0F, 2.0F); - bodyBuilder.uv(8, 0).cuboid(-5.0F, -0.25F, -5.0F, 10.0F, 0.0F, 10.0F); - ModelPartData root = modelRoot.addChild("root", bodyBuilder, ModelTransform.pivot(0.0F, 24.0F, 0.0F)); - - ModelPartBuilder petal1Builder = ModelPartBuilder.create(); - petal1Builder.uv(0, 25).cuboid(0.0F, -1.0F, -3.0F, 8.0F, 0.01F, 6.0F); - root.addChild("petal_1", petal1Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0, 3.1416F - 0.3142F, 0.2618F)); - - ModelPartBuilder petal2Builder = ModelPartBuilder.create(); - petal2Builder.uv(0, 25).cuboid(0.0F, -1.0F, -3.0F, 8.0F, 0.01F, 6.0F); - root.addChild("petal_2", petal2Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0, 0.3142F, -0.2618F)); - - ModelPartBuilder petal3Builder = ModelPartBuilder.create(); - petal3Builder.uv(0, 16).cuboid(-3.0F, -1.0F, 0.0F, 6.0F, 0.01F, 8.0F); - root.addChild("petal_3", petal3Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.2618F, -0.6283F, 0.0F)); - - ModelPartBuilder petal4Builder = ModelPartBuilder.create(); - petal4Builder.uv(0, 16).cuboid(-3.0F, -1.0F, 0.0F, 6.0F, 0.01F, 8.0F); - root.addChild("petal_4", petal4Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.2618F, 3.1416F, 0)); - - ModelPartBuilder petal5Builder = ModelPartBuilder.create(); - petal5Builder.uv(0, 16).cuboid(-3.0F, -1.0F, 0.0F, 6.0F, 0.01F, 8.0F); - root.addChild("petal_5", petal5Builder, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.2618F - 3.1416F, -0.6283F + 3.1416F, 3.1416F)); - - ModelPartBuilder leaf1_r1 = ModelPartBuilder.create(); - leaf1_r1.uv(0, 11).cuboid(0.0F, -0.5F, -2.0F, 7.0F, 0.01F, 4.0F); - root.addChild("leaf_1", leaf1_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0, 3.1416F - 0.9425F, 0.1745F)); - - ModelPartBuilder leaf2_r1 = ModelPartBuilder.create(); - leaf2_r1.uv(0, 3).cuboid(-2.0F, -0.5F, 0.0F, 4.0F, 0.01F, 7.0F); - root.addChild("leaf_2", leaf2_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.1745F, 0.0F, 0.0F)); - - ModelPartBuilder leaf3_r1 = ModelPartBuilder.create(); - leaf3_r1.uv(0, 11).cuboid(0.0F, -0.5F, -2.0F, 7.0F, 0.01F, 4.0F); - root.addChild("leaf_3", leaf3_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.0F, -0.3142F, -0.1745F)); - - ModelPartBuilder leaf5_r1 = ModelPartBuilder.create(); - leaf5_r1.uv(0, 11).cuboid(0.0F, -0.5F, -2.0F, 7.0F, 0.01F, 4.0F); - root.addChild("leaf_5", leaf5_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0, 3.1416F + 0.3142F, 0.1745F)); - - ModelPartBuilder leaf4_r1 = ModelPartBuilder.create(); - leaf4_r1.uv(0, 3).cuboid(-2.0F, -0.5F, 0.0F, 4.0F, 0.01F, 7.0F); - root.addChild("leaf_4", leaf4_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.1745F, 3.1416F - 0.6283F, 0)); - - ModelPartBuilder pistil = ModelPartBuilder.create(); - - pistil.uv(28, 25).cuboid(-2.0F, -2.5F, -2.0F, 4.0F, 2.0F, 4.0F); - root.addChild("pistil", pistil, ModelTransform.pivot(0.0F, 0.0F, 0.0F)); - - ModelPartBuilder stamenBuilder = ModelPartBuilder.create(); - ModelPartData stamen = root.addChild("stamen", stamenBuilder, ModelTransform.pivot(0.0F, 0.0F, 0.0F)); - - ModelPartBuilder stamen_w_r1 = ModelPartBuilder.create(); - stamen_w_r1.uv(38, 13).cuboid(1.0F, -7.0F, -2.0F, 0.0F, 5.0F, 4.0F); - stamen.addChild("stamen_w_r1", stamen_w_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.1745F)); - - ModelPartBuilder stamen_s_r1 = ModelPartBuilder.create(); - stamen_s_r1.uv(25, 17).cuboid(-2.0F, -7.0F, -1.0F, 4.0F, 5.0F, 0.0F); - stamen.addChild("stamen_s_r1", stamen_s_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, -2.9671F, 0.0F, 3.1416F)); - - ModelPartBuilder stamen_e_r1 = ModelPartBuilder.create(); - stamen_e_r1.uv(23, 13).cuboid(-1.0F, -7.0F, -2.0F, 0.0F, 5.0F, 4.0F); - stamen.addChild("stamen_e_r1", stamen_e_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.1745F)); - - ModelPartBuilder stamen_n_r1 = ModelPartBuilder.create(); - stamen_n_r1.uv(25, 17).cuboid(-2.0F, -7.0F, -1.0F, 4.0F, 5.0F, 0.0F); - stamen.addChild("stamen_n_r1", stamen_n_r1, ModelTransform.of(0.0F, 0.0F, 0.0F, 0.1745F, 0.0F, 0.0F)); - - return TexturedModelData.of(modelData, 48, 32); - } - - @Override - public void setAngles(HellenroseEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - setRotationAngle(petals[0], 0, 2.8274F, 0.2618F); - setRotationAngle(petals[1], 0, 0.3142F, -0.2618F); - setRotationAngle(petals[2], 0.2618F, -0.6283F, 0.0F); - setRotationAngle(petals[3], 0.2618F, 3.1416F, 0); - setRotationAngle(petals[4], 0.2618F, 0.6283F, 0); - - for (ModelPart petal : petals) { - petal.pitch *= 1 + 0.3F * MathHelper.sin(ageInTicks / 20); - petal.roll *= 1 + 0.3F * MathHelper.sin(ageInTicks / 20); - } - - // for (ModelPart petal : new ModelPart[] { this.petals[0], this.petals[1] }) { - // petal.pitch = MathHelper.sin(petal.yaw) * (-0.2618F + 0.2F * MathHelper.sin(ageInTicks / 20)); - // petal.roll = MathHelper.cos(petal.yaw) * (-0.2618F + 0.2F * MathHelper.sin(ageInTicks / 20)); - // } - // for (ModelPart petal : new ModelPart[] { this.petals[2], this.petals[3], this.petals[4] }) { - // petal.pitch = MathHelper.cos(petal.yaw) * (-0.2618F + 0.2F * MathHelper.sin(ageInTicks / 20)); - // petal.roll = MathHelper.sin(petal.yaw) * (-0.2618F + 0.2F * MathHelper.sin(ageInTicks / 20)); - // } - } - - @Override - public void render(MatrixStack matrixStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - root.render(matrixStack, buffer, packedLight, packedOverlay); - } - - public void setRotationAngle(ModelPart bone, float x, float y, float z) { - bone.pitch = x; - bone.yaw = y; - bone.roll = z; - } -} diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java b/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java index 5250191c8..c73fba28d 100644 --- a/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java +++ b/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java @@ -5,7 +5,6 @@ import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; import net.id.incubus_core.blocklikeentities.api.client.BlockLikeEntityRenderer; import net.id.paradiselost.client.rendering.entity.hostile.EnvoyEntityRenderer; -import net.id.paradiselost.client.rendering.entity.hostile.HellenroseRenderer; import net.id.paradiselost.client.rendering.entity.passive.ParadiseHareRenderer; import net.id.paradiselost.client.rendering.entity.passive.MoaEntityRenderer; import net.id.paradiselost.entities.ParadiseLostEntityTypes; @@ -21,7 +20,6 @@ public static void initClient() { register(ParadiseLostEntityTypes.SLIDER, BlockLikeEntityRenderer::new); // hostile - register(ParadiseLostEntityTypes.HELLENROSE, HellenroseRenderer::new); register(ParadiseLostEntityTypes.ENVOY, EnvoyEntityRenderer::new); // passive diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/hostile/HellenroseRenderer.java b/src/main/java/net/id/paradiselost/client/rendering/entity/hostile/HellenroseRenderer.java deleted file mode 100644 index 3868156b2..000000000 --- a/src/main/java/net/id/paradiselost/client/rendering/entity/hostile/HellenroseRenderer.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.id.paradiselost.client.rendering.entity.hostile; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.ParadiseLost; -import net.id.paradiselost.client.model.ParadiseLostModelLayers; -import net.id.paradiselost.client.model.entity.HellenroseModel; -import net.id.paradiselost.entities.hostile.HellenroseEntity; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.render.entity.MobEntityRenderer; -import net.minecraft.util.Identifier; - -@Environment(EnvType.CLIENT) -public class HellenroseRenderer extends MobEntityRenderer { - private static final Identifier TEXTURE = ParadiseLost.locate("textures/entity/hellenrose.png"); - - public HellenroseRenderer(EntityRendererFactory.Context renderManager) { - super(renderManager, new HellenroseModel(renderManager.getPart(ParadiseLostModelLayers.HELLENROSE)), 0.3F); - } - - @Override - public Identifier getTexture(HellenroseEntity entity) { - return TEXTURE; - } -} diff --git a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java index 9aaed6025..610ed76bd 100644 --- a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java +++ b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java @@ -8,7 +8,6 @@ import net.id.paradiselost.entities.block.FloatingBlockEntity; import net.id.paradiselost.entities.block.SliderEntity; import net.id.paradiselost.entities.hostile.EnvoyEntity; -import net.id.paradiselost.entities.hostile.HellenroseEntity; import net.id.paradiselost.entities.passive.ParadiseHareEntity; import net.id.paradiselost.entities.passive.ParadiseLostAnimalEntity; import net.id.paradiselost.entities.passive.ambyst.FindLogSensor; @@ -25,7 +24,6 @@ import net.minecraft.entity.ai.brain.sensor.SensorType; import net.minecraft.entity.attribute.DefaultAttributeContainer; import net.minecraft.entity.mob.MobEntity; -import net.minecraft.entity.mob.SkeletonEntity; import net.minecraft.entity.passive.AnimalEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; @@ -50,8 +48,6 @@ public class ParadiseLostEntityTypes { ParadiseLostEntityTypes.of(SliderEntity::new, MISC, changing(0.98F, 0.98F), 10).trackedUpdateRate(20)); // Hostile - public static final EntityType HELLENROSE = add("hellenrose", of(HellenroseEntity::new, MONSTER, changing(1f, 1f), 5), - attributes(HellenroseEntity::createHellenroseAttributes), spawnRestrictions(HellenroseEntity::canSpawn)); public static final EntityType ENVOY = add("envoy", of(EnvoyEntity::new, MONSTER, changing(1f, 2f), 7), attributes(EnvoyEntity::createEnvoyAttributes), spawnRestrictions(EnvoyEntity::canMobSpawn)); diff --git a/src/main/java/net/id/paradiselost/entities/hostile/HellenroseEntity.java b/src/main/java/net/id/paradiselost/entities/hostile/HellenroseEntity.java deleted file mode 100644 index bd53cfb2e..000000000 --- a/src/main/java/net/id/paradiselost/entities/hostile/HellenroseEntity.java +++ /dev/null @@ -1,207 +0,0 @@ -package net.id.paradiselost.entities.hostile; - -import net.id.paradiselost.entities.passive.ParadiseLostAnimalEntity; -import net.id.paradiselost.items.ParadiseLostItems; -import net.id.paradiselost.tag.ParadiseLostBlockTags; -import net.id.paradiselost.util.ParadiseLostSoundEvents; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityDimensions; -import net.minecraft.entity.EntityPose; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.SpawnReason; -import net.minecraft.entity.ai.RangedAttackMob; -import net.minecraft.entity.ai.goal.ActiveTargetGoal; -import net.minecraft.entity.ai.goal.ProjectileAttackGoal; -import net.minecraft.entity.ai.goal.RevengeGoal; -import net.minecraft.entity.attribute.DefaultAttributeContainer; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.entity.mob.HostileEntity; -import net.minecraft.entity.passive.PassiveEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.projectile.ArrowEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.random.Random; -import net.minecraft.world.ServerWorldAccess; -import net.minecraft.world.World; - -public class HellenroseEntity extends ParadiseLostAnimalEntity implements RangedAttackMob { - public final int poisonRemaining; - public float sinage; - public int size; - - public HellenroseEntity(EntityType entityType, World world) { - super(entityType, world); - - this.size = this.random.nextInt(4) + 1; - this.sinage = this.random.nextFloat() * 6F; - this.poisonRemaining = this.random.nextInt(4) + 2; - - this.setPosition(Math.floor(this.getX()) + 0.5, this.getY(), Math.floor(this.getZ()) + 0.5); - } - - public static DefaultAttributeContainer.Builder createHellenroseAttributes() { - return HostileEntity.createHostileAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 20.0); - } - - public EntityDimensions getSizeForStatus(EntityPose entityPose_1) { - return EntityDimensions.changing(0.75F + ((float) size * 0.125F), 0.5F + ((float) size * 0.075F)); - } - - @Override - protected void initGoals() { - super.initGoals(); - - goalSelector.add(4, new ProjectileAttackGoal(this, 0.0D, 30, 1.0F)); - targetSelector.add(1, new RevengeGoal(this, HellenroseEntity.class)); - targetSelector.add(2, new ActiveTargetGoal<>(this, LivingEntity.class, 10, true, false, - entity -> !(entity instanceof HellenroseEntity))); - } - - @Override - public void tick() { - super.tick(); - - if (!this.world.getBlockState(this.getBlockPos().down(1)).isIn(ParadiseLostBlockTags.HELLENROSE_VALID_GROUND)) { - this.kill(); - } - - if (this.hurtTime > 0) { - this.sinage += 0.9F; - } else { - sinage += (getAttacker() != null ? 0.3f : 0.1f); - } - if (sinage > 3.141593F * 2F) { - sinage -= (3.141593F * 2F); - } - } - - @Override - public boolean canSee(Entity entity) { - double distance = distanceTo(entity); - return distance <= 6.0F && super.canSee(entity); - } - - public static boolean canSpawn(EntityType type, ServerWorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random) { - return world.getBlockState(pos.down()).isIn(ParadiseLostBlockTags.HELLENROSE_VALID_GROUND) - && world.getBlockState(pos).isAir() - && world.getBaseLightLevel(pos, 0) > 8; - } - - @Override - public void attack(LivingEntity targetIn, float distFactor) { - ArrowEntity needle = new ArrowEntity(this.world, this); - double x = targetIn.getX() - this.getX(); - double y = targetIn.getBoundingBox().minY + (double) (targetIn.getHeight() / 3.0F) - needle.getY(); - double z = targetIn.getZ() - this.getZ(); - double distance = Math.sqrt((float) (x * x + z * z)); - - needle.setVelocity(x, y + distance * 0.20000000298023224D, z, 1.0F, (float) (14 - this.world.getDifficulty().getId() * 4)); - this.playSound(ParadiseLostSoundEvents.ENTITY_HELLENROSE_SHOOT, 1.0F, 1.2F / (this.getRandom().nextFloat() * 0.2F + 0.9F)); - this.world.spawnEntity(needle); - } - - @Override - public ActionResult interactMob(PlayerEntity player, Hand hand) { - ItemStack heldItem = player.getStackInHand(hand); - - if (heldItem.getItem() == ParadiseLostItems.AUREL_BUCKET && !player.getAbilities().creativeMode) { - heldItem.setCount(heldItem.getCount() - 1); - -// if (heldItem.isEmpty()) { -// player.setStackInHand(hand, new ItemStack(ParadiseLostItems.AUREL_POISON_BUCKET)); -// } else if (!player.getInventory().insertStack(new ItemStack(ParadiseLostItems.AUREL_POISON_BUCKET))) { -// player.dropItem(new ItemStack(ParadiseLostItems.AUREL_POISON_BUCKET), false); -// } - - return ActionResult.SUCCESS; - } else { - return super.interactMob(player, hand); - } - } - - @Override - public Vec3d getVelocity() { - return Vec3d.ZERO; - } - - @Override - public void setVelocity(Vec3d velocity) { - } - - @Override - public void takeKnockback(double strength, double xRatio, double zRatio) { - if (getHealth() <= 0.0F) { - super.takeKnockback(strength, xRatio, zRatio); - } - } - - @Override - public void writeCustomDataToNbt(NbtCompound compound) { - super.writeCustomDataToNbt(compound); - compound.putInt("size", this.size); - } - - @Override - public void readCustomDataFromNbt(NbtCompound compound) { - super.readCustomDataFromNbt(compound); - this.size = compound.getInt("size"); - } - - @Override - protected void pushAway(Entity entityIn) { - if (!entityIn.isConnectedThroughVehicle(this)) { - if (!this.noClip && !entityIn.noClip) { - double d0 = this.getX() - entityIn.getX(); - double d1 = this.getZ() - entityIn.getZ(); - double d2 = MathHelper.absMax(d0, d1); - - if (d2 >= 0.009999999776482582D) { - d2 = Math.sqrt((float) d2); - d0 = d0 / d2; - d1 = d1 / d2; - - double d3 = 1.0D / d2; - - if (d3 > 1.0D) { - d3 = 1.0D; - } - - d0 = d0 * d3; - d1 = d1 * d3; - d0 = d0 * 0.05000000074505806D; - d1 = d1 * 0.05000000074505806D; -// d0 = d0 * (double) (1.0F - entityIn.pushthrough); //TODO: What is pushthrough? -// d1 = d1 * (double) (1.0F - entityIn.pushthrough); - - if (!entityIn.hasPassengers()) { - entityIn.addVelocity(-d0, 0.0D, -d1); - } - } - } - } - } - - @Override - public PassiveEntity createChild(ServerWorld world, PassiveEntity entityIn) { - return null; - } - - @Override - protected SoundEvent getDeathSound() { - return ParadiseLostSoundEvents.ENTITY_HELLENROSE_DEATH; - } - - @Override - public boolean isPushable() { - return false; - } -} diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index c3d6ac4f9..85b8295d1 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -58,7 +58,6 @@ private static FabricItemSettings 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 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)); @@ -190,7 +189,6 @@ private static Settings misc() { public static final AurelBucketItem AUREL_WATER_BUCKET = add("aurel_water_bucket", new AurelBucketItem(Fluids.WATER, aurelBucket), emptiableBucketBehavior); public static final AurelBucketItem AUREL_MILK_BUCKET = add("aurel_milk_bucket", new AurelBucketItem(aurelBucket)); - public static final SpawnEggItem HELLENROSE_SPAWN_EGG = add("hellenrose_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.HELLENROSE, 0x97DED4, 0x31897D, misc), spawnEggBehavior); public static final SpawnEggItem ENVOY_SPAWN_EGG = add("envoy_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.ENVOY, 0xc5b1af, 0x993c3c, misc), spawnEggBehavior); public static final SpawnEggItem PARADISE_HARE_SPAWN_EGG = add("corsican_hare_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.PARADISE_HARE, 0xC5D6ED, 0x82A6D9, misc), spawnEggBehavior); public static final SpawnEggItem MOA_SPAWN_EGG = add("moa_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.MOA, 0xC55C2E4, 0xB3A8BB, misc), spawnEggBehavior); diff --git a/src/main/java/net/id/paradiselost/tag/ParadiseLostBlockTags.java b/src/main/java/net/id/paradiselost/tag/ParadiseLostBlockTags.java index c9405b5fd..a76083e35 100644 --- a/src/main/java/net/id/paradiselost/tag/ParadiseLostBlockTags.java +++ b/src/main/java/net/id/paradiselost/tag/ParadiseLostBlockTags.java @@ -19,7 +19,6 @@ public class ParadiseLostBlockTags { public static final TagKey LICHEN_SPREADABLES = register("plants/lichen_spreadable"); public static final TagKey FUNGI_CLINGABLES = register("plants/fungi_clingable"); public static final TagKey GENERIC_VALID_GROUND = register("plants/generic_valid_ground"); - public static final TagKey HELLENROSE_VALID_GROUND = register("plants/hellenrose_valid_ground"); public static final TagKey SWEDROOT_PLANTABLE = register("plants/swedroot_plantable"); //Worldgen diff --git a/src/main/java/net/id/paradiselost/util/ParadiseLostSoundEvents.java b/src/main/java/net/id/paradiselost/util/ParadiseLostSoundEvents.java index 39eac86c1..83c9ee4c6 100644 --- a/src/main/java/net/id/paradiselost/util/ParadiseLostSoundEvents.java +++ b/src/main/java/net/id/paradiselost/util/ParadiseLostSoundEvents.java @@ -56,8 +56,6 @@ private ParadiseLostSoundEvents() { public static final SoundEvent EFFECT_SIMMERING_SIMMER = childEvent("effect.simmering.simmer", SoundEvents.BLOCK_BUBBLE_COLUMN_WHIRLPOOL_AMBIENT); - public static final SoundEvent ENTITY_HELLENROSE_DEATH = childEvent("entity.hellenrose.death", SoundEvents.ENTITY_GENERIC_BIG_FALL); - public static final SoundEvent ENTITY_HELLENROSE_SHOOT = childEvent("entity.hellenrose.shoot", SoundEvents.ENTITY_SKELETON_SHOOT); public static final SoundEvent ENTITY_MOA_AMBIENT = childEvent("entity.moa.ambient", SoundEvents.ENTITY_PARROT_AMBIENT); public static final SoundEvent ENTITY_MOA_GLIDING = childEvent("entity.moa.gliding", SoundEvents.ENTITY_PHANTOM_FLAP); diff --git a/src/main/resources/assets/paradise_lost/models/item/hellenrose_petal.json b/src/main/resources/assets/paradise_lost/models/item/hellenrose_petal.json deleted file mode 100644 index 9a17329ea..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/hellenrose_petal.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "paradise_lost:item/hellenrose_petal" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/hellenrose_spawn_egg.json b/src/main/resources/assets/paradise_lost/models/item/hellenrose_spawn_egg.json deleted file mode 100644 index cbd5c36b9..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/hellenrose_spawn_egg.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:item/template_spawn_egg" -} diff --git a/src/main/resources/assets/paradise_lost/textures/entity/hellenrose.png b/src/main/resources/assets/paradise_lost/textures/entity/hellenrose.png deleted file mode 100644 index c1fed12cc2e9c18d87a3f080ac4968b82825862d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1251 zcmV<91RVQ`P)Px(ok>JNR9J<@m`!LKM-<0@DnX8GOBSn@;*Z)s;DNif(4LwxX|R~MgpsUcL* zLn(GB0 zcGkPnO0rYQ{)6Dny!rUQH}AdK5i}4ZQ)8l$>jS(}?*;9o)o`fZ%Qqh5(@{~WJuop^ z_Y?8d8u0bEp9z4o?|kS1n3=sK04AfCUFVKZM}?NjQZP1&^!Hl*S|-b#t2b)yw^vkM zaAx+BIM&$>z;ZH9p_ryq=>s5Xtnks~m)87|sWG93LtMWw>lvSpia+Kb0dOSJ*%0Cq zhjue4q_(r1jMLiE4nY1z-jXHkB-fYLtp0+rSr?*}P&JADO@2aZJ6SD_zsV1nF?!8q>~dvr)X7tj88{JqbgF>6X*!G(V@1|p}ql2tK^e;V)4IGl;*M%7?>Cp zt%{F3S8sU6r=voi$oOxEH#iBTv;rx8gF-QlqBLU|&w;dK?89&7ERtF# zi<{gCR1KkyU>hl|V9CIL~HFiJAx}j|22lGFP4z(39V?V2z9!}{S zJXw8YsO>yFA)>0)a%TysFieO5~oQk~VtFrK3*&G?)Aj!-%%lvN=a?^(?Zq2**8 zC=Ve?zVt@kZ+LFqoE0ydsHJ_dQvl?*Q=_q~O+J77o(Kd30Oa%>=dKNV04|=H6H3=% z0F1;ISMHAP`$^Q?P?8V!c+q3qfN6x0*h1+#jNPz97>3KWc`XrX_ zYGvO-zkC;~_Ey3YMmd~eA=|N5XzU)pCUR;sf*!>-%a2}sY|`vCGq!`!$69=M+vu@vdQX~{ zS59}%lk2&yS+6o{e`8c!?8i@5g}v?vf&nXe&s`h#*e|jFLvsD$6_L?489d$1{e?I~ zZ+_~SD?MKc6*rPuZzQ%+y1W<((-;~5MqhdER21`@wD^4hl*$!zKt1}Zqb-dvFR}pZD~o01W!QnU^j1Sy^;zWaFT~6Ak^WxR zm)2-ie5m1&L)J3c-Tkdn3;Ci!Z}9j_&9#S5SoM|ZYyBZm(E#n~KUUbt%45$7S%LCJ z1AmLc+T*k%geu{Ouih0s-9f^tkBqiSEUp7s?fKj1MXAm{zBETF8X&6;z+b;-T$4D` z*Xc5Eckyp0=+>?^Ucw_UD(PiAaVYd@w^|phW-x N002ovPDHLkV1nvYY104z diff --git a/src/main/resources/assets/paradise_lost/textures/item/hellenrose_petal.png b/src/main/resources/assets/paradise_lost/textures/item/hellenrose_petal.png deleted file mode 100644 index 8b92ea8dd393470116ce9b15db10fd16c95d9a52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(a1=4AnOKWZSt*XAgqyOQw z=*zZI@&Tn{aa}5Qf~^ifX~vQuzhDN3XE)M-96L`J$B>F!$qGUmnvR(V6G8>fraW5n zM1~=SqidE$`wS+@x1EdB*10*jNirvI*sSETa|QR5gBdyurk(=pZ5iHYvAtXoDB%q> OiNVv=&t;ucLK6TthBa0I diff --git a/src/main/resources/data/paradise_lost/loot_tables/entities/hellenrose.json b/src/main/resources/data/paradise_lost/loot_tables/entities/hellenrose.json deleted file mode 100644 index 84d00262f..000000000 --- a/src/main/resources/data/paradise_lost/loot_tables/entities/hellenrose.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "function": "minecraft:set_count", - "count": { - "type": "minecraft:uniform", - "min": 1.0, - "max": 2.0 - }, - "add": false - }, - { - "function": "minecraft:looting_enchant", - "count": { - "type": "minecraft:uniform", - "min": 0.0, - "max": 2.0 - } - } - ], - "name": "paradise_lost:hellenrose_petal" - } - ] - } - ] -} diff --git a/src/main/resources/data/paradise_lost/tags/blocks/plants/hellenrose_valid_ground.json b/src/main/resources/data/paradise_lost/tags/blocks/plants/hellenrose_valid_ground.json deleted file mode 100644 index a0c3c29fa..000000000 --- a/src/main/resources/data/paradise_lost/tags/blocks/plants/hellenrose_valid_ground.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "#paradise_lost:dirt_blocks" - ] -} diff --git a/src/main/resources/data/paradise_lost/tags/entity_types/condition_immunities/abstentine_toxicity.json b/src/main/resources/data/paradise_lost/tags/entity_types/condition_immunities/abstentine_toxicity.json deleted file mode 100644 index 17abd95aa..000000000 --- a/src/main/resources/data/paradise_lost/tags/entity_types/condition_immunities/abstentine_toxicity.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "paradise_lost:hellenrose" - ] -} diff --git a/src/main/resources/data/paradise_lost/tags/entity_types/condition_immunities/venom.json b/src/main/resources/data/paradise_lost/tags/entity_types/condition_immunities/venom.json deleted file mode 100644 index 17abd95aa..000000000 --- a/src/main/resources/data/paradise_lost/tags/entity_types/condition_immunities/venom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "paradise_lost:hellenrose" - ] -} From 723b6be99be380c1f1cddbd9e0584e889551fc5c Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Wed, 1 May 2024 10:49:37 -0500 Subject: [PATCH 17/24] checkstyle --- .../paradiselost/entities/hostile/EnvoyEntity.java | 1 - .../id/paradiselost/mixin/item/PotionItemMixin.java | 13 +------------ 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java index de9eb0cb6..6356e3232 100644 --- a/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java +++ b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java @@ -10,7 +10,6 @@ import net.minecraft.entity.data.TrackedDataHandlerRegistry; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.mob.EndermanEntity; import net.minecraft.entity.mob.SkeletonEntity; import net.minecraft.nbt.NbtCompound; import net.minecraft.particle.ParticleTypes; diff --git a/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java b/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java index 3d9605340..949e0c24a 100644 --- a/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java @@ -1,18 +1,9 @@ package net.id.paradiselost.mixin.item; import net.id.paradiselost.blocks.ParadiseLostBlocks; -import net.id.paradiselost.tag.ParadiseLostBlockTags; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; -import net.minecraft.block.CauldronBlock; -import net.minecraft.block.CryingObsidianBlock; -import net.minecraft.block.RedstoneOreBlock; -import net.minecraft.client.particle.FireworksSparkParticle; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.projectile.FireworkRocketEntity; -import net.minecraft.entity.projectile.thrown.PotionEntity; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsage; import net.minecraft.item.ItemUsageContext; @@ -23,12 +14,10 @@ import net.minecraft.potion.Potions; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; -import net.minecraft.stat.Stats; import net.minecraft.util.ActionResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.random.Random; import net.minecraft.world.World; -import net.minecraft.world.event.GameEvent; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -53,7 +42,7 @@ public void useOnBlock(ItemUsageContext context, CallbackInfoReturnable Date: Thu, 2 May 2024 17:29:01 -0500 Subject: [PATCH 18/24] everything except the vaults --- .../blockentity/TreeTapBlockEntity.java | 44 ++++++-- .../paradiselost/items/ParadiseLostItems.java | 3 +- .../tag/ParadiseLostStructureTags.java | 1 - .../world/dimension/ParadiseLostBiomes.java | 36 +++--- .../feature/structure/OrangeRuinFeature.java | 47 -------- .../ParadiseLostStructureFeatures.java | 6 - .../generator/OrangeRuinGenerator.java | 69 ------------ .../block/halflight_cheesecake_slice3.json | 103 ++++-------------- .../paradise_lost/models/block/tree_tap.json | 53 ++++----- .../block/halflight_cheesecake_inner.png | Bin 343 -> 353 bytes .../block/halflight_cheesecake_side.png | Bin 366 -> 376 bytes .../block/halflight_cheesecake_top.png | Bin 271 -> 285 bytes .../paradise_lost/textures/block/tree_tap.png | Bin 0 -> 401 bytes .../dimension_type/paradise_lost.json | 4 +- .../loot_tables/chests/aurel_tower.json | 2 +- ...glazed_gold_upgrade_smithing_template.json | 7 +- .../paradise_lost/structures/aurel_tower.nbt | Bin 4764 -> 4753 bytes .../structures/dungeon_entrance.nbt | Bin 3404 -> 0 bytes .../paradise_lost/structures/orange_ruin.nbt | Bin 2087 -> 0 bytes .../slider_dungeon_boss_room.nbt | Bin 3144 -> 0 bytes .../slider_dungeon/slider_dungeon_hallway.nbt | Bin 605 -> 0 bytes .../slider_dungeon/slider_dungeon_room.nbt | Bin 2602 -> 0 bytes .../worldgen/structure/orange_ruin.json | 12 -- .../worldgen/structure_set/orange_ruin.json | 14 --- 24 files changed, 114 insertions(+), 287 deletions(-) delete mode 100644 src/main/java/net/id/paradiselost/world/feature/structure/OrangeRuinFeature.java delete mode 100644 src/main/java/net/id/paradiselost/world/feature/structure/generator/OrangeRuinGenerator.java create mode 100644 src/main/resources/assets/paradise_lost/textures/block/tree_tap.png delete mode 100644 src/main/resources/data/paradise_lost/structures/dungeon_entrance.nbt delete mode 100644 src/main/resources/data/paradise_lost/structures/orange_ruin.nbt delete mode 100644 src/main/resources/data/paradise_lost/structures/slider_dungeon/slider_dungeon_boss_room.nbt delete mode 100644 src/main/resources/data/paradise_lost/structures/slider_dungeon/slider_dungeon_hallway.nbt delete mode 100644 src/main/resources/data/paradise_lost/structures/slider_dungeon/slider_dungeon_room.nbt delete mode 100644 src/main/resources/data/paradise_lost/worldgen/structure/orange_ruin.json delete mode 100644 src/main/resources/data/paradise_lost/worldgen/structure_set/orange_ruin.json diff --git a/src/main/java/net/id/paradiselost/blocks/blockentity/TreeTapBlockEntity.java b/src/main/java/net/id/paradiselost/blocks/blockentity/TreeTapBlockEntity.java index 7279887c9..f886dfa22 100644 --- a/src/main/java/net/id/paradiselost/blocks/blockentity/TreeTapBlockEntity.java +++ b/src/main/java/net/id/paradiselost/blocks/blockentity/TreeTapBlockEntity.java @@ -10,6 +10,7 @@ import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.Inventories; import net.minecraft.inventory.Inventory; +import net.minecraft.inventory.SidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.network.Packet; @@ -27,9 +28,10 @@ import net.minecraft.util.math.Direction; import org.jetbrains.annotations.Nullable; +import java.util.List; import java.util.Optional; -public class TreeTapBlockEntity extends LootableContainerBlockEntity { +public class TreeTapBlockEntity extends LootableContainerBlockEntity implements SidedInventory { private final DefaultedList inventory; @@ -49,6 +51,20 @@ public void handleUse(PlayerEntity player, Hand hand, ItemStack handStack) { markDirty(); } + public int[] getAvailableSlots(Direction side) { + return new int[1]; + } + + @Override + public boolean canInsert(int slot, ItemStack stack, @Nullable Direction dir) { + return dir != Direction.DOWN && this.inventory.get(0).isEmpty(); + } + + @Override + public boolean canExtract(int slot, ItemStack stack, Direction dir) { + return false; + } + public DefaultedList getItems() { return inventory; } @@ -69,12 +85,12 @@ public void setStack(int slot, ItemStack stack) { @Override protected DefaultedList getInvStackList() { - return null; + return inventory; } @Override protected void setInvStackList(DefaultedList list) { - + inventory.set(0, list.get(0)); } private void inventoryChanged() { @@ -122,15 +138,27 @@ public void tryCraft() { if (!world.isClient) world.playSound(null, pos, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 0.5f, world.getRandom().nextFloat() * 0.4f + 0.8f); - inventoryChanged(); - BlockEntity possibleHopper = world.getBlockEntity(pos.down()); - if (possibleHopper instanceof Inventory) { - output = HopperBlockEntity.transfer(this, (Inventory) possibleHopper, output, Direction.UP); - } this.inventory.set(0, output); + inventoryChanged(); } + tryTansferItemsOut(); } + public void tryTansferItemsOut() { + ItemStack stack = getStack(0); + if (stack.isEmpty()) { + return; + } + + ItemStack contents = this.inventory.get(0); + BlockEntity possibleHopper = world.getBlockEntity(pos.down()); + if (possibleHopper instanceof Inventory) { + contents = HopperBlockEntity.transfer(this, (Inventory) possibleHopper, contents, Direction.UP); + } + this.inventory.set(0, contents); + inventoryChanged(); + } + @Override public NbtCompound toInitialChunkDataNbt() { NbtCompound nbtCompound = new NbtCompound(); diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 85b8295d1..9e2e1c2d0 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -363,7 +363,8 @@ private static FabricItemSettings decoration() { public static final BlockItem FLAXWEAVE_CUSHION = add("flaxweave_cushion", ParadiseLostBlocks.FLAXWEAVE_CUSHION, decoration, fuel(300)); - public static final BlockItem CHEESECAKE = add("halflight_cheesecake", ParadiseLostBlocks.CHEESECAKE, food()); + // TODO + //public static final BlockItem CHEESECAKE = add("halflight_cheesecake", ParadiseLostBlocks.CHEESECAKE, food()); public static final BlockItem AMADRYS_BUNDLE = add("amadrys_bundle", ParadiseLostBlocks.AMADRYS_BUNDLE, decoration()); diff --git a/src/main/java/net/id/paradiselost/tag/ParadiseLostStructureTags.java b/src/main/java/net/id/paradiselost/tag/ParadiseLostStructureTags.java index fab8514a7..dc9663cf6 100644 --- a/src/main/java/net/id/paradiselost/tag/ParadiseLostStructureTags.java +++ b/src/main/java/net/id/paradiselost/tag/ParadiseLostStructureTags.java @@ -7,7 +7,6 @@ public class ParadiseLostStructureTags { - public static final TagKey ORANGE_RUIN_HAS_STRUCTURE = register("has_structure/orange_ruin"); public static final TagKey AUREL_TOWER_HAS_STRUCTURE = register("has_structure/aurel_tower"); public static final TagKey WELL_HAS_STRUCTURE = register("has_structure/well"); 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 b6ae4ffc9..d38045b63 100644 --- a/src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java +++ b/src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java @@ -262,7 +262,7 @@ private static Biome createHighlandsPlains() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -271,7 +271,7 @@ private static Biome createHighlandsPlains() { ) ), Map.of( - ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(1.0, 0.5) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.5F).downfall(1) @@ -309,7 +309,7 @@ private static Biome createHighlandsForest() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -318,7 +318,7 @@ private static Biome createHighlandsForest() { ) ), Map.of( - ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(1.0, 0.5) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.5F).downfall(1) @@ -354,7 +354,7 @@ private static Biome createTradewinds() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -363,7 +363,7 @@ private static Biome createTradewinds() { ) ), Map.of( - ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(1.0, 0.5) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.5F).downfall(1) @@ -404,7 +404,7 @@ private static Biome createHighlandsThicket() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -413,7 +413,7 @@ private static Biome createHighlandsThicket() { ) ), Map.of( - ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(1.0, 0.5) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.4F).downfall(2) @@ -452,7 +452,7 @@ private static Biome createHighlandsGrandGlade() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -461,7 +461,7 @@ private static Biome createHighlandsGrandGlade() { ) ), Map.of( - ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(1.0, 0.5) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.4F).downfall(2) @@ -497,7 +497,7 @@ private static Biome createWisteriaWoods() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -506,7 +506,7 @@ private static Biome createWisteriaWoods() { ) ), Map.of( - ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(1.0, 0.5) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.5F).downfall(1) @@ -548,7 +548,7 @@ private static Biome createAutumnalTundra() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -558,7 +558,7 @@ private static Biome createAutumnalTundra() { ) ), Map.of( - ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(1.0, 0.5) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.1F).downfall(2) @@ -598,7 +598,7 @@ private static Biome createContinentalPlateau() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -608,7 +608,7 @@ private static Biome createContinentalPlateau() { ) ), Map.of( - ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(1.0, 0.5) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.25F).downfall(0) @@ -657,7 +657,7 @@ private static Biome createHighlandsShield() { merge( Map.of( SpawnGroup.MONSTER, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 2, 4) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), @@ -667,7 +667,7 @@ private static Biome createHighlandsShield() { ) ), Map.of( - ParadiseLostEntityTypes.ENVOY, SpawnCost.of(0.1, 2.0) + ParadiseLostEntityTypes.ENVOY, SpawnCost.of(1.0, 0.5) ) )) .precipitation(Biome.Precipitation.RAIN).temperature(0.35F).downfall(2) diff --git a/src/main/java/net/id/paradiselost/world/feature/structure/OrangeRuinFeature.java b/src/main/java/net/id/paradiselost/world/feature/structure/OrangeRuinFeature.java deleted file mode 100644 index 741736b2b..000000000 --- a/src/main/java/net/id/paradiselost/world/feature/structure/OrangeRuinFeature.java +++ /dev/null @@ -1,47 +0,0 @@ -package net.id.paradiselost.world.feature.structure; - -import com.mojang.datafixers.util.Either; -import com.mojang.serialization.Codec; -import net.id.paradiselost.world.feature.structure.generator.OrangeRuinGenerator; -import net.minecraft.structure.StructurePiecesCollector; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.Heightmap; -import net.minecraft.world.gen.structure.Structure; -import net.minecraft.world.gen.structure.StructureType; - -import java.util.Optional; - -public class OrangeRuinFeature extends Structure { - public static final Codec CODEC = createCodec(OrangeRuinFeature::new); - - public OrangeRuinFeature(Structure.Config config) { - super(config); - } - - private static void addPieces(StructurePiecesCollector collector, Context context) { - int x = context.chunkPos().x * 16; - int z = context.chunkPos().z * 16; - int y = context.chunkGenerator().getHeight(x, z, Heightmap.Type.WORLD_SURFACE_WG, context.world(), context.noiseConfig()); - if (y < 0) { // DON'T PLACE ON THE BOTTOM OF THE WORLD - return; - } - BlockPos newPos = new BlockPos(x, y, z); - OrangeRuinGenerator.addPieces(context.structureTemplateManager(), collector, context.random(), newPos); - } - - @Override - public Optional getStructurePosition(Context context) { - context.random().nextDouble(); - ChunkPos chunkPos = context.chunkPos(); - BlockPos blockPos = new BlockPos(chunkPos.getCenterX(), 50, chunkPos.getStartZ()); - StructurePiecesCollector structurePiecesCollector = new StructurePiecesCollector(); - addPieces(structurePiecesCollector, context); - return Optional.of(new Structure.StructurePosition(blockPos, Either.right(structurePiecesCollector))); - } - - @Override - public StructureType getType() { - return ParadiseLostStructureFeatures.ORANGE_RUIN; - } -} diff --git a/src/main/java/net/id/paradiselost/world/feature/structure/ParadiseLostStructureFeatures.java b/src/main/java/net/id/paradiselost/world/feature/structure/ParadiseLostStructureFeatures.java index 46e0cfbdd..a06b2dadb 100644 --- a/src/main/java/net/id/paradiselost/world/feature/structure/ParadiseLostStructureFeatures.java +++ b/src/main/java/net/id/paradiselost/world/feature/structure/ParadiseLostStructureFeatures.java @@ -1,6 +1,5 @@ package net.id.paradiselost.world.feature.structure; -import net.id.paradiselost.world.feature.structure.generator.OrangeRuinGenerator; import net.id.paradiselost.world.feature.structure.generator.AurelTowerGenerator; import net.id.paradiselost.world.feature.structure.generator.WellGenerator; import net.minecraft.structure.StructurePieceType; @@ -20,10 +19,6 @@ public class ParadiseLostStructureFeatures { public static final StructureType AUREL_TOWER = () -> AurelTowerFeature.CODEC; public static final StructurePieceType AUREL_TOWER_PIECE = AurelTowerGenerator.Piece::new; - public static final TagKey ORANGE_RUIN_KEY = tagKey("orange_ruin"); - public static final StructureType ORANGE_RUIN = () -> OrangeRuinFeature.CODEC; - public static final StructurePieceType ORANGE_RUIN_PIECE = OrangeRuinGenerator.Piece::new; - private static TagKey tagKey(String name) { return TagKey.of(Registry.STRUCTURE_KEY, locate(name)); } @@ -31,7 +26,6 @@ private static TagKey tagKey(String name) { public static void init() { register(WELL_KEY, WELL, WELL_PIECE); register(AUREL_TOWER_KEY, AUREL_TOWER, AUREL_TOWER_PIECE); - register(ORANGE_RUIN_KEY, ORANGE_RUIN, ORANGE_RUIN_PIECE); } private static void register(TagKey name, StructureType type, StructurePieceType pieceType) { diff --git a/src/main/java/net/id/paradiselost/world/feature/structure/generator/OrangeRuinGenerator.java b/src/main/java/net/id/paradiselost/world/feature/structure/generator/OrangeRuinGenerator.java deleted file mode 100644 index 326347e74..000000000 --- a/src/main/java/net/id/paradiselost/world/feature/structure/generator/OrangeRuinGenerator.java +++ /dev/null @@ -1,69 +0,0 @@ -package net.id.paradiselost.world.feature.structure.generator; - -import net.id.paradiselost.ParadiseLost; -import net.id.paradiselost.world.feature.structure.ParadiseLostStructureFeatures; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.structure.*; -import net.minecraft.structure.processor.BlockIgnoreStructureProcessor; -import net.minecraft.util.BlockMirror; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockBox; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.util.math.random.Random; -import net.minecraft.world.ServerWorldAccess; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.StructureAccessor; -import net.minecraft.world.gen.chunk.ChunkGenerator; - -public class OrangeRuinGenerator { - private static final Identifier ORANGE_RUIN = ParadiseLost.locate("orange_ruin"); - - public static void addPieces(StructureTemplateManager manager, StructurePiecesHolder structurePiecesHolder, Random random, BlockPos pos) { - BlockRotation blockRotation = BlockRotation.random(random); - structurePiecesHolder.addPiece(new OrangeRuinGenerator.Piece(manager, ORANGE_RUIN, pos, blockRotation)); - } - - public static class Piece extends SimpleStructurePiece { - private boolean shifted = false; - - public Piece(StructureTemplateManager manager, Identifier template, BlockPos pos, BlockRotation rotation) { - super(ParadiseLostStructureFeatures.ORANGE_RUIN_PIECE, 0, manager, template, template.toString(), createPlacementData(rotation), pos); - } - - public Piece(StructureTemplateManager manager, NbtCompound nbt) { - super(ParadiseLostStructureFeatures.ORANGE_RUIN_PIECE, nbt, manager, (identifier) -> createPlacementData(BlockRotation.valueOf(nbt.getString("Rot")))); - } - - public Piece(StructureContext context, NbtCompound nbtCompound) { - this(context.structureTemplateManager(), nbtCompound); - } - - private static StructurePlacementData createPlacementData(BlockRotation rotation) { - return (new StructurePlacementData()).setRotation(rotation).setMirror(BlockMirror.NONE).addProcessor(BlockIgnoreStructureProcessor.IGNORE_AIR_AND_STRUCTURE_BLOCKS); - } - - @Override - protected void writeNbt(StructureContext ctx, NbtCompound nbt) { - super.writeNbt(ctx, nbt); - nbt.putString("Rot", this.placementData.getRotation().name()); - } - - @Override - protected void handleMetadata(String metadata, BlockPos pos, ServerWorldAccess world, Random random, BlockBox boundingBox) { - } - - @Override - public void generate(StructureWorldAccess world, StructureAccessor structureAccessor, ChunkGenerator chunkGenerator, Random random, BlockBox boundingBox, ChunkPos chunkPos, BlockPos pos) { - if (this.pos.getY() > 2) { - if (!shifted) { - this.pos = this.pos.down(1); - shifted = true; - } - boundingBox.encompass(this.template.calculateBoundingBox(this.placementData, this.pos)); - super.generate(world, structureAccessor, chunkGenerator, random, boundingBox, chunkPos, pos); - } - } - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/halflight_cheesecake_slice3.json b/src/main/resources/assets/paradise_lost/models/block/halflight_cheesecake_slice3.json index f31c4f29a..7018348db 100644 --- a/src/main/resources/assets/paradise_lost/models/block/halflight_cheesecake_slice3.json +++ b/src/main/resources/assets/paradise_lost/models/block/halflight_cheesecake_slice3.json @@ -1,81 +1,24 @@ { - "credit": "Made by 24Chrome", - "textures": { - "bottom": "paradise_lost:block/halflight_cheesecake_bottom", - "top": "paradise_lost:block/halflight_cheesecake_top", - "particle": "paradise_lost:block/halflight_cheesecake_side", - "side": "paradise_lost:block/halflight_cheesecake_side", - "inside": "paradise_lost:block/halflight_cheesecake_inner" - }, - "elements": [ - { - "from": [ - 8, - 0, - 8 - ], - "to": [ - 15, - 8, - 15 - ], - "faces": { - "north": { - "uv": [ - 1, - 8, - 9, - 16 - ], - "texture": "#inside" - }, - "east": { - "uv": [ - 1, - 8, - 9, - 16 - ], - "texture": "#side" - }, - "south": { - "uv": [ - 7, - 8, - 15, - 16 - ], - "texture": "#side" - }, - "west": { - "uv": [ - 7, - 8, - 15, - 16 - ], - "texture": "#inside" - }, - "up": { - "uv": [ - 8, - 8, - 15, - 15 - ], - "texture": "#top" - }, - "down": { - "uv": [ - 7, - 1, - 15, - 9 - ], - "texture": "#bottom", - "cullface": "down" - } - } - } - ] -} + "credit": "Made by 24Chrome", + "textures": { + "bottom": "paradise_lost:block/halflight_cheesecake_bottom", + "top": "paradise_lost:block/halflight_cheesecake_top", + "particle": "paradise_lost:block/halflight_cheesecake_side", + "side": "paradise_lost:block/halflight_cheesecake_side", + "inside": "paradise_lost:block/halflight_cheesecake_inner" + }, + "elements": [ + { + "from": [8, 0, 8], + "to": [15, 8, 15], + "faces": { + "north": {"uv": [1, 8, 8, 16], "texture": "#inside"}, + "east": {"uv": [1, 8, 8, 16], "texture": "#side"}, + "south": {"uv": [8, 8, 15, 16], "texture": "#side"}, + "west": {"uv": [8, 8, 15, 16], "texture": "#inside"}, + "up": {"uv": [8, 8, 15, 15], "texture": "#top"}, + "down": {"uv": [8, 1, 15, 8], "texture": "#bottom", "cullface": "down"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/tree_tap.json b/src/main/resources/assets/paradise_lost/models/block/tree_tap.json index 4652f39b9..677756cc7 100644 --- a/src/main/resources/assets/paradise_lost/models/block/tree_tap.json +++ b/src/main/resources/assets/paradise_lost/models/block/tree_tap.json @@ -1,44 +1,45 @@ { "credit": "Made with Blockbench", - "parent": "block/block", + "parent": "block/block", "textures": { - "0": "paradise_lost:block/aurel_planks", - "particle": "paradise_lost:block/aurel_planks" + "0": "paradise_lost:block/tree_tap", + "particle": "paradise_lost:block/tree_tap" }, "elements": [ { - "from": [5, 0, 2], - "to": [16, 1, 14], + "from": [10.5, 10, 6], + "to": [18.5, 13, 10], + "rotation": {"angle": 22.5, "axis": "z", "origin": [10.5, 10, 8]}, "faces": { - "north": {"uv": [0, 0, 11, 1], "texture": "#0"}, - "east": {"uv": [0, 0, 12, 1], "texture": "#0"}, - "south": {"uv": [0, 0, 11, 1], "texture": "#0"}, - "west": {"uv": [0, 0, 12, 1], "texture": "#0"}, - "up": {"uv": [0, 0, 11, 12], "texture": "#0"}, - "down": {"uv": [0, 0, 11, 12], "texture": "#0"} + "north": {"uv": [8, 4, 0, 7], "texture": "#0"}, + "east": {"uv": [8, 2, 12, 5], "texture": "#0"}, + "south": {"uv": [0, 4, 8, 7], "texture": "#0"}, + "west": {"uv": [8, 2, 12, 5], "texture": "#0"}, + "up": {"uv": [0, 0, 8, 4], "texture": "#0"}, + "down": {"uv": [0, 0, 8, 4], "texture": "#0"} } }, { - "from": [9, 13, 7], - "to": [16, 15, 9], + "from": [10.5, 10.95, 9.05], + "to": [18.5, 13, 6.95], + "rotation": {"angle": 22.5, "axis": "z", "origin": [10.5, 10, 11]}, "faces": { - "north": {"uv": [0, 0, 7, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 2], "texture": "#0"}, - "south": {"uv": [0, 0, 7, 2], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 2], "texture": "#0"}, - "up": {"uv": [0, 0, 7, 2], "texture": "#0"}, - "down": {"uv": [0, 0, 7, 2], "texture": "#0"} + "north": {"uv": [0, 4, 8, 6], "texture": "#0"}, + "south": {"uv": [8, 4, 0, 6], "texture": "#0"}, + "down": {"uv": [8, 0, 16, 2], "texture": "#0"} } }, { - "from": [9, 12, 7], - "to": [11, 13, 9], + "from": [3, 0, 3], + "to": [13, 2, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 3]}, "faces": { - "north": {"uv": [0, 0, 2, 1], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 1], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#0"} + "north": {"uv": [6, 6, 16, 8], "texture": "#0"}, + "east": {"uv": [6, 6, 16, 8], "texture": "#0"}, + "south": {"uv": [6, 6, 16, 8], "texture": "#0"}, + "west": {"uv": [6, 6, 16, 8], "texture": "#0"}, + "up": {"uv": [6, 6, 16, 16], "texture": "#0"}, + "down": {"uv": [6, 6, 16, 16], "texture": "#0"} } } ] diff --git a/src/main/resources/assets/paradise_lost/textures/block/halflight_cheesecake_inner.png b/src/main/resources/assets/paradise_lost/textures/block/halflight_cheesecake_inner.png index ab8725999846e98f74bf028988ee7d714b1d0950..3060765494c6a198eb531ac4e8349954aabd1f35 100644 GIT binary patch delta 313 zcmV-90mlB<0^tIXF@GCLL_t(IjqQ;=PQySDg+Ci7D6$f4BTLXEC>KB!bTk}-QxHm! zELmKDGRMdT=xFGWg=i=!EbNBD_$P@hE5&wHl|(v^05H4u56iu$K&eyS$Nm+Naqph zA`p!N@OFQ*%##q^>I0w|Lt47QN1g#lTxC9a5(1!GefCc-6>UA9ZuLb7(C+kTcY2h? zOyV5SzZ+DU4}c1gC!vt*u4OS3aaqjB-$PouA$99XWP&R5C0VUJ(2SuN0)L(%JGeOB zTADj5>9nSK{xU|BPp38GhtJgxqPQlCYwTT>7r*-VzndmeT+96n{cw(w_nr#900000 LNkvXXu0mjf^KOgv delta 303 zcmV+~0nq;80@nhNF@F(BL_t(IjqQ-FQo}$Lg};QPBvTT?P^iLSaLiO7cnT0v6<8Dx zfQi7PP&@`tfk0G)z@R!wrfo8vq|J7NXmh7Ouh3)m?%6%(o_k@BJ-`6?==Ey<(B#T< zFC!vwf~?aPPR^F07T6cR)si+`5~;e#k-SShlZ7L5V$ z_xWC{BExch035G_-43XxV*shkJV6y10G8`>arDWu&Fn6ElDCe?H-<{L?x1ZAFxb7SOq9T@}I8AEpPbaPOj9Gi?Ln)P!V z>-=bz(--G`8FjxOpZ zf*=kqf{q2pY?(T^IJgO}(uyDs4#gH66e9l)4f1-<~Vtp%H?gg%D%Sw~W&>TA03;2;-D8n3Xe&4j+W6lMl7^t`dkmP74SHS; zU6=%)Rf5>lg-NLZfUfV+^J)rKzi_lQ)z8gnxUGocb6mr|+lnYX{U&q(=|o5;B0s0` iUhDk>$4jIWsrw(G@q|?y3L-%O0000v@1kN!c-7U6SO5Xb@py?6T0edoOUkxO*>Bdyd!Cg9z#zyO1UXwZgSQX$4_qEH2y)$j Y0~>>VbW9mI+5i9m07*qoM6N<$f&xO2VE_OC diff --git a/src/main/resources/assets/paradise_lost/textures/block/halflight_cheesecake_top.png b/src/main/resources/assets/paradise_lost/textures/block/halflight_cheesecake_top.png index ed97f2ff26c0013c0737802ebe0c75baf61d39e3..9b7d51620499635ceb10b22850ade0be1fa15b9e 100644 GIT binary patch delta 244 zcmV1%;cpoPaqLTXNuv*sk!9Dxpn#u2L| z1zKYpEb^NM@UkzwICeN1#jk zn&1=oVmZtq@julb>cY5SxxsabN|M@1EMh=YwXd!s-DtOysJ6Do(dTZoYX^%90AaA= gvJsQ}Kht0E0xV`?E&5PiF8}}l07*qoM6N<$g2td|R{#J2 diff --git a/src/main/resources/assets/paradise_lost/textures/block/tree_tap.png b/src/main/resources/assets/paradise_lost/textures/block/tree_tap.png new file mode 100644 index 0000000000000000000000000000000000000000..37c7ee6062501eb9bd7c831b29eb10828fcd8f03 GIT binary patch literal 401 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 TE*G|hTAlUV{BwSmFIey|_9C&} literal 4764 zcma)A3s{ro9#24Lg~Q4xQEqxFtxR1Rmw{|~IB6)z@sNNbH>X=LE+SVM1If!O5G*_~ z25gx+i>m}fL4oB8QiMIZHelRC*ct31&TZVr&ij7fHncqFiRXRxz5CwV|ML6&{_k+f zUH%;MXY4EsO>k&m^FdM3z?CBd_uc$idrG)+!&d}-W5I{NGQO=@7AJCx+PUhZwR;~; z?%BQl?(rYC$?D$ldMVPzH$RPxW!&7g=L^s3@=Gzd*x6nV`}gzalIjhbK^140_(*DF zal&|A%Kk88!T7I-XQqFiy-_|P-{;zNuzF^XU}Bu=Q9hw1Hx(<5J6%Mpm{aUEY0MqB z-_NOK@k0cYq`6W|4&KfxsR4fXS+KD$(co|thl=O(Tpw_jw2g0n;a+cBj1_4`;;P8l zu2FtzT;&FwB%Y8G*@ZT@pjYgvzc{~ubCYdA7xGF19GFQ+t2-yQX_IzRUS?`u$H{yn zyO7x-1BdcryLRQ^U6zi=l3a6YQ#E+(y%`Uj%)GyfrCEpX!U^&`@4YF=v-Wd}WZlj@ zOC$f&qw5+aj9&1eXHb6hi==ZIoHaoPW+5Rq>9K^8Ec2<_3QK84#^ZOOu|IHBc%EjMd_iBz&3h6Jef} zUsz-tjr#z@eQ*_f54Ptk4Y~@!`)kN6BhM}&uZnD2!o}kJPexncyUe$>!ba_Wc5B@A z@$uz>pgpoSwS!)M(aP&{@9-~3uz^w{?hSLhVz7o2kN;v2eC5MLTeZMVaABTrZoe(D zO!i(DC?(;deC#LpC;c*c z%JgoYA5tTgMpXvKDX%+Q=V{Ala%#g}iGNz6u_iUgWJOj6ciNdI@w}ITS6HyLbG>@g zwQyJD91J)|f&~LqMr}CHU|tnx1m~~>zITu%8rP^l-FUG<*5tfh+3%%7H$E?w_DG1~TY>upe=ra zrotYNCje*7$#$GIy_GNA>1+pp*bB%|8LY&c18eG~MUWD~E7rn0;V>iFs;%u{JyBl- z64UcY`DB}_&t80|yg3B#a+V8oX`3nC+`idP}VcrYbZKf@$!hR#wGJ(j~){!Z*8%xZzi zR+N(db<_kuu?Z{O26uB@=6Kuo1?0qnAA#G{00YXACTi<1kQXxDtP`*Y#7dMh9S%dv zz=bi0cfi>9f)8c`MO0JA0i48m?FWQ!Z*lbP-yDcC5*f{As1PE%6n zH54F=ctS~?HxRMNX%pZ~8IFUI0a60@p0V})Us+1c20-mGm=bpEpe9ScHNsE)v1nUm|^s z@IcL8sJ#>afCfL&MP>GBnm}MZZF^(PleR-ZKkYZP$fCD@)T>y8yOv=d?|KfTxpcuS z;HYqoyuKI-=qgIBw1{1Z<{Fy!fHL7~a0*y_Xg_kqqI)B{h_D;t{+Kv3A{Isc(W38lolkf2akP)b2>Oyo*jELRpQ zEy~*miH+7(H&A1*B&`CmfYpDWh z=634~@2Yo|0TH^{!hxSIDSrdHGaC;-*q(~HdCqT9Lo(fE>>Rc&-1tg5V^E~)Q3j(Q8?dk<^BX1)jC!_+KjskEIjO{4Yltrp@EkdKO z;W0fvVB)G;ll?DZ<7kh}*yD;daZ##y5tbQykXmmHgwlv=@?)4MHlkC3P_i=KhIkM7 zd1Rf5X+4uy!QtUVR6P;esP(`I02fT#pqfH;Sqgw&!+DCT3Th!504Th3z@97#kXf2loDvbQdO&=IYY+%qO)Wfv>xxi_dJs^^p9*Y^ z1{89w!uQk5z)giJ-3FZSr)_`(LLg?Y%3|cwmF$$ow#+?U%k_5}mmD>%w*%_|)VZc2 z&xIE~e=1OhXn4^Ru>_Dg;0Uk`nq3dV!IC&i;8oPrzYS)A!w)9)z~U_ewTF5TSnN-w zCRkG$Z-s$iM+0p$9W%M^&%41@f`RTv5Hha!YPhouNE%Cb2=2$ug?#br9!Yr5uUoi! z4f#;I3f5IOL4D3lNUl`M@SdEYC0z7Y2>=!HNh_k0&dLeltsOWWp)Fb2D#S_7H^`zC z^gQ_}JG994GPtXUwMJI1SKe9zCWBb54`ei^9PnZJfJ+4Nh&@ex1$cY*eE{acj^Co< z!zAZ{(}SF7a0k*;q@{iQ(x~0txeb&sx%OM-f#3*guhxp2+8>`bf z&7SJ!mB0_FD+aEe0j`m6t^}^du7<8D{|;QM3qz%#xdAY1=NTE+uRAJ(aQb`e_S!jk zq*Um5yNCW!61<$W+lsWBtG3|B3`zfXr|`{T3^$q0kk8H}ovr1Z@$F`N?Uir0Bhf#h zGUV0X%_{zd>H*vU&-jL*N7!+h8c=f;CrN1lzez^1B6`1(6{V0Jz2EMgRtjE_yve{d zT1M*LlW¡iJu!@Q4Q(x#d#=C}=G+QK{Bh`1}0SidymdNc{LtrZ??INVU5$eLk~cu(GwZ zhowyEq@KT@FvK9;$3${0EP}obZ96@9XFqZf-AmTc6=MO;NjeDm$p7 zqBmw6r)r}(eO8+pwxXrCD}7!q53ZXyCHOL){6h$#La}wjrUMB->v3IgVR@EkSS6*f{DdccduwKpxTr%sKBN3{ON-b2!?O?WC}@~b^|^>RN=c|T z)vl_c{ls)kQ;+hZcvRLXcwNvslPKvZ(kGTq#by*89hldGe>A*(iB1$c9B!SS8q@9L zD9)*jN2ec^uT2QrO1YjibL&P}wd_I{w=80CUO)L-oY4@YPgeEXbc+VD^@fU~IpYa0 z)z&%Pkf?WTv{yj6xiLN7uPuG`shvFan5uc`A@Lhs$$^2oG^fWIQ|j3tvo`I~?o%gL zxzl1>0|ph1bWOJEXu%mu;m{+!N6GZ(WcNp2#9#Y|zM&~gls9TF8LG-gM*D`zcZuv7 z$Jxf>fdUEvlNG-qji@<62-{w@vt(>P*|XL^)1x3@R`-zX+MMyjp{$yr!OUfhjUq3< zi)lSm<0Tcn+FS8LihvmbM#m_zWUx|ysZ2$lO diff --git a/src/main/resources/data/paradise_lost/structures/dungeon_entrance.nbt b/src/main/resources/data/paradise_lost/structures/dungeon_entrance.nbt deleted file mode 100644 index db501b7771564569c32cf1dac16562cc11144ee9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3404 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 L;(XQ3ZQK3}?@{Pc diff --git a/src/main/resources/data/paradise_lost/structures/orange_ruin.nbt b/src/main/resources/data/paradise_lost/structures/orange_ruin.nbt deleted file mode 100644 index a6e00daa53a03edcae93bc05fb870773ae5c6717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2087 zcmX|93sjQX8ZAvm@@-9GnmHuWs)jJ7uo<72prc}1Qihc|SID)75;6rfu8F9nlGAiG zE5y2{X3CV2gNBV{igz-}OnOOA0VS0Y@cp<4XV&~{o$o*A{Quhf+xy!a&s(ne>v?>& zo92SI=Vr1#UB}KHqXf}q<}aVpWxi_n8ggE#&wmP|J=&eS_8#`^E#GAc{k0&qx@GA| zAk{XIa5f-rft{Wf$#|)IE53Yw;iC|RRZj}L$I|XB`7)lp@=t-RBT$kd}rYhGpBCmT0ZkK2GRk8kWONa{HbPr<3TJa(RA{rIGAAn65ndFdOy#$}mk`a#Ui zYzgJb@ff52Oio?TaUa70(K(gh`ig+)h#mA{Y`4r<L+e?UBMz}3dD8Y{{S+To*}4dc39+v>~; z7snt-I}IAq)nam753wIx2J?J+K;ISGFhU+^DX;bFpIdc8^DI@GF(!oJvJK4ioT2$@O3jvVX2Rs14&LC%AOWZySHSZrfDV zHKLEL#*ee-bAm7d7UBn`KPZS;v`B2pb*qmPxz(${ic3S)cb-ClcVmp}zIs+x_>%)o zZEQp^1MWk?@syNg9B<$%kUPJdF71C{6{`mqNwU@~B4-vhvAhQi%w+~sfyQ2mO^gl* zQRW3L*fX6VM%?EFSifCqdSZ$)uZ~INOodRRII86m(a{~^iVT24jJg#n@Yf@A6SbY) z?*P4+g*BmnkY(bilbmECbsfYQ@n57p%dAR04L2bQ1E42fj`%Qhqz+HHJlq=L4b2d(D$vs{0iDR$wNb6dQq!s_1aOR#?S z1t4}Qh_ybLhcsB`@^NrKzI=_PUykhS0&=PB>q2Z{0ciEx%_L9yzuqizR<$ zl4*-H!r%~o1nNGDEDa6mFvgQ9_Q_yjP*?B+Z=0!Y?4TmH`kEkjtp zej^aeOzOV^>LpQ?Y?N26Vp!jafEZhRbxL~xCb2c8ceg3M+6(EvE>qXayDYy51!a>pYcW^l=adz>bM&qYm$r1Gl9(`G zEz!PJTsi$lxovigE*{ITY*dg)e~hUnhFHvZcG~^wRr4c}I@;jW6lAivL_te`*gUAa z`{uB6+xDsI?R!FdSm*n$rmfQ--v01mj$u{X zu;<(NGq1`%hH(XPt4`EdZ;Y`(UglK%yV)CR7jyFGunbu^mc4<$)S2aIA)@I5qRs~L z#@5x3vEH=39Bo;5s6qSDNc-cr!Jlr@@Qa^LJ{%^u#oIla9fN5O{mOjsrEK(4$-{RS wm17YBe%zV9wS&!9hK{ARzUezW|JHW&L}st{62pnz%3itg`1Hf!=oKse50{=E1poj5 diff --git a/src/main/resources/data/paradise_lost/structures/slider_dungeon/slider_dungeon_boss_room.nbt b/src/main/resources/data/paradise_lost/structures/slider_dungeon/slider_dungeon_boss_room.nbt deleted file mode 100644 index 61e4c13173e1aaf59b14d3f317e0b267196e0b55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3144 zcmbtUeN@u-9`3g8tPU4yTG;~0t4qCgRkBj>sw-F4PQFy97w1v)t);8X7tl7jI#2RgtN*#($l38`JU;I)!I1MI`x<` z@YL4Z>gu8$0v?b7%)Rj&VJ&#{BRkf}(Tr)N}K$?zsKDqi>`cp>y z=FU_ub8CKWX4>*?y#Cg^Tsybkvv0b`2S`Mnu*+9-Um|1H-hijt3@Jt=<2FJ~aSoi; z@#u5uRa=Hd#K!p5r_g~g?x=>5m8ELB?{fW?57MqJXTiF`AoYo%|ju)SeKB}Gw<=pI8FZd5*WWe+!-dHZo zyLYa7x`)^)9vB$q4lusGo_Ieg`BS;h(tI7M!aZs90v~ggd=a(x)zSS%8CZI6y$Srs zE%fGopS0Ho%bwt55`r~Yy(lL9X|%PWqT{A6lpCnf?e+9>VPx8LpIuLeo}* z6(l)ra6V{OMtuTrYL|(ZA}!XgZXPe~qn*-_F~RKI-!WEE_9f&N z!=eB7#iWD|w37{&Vlu`oyWT6wZ5(92svcE>z44hC|B9WXG) zYd!U9h}SUP*jZ!=-+;HzCbyt?*f@?2GG;kD_cx3OOuht{4|q2Rd}rW#>UJ~=CQn`h z30^q|34W#*Tnx9MHZ)_b2%L+kn9qzdaCA=nu+FH8T$uOepUL%$CT`|kIS&c#*9$F& zob9eJH2q`QpnWu?23BqaD|7asV)nChIT))LP75j~nw|Ru!#K^cLB%w->k4ClTQn~2 z1B^C3MN~f|Z3dd--k$ zC{Gg__D%>59Eeq1DAc-(XCb_St4tgBhU+yUpKe%4)5?e%e0=)KYzBJQc*yl;z3Vv0 zH3$~Cj^(TbCfZP#hoqt253o6?GRkw3u?W&JdFca_7c2%TYY#vvlbVADp&Qjm!(I&W zdPUE`iEh)d*&$vcdWN%TkcLgsKL;R47!H~Pat1$Dk3K)6fWn)m-=(8Zn=%R|x8dM$G5x6^=k7_`eVOz-pdCX18v`f>*EH zg^5rzuU&@Qmy`D(_ezg$Hp+0OKRFtEui~12+Jd5;CmZ_v7}A_+O*egCJOw4fDCF%* zeYGHojYkYrtatJPaWGCDb)>s#LE*V>Dv1s+qMAxOv@#9?)5)0RXQP9Qy=|&Zr3aqb zQZ$(lQVU)048JP&Zs94!SkQfA0lHHc3SGZ&1H_i}zi8bVo-Zdev!166t{OLkL0i6u zh%>N?O`RG2{&?z}g9ZH9`=WAM}6$4iwG2#!7Ia zyUC|uKLKzu{Q)P8uO-jGHSez~`eI_iR)RY5&QkInE>(mfZ%nH`-Jy+;5vf&uS<5)bnT=|l52GLpd~N4n%J<<6d!4l}$nr$7NF;?h z1$Sy%*Xs@gezcE)A19FJyu4_Lg}wQ-Yzuwlv*$Fdl{2nqoAZ~G2}#iEzrI`j9C!-` z#+83_Yn&IY-mbC7NAataI~KC$-xGda-S!1HYIb=LcVAm=($5{6L(y^E=%rzO74k8& zn_;`NI{dB+eGevWjqFnS_S~Z)Cd>TN`o6*Yud7u{SzRX`n3F%hRlO-yTo0?ncW=5o zeqypnm~^eCSR+;?P6e=jVkzO8EPpR?^e|n=eP2AXE6rkJiyTR{ zS8dI*gAZ1y>^nRB!Z#$K4-IrL!LaH^2zNZ)5^y+q^+ADmq_Hz4N4SE3Js~{lkl9*> o&d>8_5)isWH%7t*2|oXL5h*3QxL6`<*69$eC#&vd5Ed=^AJ;8wXaE2J diff --git a/src/main/resources/data/paradise_lost/structures/slider_dungeon/slider_dungeon_hallway.nbt b/src/main/resources/data/paradise_lost/structures/slider_dungeon/slider_dungeon_hallway.nbt deleted file mode 100644 index 02aead90d6ed2034c19adc008e5a602c90da7ab2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmb2|=3sz;yEhKzNg0Z?K0IB~(6}Nfbmi<-wG-FuUbpL&*vtnk%a6(3bQ7%o#h2yB zv!a}%le6` zX+Es%adK|Ymfm_b&;QTqGg3a+6MULqN}t(tP)F*_rh`0PGflrVUi@_+qc&lSok5hm z#9IEIYs;M%ur2L z4sFog43b@wc>RJvTkcHLmc-~Z-ozWzBAq3+rCtm8u=(HyUFl0eshbl(>e@_z3e1)~ zT(gi!GoD`Oy`J=F8=q0Vk6oB#5!b=IX6YsU-yS@9oU!@t&qrp8Q>%7wSG2i#`OB*r zK@-kjUq9_Zxn6$R@gEO@WS%^`=PqqlfA8(-t+q>o{ASm3Ee{Hwb8r1;>&p5M7w@K4 z$LGucb>8UTth4GY|GHD{uOC}3JuLmdBesrV*Z+@f`v05Kj80!<3tw$rUwF|!{NLM} z_+M8!ZtUJKo>Dt6YwiB$CcA3>MWyW8KV@(C<>;RxsU4cv|30(WCsS8y{_E$YzBhX& b&R)Ommb~8d&w`QllkQtZmTWvM$iM&qw^%F) diff --git a/src/main/resources/data/paradise_lost/structures/slider_dungeon/slider_dungeon_room.nbt b/src/main/resources/data/paradise_lost/structures/slider_dungeon/slider_dungeon_room.nbt deleted file mode 100644 index 670e116a4907479ff9cb0cd5717f89ffcfc7ee6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2602 zcmbtU3rtgI6vinNd=#Q=mhjSr=`;w%Vu2RhFyn)X5W_Z51d7F?hKEL_cC?fZ15v7T zxJjWviHjhFhYWehqkvTrr6r0|9#Vz`Zb`9K3Y50A?7ziADeRHhoSb`e?svZLJLlfN zPU#kAbHD!F!|`^I?LH`R|C%*6=5?0iYsWYKDXWtdho)3-MFeHr9IV@~ksf-CEf%ml z9_&x}ax?NC!VL-+HYk7nAe`o%mSqp#*UEc64=X0<6cvx5R+Js>(oz$}WrYQ*cdI+4 z{eyz0fK2WbLA+Z#H25ezoTn!HK z7VI5+4Z(MPYF+Sb*?2!pTW^5P;aR%ckT1h-44f37(CidMx8*d)2Y6xvAqnL>L>J5#tp z(%gM9l8a;Ic1%6scdOo9aYN#`xDVze==?Swag2tEh|TXb$A;yj&9OoG=+)Ts`IW1% zs04f;gdjncbQ!o+zFqr72!+#HKz};iF9@~+GC&K+*uXOO5*H@Ipb?{&O97S?RO<-T zRQ#zx|J|JryPGQ4XKZ1G;ZmZyKew%(vl`$enP3X7CF__%q=aSaJew#&u(YluIP>6K zO1KrNnCaNoF2 z_CcqC3w+>nBgh!|q+_^+CoM=CpPfdKvlgJcF(2+WuL2OayC*Gz07{VxL-)Z@w=;k( z=?Ki0ek?WU27qpYp-lj~01^5EFA=W*oAx%$W`NYL0^O`w(}bs21@n6C+O1KfmV0TH z>)EcvVp3cRDX!@)yD&LxZ7RL+cMAI%&VSgUU>p%dO)F~Pe=lykYiT%f^GDB#?aaMH zOkH#?jn63G{U85LZqVgF;89Cr>~%RT7P&)?TJXSI)!LwsnTgkJi7nm!FWV9;tOm## zQu;^@lH)hV?ko2qbNtGb_Zda?0vt==JmT<#yg`8=p|4QWDzhGqQ>jhK72wL$C%9bO7y9nm2gvHZ!;GKN4Zvn4Dh2pvUQE7j!3yLX)vDSZb{lnj;0Q+SUJnhR)AszK9D zbfy`8o_Fm({7~|IBaQ7Wbxg^tAUaU!<=UN3urhVHCX{vY&1Bq^9&PaEg>?ub2#j}boPHU9gb*y7R(rI`IOjZx@{JU& zCnW21pzuA1;#3c_yu;b5bCsbT(BvqAkn4Itr`#6w_=N|Gp`Kk4TitpnKsoE>=qMWM zoXz>ko#GWI(hk$B)97eMNFWp}cZvwt;LyX*Gqr=4bi-B+x(k5)+b#Ee8 Date: Fri, 3 May 2024 18:19:19 -0500 Subject: [PATCH 19/24] vault structures + envoy tweaks - hare --- .../client/model/ParadiseLostModelLayers.java | 1 - .../model/entity/ParadiseHareModel.java | 83 ----- .../entity/ParadiseLostEntityRenderers.java | 2 - .../entity/passive/ParadiseHareRenderer.java | 40 --- .../ParadiseLostEntityExtensions.java | 8 - .../entities/ParadiseLostEntityTypes.java | 3 - .../entities/hostile/EnvoyEntity.java | 18 ++ .../entities/passive/ParadiseHareEntity.java | 284 ------------------ .../paradiselost/items/ParadiseLostItems.java | 1 - .../paradiselost/mixin/block/BlockMixin.java | 1 - .../mixin/entity/LivingEntityMixin.java | 4 - .../mixin/entity/PlayerEntityMixin.java | 21 -- .../gen/structure/JigsawStructureMixin.java | 38 +++ .../tag/ParadiseLostStructureTags.java | 3 + .../util/ParadiseLostDamageSources.java | 1 - .../util/ParadiseLostSoundEvents.java | 8 +- .../world/dimension/ParadiseLostBiomes.java | 18 +- .../assets/paradise_lost/lang/en_us.json | 12 +- .../models/item/corsican_hare_spawn_egg.json | 3 - .../textures/entity/corsican_hare.png | Bin 325 -> 0 bytes .../loot_tables/entities/corsican_hare.json | 88 ------ .../structures/vault/armored_envoy.nbt | Bin 0 -> 928 bytes .../structures/vault/crossways/crossway_1.nbt | Bin 0 -> 3904 bytes .../structures/vault/crossways/crossway_2.nbt | Bin 0 -> 3932 bytes .../structures/vault/crossways/crossway_3.nbt | Bin 0 -> 3819 bytes .../vault/crossways/crossway_clean.nbt | Bin 0 -> 3625 bytes .../structures/vault/enlightened_envoy.nbt | Bin 0 -> 935 bytes .../structures/vault/lobbies/lobby_1.nbt | Bin 0 -> 3114 bytes .../structures/vault/lobbies/lobby_2.nbt | Bin 0 -> 3115 bytes .../structures/vault/lobbies/lobby_3.nbt | Bin 0 -> 3103 bytes .../structures/vault/lobbies/lobby_clean.nbt | Bin 0 -> 2876 bytes .../vault/lobbies/lobby_special.nbt | Bin 0 -> 3284 bytes .../vault/storage_rooms/storage_armory_1.nbt | Bin 0 -> 3538 bytes .../vault/storage_rooms/storage_armory_2.nbt | Bin 0 -> 3466 bytes .../vault/storage_rooms/storage_armory_3.nbt | Bin 0 -> 4005 bytes .../vault/storage_rooms/storage_clean.nbt | Bin 0 -> 2986 bytes .../vault/storage_rooms/storage_stable_1.nbt | Bin 0 -> 3554 bytes .../vault/storage_rooms/storage_stable_2.nbt | Bin 0 -> 3616 bytes .../vault/storage_rooms/storage_stable_3.nbt | Bin 0 -> 3582 bytes .../storage_rooms/storage_valuable_1.nbt | Bin 0 -> 3253 bytes .../storage_rooms/storage_valuable_2.nbt | Bin 0 -> 3571 bytes .../storage_rooms/storage_valuable_3.nbt | Bin 0 -> 4118 bytes .../{orange_ruin.json => vault.json} | 1 + .../worldgen/structure/vault.json | 15 + .../worldgen/structure_set/vault.json | 14 + .../template_pool/vault/armored_envoy.json | 15 + .../template_pool/vault/crossways.json | 33 ++ .../vault/enlightened_envoy.json | 15 + .../worldgen/template_pool/vault/lobbies.json | 42 +++ .../template_pool/vault/storage_rooms.json | 87 ++++++ src/main/resources/paradise_lost.mixins.json | 1 + 51 files changed, 289 insertions(+), 571 deletions(-) delete mode 100644 src/main/java/net/id/paradiselost/client/model/entity/ParadiseHareModel.java delete mode 100644 src/main/java/net/id/paradiselost/client/rendering/entity/passive/ParadiseHareRenderer.java delete mode 100644 src/main/java/net/id/paradiselost/entities/passive/ParadiseHareEntity.java create mode 100644 src/main/java/net/id/paradiselost/mixin/world/gen/structure/JigsawStructureMixin.java delete mode 100644 src/main/resources/assets/paradise_lost/models/item/corsican_hare_spawn_egg.json delete mode 100644 src/main/resources/assets/paradise_lost/textures/entity/corsican_hare.png delete mode 100644 src/main/resources/data/paradise_lost/loot_tables/entities/corsican_hare.json create mode 100644 src/main/resources/data/paradise_lost/structures/vault/armored_envoy.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_1.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_2.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_3.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_clean.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/enlightened_envoy.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/lobbies/lobby_1.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/lobbies/lobby_2.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/lobbies/lobby_3.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/lobbies/lobby_clean.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/lobbies/lobby_special.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_armory_1.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_armory_2.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_armory_3.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_clean.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_stable_1.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_stable_2.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_stable_3.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_valuable_1.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_valuable_2.nbt create mode 100644 src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_valuable_3.nbt rename src/main/resources/data/paradise_lost/tags/worldgen/biome/has_structure/{orange_ruin.json => vault.json} (87%) create mode 100644 src/main/resources/data/paradise_lost/worldgen/structure/vault.json create mode 100644 src/main/resources/data/paradise_lost/worldgen/structure_set/vault.json create mode 100644 src/main/resources/data/paradise_lost/worldgen/template_pool/vault/armored_envoy.json create mode 100644 src/main/resources/data/paradise_lost/worldgen/template_pool/vault/crossways.json create mode 100644 src/main/resources/data/paradise_lost/worldgen/template_pool/vault/enlightened_envoy.json create mode 100644 src/main/resources/data/paradise_lost/worldgen/template_pool/vault/lobbies.json create mode 100644 src/main/resources/data/paradise_lost/worldgen/template_pool/vault/storage_rooms.json diff --git a/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java b/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java index 887a91ab7..f2c14ab9c 100644 --- a/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java +++ b/src/main/java/net/id/paradiselost/client/model/ParadiseLostModelLayers.java @@ -27,7 +27,6 @@ public class ParadiseLostModelLayers { public static final EntityModelLayer ENVOY = register("envoy", "main", EnvoyEntityModel.getTexturedModelData()); public static final EntityModelLayer ENVOY_INNER_ARMOR = register("envoy", "inner_armor", INNER_ARMOR_MODEL_DATA); public static final EntityModelLayer ENVOY_OUTER_ARMOR = register("envoy", "outer_armor", OUTER_ARMOR_MODEL_DATA); - public static final EntityModelLayer PARADISE_HARE = register("corsican_hare", "main", ParadiseHareModel.getTexturedModelData()); public static final EntityModelLayer MOA = register("moa", "main", MoaModel.getTexturedModelData()); public static final EntityModelLayer AMBYST = register("ambyst", "main", AmbystModel.getTexturedModelData()); public static final EntityModelLayer PHOENIX_ARMOR = register("phoenix_armor", "main", PhoenixArmorModel.getTexturedModelData()); diff --git a/src/main/java/net/id/paradiselost/client/model/entity/ParadiseHareModel.java b/src/main/java/net/id/paradiselost/client/model/entity/ParadiseHareModel.java deleted file mode 100644 index 7cc1d8793..000000000 --- a/src/main/java/net/id/paradiselost/client/model/entity/ParadiseHareModel.java +++ /dev/null @@ -1,83 +0,0 @@ -// Made with Model Converter by Globox_Z -// Generate all required imports -// Made with Blockbench 3.8.3 -// Exported for Minecraft version 1.15 -// Paste this class into your mod and generate all required imports -package net.id.paradiselost.client.model.entity; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.entities.passive.ParadiseHareEntity; -import net.minecraft.client.model.*; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.entity.model.EntityModel; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.MathHelper; - -@Environment(EnvType.CLIENT) -public class ParadiseHareModel extends EntityModel { - private final ModelPart body; - private final ModelPart fluff; - private final ModelPart head; - private final ModelPart tail; - private final ModelPart left_front_leg; - private final ModelPart right_front_leg; - private final ModelPart back_right_leg; - private final ModelPart back_left_leg; - - private float fluff_scale = 1; - - public ParadiseHareModel(ModelPart root) { - this.body = root.getChild("body"); - this.tail = this.body.getChild("tail"); - this.back_left_leg = this.body.getChild("back_left_leg"); - this.back_right_leg = this.body.getChild("back_right_leg"); - this.right_front_leg = this.body.getChild("right_front_leg"); - this.left_front_leg = this.body.getChild("left_front_leg"); - this.head = this.body.getChild("head"); - this.fluff = root.getChild("fluff"); - } - - public static TexturedModelData getTexturedModelData() { - ModelData modelData = new ModelData(); - ModelPartData modelPartData = modelData.getRoot(); - ModelPartData modelPartData1 = modelPartData.addChild("body", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 22.8889F, 1.0F)); - modelPartData.addChild("fluff", ModelPartBuilder.create().uv(0, 0).cuboid(-4.0F, -3.5F, -3.5F, 8.0F, 7.0F, 7.0F), ModelTransform.pivot(0.0F, 0F, 0F)); - modelPartData1.addChild("head", ModelPartBuilder.create().uv(18, 26).cuboid(-2.0F, -1.5F, -3.0F, 4.0F, 3.0F, 3.0F).uv(0, 0).cuboid(-2.0F, -5.5F, -2.0F, 1.0F, 4.0F, 1.0F).uv(0, 0).cuboid(1.0F, -5.5F, -2.0F, 1.0F, 4.0F, 1.0F).uv(0, 14).cuboid(-4.0F, -0.5F, -2.0F, 2.0F, 2.0F, 0.0F).uv(0, 14).cuboid(2.0F, -0.5F, -2.0F, 2.0F, 2.0F, 0.0F, true), ModelTransform.pivot(0.0F, -2.3889F, -4.5F)); - modelPartData1.addChild("left_front_leg", ModelPartBuilder.create().uv(0, 21).cuboid(-1.0F, -1.0F, -2.25F, 2.0F, 1.0F, 3.0F), ModelTransform.pivot(-4.0F, 1.1111F, -3.25F)); - modelPartData1.addChild("right_front_leg", ModelPartBuilder.create().uv(0, 21).cuboid(-1.0F, -1.0F, -2.5F, 2.0F, 1.0F, 3.0F), ModelTransform.pivot(4.0F, 1.1111F, -3.0F)); - modelPartData1.addChild("back_right_leg", ModelPartBuilder.create().uv(10, 20).cuboid(-1.0F, 0.0F, -3.0F, 2.0F, 1.0F, 4.0F).uv(22, 20).cuboid(-1.0F, -2.0F, -2.0F, 2.0F, 2.0F, 3.0F), ModelTransform.pivot(4.0F, 0.1111F, 2.5F)); - modelPartData1.addChild("back_left_leg", ModelPartBuilder.create().uv(22, 20).cuboid(-1.0F, -2.0F, -2.0F, 2.0F, 2.0F, 3.0F).uv(10, 20).cuboid(-1.0F, 0.0F, -3.0F, 2.0F, 1.0F, 4.0F), ModelTransform.pivot(-4.0F, 0.1111F, 2.5F)); - modelPartData1.addChild("tail", ModelPartBuilder.create().uv(0, 25).cuboid(-2.0F, -2.0F, 0.0F, 4.0F, 4.0F, 3.0F), ModelTransform.pivot(0.0F, -2.8889F, 2.5F)); - return TexturedModelData.of(modelData, 32, 32); - } - - @Override - public void setAngles(ParadiseHareEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - head.pitch = headPitch * 0.017453F; - head.yaw = netHeadYaw * 0.017453292F; - back_right_leg.pitch = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; - back_left_leg.pitch = MathHelper.cos(limbSwing * 0.6662F + 3.1415927F) * 1.4F * limbSwingAmount; - right_front_leg.pitch = MathHelper.cos(limbSwing * 0.6662F + 3.1415927F) * 1.4F * limbSwingAmount; - left_front_leg.pitch = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; - float targetFloof = entity.getPuffiness() / 2F; - if (entity.floof < targetFloof) { - entity.floof += 0.025F; - } else if (entity.floof > targetFloof) { - entity.floof -= 0.025F; - } - if (Math.abs(targetFloof - entity.floof) <= 0.03) { - entity.floof = targetFloof; - } - - fluff_scale = entity.floof + 1; - } - - @Override - public void render(MatrixStack matrixStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - body.render(matrixStack, buffer, packedLight, packedOverlay); - matrixStack.translate(0, 1.28, 0); - matrixStack.scale(fluff_scale, fluff_scale, fluff_scale); - fluff.render(matrixStack, buffer, packedLight, packedOverlay); - } -} diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java b/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java index c73fba28d..e9b127e8f 100644 --- a/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java +++ b/src/main/java/net/id/paradiselost/client/rendering/entity/ParadiseLostEntityRenderers.java @@ -5,7 +5,6 @@ import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; import net.id.incubus_core.blocklikeentities.api.client.BlockLikeEntityRenderer; import net.id.paradiselost.client.rendering.entity.hostile.EnvoyEntityRenderer; -import net.id.paradiselost.client.rendering.entity.passive.ParadiseHareRenderer; import net.id.paradiselost.client.rendering.entity.passive.MoaEntityRenderer; import net.id.paradiselost.entities.ParadiseLostEntityTypes; import net.minecraft.client.render.entity.EntityRendererFactory; @@ -24,7 +23,6 @@ public static void initClient() { // passive register(ParadiseLostEntityTypes.MOA, MoaEntityRenderer::new); - register(ParadiseLostEntityTypes.PARADISE_HARE, ParadiseHareRenderer::new); // register(ParadiseLostEntityTypes.AMBYST, AmbystRenderer::new); } diff --git a/src/main/java/net/id/paradiselost/client/rendering/entity/passive/ParadiseHareRenderer.java b/src/main/java/net/id/paradiselost/client/rendering/entity/passive/ParadiseHareRenderer.java deleted file mode 100644 index 329600440..000000000 --- a/src/main/java/net/id/paradiselost/client/rendering/entity/passive/ParadiseHareRenderer.java +++ /dev/null @@ -1,40 +0,0 @@ -package net.id.paradiselost.client.rendering.entity.passive; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.ParadiseLost; -import net.id.paradiselost.client.model.ParadiseLostModelLayers; -import net.id.paradiselost.client.model.entity.ParadiseHareModel; -import net.id.paradiselost.entities.passive.ParadiseHareEntity; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.render.entity.MobEntityRenderer; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.Identifier; - -@Environment(EnvType.CLIENT) -public class ParadiseHareRenderer extends MobEntityRenderer { - - private static final Identifier TEXTURE = ParadiseLost.locate("textures/entity/corsican_hare.png"); - - public ParadiseHareRenderer(EntityRendererFactory.Context context) { - super(context, new ParadiseHareModel(context.getPart(ParadiseLostModelLayers.PARADISE_HARE)), 0.3F); - } - - @Override - public ParadiseHareModel getModel() { - return super.getModel(); - } - - @Override - protected void setupTransforms(ParadiseHareEntity entity, MatrixStack matrices, float animationProgress, float bodyYaw, float tickDelta) { - super.setupTransforms(entity, matrices, animationProgress, bodyYaw, tickDelta); - if (entity.isBaby()) { - matrices.scale(0.6F, 0.6F, 0.6F); - } - } - - @Override - public Identifier getTexture(ParadiseHareEntity entity) { - return TEXTURE; - } -} diff --git a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityExtensions.java b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityExtensions.java index 1659cde15..271ed84bc 100644 --- a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityExtensions.java +++ b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityExtensions.java @@ -4,7 +4,6 @@ public interface ParadiseLostEntityExtensions { boolean flipped = false; boolean paradiseLostFallen = false; - boolean corsican_hareFallen = false; int gravFlipTime = 0; default int getFlipTime() { @@ -22,13 +21,6 @@ default boolean isParadiseLostFallen() { default void setParadiseLostFallen(boolean value) { } - default boolean isParadiseHareFallen() { - return corsican_hareFallen; - } - - default void setParadiseHareFallen(boolean corsican_hareFallen) { - } - void setFlipped(); default void tick() { diff --git a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java index 610ed76bd..0a4c83275 100644 --- a/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java +++ b/src/main/java/net/id/paradiselost/entities/ParadiseLostEntityTypes.java @@ -8,7 +8,6 @@ import net.id.paradiselost.entities.block.FloatingBlockEntity; import net.id.paradiselost.entities.block.SliderEntity; import net.id.paradiselost.entities.hostile.EnvoyEntity; -import net.id.paradiselost.entities.passive.ParadiseHareEntity; import net.id.paradiselost.entities.passive.ParadiseLostAnimalEntity; import net.id.paradiselost.entities.passive.ambyst.FindLogSensor; import net.id.paradiselost.entities.passive.moa.MoaEntity; @@ -54,8 +53,6 @@ public class ParadiseLostEntityTypes { // passive public static final EntityType MOA = add("moa", of(MoaEntity::new, CREATURE, changing(1.0F, 2.0F), 5), attributes(MoaEntity::createMoaAttributes), spawnRestrictions(ParadiseLostAnimalEntity::isValidNaturalParadiseLostSpawn)); - public static final EntityType PARADISE_HARE = add("corsican_hare", of(ParadiseHareEntity::new, CREATURE, changing(0.55F, 0.55F), 5), - attributes(ParadiseHareEntity::createParadiseHareAttributes), spawnRestrictions(ParadiseLostAnimalEntity::isValidNaturalParadiseLostSpawn)); // public static final EntityType AMBYST = add("ambyst", of(AmbystEntity::new, CREATURE, changing(0.6F, 0.42F), 5), // attributes(AmbystEntity::createAmbystAttributes), spawnRestrictions(ParadiseLostAnimalEntity::isValidNaturalParadiseLostSpawn)); diff --git a/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java index 6356e3232..5ddf1f450 100644 --- a/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java +++ b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java @@ -1,23 +1,29 @@ package net.id.paradiselost.entities.hostile; +import net.id.paradiselost.util.ParadiseLostSoundEvents; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.attribute.DefaultAttributeContainer; import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.data.DataTracker; import net.minecraft.entity.data.TrackedData; import net.minecraft.entity.data.TrackedDataHandlerRegistry; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.entity.mob.GuardianEntity; import net.minecraft.entity.mob.SkeletonEntity; import net.minecraft.nbt.NbtCompound; import net.minecraft.particle.ParticleTypes; +import net.minecraft.sound.SoundEvent; +import net.minecraft.sound.SoundEvents; import net.minecraft.util.math.random.Random; import net.minecraft.world.LocalDifficulty; import net.minecraft.world.World; public class EnvoyEntity extends SkeletonEntity { + private static final TrackedData ENLIGHTENED; public EnvoyEntity(EntityType entityType, World world) { @@ -51,6 +57,18 @@ public void tick() { super.tick(); } + protected SoundEvent getHurtSound(DamageSource source) { + return this.getEnlightened() ? ParadiseLostSoundEvents.ENTITY_ENVOY_DAMAGE : super.getHurtSound(source); + } + + public boolean damage(DamageSource source, float amount) { + float dmg = amount; + if (this.getEnlightened()) { + dmg /= 2; + } + return super.damage(source, dmg); + } + public boolean tryAttack(Entity target) { if (!super.tryAttack(target)) { return false; diff --git a/src/main/java/net/id/paradiselost/entities/passive/ParadiseHareEntity.java b/src/main/java/net/id/paradiselost/entities/passive/ParadiseHareEntity.java deleted file mode 100644 index f5c3bed64..000000000 --- a/src/main/java/net/id/paradiselost/entities/passive/ParadiseHareEntity.java +++ /dev/null @@ -1,284 +0,0 @@ -package net.id.paradiselost.entities.passive; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.paradiselost.blocks.ParadiseLostBlocks; -import net.id.paradiselost.entities.ParadiseLostEntityExtensions; -import net.id.paradiselost.entities.ParadiseLostEntityTypes; -import net.id.paradiselost.items.ParadiseLostItems; -import net.id.paradiselost.util.ParadiseLostSoundEvents; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.SweetBerryBushBlock; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.MovementType; -import net.minecraft.entity.ai.goal.*; -import net.minecraft.entity.ai.pathing.Path; -import net.minecraft.entity.attribute.DefaultAttributeContainer; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.data.DataTracker; -import net.minecraft.entity.data.TrackedData; -import net.minecraft.entity.data.TrackedDataHandlerRegistry; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.passive.PassiveEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.recipe.Ingredient; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraft.world.WorldView; - -public class ParadiseHareEntity extends ParadiseLostAnimalEntity { - - public static final TrackedData PUFF = DataTracker.registerData(ParadiseHareEntity.class, TrackedDataHandlerRegistry.BYTE); - public float floof; - - public ParadiseHareEntity(EntityType entityType, World world) { - super(entityType, world); - } - - public static DefaultAttributeContainer.Builder createParadiseHareAttributes() { - return createMobAttributes() - .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.25D) - .add(EntityAttributes.GENERIC_MAX_HEALTH, 5.0D); - } - - @Override - protected void initGoals() { - this.goalSelector.add(0, new SwimGoal(this)); - this.goalSelector.add(1, new EscapeDangerGoal(this, 1.25D)); - this.goalSelector.add(2, new WanderAroundFarGoal(this, 1.0D, 20)); - this.goalSelector.add(2, new WanderAroundGoal(this, 1.0D, 15)); - this.goalSelector.add(3, new EatBlueberriesGoal(0.9D, 40, 8)); - this.goalSelector.add(4, new AnimalMateGoal(this, 1.0D)); - this.goalSelector.add(5, new TemptGoal(this, 1.15D, Ingredient.ofItems(ParadiseLostItems.BLACKCURRANT), false)); - this.goalSelector.add(6, new LookAroundGoal(this)); - this.goalSelector.add(7, new LookAtEntityGoal(this, PlayerEntity.class, 4.0F, 32)); - //this.goalSelector.add(6, new EntityAIBunnyHop(this)); - } - - @Override - protected void initDataTracker() { - super.initDataTracker(); - this.dataTracker.startTracking(PUFF, (byte) 0); - } - - @Override - @Environment(EnvType.CLIENT) - public boolean shouldRender(double par1) { - return true; - } - - @Override - public double getHeightOffset() { - return 0.4D; - } - - @Override - public void playSpawnEffects() { - if (this.world.isClient) { - for (int i = 0; i < 5; ++i) { - double double_1 = this.random.nextGaussian() * 0.02D; - double double_2 = this.random.nextGaussian() * 0.02D; - double double_3 = this.random.nextGaussian() * 0.02D; - - this.world.addParticle(ParticleTypes.POOF, this.getX() + (double) (this.random.nextFloat() * this.getWidth() * 2.0F) - (double) this.getWidth() - double_1 * 10.0D, this.getY() + (double) (this.random.nextFloat() * this.getHeight()) - double_2 * 10.0D, this.getZ() + (double) (this.random.nextFloat() * this.getWidth() * 2.0F) - (double) this.getWidth() - double_3 * 10.0D, double_1, double_2, double_3); - } - } else { - this.world.sendEntityStatus(this, (byte) 20); - } - } - - //@Override public boolean canRiderInteract() { return true; } - - public int getPuffiness() { - return (int) this.dataTracker.get(PUFF); - } - - public void setPuffiness(int i) { - this.dataTracker.set(PUFF, (byte) i); - } - - @Override - public void tick() { - super.tick(); - int puff = getPuffiness(); - if (puff > 0 && world.getTime() % 4 == 0) { - Vec3d pos = getPos(); - world.addParticle(ParticleTypes.CLOUD, pos.x, pos.y + 0.2, pos.z, 0, 0, 0); - } else if (isOnGround() && puff > 0) { - setPuffiness(0); - } - - if (random.nextFloat() <= 0.03F) { - playSound(ParadiseLostSoundEvents.ENTITY_PARADISE_HARE_SNIFF, 1.0F, 2.0F); - } - - if (this.hasVehicle() && (this.getVehicle().isSneaking() || this.getVehicle().getVelocity().y < -0.7)) { - ((ParadiseLostEntityExtensions) this.getVehicle()).setParadiseHareFallen(true); - this.dismountVehicle(); - } - } - - @Override - public void tickMovement() { - super.tickMovement(); - if (this.isOnGround() && ((getVelocity().x > 0.025 || getVelocity().z > 0.025) && random.nextInt(4) == 0)) { - jump(); - } - // Slows down ParadiseHare while falling - if (!this.isOnGround() && getVelocity().y < 0.0D) { - this.setVelocity(getVelocity().multiply(1.0D, 0.65D, 1.0D)); - } - } - - @Override - protected float getJumpVelocity() { - if (!this.horizontalCollision && (!this.moveControl.isMoving() || !(this.moveControl.getTargetY() > this.getY() + 0.5D))) { - Path path = this.navigation.getCurrentPath(); - if (path != null && !path.isFinished()) { - Vec3d vec3d = path.getNodePosition(this); - if (vec3d.y > this.getY() + 0.5D) { - return 0.45F; - } - } - return this.moveControl.getSpeed() <= 0.6D ? 0.3F : 0.4F; - } else { - return 0.45F; - } - } - - @Override - protected void jump() { - setPuffiness(1); - Vec3d pos = getPos(); - for (int i = 0; i < 4; i++) { - world.addParticle(ParticleTypes.CLOUD, pos.x + (random.nextGaussian() * 0.2), pos.y + (random.nextGaussian() * 0.2), pos.z + (random.nextGaussian() * 0.2), 0, 0, 0); - } - world.playSoundFromEntity(null, this, ParadiseLostSoundEvents.ENTITY_PARADISE_HARE_JUMP, SoundCategory.NEUTRAL, 1, 1); - super.jump(); - } - - @Override - public boolean shouldSpawnSprintingParticles() { - return false; - } - - @Override - public void move(MovementType type, Vec3d movement) { - super.move(type, isOnGround() ? movement : movement.multiply(3.5, (movement.y < 0 && getPuffiness() > 0) ? 0.15 : 1, 3.5)); - } - - @Override - public boolean handleFallDamage(float distance, float damageMultiplier, DamageSource damageSource) { - return false; - } - - @Override - public ActionResult interactMob(PlayerEntity player, Hand hand) { - ItemStack stack = player.getStackInHand(hand); - - if (!stack.isEmpty()) { - return super.interactMob(player, hand); - } else { -// this.world.playSound(this.getX(), this.getY(), this.getZ(), ParadiseLostSounds.PARADISE_HARE_LIFT, SoundCategory.NEUTRAL, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F, false); - - if (getPrimaryPassenger() != null) { - stopRiding(); - } else { - startRiding(player); - } - - return ActionResult.SUCCESS; - } - } - - @Override - public boolean damage(DamageSource source, float damage) { - return (this.getPrimaryPassenger() == null || source.getAttacker() != this.getPrimaryPassenger()) && super.damage(source, damage); - } - - @Override - protected SoundEvent getHurtSound(DamageSource source) { - return ParadiseLostSoundEvents.ENTITY_PARADISE_HARE_HURT; - } - - @Override - protected SoundEvent getDeathSound() { - return ParadiseLostSoundEvents.ENTITY_PARADISE_HARE_DEATH; - } - - @Override - public PassiveEntity createChild(ServerWorld world, PassiveEntity mate) { - return ParadiseLostEntityTypes.PARADISE_HARE.create(world); - } - - public class EatBlueberriesGoal extends MoveToTargetPosGoal { - protected int timer; - - public EatBlueberriesGoal(double speed, int range, int maxYDifference) { - super(ParadiseHareEntity.this, speed, range, maxYDifference); - } - - public double getDesiredSquaredDistanceToTarget() { - return 2.0D; - } - - @Override - public boolean shouldResetPath() { - return this.tryingTime % 100 == 0; - } - - @Override - protected boolean isTargetPos(WorldView world, BlockPos pos) { - BlockState blockState = world.getBlockState(pos); - return blockState.isOf(ParadiseLostBlocks.BLACKCURRANT_BUSH) && blockState.get(SweetBerryBushBlock.AGE) >= 3; - } - - @Override - public void tick() { - if (this.hasReached()) { - if (this.timer >= 40) { - this.eatSweetBerry(); - } else { - ++this.timer; - } - } else if (!this.hasReached() && ParadiseHareEntity.this.random.nextFloat() < 0.05F) { - ParadiseHareEntity.this.playSound(ParadiseLostSoundEvents.ENTITY_PARADISE_HARE_SNIFF, 1.0F, 2.0F); - } - super.tick(); - } - - protected void eatSweetBerry() { - BlockState blockState = ParadiseHareEntity.this.world.getBlockState(this.targetPos); - if (blockState.isOf(ParadiseLostBlocks.BLACKCURRANT_BUSH) && blockState.get(SweetBerryBushBlock.AGE) == 3) { - ParadiseHareEntity.this.setLoveTicks(40); - ParadiseHareEntity.this.addStatusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, 10, 2)); - ParadiseHareEntity.this.playSound(ParadiseLostSoundEvents.BLOCK_BLACKCURRANT_BUSH_PICK_BLUEBERRIES, 1.0F, 1.0F); - ParadiseHareEntity.this.playSound(ParadiseLostSoundEvents.ENTITY_PARADISE_HARE_EAT, 0.8F, 2.0F); - ParadiseHareEntity.this.world.setBlockState(this.targetPos, blockState.with(SweetBerryBushBlock.AGE, 1), Block.NOTIFY_LISTENERS); - } - } - - @Override - public boolean shouldContinue() { - return true; - } - - @Override - public void start() { - this.timer = 0; - super.start(); - } - } - -} diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index 9e2e1c2d0..b4244a502 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -190,7 +190,6 @@ private static Settings misc() { public static final AurelBucketItem AUREL_MILK_BUCKET = add("aurel_milk_bucket", new AurelBucketItem(aurelBucket)); public static final SpawnEggItem ENVOY_SPAWN_EGG = add("envoy_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.ENVOY, 0xc5b1af, 0x993c3c, misc), spawnEggBehavior); - public static final SpawnEggItem PARADISE_HARE_SPAWN_EGG = add("corsican_hare_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.PARADISE_HARE, 0xC5D6ED, 0x82A6D9, misc), spawnEggBehavior); public static final SpawnEggItem MOA_SPAWN_EGG = add("moa_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.MOA, 0xC55C2E4, 0xB3A8BB, misc), spawnEggBehavior); private static FabricItemSettings building_block() { diff --git a/src/main/java/net/id/paradiselost/mixin/block/BlockMixin.java b/src/main/java/net/id/paradiselost/mixin/block/BlockMixin.java index 36eee151b..726076d07 100644 --- a/src/main/java/net/id/paradiselost/mixin/block/BlockMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/block/BlockMixin.java @@ -17,7 +17,6 @@ public class BlockMixin { public void onLandedUpon(World world, BlockState state, BlockPos pos, Entity entity, float fallDistance, CallbackInfo ci) { if (entity instanceof ParadiseLostEntityExtensions extendedEntity) { extendedEntity.setParadiseLostFallen(false); - extendedEntity.setParadiseHareFallen(false); } } } 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 96651353e..3bb549eed 100644 --- a/src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/entity/LivingEntityMixin.java @@ -69,10 +69,6 @@ private double changeGravity(double gravity) { if (isWearingParachute) { gravity -= 0.07; this.fallDistance = 0; - } else if (entity.hasPassengers() && entity.getPassengerList().stream().anyMatch(passenger -> - passenger.getType().equals(ParadiseLostEntityTypes.PARADISE_HARE))) { - gravity -= 0.05; - this.fallDistance = 0; // alternatively, remove & replace with fall damage dampener } } diff --git a/src/main/java/net/id/paradiselost/mixin/entity/PlayerEntityMixin.java b/src/main/java/net/id/paradiselost/mixin/entity/PlayerEntityMixin.java index f88d42c7d..ca02d7e47 100644 --- a/src/main/java/net/id/paradiselost/mixin/entity/PlayerEntityMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/entity/PlayerEntityMixin.java @@ -30,7 +30,6 @@ public abstract class PlayerEntityMixin extends LivingEntity implements ParadiseLostEntityExtensions { private boolean paradise_lost$fallen = false; - public boolean paradise_lost$corsican_hareFallen = false; public PlayerEntityMixin(EntityType type, World world) { super(type, world); @@ -82,14 +81,6 @@ public void setParadiseLostFallen(boolean value) { paradise_lost$fallen = value; } - public boolean isParadise_lost$corsican_hareFallen() { - return paradise_lost$corsican_hareFallen; - } - - public void setPARADISE_HAREFallen(boolean value) { - paradise_lost$corsican_hareFallen = value; - } - @Inject( method = "handleFallDamage", at = @At("HEAD"), @@ -108,17 +99,5 @@ public void handleFallDamage(float fallDistance, float damageMultiplier, DamageS } cir.cancel(); } - if (paradise_lost$corsican_hareFallen) { - paradise_lost$corsican_hareFallen = false; - if (getAbilities().allowFlying) { - cir.setReturnValue(false); - } else { - if (fallDistance >= 2.0F) { - increaseStat(Stats.FALL_ONE_CM, (int) Math.round((double) fallDistance * 100.0D)); - } - cir.setReturnValue(super.handleFallDamage(fallDistance, damageMultiplier, ParadiseLostDamageSources.PARADISE_HARE_FALL)); - } - cir.cancel(); - } } } diff --git a/src/main/java/net/id/paradiselost/mixin/world/gen/structure/JigsawStructureMixin.java b/src/main/java/net/id/paradiselost/mixin/world/gen/structure/JigsawStructureMixin.java new file mode 100644 index 000000000..3109511d8 --- /dev/null +++ b/src/main/java/net/id/paradiselost/mixin/world/gen/structure/JigsawStructureMixin.java @@ -0,0 +1,38 @@ +package net.id.paradiselost.mixin.world.gen.structure; + +import net.minecraft.util.math.ChunkPos; +import net.minecraft.world.gen.HeightContext; +import net.minecraft.world.gen.heightprovider.HeightProvider; +import net.minecraft.world.gen.structure.JigsawStructure; +import net.minecraft.world.gen.structure.Structure; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Optional; + +@Mixin(JigsawStructure.class) +public class JigsawStructureMixin { + + @Shadow + @Final + private HeightProvider startHeight; + + @Inject( + method = "getStructurePosition", + at = @At("HEAD"), + cancellable = true + ) + public void getStructurePosition(Structure.Context context, CallbackInfoReturnable> cir) { + ChunkPos chunkPos = context.chunkPos(); + int i = this.startHeight.get(context.random(), new HeightContext(context.chunkGenerator(), context.world())); + if (i <= context.world().getBottomY()) { + cir.setReturnValue(Optional.empty()); + } + + } + +} diff --git a/src/main/java/net/id/paradiselost/tag/ParadiseLostStructureTags.java b/src/main/java/net/id/paradiselost/tag/ParadiseLostStructureTags.java index dc9663cf6..988f9e76a 100644 --- a/src/main/java/net/id/paradiselost/tag/ParadiseLostStructureTags.java +++ b/src/main/java/net/id/paradiselost/tag/ParadiseLostStructureTags.java @@ -10,6 +10,9 @@ public class ParadiseLostStructureTags { public static final TagKey AUREL_TOWER_HAS_STRUCTURE = register("has_structure/aurel_tower"); public static final TagKey WELL_HAS_STRUCTURE = register("has_structure/well"); + // dungeon + public static final TagKey VAULT_HAS_STRUCTURE = register("has_structure/vault"); + private static TagKey register(String id) { return TagKey.of(Registry.BIOME_KEY, ParadiseLost.locate(id)); } diff --git a/src/main/java/net/id/paradiselost/util/ParadiseLostDamageSources.java b/src/main/java/net/id/paradiselost/util/ParadiseLostDamageSources.java index 3b1ef1848..a8f441d8f 100644 --- a/src/main/java/net/id/paradiselost/util/ParadiseLostDamageSources.java +++ b/src/main/java/net/id/paradiselost/util/ParadiseLostDamageSources.java @@ -5,7 +5,6 @@ public class ParadiseLostDamageSources extends DamageSource { public static final DamageSource PARADISE_LOST_FALL = (new ParadiseLostDamageSources("paradise_lost_fall")).setBypassesArmor().setFromFalling(); - public static final DamageSource PARADISE_HARE_FALL = (new ParadiseLostDamageSources("corsican_hare_fall")).setBypassesArmor().setFromFalling(); public static final DamageSource NIGHTMARE = (new ParadiseLostDamageSources("paradise_lost_nightmare").setBypassesArmor().setUsesMagic().setScaledWithDifficulty()); diff --git a/src/main/java/net/id/paradiselost/util/ParadiseLostSoundEvents.java b/src/main/java/net/id/paradiselost/util/ParadiseLostSoundEvents.java index 83c9ee4c6..8a3cd7370 100644 --- a/src/main/java/net/id/paradiselost/util/ParadiseLostSoundEvents.java +++ b/src/main/java/net/id/paradiselost/util/ParadiseLostSoundEvents.java @@ -66,16 +66,12 @@ private ParadiseLostSoundEvents() { public static final SoundEvent ENTITY_MOA_EGG_HATCH = childEvent("entity.moa.egg_hatch", SoundEvents.ENTITY_TURTLE_EGG_HATCH); public static final SoundEvent ENTITY_MOA_STEP = childEvent("entity.moa.step", SoundEvents.ENTITY_PIG_STEP); - public static final SoundEvent ENTITY_PARADISE_HARE_SNIFF = childEvent("entity.corsican_hare.sniff", SoundEvents.ENTITY_FOX_SNIFF); - public static final SoundEvent ENTITY_PARADISE_HARE_JUMP = childEvent("entity.corsican_hare.jump", SoundEvents.ENTITY_RABBIT_JUMP); - public static final SoundEvent ENTITY_PARADISE_HARE_HURT = childEvent("entity.corsican_hare.hurt", SoundEvents.ENTITY_RABBIT_HURT); - public static final SoundEvent ENTITY_PARADISE_HARE_DEATH = childEvent("entity.corsican_hare.death", SoundEvents.ENTITY_RABBIT_DEATH); - public static final SoundEvent ENTITY_PARADISE_HARE_EAT = childEvent("entity.corsican_hare.eat", SoundEvents.ENTITY_LLAMA_EAT); - public static final SoundEvent ENTITY_NIGHTMARE_HURT = event("entity.nightmare.hurt"); public static final SoundEvent ENTITY_NIGHTMARE_DEATH = event("entity.nightmare.death"); public static final SoundEvent ENTITY_NIGHTMARE_AMBIENT = event("entity.nightmare.ambient"); + public static final SoundEvent ENTITY_ENVOY_DAMAGE = childEvent("entity.envoy.damage", SoundEvents.BLOCK_AMETHYST_BLOCK_BREAK); + public static final SoundEvent ITEM_ARMOR_EQUIP_OLVITE = childEvent("item.armor.equip.olvite", SoundEvents.ITEM_ARMOR_EQUIP_IRON); public static final SoundEvent ITEM_ARMOR_EQUIP_GLAZED_GOLD = childEvent("item.armor.equip.glazed_gold", SoundEvents.ITEM_ARMOR_EQUIP_GOLD); 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 d38045b63..9d60c8172 100644 --- a/src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java +++ b/src/main/java/net/id/paradiselost/world/dimension/ParadiseLostBiomes.java @@ -265,7 +265,6 @@ private static Biome createHighlandsPlains() { new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) @@ -312,7 +311,6 @@ private static Biome createHighlandsForest() { new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) @@ -357,7 +355,6 @@ private static Biome createTradewinds() { new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) @@ -407,7 +404,6 @@ private static Biome createHighlandsThicket() { new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) @@ -455,7 +451,6 @@ private static Biome createHighlandsGrandGlade() { new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) @@ -500,7 +495,6 @@ private static Biome createWisteriaWoods() { new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) @@ -551,9 +545,7 @@ private static Biome createAutumnalTundra() { new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 6, 1, 3) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) ), @@ -601,9 +593,7 @@ private static Biome createContinentalPlateau() { new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 6, 1, 3) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) ), @@ -660,9 +650,7 @@ private static Biome createHighlandsShield() { new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.ENVOY, 50, 1, 3) ), SpawnGroup.CREATURE, List.of( - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 12, 4, 4), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13), - new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.PARADISE_HARE, 6, 1, 3) + new SpawnSettings.SpawnEntry(ParadiseLostEntityTypes.MOA, 6, 5, 13) ) ) ), 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 e879f640c..080b1d8e3 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -244,7 +244,6 @@ "entity.paradise_lost.floating_block": "Floating Block", "entity.paradise_lost.hellenrose": "Hellenrose", "entity.paradise_lost.moa": "Moa", - "entity.paradise_lost.corsican_hare": "Corsican Hare", "entity.paradise_lost.rook": "Rook", "entity.paradise_lost.poison_dart": "Poison Dart", "entity.paradise_lost.poison_needle": "Poison Needle", @@ -339,7 +338,6 @@ "item.paradise_lost.hellenrose_spawn_egg": "Hellenrose Spawn Egg", "item.paradise_lost.envoy_spawn_egg": "Envoy Spawn Egg", - "item.paradise_lost.corsican_hare_spawn_egg": "Corsican Hare Spawn Egg", "item.paradise_lost.moa_spawn_egg": "Moa Spawn Egg", "item.paradise_lost.aurel_boat": "Aurel Boat", @@ -359,8 +357,6 @@ "death.attack.fall": "%1$s plummeted from the heavens", "death.attack.fall.player": "%1$s was thrown off the heavens above by %2$s", - "death.attack.corsican_hare_fall": "%1$s got dumped", - "death.attack.corsican_hare_fall.player": "%1$s got dumped whilst trying to escape %2$s", "death.attack.nightmare": "%1$s was consumed by shifting shadows", "death.attack.nightmare.player": "%1$s was fed to the shadows by %2$s", @@ -464,15 +460,11 @@ "subtitles.paradise_lost.entity.moa.egg_hatch": "Moa egg hatches", "subtitles.paradise_lost.entity.moa.step": "Moa walks", - "subtitles.paradise_lost.entity.corsican_hare.sniff": "Corsican Hare sniffs", - "subtitles.paradise_lost.entity.corsican_hare.jump": "Corsican Hare hops", - "subtitles.paradise_lost.entity.corsican_hare.hurt": "Corsican Hare hurts", - "subtitles.paradise_lost.entity.corsican_hare.death": "Corsican Hare dies", - "subtitles.paradise_lost.entity.corsican_hare.eat": "Corsican Hare eats", - "subtitles.paradise_lost.entity.nightmare.hurt": "Nightmare hurts", "subtitles.paradise_lost.entity.nightmare.ambient": "Magpie coos", "subtitles.paradise_lost.entity.nightmare.death": "Nightmare dissipates", + + "subtitles.paradise_lost.entity.envoy.damage": "Envoy Chimes", "subtitles.paradise_lost.item.armor.equip.olvite": "Olvite armor clanks", "subtitles.paradise_lost.item.armor.equip.glazed_gold": "Glazed Gold armor clinks", diff --git a/src/main/resources/assets/paradise_lost/models/item/corsican_hare_spawn_egg.json b/src/main/resources/assets/paradise_lost/models/item/corsican_hare_spawn_egg.json deleted file mode 100644 index cbd5c36b9..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/corsican_hare_spawn_egg.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "paradise_lost:item/template_spawn_egg" -} diff --git a/src/main/resources/assets/paradise_lost/textures/entity/corsican_hare.png b/src/main/resources/assets/paradise_lost/textures/entity/corsican_hare.png deleted file mode 100644 index 8a33934ceb8a1137e910ee767ecaa2a6d7b5893d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmV-L0lNN)P)tZ5-qPCY%G1@lz}3st=Gfid%hKlA;_lMi>fq<{&3%L7mX-!!NE%Ce0RR910d!JM zQvg8b*k%9#0LDo~K~#9!)sRsRgdhw=+ft|q>-~?r9Yi)Hg!sEJz?AZ0K%!j9NuiNq zhX!aPa&dBqMHGku)}a7gso14OyQg?Iq`oHoXGyq1~vsM5c|thy~jSa)lk$`=9; zh(p6mLjnWrV10CTXvHKfJ8L0?(cy_#f_dJz24tS7?|`7jm)XUpfYj4Wdq6<(spx?( Xhp!5sZHv+#}2XL1DuFK&H)J_BY}c)vDdpev6PUN z6C;o!COtc~vmN(z4?Q(&ZBE>gAO{YB1d2FtN8(Q4f;jUBa^V6O#2#t0)RF&a`^!30N{S!Y;S{)nj}fg19uLft|JPdxod^g0r)AV#M6;weqThQ1QId1>^=VMueXAC9)8K*w>qgQG;M$P&j**ce*R+S#>E4nW0P*= znK;%Pk*?}fz3&WiLY5ui z$Az>Qdp^`;4C|S&B9=LZ%H(tv_1H{Kr0<8#-~Wi-?A-m-`{?%DR~}w#L+hq-p|qwI zUap^hyx9EZ^SiGtUi3MXSjKny9BJ!13Pq#NBPR%M;EVU;m;zxiZVf(~S#FfB{4=C0N{F1x2_Xuzq}hI-%RrT>pV zd{kcTME9!w*Lyn^@r^y^$T1s~nDciU6>FECW-U?T0mfm%sS6`xDEFY*b*Xm!P9mv8 zt5;RfwB8)Xt7l^x=2=y|E|HNkgCnMXHY8y>C|yRfX-2l6RQKC|PxmMDthGw}G7I&}VhN}YP3|W` zSfHNNsV(VLLV#&T6CYNFQVSJU z*e@-_IoV=Bg~f1eWL!~w0`|U4a&hcKi-b*(mS22E9B?WQk9E#vLLm{B%`h8i=NDi? zT8=j8b910|pCk6zeRy=$ToAaS6XvF%(R>~*x#?z9Pmp-Onm+)mTks#?gZIn*1^@tv CsLH7T literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_1.nbt b/src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_1.nbt new file mode 100644 index 0000000000000000000000000000000000000000..fe7feb8232aa8e225e45e8b9e362c8aa630e5d05 GIT binary patch literal 3904 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 PW`~Tzd!KVoO`G;#0(bzn literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_2.nbt b/src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_2.nbt new file mode 100644 index 0000000000000000000000000000000000000000..2807d3735ff564a7f4eb499266f4115ef39e13ec GIT binary patch literal 3932 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 AHUIzs literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_3.nbt b/src/main/resources/data/paradise_lost/structures/vault/crossways/crossway_3.nbt new file mode 100644 index 0000000000000000000000000000000000000000..b18bb6ad1f9f105697cc008f1f9060db3a966c92 GIT binary patch literal 3819 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 jLjx%-2t|sh5KQ;{C!pUwSC!bxGNL8^Jx-|j{9Y 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 F{{hMxRM-Fj literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/enlightened_envoy.nbt b/src/main/resources/data/paradise_lost/structures/vault/enlightened_envoy.nbt new file mode 100644 index 0000000000000000000000000000000000000000..7c60277e3910133747c2d7cdabb12d9ed099b2ee GIT binary patch literal 935 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 F@n4_-F{=Oo literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/lobbies/lobby_3.nbt b/src/main/resources/data/paradise_lost/structures/vault/lobbies/lobby_3.nbt new file mode 100644 index 0000000000000000000000000000000000000000..408b656c9ee937a48c515f41ded1efb780c1c644 GIT binary patch literal 3103 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/lobbies/lobby_special.nbt b/src/main/resources/data/paradise_lost/structures/vault/lobbies/lobby_special.nbt new file mode 100644 index 0000000000000000000000000000000000000000..3229ae077dc695fa1ee672fad6693efea8fd3f0c GIT binary patch literal 3284 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_armory_1.nbt b/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_armory_1.nbt new file mode 100644 index 0000000000000000000000000000000000000000..abe70e1048efff8530e2389daecc5f391dfd8e72 GIT binary patch literal 3538 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 IPg%3(H|BixLjV8( literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_armory_2.nbt b/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_armory_2.nbt new file mode 100644 index 0000000000000000000000000000000000000000..fc940de6779dba934b8ee96f97444a389c955aee GIT binary patch literal 3466 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_stable_1.nbt b/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_stable_1.nbt new file mode 100644 index 0000000000000000000000000000000000000000..0d81fa4825bb6ce2b94945e647271e978e003795 GIT binary patch literal 3554 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_valuable_1.nbt b/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_valuable_1.nbt new file mode 100644 index 0000000000000000000000000000000000000000..be1823960773f8e03bdcb50fc06ae0be6c397875 GIT binary patch literal 3253 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_valuable_3.nbt b/src/main/resources/data/paradise_lost/structures/vault/storage_rooms/storage_valuable_3.nbt new file mode 100644 index 0000000000000000000000000000000000000000..10354ba6042303de1bb635f97d4945b4ea89cfdb GIT binary patch literal 4118 zcmah~3pmtS8`p)@&ZJ#m&B&symX^v4h9#G6XH(m{q{xaHgHZB~tqhH8vovarT5E;e zR>B~LG=womtfWCTh3m9EoHcq{Kuiy)bRjh#u{&sdJ2)+9oITQ0A@%QWHJ@T7 zAq*CxlEh@Zl>EkASxWwL_LqmgvxY7ACX1g_MiP#TC;qph#rU;*sGf`S@}o*MN(K99#c4`rD0D>-omP(9RO`XA8^avGi-Qw?!Gd-ABI;Nf+R3dZg zN(*=zAlR&wr+M{uZ~iVsf0lsh11Buyy5S#w6tYPj_UWk*%sye<(6D-ol8>*AriVx3)@{)G|3{(t)svCm z{Uei*iMf zm03PYy$_|1l3m@0blZL+mGeU(=akl`be{Ml?oyB9@kEs|9Rr${9!+aEvISWZo@%*| zyOcQiF?B&*m30&Dp-^Js822$1ccj>jd+P%T9rxs@1xbXB1M-P=98@TPmqI9~$V?vA zeTFlypoyXx8=zt-ZZZV2G@O#8f*igvf@2dumo(-k<`X(x_Xio379-Rb%me$sB?Jk^AqVMCxR!}u!a^kpP!o0Y?g zS1VFs$ID<}dK^-?pK79yRYUoh*|+aOGS!JJBe0(UI|)OIrsBi|eh{5Cb$BHIoD#NQ z9vS~xZ5qM@v?P~}DEXK=L`M0D;5QHidpuZ`BM{2i)LhUor=A({r{ScH*whaVq5oKt zXA&HuXWlhoI zpCVciJ9EXd?ZBF`wPu6~7jDn2w_h`@XzxM?*$8ZlN<3&-F*O&n4M;qO*3Y{D+;zK_ zN=T!{0IVPb{wxvb%(0xw8!XMlXF(BLDrME}p<=ugIq!liw$_1A4xM(sHA)omWcfSKty!NT<3InEO0d6sYWI(JPG4VCv|JGy zK|%o}Bx5fsQX$+7eg_h>C)$CrRDNu1ljYE^EG1;NEf_qoWDA0QDRj_j2_2X)9S7JA zxs;Xs?Z{SRo2U>5abXTgO$ZN#%$b(qarIfgqCN)2rr4F+%wfnhwte9&m;oJ3nrsKi z3pj)P6`lb>l-v9n#1mdO2L%sISFrT7$m%Cn8KJagU%;nxAEn=mTD6cs7M-?GE*4pC z7hdjw@gUF|!=Tat^&0v_jzOK-?^ak80FZ#9OyqzG|0w;nmilNY4OoLTfVC1be(_iE z9?YLqCyV4i#A9v`ZeKVBZXd#e@@2b8UsYGnNE9>m&Mz-D>cY-HSPIR=8s~-Ej`9E< zQ9j%_3i=LOTSFq=s^(#DZV#%&_z*-09q==g@ft)HbrKu?RjuxAl#qE8;zTJPWWMU@ zX0WLBQUr({3RXiKguiNuGPs~%>e0Nt=*)ooDm5Np;PAO~gp zM|Iiv@v2azED&ecumMtAggR>-MJvLLqie`nb0;f2dX>1fG#QRU1Yw>*%&iT9rFCaj zeTC=0u3D7pT=R;w>trm4$$Nli0N+Rtd&zjUYYj5=yX zt83f+kh^R4VTe60L+xdw@ONV$T zMzdqE+S%iUS-*!wi8+YE2v0#9(aL*hdTcv6%r;`Onp~bzrmCjIir7M8HVX|~dQ!H( zR+_0#cA2;xQXZblUkDOWW7Arl`qiB$8~pHE2@b^#jSG!UL(!C@;uyM3%ZQqpg?3)m zlI!G=i6v=;T&>6Qls;|oR{pC8MDw1dQ%~a_U#QT@uln8_?{6G^{F^6k zU98K9;TVc{Zt~ruak?(OMY+vgyxu@h2iH(Uig)mv3X>KezZqdGx0`3+?AsEU)^2pe zP(R1!R<}-#a!Ib{RD76o0b`hR>iJQM4R7H5)rk|+ zMaI^+xjLtmfJ^Oog!6{u@5gY#y&DtSn?}g*#`lJm^89j+JEwbQj`XE?N=2n3sWaV9 zJT;3_FW)SS=Z%BOah|-8$WV`|_wL)v_ZH$iRi8Risc$yB=;jIQKY!9HHbxdk*K*A8~#CMJZ!_3pIIUD?%*!fe&(z;Orha(~myGmM*Za{mEK CSNT@} literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/tags/worldgen/biome/has_structure/orange_ruin.json b/src/main/resources/data/paradise_lost/tags/worldgen/biome/has_structure/vault.json similarity index 87% rename from src/main/resources/data/paradise_lost/tags/worldgen/biome/has_structure/orange_ruin.json rename to src/main/resources/data/paradise_lost/tags/worldgen/biome/has_structure/vault.json index eaaf3d46a..ff11399f3 100644 --- a/src/main/resources/data/paradise_lost/tags/worldgen/biome/has_structure/orange_ruin.json +++ b/src/main/resources/data/paradise_lost/tags/worldgen/biome/has_structure/vault.json @@ -4,6 +4,7 @@ "paradise_lost:highlands", "paradise_lost:highlands_forest", "paradise_lost:highlands_thicket", + "paradise_lost:highlands_grand_glade", "paradise_lost:wisteria_woods", "paradise_lost:autumnal_tundra", "paradise_lost:continental_plateau", diff --git a/src/main/resources/data/paradise_lost/worldgen/structure/vault.json b/src/main/resources/data/paradise_lost/worldgen/structure/vault.json new file mode 100644 index 000000000..49e9e2ad8 --- /dev/null +++ b/src/main/resources/data/paradise_lost/worldgen/structure/vault.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#paradise_lost:has_structure/vault", + "step": "underground_structures", + "spawn_overrides": {}, + "terrain_adaptation": "bury", + "start_pool": "paradise_lost:vault/lobbies", + "size": 7, + "start_height": { + "absolute": -25 + }, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "max_distance_from_center": 116, + "use_expansion_hack": false +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/worldgen/structure_set/vault.json b/src/main/resources/data/paradise_lost/worldgen/structure_set/vault.json new file mode 100644 index 000000000..b9bb2f1f7 --- /dev/null +++ b/src/main/resources/data/paradise_lost/worldgen/structure_set/vault.json @@ -0,0 +1,14 @@ +{ + "structures": [ + { + "structure": "paradise_lost:vault", + "weight": 1 + } + ], + "placement": { + "salt": 60000, + "spacing": 40, + "separation": 25, + "type": "minecraft:random_spread" + } +} diff --git a/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/armored_envoy.json b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/armored_envoy.json new file mode 100644 index 000000000..ddd7e7140 --- /dev/null +++ b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/armored_envoy.json @@ -0,0 +1,15 @@ +{ + "name": "paradise_lost:vault/lobbies", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/armored_envoy", + "projection": "rigid", + "processors": "minecraft:empty" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/crossways.json b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/crossways.json new file mode 100644 index 000000000..22b0fa2ff --- /dev/null +++ b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/crossways.json @@ -0,0 +1,33 @@ +{ + "name": "paradise_lost:vault/lobbies", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/crossways/crossway_1", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/crossways/crossway_2", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/crossways/crossway_3", + "projection": "rigid", + "processors": "minecraft:empty" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/enlightened_envoy.json b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/enlightened_envoy.json new file mode 100644 index 000000000..94e528b0d --- /dev/null +++ b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/enlightened_envoy.json @@ -0,0 +1,15 @@ +{ + "name": "paradise_lost:vault/lobbies", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/enlightened_envoy", + "projection": "rigid", + "processors": "minecraft:empty" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/lobbies.json b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/lobbies.json new file mode 100644 index 000000000..b056dad53 --- /dev/null +++ b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/lobbies.json @@ -0,0 +1,42 @@ +{ + "name": "paradise_lost:vault/lobbies", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/lobbies/lobby_1", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/lobbies/lobby_2", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/lobbies/lobby_3", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/lobbies/lobby_special", + "projection": "rigid", + "processors": "minecraft:empty" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/storage_rooms.json b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/storage_rooms.json new file mode 100644 index 000000000..bdd11dc6e --- /dev/null +++ b/src/main/resources/data/paradise_lost/worldgen/template_pool/vault/storage_rooms.json @@ -0,0 +1,87 @@ +{ + "name": "paradise_lost:vault/lobbies", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/storage_rooms/storage_armory_1", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/storage_rooms/storage_armory_2", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/storage_rooms/storage_armory_3", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/storage_rooms/storage_stable_1", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/storage_rooms/storage_stable_2", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/storage_rooms/storage_stable_3", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/storage_rooms/storage_valuable_1", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/storage_rooms/storage_valuable_2", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "paradise_lost:vault/storage_rooms/storage_valuable_3", + "projection": "rigid", + "processors": "minecraft:empty" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/paradise_lost.mixins.json b/src/main/resources/paradise_lost.mixins.json index 6baabdab8..bb870cb5c 100644 --- a/src/main/resources/paradise_lost.mixins.json +++ b/src/main/resources/paradise_lost.mixins.json @@ -34,6 +34,7 @@ "server.PlayerManagerMixin", "server.ServerPlayerEntityMixin", "server.ServerPlayNetworkHandlerMixin", + "world.gen.structure.JigsawStructureMixin", "world.ExplosionMixin", "util.DefaultedRegistryMixin", "util.NbtCompoundAccessor", From cd4fa113578eaba6ca65c90793acc9f2f7c4f249 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Fri, 3 May 2024 18:44:45 -0500 Subject: [PATCH 20/24] missing recipes --- .../blocks/ParadiseLostBlocks.java | 2 + .../paradiselost/items/ParadiseLostItems.java | 4 + .../blockstates/floestone_button.json | 118 ++++++++++++++++++ .../blockstates/floestone_pressure_plate.json | 10 ++ .../assets/paradise_lost/lang/en_us.json | 3 + .../models/block/floestone_button.json | 6 + .../block/floestone_button_inventory.json | 6 + .../block/floestone_button_pressed.json | 6 + .../block/floestone_pressure_plate.json | 6 + .../block/floestone_pressure_plate_down.json | 6 + .../models/item/floestone_button.json | 3 + .../models/item/floestone_pressure_plate.json | 3 + .../loot_tables/blocks/floestone_button.json | 20 +++ .../blocks/floestone_pressure_plate.json | 20 +++ .../recipes/activator_rail_olvite.json | 23 ++++ .../recipes/comparator_floestone.json | 22 ++++ .../recipes/detector_rail_olvite.json | 23 ++++ .../recipes/floestone_button.json | 11 ++ .../recipes/floestone_pressure_plate.json | 14 +++ .../recipes/grindstone_floestone.json | 21 ++++ .../paradise_lost/recipes/hopper_olvite.json | 19 +++ .../recipes/minecart_olvite.json | 15 +++ .../paradise_lost/recipes/rail_olvite.json | 20 +++ .../recipes/repeater_floestone.json | 21 ++++ .../paradise_lost/recipes/shears_olvite.json | 15 +++ .../paradise_lost/recipes/shield_olvite.json | 19 +++ .../recipes/smithing_table_olvite.json | 19 +++ .../recipes/stonecutter_olvite.json | 18 +++ .../tags/blocks/mineable_by_pickaxe.json | 4 +- 29 files changed, 476 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/paradise_lost/blockstates/floestone_button.json create mode 100644 src/main/resources/assets/paradise_lost/blockstates/floestone_pressure_plate.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/floestone_button.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/floestone_button_inventory.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/floestone_button_pressed.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/floestone_pressure_plate.json create mode 100644 src/main/resources/assets/paradise_lost/models/block/floestone_pressure_plate_down.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/floestone_button.json create mode 100644 src/main/resources/assets/paradise_lost/models/item/floestone_pressure_plate.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/floestone_button.json create mode 100644 src/main/resources/data/paradise_lost/loot_tables/blocks/floestone_pressure_plate.json create mode 100644 src/main/resources/data/paradise_lost/recipes/activator_rail_olvite.json create mode 100644 src/main/resources/data/paradise_lost/recipes/comparator_floestone.json create mode 100644 src/main/resources/data/paradise_lost/recipes/detector_rail_olvite.json create mode 100644 src/main/resources/data/paradise_lost/recipes/floestone_button.json create mode 100644 src/main/resources/data/paradise_lost/recipes/floestone_pressure_plate.json create mode 100644 src/main/resources/data/paradise_lost/recipes/grindstone_floestone.json create mode 100644 src/main/resources/data/paradise_lost/recipes/hopper_olvite.json create mode 100644 src/main/resources/data/paradise_lost/recipes/minecart_olvite.json create mode 100644 src/main/resources/data/paradise_lost/recipes/rail_olvite.json create mode 100644 src/main/resources/data/paradise_lost/recipes/repeater_floestone.json create mode 100644 src/main/resources/data/paradise_lost/recipes/shears_olvite.json create mode 100644 src/main/resources/data/paradise_lost/recipes/shield_olvite.json create mode 100644 src/main/resources/data/paradise_lost/recipes/smithing_table_olvite.json create mode 100644 src/main/resources/data/paradise_lost/recipes/stonecutter_olvite.json diff --git a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java index c87ac8def..3752e43ae 100644 --- a/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java +++ b/src/main/java/net/id/paradiselost/blocks/ParadiseLostBlocks.java @@ -261,6 +261,8 @@ private static Settings flower() { public static final Block OLVITE_BLOCK = add("olvite_block", new Block(of(Material.METAL).requiresTool().strength(3f, -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 StoneButtonBlock FLOESTONE_BUTTON = add("floestone_button", new StoneButtonBlock(copy(Blocks.STONE_BUTTON))); + public static final PressurePlateBlock FLOESTONE_PRESSURE_PLATE = add("floestone_pressure_plate", new PressurePlateBlock(PressurePlateBlock.ActivationRule.MOBS, copy(STONE_PRESSURE_PLATE))); 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); public static final CherineLanternBlock CHERINE_LANTERN = add("cherine_lantern", new CherineLanternBlock(copy(LANTERN).resistance(1f)), cutoutMippedRenderLayer); diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index b4244a502..e1a3df50c 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -372,6 +372,10 @@ private static FabricItemSettings decoration() { public static final WallStandingBlockItem CHERINE_TORCH = add("cherine_torch", new WallStandingBlockItem(ParadiseLostBlocks.CHERINE_TORCH, ParadiseLostBlocks.CHERINE_TORCH_WALL, decoration)); // util blocks (enchanter, freezer, etc.) + // redstone + public static final BlockItem FLOESTONE_BUTTON = add("floestone_button", ParadiseLostBlocks.FLOESTONE_BUTTON, decoration); + public static final BlockItem FLOESTONE_PRESSURE_PLATE = add("floestone_pressure_plate", ParadiseLostBlocks.FLOESTONE_PRESSURE_PLATE, decoration); + public static final BlockItem CHERINE_CAMPFIRE = add("cherine_campfire", ParadiseLostBlocks.CHERINE_CAMPFIRE, decoration); // door-like things diff --git a/src/main/resources/assets/paradise_lost/blockstates/floestone_button.json b/src/main/resources/assets/paradise_lost/blockstates/floestone_button.json new file mode 100644 index 000000000..593cd08bf --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/floestone_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "paradise_lost:block/floestone_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "paradise_lost:block/floestone_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "paradise_lost:block/floestone_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "paradise_lost:block/floestone_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "paradise_lost:block/floestone_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "paradise_lost:block/floestone_button" + }, + "face=floor,facing=north,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "paradise_lost:block/floestone_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "paradise_lost:block/floestone_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "paradise_lost:block/floestone_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "paradise_lost:block/floestone_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "paradise_lost:block/floestone_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "paradise_lost:block/floestone_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "paradise_lost:block/floestone_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/blockstates/floestone_pressure_plate.json b/src/main/resources/assets/paradise_lost/blockstates/floestone_pressure_plate.json new file mode 100644 index 000000000..02c34ce38 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/blockstates/floestone_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "paradise_lost:block/floestone_pressure_plate" + }, + "powered=true": { + "model": "paradise_lost:block/floestone_pressure_plate_down" + } + } +} \ 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 080b1d8e3..a080218c5 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -84,6 +84,9 @@ "block.paradise_lost.golden_amber_tile_slab": "Golden Amber Tile Slab", "block.paradise_lost.golden_amber_tile_stairs": "Golden Amber Tile Stairs", + "block.paradise_lost.floestone_button": "Floestone Button", + "block.paradise_lost.floestone_pressure_plate": "Floestone Pressure Plate", + "block.paradise_lost.cherine_campfire": "Cherine Campfire", "block.paradise_lost.aurel_sapling": "Aurel Sapling", diff --git a/src/main/resources/assets/paradise_lost/models/block/floestone_button.json b/src/main/resources/assets/paradise_lost/models/block/floestone_button.json new file mode 100644 index 000000000..afe122d10 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/floestone_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "paradise_lost:block/floestone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/floestone_button_inventory.json b/src/main/resources/assets/paradise_lost/models/block/floestone_button_inventory.json new file mode 100644 index 000000000..71e736cb0 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/floestone_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "paradise_lost:block/floestone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/floestone_button_pressed.json b/src/main/resources/assets/paradise_lost/models/block/floestone_button_pressed.json new file mode 100644 index 000000000..4766551cf --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/floestone_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "paradise_lost:block/floestone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/floestone_pressure_plate.json b/src/main/resources/assets/paradise_lost/models/block/floestone_pressure_plate.json new file mode 100644 index 000000000..0ded6df9b --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/floestone_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "paradise_lost:block/floestone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/block/floestone_pressure_plate_down.json b/src/main/resources/assets/paradise_lost/models/block/floestone_pressure_plate_down.json new file mode 100644 index 000000000..ce1ed5655 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/block/floestone_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "paradise_lost:block/floestone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/floestone_button.json b/src/main/resources/assets/paradise_lost/models/item/floestone_button.json new file mode 100644 index 000000000..a58c061c8 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/floestone_button.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/floestone_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/paradise_lost/models/item/floestone_pressure_plate.json b/src/main/resources/assets/paradise_lost/models/item/floestone_pressure_plate.json new file mode 100644 index 000000000..d1e745fdb --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/floestone_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:block/floestone_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/floestone_button.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/floestone_button.json new file mode 100644 index 000000000..0a2fae9f5 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/floestone_button.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:floestone_button" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/loot_tables/blocks/floestone_pressure_plate.json b/src/main/resources/data/paradise_lost/loot_tables/blocks/floestone_pressure_plate.json new file mode 100644 index 000000000..0dddfa75c --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/blocks/floestone_pressure_plate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:floestone_pressure_plate" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/paradise_lost/recipes/activator_rail_olvite.json b/src/main/resources/data/paradise_lost/recipes/activator_rail_olvite.json new file mode 100644 index 000000000..6c56a91d3 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/activator_rail_olvite.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "minecraft:redstone_torch" + }, + "S": { + "item": "minecraft:stick" + }, + "X": { + "item": "paradise_lost:olvite" + } + }, + "pattern": [ + "XSX", + "X#X", + "XSX" + ], + "result": { + "count": 6, + "item": "minecraft:activator_rail" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/comparator_floestone.json b/src/main/resources/data/paradise_lost/recipes/comparator_floestone.json new file mode 100644 index 000000000..c0e731555 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/comparator_floestone.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "minecraft:redstone_torch" + }, + "I": { + "item": "paradise_lost:floestone" + }, + "X": { + "item": "minecraft:quartz" + } + }, + "pattern": [ + " # ", + "#X#", + "III" + ], + "result": { + "item": "minecraft:comparator" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/detector_rail_olvite.json b/src/main/resources/data/paradise_lost/recipes/detector_rail_olvite.json new file mode 100644 index 000000000..2e0908d34 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/detector_rail_olvite.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "paradise_lost:floestone_pressure_plate" + }, + "R": { + "item": "minecraft:redstone" + }, + "X": { + "item": "paradise_lost:olvite" + } + }, + "pattern": [ + "X X", + "X#X", + "XRX" + ], + "result": { + "count": 6, + "item": "minecraft:detector_rail" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/floestone_button.json b/src/main/resources/data/paradise_lost/recipes/floestone_button.json new file mode 100644 index 000000000..e02373ef3 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/floestone_button.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "paradise_lost:floestone" + } + ], + "result": { + "item": "paradise_lost:floestone_button" + } +} diff --git a/src/main/resources/data/paradise_lost/recipes/floestone_pressure_plate.json b/src/main/resources/data/paradise_lost/recipes/floestone_pressure_plate.json new file mode 100644 index 000000000..ee6ebdbe4 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/floestone_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "paradise_lost:floestone" + } + }, + "result": { + "item": "paradise_lost:floestone_pressure_plate" + } +} diff --git a/src/main/resources/data/paradise_lost/recipes/grindstone_floestone.json b/src/main/resources/data/paradise_lost/recipes/grindstone_floestone.json new file mode 100644 index 000000000..5843b77ad --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/grindstone_floestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "-": { + "item": "paradise_lost:floestone_slab" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "I-I", + "# #" + ], + "result": { + "item": "minecraft:grindstone" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/hopper_olvite.json b/src/main/resources/data/paradise_lost/recipes/hopper_olvite.json new file mode 100644 index 000000000..2416eb938 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/hopper_olvite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "C": { + "item": "minecraft:chest" + }, + "I": { + "item": "paradise_lost:olvite" + } + }, + "pattern": [ + "I I", + "ICI", + " I " + ], + "result": { + "item": "minecraft:hopper" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/minecart_olvite.json b/src/main/resources/data/paradise_lost/recipes/minecart_olvite.json new file mode 100644 index 000000000..fc99e60e1 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/minecart_olvite.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "paradise_lost:olvite" + } + }, + "pattern": [ + "# #", + "###" + ], + "result": { + "item": "minecraft:minecart" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/rail_olvite.json b/src/main/resources/data/paradise_lost/recipes/rail_olvite.json new file mode 100644 index 000000000..fb387c509 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/rail_olvite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "paradise_lost:olvite" + } + }, + "pattern": [ + "X X", + "X#X", + "X X" + ], + "result": { + "count": 16, + "item": "minecraft:rail" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/repeater_floestone.json b/src/main/resources/data/paradise_lost/recipes/repeater_floestone.json new file mode 100644 index 000000000..ccdfa140f --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/repeater_floestone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "minecraft:redstone_torch" + }, + "I": { + "item": "paradise_lost:floestone" + }, + "X": { + "item": "minecraft:redstone" + } + }, + "pattern": [ + "#X#", + "III" + ], + "result": { + "item": "minecraft:repeater" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/shears_olvite.json b/src/main/resources/data/paradise_lost/recipes/shears_olvite.json new file mode 100644 index 000000000..edecd7952 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/shears_olvite.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "paradise_lost:olvite" + } + }, + "pattern": [ + " #", + "# " + ], + "result": { + "item": "minecraft:shears" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/shield_olvite.json b/src/main/resources/data/paradise_lost/recipes/shield_olvite.json new file mode 100644 index 000000000..51911e165 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/shield_olvite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "W": { + "tag": "minecraft:planks" + }, + "o": { + "item": "paradise_lost:olvite" + } + }, + "pattern": [ + "WoW", + "WWW", + " W " + ], + "result": { + "item": "minecraft:shield" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/smithing_table_olvite.json b/src/main/resources/data/paradise_lost/recipes/smithing_table_olvite.json new file mode 100644 index 000000000..04c5a8389 --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/smithing_table_olvite.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "tag": "minecraft:planks" + }, + "@": { + "item": "paradise_lost:olvite" + } + }, + "pattern": [ + "@@", + "##", + "##" + ], + "result": { + "item": "minecraft:smithing_table" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/stonecutter_olvite.json b/src/main/resources/data/paradise_lost/recipes/stonecutter_olvite.json new file mode 100644 index 000000000..7dd9166bb --- /dev/null +++ b/src/main/resources/data/paradise_lost/recipes/stonecutter_olvite.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "#": { + "item": "paradise_lost:floestone" + }, + "I": { + "item": "paradise_lost:olvite" + } + }, + "pattern": [ + " I ", + "###" + ], + "result": { + "item": "minecraft:stonecutter" + } +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_pickaxe.json b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_pickaxe.json index 52cd35d91..d83da3b2b 100644 --- a/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_pickaxe.json +++ b/src/main/resources/data/paradise_lost/tags/blocks/mineable_by_pickaxe.json @@ -11,6 +11,8 @@ "paradise_lost:golden_amber_tile", "paradise_lost:golden_amber_tile_slab", "paradise_lost:golden_amber_tile_stairs", - "paradise_lost:metamorphic_shell" + "paradise_lost:metamorphic_shell", + "paradise_lost:floestone_button", + "paradise_lost:floestone_pressure_plate" ] } \ No newline at end of file From dc86f1bdcb1e060badc524e2e1f8a256efa201fd Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Fri, 3 May 2024 20:03:31 -0500 Subject: [PATCH 21/24] advancements --- .../mixin/item/PotionItemMixin.java | 5 + .../ParadiseLostTreePlacedFeatures.java | 2 +- .../assets/paradise_lost/lang/en_us.json | 18 ++- .../advancements/bloomed_calcite_craft.json | 53 +++++++ .../advancements/enter_paradise_lost.json | 2 +- .../advancements/glazed_upgrade_find.json | 37 +++++ .../advancements/glazed_upgrade_use.json | 141 ++++++++++++++++++ .../advancements/nitra_bunch.json | 37 +++++ .../advancements/nitra_find.json | 37 +++++ .../data/paradise_lost/advancements/root.json | 2 +- .../advancements/surtrum_blast.json | 50 +++++++ .../recipes/golden_amber_tile.json | 1 + 12 files changed, 379 insertions(+), 6 deletions(-) create mode 100644 src/main/resources/data/paradise_lost/advancements/bloomed_calcite_craft.json create mode 100644 src/main/resources/data/paradise_lost/advancements/glazed_upgrade_find.json create mode 100644 src/main/resources/data/paradise_lost/advancements/glazed_upgrade_use.json create mode 100644 src/main/resources/data/paradise_lost/advancements/nitra_bunch.json create mode 100644 src/main/resources/data/paradise_lost/advancements/nitra_find.json create mode 100644 src/main/resources/data/paradise_lost/advancements/surtrum_blast.json diff --git a/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java b/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java index 949e0c24a..db5e5773a 100644 --- a/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java +++ b/src/main/java/net/id/paradiselost/mixin/item/PotionItemMixin.java @@ -1,6 +1,7 @@ package net.id.paradiselost.mixin.item; import net.id.paradiselost.blocks.ParadiseLostBlocks; +import net.minecraft.advancement.criterion.Criteria; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.entity.player.PlayerEntity; @@ -12,6 +13,7 @@ import net.minecraft.particle.ParticleTypes; import net.minecraft.potion.PotionUtil; import net.minecraft.potion.Potions; +import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.util.ActionResult; @@ -35,6 +37,9 @@ public void useOnBlock(ItemUsageContext context, CallbackInfoReturnable MIXED_TREES = register("mixed_trees", ParadiseLostTreeConfiguredFeatures.MIXED_TREES, CountMultilayerPlacementModifier.of(1), ChancePlacementModifier.of(30)); public static final RegistryEntry SPARSE_TREES = register("sparse_trees", ParadiseLostTreeConfiguredFeatures.SPARSE_TREES, CountMultilayerPlacementModifier.of(7), ChancePlacementModifier.of(100), CountPlacementModifier.of(UniformIntProvider.create(0, 2))); public static final RegistryEntry THICKET_TREES = register("thicket_trees", ParadiseLostTreeConfiguredFeatures.THICKET_TREES, CountMultilayerPlacementModifier.of(6), CountPlacementModifier.of(UniformIntProvider.create(0, 3))); - public static final RegistryEntry THICKET_MOTHER_AUREL_TREES = register("thicket_mother_aurel_trees", ParadiseLostTreeConfiguredFeatures.THICKET_MOTHER_AUREL_TREES, CountMultilayerPlacementModifier.of(1), ChancePlacementModifier.of(60)); + public static final RegistryEntry THICKET_MOTHER_AUREL_TREES = register("thicket_mother_aurel_trees", ParadiseLostTreeConfiguredFeatures.THICKET_MOTHER_AUREL_TREES, CountMultilayerPlacementModifier.of(2), ChancePlacementModifier.of(30)); public static final RegistryEntry RAINBOW_FOREST_TREES = register("wisteria_woods_trees", ParadiseLostTreeConfiguredFeatures.RAINBOW_FOREST_TREES, CountMultilayerPlacementModifier.of(17), CountPlacementModifier.of(UniformIntProvider.create(0, 4))); // Fallen leaves public static final RegistryEntry FALLEN_LEAVES = register("fallen_leaves", ParadiseLostTreeConfiguredFeatures.FALLEN_LEAVES, SPREAD_32_ABOVE, PlacedFeatures.MOTION_BLOCKING_HEIGHTMAP, CountPlacementModifier.of(3), ChancePlacementModifier.of(5), HeightmapPlacementModifier.of(Heightmap.Type.WORLD_SURFACE)); 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 a080218c5..81c8d6dac 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -476,20 +476,32 @@ "subtitles.paradise_lost.item.bloodstone.prick": "Bloodstone pricks", + "advancements.paradise_lost.bloomed_calcite_craft.title": "Healing Crystals", + "advancements.paradise_lost.bloomed_calcite_craft.description": "Douse a calcite block with a healing potion", "advancements.paradise_lost.consume_food.title": "Exotic Starter", "advancements.paradise_lost.consume_food.description": "Consume something from Paradise", "advancements.paradise_lost.enter_paradise_lost.title": "We Need to Go Higher", - "advancements.paradise_lost.enter_paradise_lost.description": "Build a frame of shimmering glowstone, flood it with water, and step into the light", - "advancements.paradise_lost.food_bowl_fill.title": "Not Your Average Birdfeeder", - "advancements.paradise_lost.food_bowl_fill.description": "Fill a feeding trough with raw meat for your Moas", + "advancements.paradise_lost.enter_paradise_lost.description": "Build a frame of Bloomed Calcite, flood it with water, and step into the light", "advancements.paradise_lost.float_up_paradise_lost.title": "To Infinity", "advancements.paradise_lost.float_up_paradise_lost.description": "Ride a levitating block to the sky limit", + "advancements.paradise_lost.food_bowl_fill.title": "Not Your Average Birdfeeder", + "advancements.paradise_lost.food_bowl_fill.description": "Fill a feeding trough with raw meat for your Moas", + "advancements.paradise_lost.glazed_upgrade_find.title": "Lost Art", + "advancements.paradise_lost.glazed_upgrade_find.description": "Find a Glazed Gold Upgrade in a Lost Vault", + "advancements.paradise_lost.glazed_upgrade_use.title": "Dunkin'", + "advancements.paradise_lost.glazed_upgrade_use.description": "Improve a piece of gold equipment with a Glazed Gold Upgrade", "advancements.paradise_lost.mother_aurel.title": "The Matriarch", "advancements.paradise_lost.mother_aurel.description": "Find a Mother Aurel Tree in a Highlands Thicket", "advancements.paradise_lost.mother_aurel_strip.title": "Stripping For Gold", "advancements.paradise_lost.mother_aurel_strip.description": "Strip a Mother Aurel log to collect its amber", + "advancements.paradise_lost.nitra_bunch.title": "Bundle of Joy", + "advancements.paradise_lost.nitra_bunch.description": "Create an explosive bundle of Nitra", + "advancements.paradise_lost.nitra_find.title": "Seeds of Wrath", + "advancements.paradise_lost.nitra_find.description": "Find a Nitra seed in an Aurel Tower", "advancements.paradise_lost.root.title": "Paradise Lost", "advancements.paradise_lost.root.description": "A hostile paradise in the sky, full of mystery and surprises", + "advancements.paradise_lost.surtrum_blast.title": "Is it getting hot in here?", + "advancements.paradise_lost.surtrum_blast.description": "Blast your way into a Meteorite and harvest some Surtrum", "advancements.paradise_lost.tame_moa.title": "Air Superiority", "advancements.paradise_lost.tame_moa.description": "Tame a wild Moa with raw meat", "advancements.paradise_lost.void_paradise_lost.title": "I've been falling, for 30 minutes!", diff --git a/src/main/resources/data/paradise_lost/advancements/bloomed_calcite_craft.json b/src/main/resources/data/paradise_lost/advancements/bloomed_calcite_craft.json new file mode 100644 index 000000000..789e165a4 --- /dev/null +++ b/src/main/resources/data/paradise_lost/advancements/bloomed_calcite_craft.json @@ -0,0 +1,53 @@ +{ + "display": { + "title": { + "translate": "advancements.paradise_lost.bloomed_calcite_craft.title" + }, + "description": { + "translate": "advancements.paradise_lost.bloomed_calcite_craft.description" + }, + "icon": { + "item": "paradise_lost:bloomed_calcite" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "douse": { + "trigger": "minecraft:item_used_on_block", + "conditions": { + "item": { + "item": "minecraft:potion" + }, + "location": { + "block": { + "blocks": [ + "minecraft:calcite" + ] + } + } + } + }, + "hold_bc": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:bloomed_calcite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "douse", + "hold_bc" + ] + ], + "parent": "minecraft:nether/brew_potion" +} diff --git a/src/main/resources/data/paradise_lost/advancements/enter_paradise_lost.json b/src/main/resources/data/paradise_lost/advancements/enter_paradise_lost.json index b81654dda..8c8c8d25b 100644 --- a/src/main/resources/data/paradise_lost/advancements/enter_paradise_lost.json +++ b/src/main/resources/data/paradise_lost/advancements/enter_paradise_lost.json @@ -1,5 +1,5 @@ { - "parent": "minecraft:story/enter_the_nether", + "parent": "paradise_lost:bloomed_calcite_craft", "display": { "icon": { "item": "paradise_lost:bloomed_calcite" diff --git a/src/main/resources/data/paradise_lost/advancements/glazed_upgrade_find.json b/src/main/resources/data/paradise_lost/advancements/glazed_upgrade_find.json new file mode 100644 index 000000000..b72d00ac4 --- /dev/null +++ b/src/main/resources/data/paradise_lost/advancements/glazed_upgrade_find.json @@ -0,0 +1,37 @@ +{ + "parent": "paradise_lost:mother_aurel_strip", + "criteria": { + "upgrade": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_upgrade_smithing_template" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.paradise_lost.glazed_upgrade_find.description" + }, + "frame": "task", + "hidden": false, + "icon": { + "item": "paradise_lost:glazed_gold_upgrade_smithing_template" + }, + "show_toast": true, + "title": { + "translate": "advancements.paradise_lost.glazed_upgrade_find.title" + } + }, + "requirements": [ + [ + "upgrade" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/advancements/glazed_upgrade_use.json b/src/main/resources/data/paradise_lost/advancements/glazed_upgrade_use.json new file mode 100644 index 000000000..a07dc668a --- /dev/null +++ b/src/main/resources/data/paradise_lost/advancements/glazed_upgrade_use.json @@ -0,0 +1,141 @@ +{ + "parent": "paradise_lost:glazed_upgrade_find", + "criteria": { + "shovel": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_shovel" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "pickaxe": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_pickaxe" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "axe": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_axe" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "sword": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_sword" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "hoe": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_hoe" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "helmet": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_helmet" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "chestplate": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_chestplate" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "leggings": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_leggings" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "boots": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:glazed_gold_boots" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.paradise_lost.glazed_upgrade_use.description" + }, + "frame": "task", + "hidden": false, + "icon": { + "item": "paradise_lost:glazed_gold_pickaxe" + }, + "show_toast": true, + "title": { + "translate": "advancements.paradise_lost.glazed_upgrade_use.title" + } + }, + "requirements": [ + [ + "shovel", + "pickaxe", + "axe", + "sword", + "hoe", + "helmet", + "chestplate", + "leggings", + "boots" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/advancements/nitra_bunch.json b/src/main/resources/data/paradise_lost/advancements/nitra_bunch.json new file mode 100644 index 000000000..ecbf696bf --- /dev/null +++ b/src/main/resources/data/paradise_lost/advancements/nitra_bunch.json @@ -0,0 +1,37 @@ +{ + "parent": "paradise_lost:nitra_find", + "criteria": { + "find": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:nitra_bunch" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.paradise_lost.nitra_bunch.description" + }, + "frame": "task", + "hidden": false, + "icon": { + "item": "paradise_lost:nitra_bunch" + }, + "show_toast": true, + "title": { + "translate": "advancements.paradise_lost.nitra_bunch.title" + } + }, + "requirements": [ + [ + "find" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/advancements/nitra_find.json b/src/main/resources/data/paradise_lost/advancements/nitra_find.json new file mode 100644 index 000000000..a341f2cfc --- /dev/null +++ b/src/main/resources/data/paradise_lost/advancements/nitra_find.json @@ -0,0 +1,37 @@ +{ + "parent": "paradise_lost:root", + "criteria": { + "find": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:nitra" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.paradise_lost.nitra_find.description" + }, + "frame": "task", + "hidden": false, + "icon": { + "item": "paradise_lost:nitra" + }, + "show_toast": true, + "title": { + "translate": "advancements.paradise_lost.nitra_find.title" + } + }, + "requirements": [ + [ + "find" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/advancements/root.json b/src/main/resources/data/paradise_lost/advancements/root.json index d4ed3f78e..bf0a1a28d 100644 --- a/src/main/resources/data/paradise_lost/advancements/root.json +++ b/src/main/resources/data/paradise_lost/advancements/root.json @@ -1,7 +1,7 @@ { "display": { "icon": { - "item": "paradise_lost:highlands_grass" + "item": "paradise_lost:chiseled_floestone" }, "title": { "translate": "advancements.paradise_lost.root.title", diff --git a/src/main/resources/data/paradise_lost/advancements/surtrum_blast.json b/src/main/resources/data/paradise_lost/advancements/surtrum_blast.json new file mode 100644 index 000000000..953f89488 --- /dev/null +++ b/src/main/resources/data/paradise_lost/advancements/surtrum_blast.json @@ -0,0 +1,50 @@ +{ + "parent": "paradise_lost:nitra_bunch", + "criteria": { + "raw": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:raw_surtrum" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "block": { + "conditions": { + "items": [ + { + "items": [ + "paradise_lost:surtrum" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.paradise_lost.surtrum_blast.description" + }, + "frame": "task", + "hidden": false, + "icon": { + "item": "paradise_lost:surtrum" + }, + "show_toast": true, + "title": { + "translate": "advancements.paradise_lost.surtrum_blast.title" + } + }, + "requirements": [ + [ + "raw", + "block" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/paradise_lost/recipes/golden_amber_tile.json b/src/main/resources/data/paradise_lost/recipes/golden_amber_tile.json index b182b5338..22460dfb3 100644 --- a/src/main/resources/data/paradise_lost/recipes/golden_amber_tile.json +++ b/src/main/resources/data/paradise_lost/recipes/golden_amber_tile.json @@ -10,6 +10,7 @@ } }, "result": { + "count": 4, "item": "paradise_lost:golden_amber_tile" } } \ No newline at end of file From 5e3a83fa5a37e3b978e6105299fa814ba4f3781d Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Fri, 3 May 2024 20:06:15 -0500 Subject: [PATCH 22/24] bump version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index ed26b15eb..017d3e7d1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # suppress inspection "UnusedProperty" for whole file org.gradle.jvmargs=-Xmx2G -paradiseLostVersion=2.1.0-beta+1.19.2 +paradiseLostVersion=2.2.0-beta+1.19.2 minecraftVersion=1.19.2 yarnVersion=1.19.2+build.28 From 6c520626070568bc39b539b5cd7105450f4ea53f Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Fri, 3 May 2024 20:37:50 -0500 Subject: [PATCH 23/24] Tree tap item tweak --- .../paradise_lost/models/item/tree_tap.json | 5 ++++- .../paradise_lost/textures/item/tree_tap.png | Bin 0 -> 305 bytes .../data/paradise_lost/recipes/tree_tap.json | 10 +++------- 3 files changed, 7 insertions(+), 8 deletions(-) create mode 100644 src/main/resources/assets/paradise_lost/textures/item/tree_tap.png diff --git a/src/main/resources/assets/paradise_lost/models/item/tree_tap.json b/src/main/resources/assets/paradise_lost/models/item/tree_tap.json index 8fd0579d8..e5d3da519 100644 --- a/src/main/resources/assets/paradise_lost/models/item/tree_tap.json +++ b/src/main/resources/assets/paradise_lost/models/item/tree_tap.json @@ -1,3 +1,6 @@ { - "parent": "paradise_lost:block/tree_tap" + "parent": "item/generated", + "textures": { + "layer0": "paradise_lost:item/tree_tap" + } } diff --git a/src/main/resources/assets/paradise_lost/textures/item/tree_tap.png b/src/main/resources/assets/paradise_lost/textures/item/tree_tap.png new file mode 100644 index 0000000000000000000000000000000000000000..357e9035e695d374fc8c74e2710cae7ffe7c089e GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|UVFMYhFJ6_ zCrIo&aN6PZ{^^a^>YZLmTx8{WBJyAslkXKt2_W#hSAAx~+e4;2TQ%4uPH6s_F7zm= z;@dlEW*|7cx<6j=QP(1#XI`5uc%2Lncto~2#!Z<0@X6leJmT;6yOm1vH5ZSCO$K#;Ib&%Ne&<7R`TPS%H@fla_$07- pa&R3qRnk!s0y)>+Px>%07(OzDsok65d;sWe22WQ%mvv4FO#rY$bjbh! literal 0 HcmV?d00001 diff --git a/src/main/resources/data/paradise_lost/recipes/tree_tap.json b/src/main/resources/data/paradise_lost/recipes/tree_tap.json index 61b0199ea..ca1ad6947 100644 --- a/src/main/resources/data/paradise_lost/recipes/tree_tap.json +++ b/src/main/resources/data/paradise_lost/recipes/tree_tap.json @@ -1,16 +1,12 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - "SSS", - " S", - "PPP" + "PPP", + " P" ], "key": { "P": { - "item": "paradise_lost:aurel_planks" - }, - "S": { - "item": "minecraft:stick" + "tag": "minecraft:planks" } }, "result": { From c3c0d30e3ae35851a49d00f75a8bc0f93ee07c75 Mon Sep 17 00:00:00 2001 From: Maxx <53229958+MBatt1@users.noreply.github.com> Date: Sat, 4 May 2024 16:03:43 -0500 Subject: [PATCH 24/24] remove extra models --- .../models/block/crystal_chest.json | 5 - .../models/block/golden_oak_chest.json | 5 - .../models/block/orange_chest.json | 5 - .../models/block/skyroot_chest.json | 5 - .../models/block/wisteria_chest.json | 5 - .../models/item/crystal_chest.json | 110 ------------------ .../models/item/golden_oak_chest.json | 110 ------------------ .../models/item/orange_chest.json | 110 ------------------ .../models/item/skyroot_chest.json | 110 ------------------ .../models/item/wisteria_chest.json | 110 ------------------ 10 files changed, 575 deletions(-) delete mode 100644 src/main/resources/assets/paradise_lost/models/block/crystal_chest.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/golden_oak_chest.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/orange_chest.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/skyroot_chest.json delete mode 100644 src/main/resources/assets/paradise_lost/models/block/wisteria_chest.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/crystal_chest.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/golden_oak_chest.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/orange_chest.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/skyroot_chest.json delete mode 100644 src/main/resources/assets/paradise_lost/models/item/wisteria_chest.json diff --git a/src/main/resources/assets/paradise_lost/models/block/crystal_chest.json b/src/main/resources/assets/paradise_lost/models/block/crystal_chest.json deleted file mode 100644 index 280c44ee7..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/crystal_chest.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "paradise_lost:block/floestone" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/golden_oak_chest.json b/src/main/resources/assets/paradise_lost/models/block/golden_oak_chest.json deleted file mode 100644 index c25f0cb16..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/golden_oak_chest.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "paradise_lost:block/mother_aurel_planks" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/orange_chest.json b/src/main/resources/assets/paradise_lost/models/block/orange_chest.json deleted file mode 100644 index 18dd79ada..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/orange_chest.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "paradise_lost:block/orange_planks" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/skyroot_chest.json b/src/main/resources/assets/paradise_lost/models/block/skyroot_chest.json deleted file mode 100644 index b428148b0..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/skyroot_chest.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "paradise_lost:block/aurel_planks" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/block/wisteria_chest.json b/src/main/resources/assets/paradise_lost/models/block/wisteria_chest.json deleted file mode 100644 index 55ad9782a..000000000 --- a/src/main/resources/assets/paradise_lost/models/block/wisteria_chest.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "paradise_lost:block/wisteria_planks" - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/crystal_chest.json b/src/main/resources/assets/paradise_lost/models/item/crystal_chest.json deleted file mode 100644 index 247e1a005..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/crystal_chest.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "parent": "builtin/entity", - "textures": { - "particle": "paradise_lost:block/floestone" - }, - "display": { - "gui": { - "rotation": [ - 30, - 45, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.625, - 0.625, - 0.625 - ] - }, - "ground": { - "rotation": [ - 0, - 0, - 0 - ], - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "head": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 1, - 1, - 1 - ] - }, - "fixed": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.5, - 0.5, - 0.5 - ] - }, - "thirdperson_righthand": { - "rotation": [ - 75, - 315, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 315, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - } - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/golden_oak_chest.json b/src/main/resources/assets/paradise_lost/models/item/golden_oak_chest.json deleted file mode 100644 index abc68037f..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/golden_oak_chest.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "parent": "builtin/entity", - "textures": { - "particle": "paradise_lost:block/mother_aurel_planks" - }, - "display": { - "gui": { - "rotation": [ - 30, - 45, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.625, - 0.625, - 0.625 - ] - }, - "ground": { - "rotation": [ - 0, - 0, - 0 - ], - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "head": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 1, - 1, - 1 - ] - }, - "fixed": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.5, - 0.5, - 0.5 - ] - }, - "thirdperson_righthand": { - "rotation": [ - 75, - 315, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 315, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - } - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/orange_chest.json b/src/main/resources/assets/paradise_lost/models/item/orange_chest.json deleted file mode 100644 index 4b85ef263..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/orange_chest.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "parent": "builtin/entity", - "textures": { - "particle": "paradise_lost:block/orange_planks" - }, - "display": { - "gui": { - "rotation": [ - 30, - 45, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.625, - 0.625, - 0.625 - ] - }, - "ground": { - "rotation": [ - 0, - 0, - 0 - ], - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "head": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 1, - 1, - 1 - ] - }, - "fixed": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.5, - 0.5, - 0.5 - ] - }, - "thirdperson_righthand": { - "rotation": [ - 75, - 315, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 315, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - } - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/skyroot_chest.json b/src/main/resources/assets/paradise_lost/models/item/skyroot_chest.json deleted file mode 100644 index 0c5b7a773..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/skyroot_chest.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "parent": "builtin/entity", - "textures": { - "particle": "paradise_lost:block/aurel_planks" - }, - "display": { - "gui": { - "rotation": [ - 30, - 45, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.625, - 0.625, - 0.625 - ] - }, - "ground": { - "rotation": [ - 0, - 0, - 0 - ], - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "head": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 1, - 1, - 1 - ] - }, - "fixed": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.5, - 0.5, - 0.5 - ] - }, - "thirdperson_righthand": { - "rotation": [ - 75, - 315, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 315, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - } - } -} diff --git a/src/main/resources/assets/paradise_lost/models/item/wisteria_chest.json b/src/main/resources/assets/paradise_lost/models/item/wisteria_chest.json deleted file mode 100644 index 085b81af5..000000000 --- a/src/main/resources/assets/paradise_lost/models/item/wisteria_chest.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "parent": "builtin/entity", - "textures": { - "particle": "paradise_lost:block/wisteria_planks" - }, - "display": { - "gui": { - "rotation": [ - 30, - 45, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.625, - 0.625, - 0.625 - ] - }, - "ground": { - "rotation": [ - 0, - 0, - 0 - ], - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "head": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 1, - 1, - 1 - ] - }, - "fixed": { - "rotation": [ - 0, - 180, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.5, - 0.5, - 0.5 - ] - }, - "thirdperson_righthand": { - "rotation": [ - 75, - 315, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 315, - 0 - ], - "translation": [ - 0, - 0, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - } - } -}