From 149b8e9e270b07e22892dbcadf04e39450ad754f Mon Sep 17 00:00:00 2001 From: Hugman Date: Fri, 9 Jan 2026 21:58:34 +0100 Subject: [PATCH] Add shelves --- .../textures/block/dark_amaranth_shelf.png | Bin 0 -> 537 bytes .../promenade/textures/block/maple_shelf.png | Bin 0 -> 549 bytes .../promenade/textures/block/palm_shelf.png | Bin 0 -> 495 bytes .../promenade/textures/block/sakura_shelf.png | Bin 0 -> 472 bytes .../provider/PromenadeBlockLootTableProvider.java | 4 ++++ .../data/provider/PromenadeBlockTagProvider.java | 1 + .../data/provider/PromenadeItemTagProvider.java | 1 + .../data/provider/PromenadeModelProvider.java | 4 ++++ .../data/provider/PromenadeRecipeGenerator.java | 4 ++++ .../hugman/promenade/block/PromenadeBlocks.java | 9 +++++---- .../block/entity/PromenadeBlockEntities.java | 5 +++++ .../promenade/block/helper/BlockFactory.java | 6 ++++++ .../itemgroup/PromenadeItemGroupAdditions.java | 4 ++++ .../promenade/registry/PromenadeFlammables.java | 3 +++ 14 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 src/client/resources/assets/promenade/textures/block/dark_amaranth_shelf.png create mode 100644 src/client/resources/assets/promenade/textures/block/maple_shelf.png create mode 100644 src/client/resources/assets/promenade/textures/block/palm_shelf.png create mode 100644 src/client/resources/assets/promenade/textures/block/sakura_shelf.png diff --git a/src/client/resources/assets/promenade/textures/block/dark_amaranth_shelf.png b/src/client/resources/assets/promenade/textures/block/dark_amaranth_shelf.png new file mode 100644 index 0000000000000000000000000000000000000000..859f7867fee87c82e264fbb225675893af378c30 GIT binary patch literal 537 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|Yyx~jTtRX+ zVg4TR;Q{HK7>q@(X78j|p}?OkN4JGuzX}F~p)bcVhRXHwqjs7Y(dqSeGmQ|G$2_ zLI2!{?9dL~wTC9&a>$oks~A6Z9V;}DO8+Z%^BHx4g%Y;oVUXhVnNa>Yw656dL% zwmUAg>wA3IFvhdE^4X=M%bv+KRx&0@EbQ{QVsfRjNjdvYzmYHJ)R~K)*;-!K5pu}m zKQLvAeX>iNKig#$1A%uB3(SMI-`KoH^JeD(kFA$xewDgs+C$0We`}X3hORp`ap#dMPfI1%oe^CxKfSl^)YIqH z`|nu!uW*0nbLX7%_1=45wer?|syw{%wcCG{r2n$r6MC=R+rQI?@BBX3c`>JEr`?U0 z0n*)h7U`AZ;yW$=6j`6DFVfVn`lkEoNzmsO^>+2?yDpaBzxm62`jZdx-?-I&J@IHf Q2#gj6Pgg&ebxsLQ04w|e8UO$Q literal 0 HcmV?d00001 diff --git a/src/client/resources/assets/promenade/textures/block/maple_shelf.png b/src/client/resources/assets/promenade/textures/block/maple_shelf.png new file mode 100644 index 0000000000000000000000000000000000000000..ce88e92587ff7dcfb4870ac071fd8fd9c637b562 GIT binary patch literal 549 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|oC178T!D09 zxMx+Ie_di=LsD>adPG}hR9{|Pe?h|JlH@5R$+N377S(4jZpvBSlDDe0V0C-p=I-L1 z6U+BbsoFoS`tYoVj^M|ZKvTp@g8YIR{$m3njlGM3cISJ#IEGmC=1y#!w8VhJrE})o z(+(oihyMS6C2F-RYi;V*mrGnLCYAISn76pT(DL_J`t`HMPHg3>zb`#QRDEoY_=LUn z_m5?iKg`t4y2al1Yf#o!ktH72ugauFY-b-X9!+}50#B>GiUF5-b?z@%GI&SxFEx(*#~U%O#Lz|y#x zl3Pu`#dwC#(9N4z>*9CNkS)kY)w1R6G{(cn6razU&M`k%WktLCOOIC%R|Zu6TBESd z!(l>s{jW6-o^>bA73})=sVWO+vIxqe%4D*_1>$u->j*8+xYm& zg~u09x!6BFvHf$cU2WKk-zUF6@Oih-@5?&(;@f$@>mI&-?ef2(=f_^THub7=bx$`H z?l^z8=6TS)EnjON7CaA%D>?LYTY165=EM5i_x`n>{%O(gJ7>!EOttS=-r0Gjb6xTC e7vXv*AKELN)|0=yI5HX-ISihzelF{r5}E*u7z*?N literal 0 HcmV?d00001 diff --git a/src/client/resources/assets/promenade/textures/block/palm_shelf.png b/src/client/resources/assets/promenade/textures/block/palm_shelf.png new file mode 100644 index 0000000000000000000000000000000000000000..cfca9c59823fc151a1492cafc03fe40a27c0b447 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|j01c^T!D0< zgJ7Mf*rYJoN#Sx+!eyt%Db0vhoR_MxAW>~ew%)1&qxB`Gn~F>~R$6SXvEJF_(7Aly zMxZvqk|4iehW}_lK-6I&&>mk;7sn8b-qJ}IHyu{saBhmu2hJ; zxk4sLK}hcIVVy;q3QGR5Tl5rn>qX7{cu1Q$ru4e&*8T5aNUi!??H;b_6tennP(*jy z#XD!CnY)AzI3`FKKFFG7Ub5Xpqe~#2H$mNi-+6mM@%Lp~teGE7wwTO#`S9-L3wLtf zOt_z##d08IZTa_i_ih=aM86R=UV3o%a`in+8ATmZKHCM!Jv8Ly4O%e2U(zUY*#%`A z|IBC8*er|wCSN<`bNA5(j@QA<6O;G9R?@D1v+KmiIjkFA&tbh<-_-F;XU0M0=f8t5 z&p8@#G;-&W3nuA>q3ddFE8Z0R{P|CA`#I|?n~k`)f4*XxUKpFV=95k0D=pRkpW`3D z_jTaPm6;dA*1k1A;i;3x<9qyk+S8vLkZwQ8D&8)?ee=E|Pv$V7&@AgUGGTfr9j{%R dA2aE&yoIHNeV>9<2QbtbJYD@<);T3K0RV~&+Is*1 literal 0 HcmV?d00001 diff --git a/src/client/resources/assets/promenade/textures/block/sakura_shelf.png b/src/client/resources/assets/promenade/textures/block/sakura_shelf.png new file mode 100644 index 0000000000000000000000000000000000000000..92d35d700c888b14e756e8a6bf69bcea940c3b34 GIT binary patch literal 472 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|R04cLT!FNq zw4k|yh@G;yld6QfuB@+-qMwmsn1yn*je5MjX0o$R-H$CQKy^GNL4Lsu{}F)mNPrs9 zOfOFt#}JF&+)0s>m=$@PdByG({r~O9Icv$nHhw`#%K6+#;=OoU1h0ni>mc?|zA|o_$u8BT&?8>i+xtj#hPFy%Tja?U$HP?)!x{yOxXIsQmlx z_;qvf_t{S)f2d7=uXnM$`15KzQMvoxOq2h}O+PrHtgxbZrp&o&X7%Y}M!)L{Ep{3# zP;WoWI{R?{?X3S#4#^c1S?nw^s|1o?g#P`#A6{Rq*lw@ECwk?B%LFrEXft@a`njxg HN@xNAcBjL; literal 0 HcmV?d00001 diff --git a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeBlockLootTableProvider.java b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeBlockLootTableProvider.java index 0a01a9c9..5b99583f 100644 --- a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeBlockLootTableProvider.java +++ b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeBlockLootTableProvider.java @@ -108,6 +108,7 @@ public void generate() { addDrop(PromenadeBlocks.SAKURA_PRESSURE_PLATE); addDrop(PromenadeBlocks.SAKURA_SIGN); addDrop(PromenadeBlocks.SAKURA_HANGING_SIGN); + addDrop(PromenadeBlocks.SAKURA_SHELF); addDrop(PromenadeBlocks.BLUSH_SAKURA_SAPLING); addPottedPlantDrops(PromenadeBlocks.POTTED_BLUSH_SAKURA_SAPLING); @@ -136,6 +137,7 @@ public void generate() { addDrop(PromenadeBlocks.MAPLE_PRESSURE_PLATE); addDrop(PromenadeBlocks.MAPLE_SIGN); addDrop(PromenadeBlocks.MAPLE_HANGING_SIGN); + addDrop(PromenadeBlocks.MAPLE_SHELF); addDrop(PromenadeBlocks.SAP_MAPLE_SAPLING); addPottedPlantDrops(PromenadeBlocks.POTTED_SAP_MAPLE_SAPLING); @@ -180,6 +182,7 @@ public void generate() { addDrop(PromenadeBlocks.PALM_PRESSURE_PLATE); addDrop(PromenadeBlocks.PALM_SIGN); addDrop(PromenadeBlocks.PALM_HANGING_SIGN); + addDrop(PromenadeBlocks.PALM_SHELF); addDrop(PromenadeBlocks.PALM_SAPLING); addPottedPlantDrops(PromenadeBlocks.POTTED_PALM_SAPLING); @@ -208,6 +211,7 @@ public void generate() { addDrop(PromenadeBlocks.DARK_AMARANTH_PRESSURE_PLATE); addDrop(PromenadeBlocks.DARK_AMARANTH_SIGN); addDrop(PromenadeBlocks.DARK_AMARANTH_HANGING_SIGN); + addDrop(PromenadeBlocks.DARK_AMARANTH_SHELF); addDrop(PromenadeBlocks.DARK_AMARANTH_FUNGUS); addPottedPlantDrops(PromenadeBlocks.POTTED_DARK_AMARANTH_FUNGUS); diff --git a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeBlockTagProvider.java b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeBlockTagProvider.java index e2128614..507b0695 100644 --- a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeBlockTagProvider.java +++ b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeBlockTagProvider.java @@ -130,6 +130,7 @@ protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { valueLookupBuilder(BlockTags.WALL_SIGNS).add(SAKURA_WALL_SIGN, MAPLE_WALL_SIGN, PALM_WALL_SIGN, DARK_AMARANTH_WALL_SIGN); valueLookupBuilder(BlockTags.CEILING_HANGING_SIGNS).add(SAKURA_HANGING_SIGN, MAPLE_HANGING_SIGN, PALM_HANGING_SIGN, DARK_AMARANTH_HANGING_SIGN); valueLookupBuilder(BlockTags.WALL_HANGING_SIGNS).add(SAKURA_WALL_HANGING_SIGN, MAPLE_WALL_HANGING_SIGN, PALM_WALL_HANGING_SIGN, DARK_AMARANTH_WALL_HANGING_SIGN); + valueLookupBuilder(BlockTags.WOODEN_SHELVES).add(SAKURA_SHELF, MAPLE_SHELF, PALM_SHELF, DARK_AMARANTH_SHELF); valueLookupBuilder(BlockTags.LEAVES).add( VERMILION_MAPLE_LEAVES, diff --git a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeItemTagProvider.java b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeItemTagProvider.java index e63aa61c..564f7782 100644 --- a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeItemTagProvider.java +++ b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeItemTagProvider.java @@ -62,6 +62,7 @@ protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { copy(BlockTags.SOUL_FIRE_BASE_BLOCKS, ItemTags.SOUL_FIRE_BASE_BLOCKS); copy(BlockTags.STANDING_SIGNS, ItemTags.SIGNS); copy(BlockTags.CEILING_HANGING_SIGNS, ItemTags.HANGING_SIGNS); + copy(BlockTags.WOODEN_SHELVES, ItemTags.WOODEN_SHELVES); valueLookupBuilder(ItemTags.BOATS).add(SAKURA_BOAT, MAPLE_BOAT, PALM_BOAT); valueLookupBuilder(ItemTags.CHEST_BOATS).add(SAKURA_CHEST_BOAT, MAPLE_CHEST_BOAT, PALM_CHEST_BOAT); diff --git a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeModelProvider.java b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeModelProvider.java index eab2a652..907f8a1d 100644 --- a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeModelProvider.java +++ b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeModelProvider.java @@ -109,6 +109,7 @@ public void generateBlockStateModels(BlockStateModelGenerator gen) { gen.createLogTexturePool(PromenadeBlocks.SAKURA_LOG).uvLockedLog(PromenadeBlocks.SAKURA_LOG).wood(PromenadeBlocks.SAKURA_WOOD); gen.createLogTexturePool(PromenadeBlocks.STRIPPED_SAKURA_LOG).uvLockedLog(PromenadeBlocks.STRIPPED_SAKURA_LOG).wood(PromenadeBlocks.STRIPPED_SAKURA_WOOD); gen.registerHangingSign(PromenadeBlocks.STRIPPED_SAKURA_LOG, PromenadeBlocks.SAKURA_HANGING_SIGN, PromenadeBlocks.SAKURA_WALL_HANGING_SIGN); + gen.registerShelf(PromenadeBlocks.SAKURA_SHELF, PromenadeBlocks.STRIPPED_SAKURA_LOG); gen.registerFlowerPotPlantAndItem(PromenadeBlocks.BLUSH_SAKURA_SAPLING, PromenadeBlocks.POTTED_BLUSH_SAKURA_SAPLING, BlockStateModelGenerator.CrossType.NOT_TINTED); gen.registerFlowerPotPlantAndItem(PromenadeBlocks.COTTON_SAKURA_SAPLING, PromenadeBlocks.POTTED_COTTON_SAKURA_SAPLING, BlockStateModelGenerator.CrossType.NOT_TINTED); gen.registerSingleton(PromenadeBlocks.BLUSH_SAKURA_BLOSSOMS, TexturedModel.LEAVES); @@ -122,6 +123,7 @@ public void generateBlockStateModels(BlockStateModelGenerator gen) { registerDripLog(gen, PromenadeBlocks.STRIPPED_MAPLE_LOG); gen.createLogTexturePool(PromenadeBlocks.STRIPPED_MAPLE_LOG).wood(PromenadeBlocks.STRIPPED_MAPLE_WOOD); gen.registerHangingSign(PromenadeBlocks.STRIPPED_MAPLE_LOG, PromenadeBlocks.MAPLE_HANGING_SIGN, PromenadeBlocks.MAPLE_WALL_HANGING_SIGN); + gen.registerShelf(PromenadeBlocks.MAPLE_SHELF, PromenadeBlocks.STRIPPED_MAPLE_LOG); gen.registerFlowerPotPlantAndItem(PromenadeBlocks.SAP_MAPLE_SAPLING, PromenadeBlocks.POTTED_SAP_MAPLE_SAPLING, BlockStateModelGenerator.CrossType.NOT_TINTED); gen.registerFlowerPotPlantAndItem(PromenadeBlocks.VERMILION_MAPLE_SAPLING, PromenadeBlocks.POTTED_VERMILION_MAPLE_SAPLING, BlockStateModelGenerator.CrossType.NOT_TINTED); gen.registerFlowerPotPlantAndItem(PromenadeBlocks.FULVOUS_MAPLE_SAPLING, PromenadeBlocks.POTTED_FULVOUS_MAPLE_SAPLING, BlockStateModelGenerator.CrossType.NOT_TINTED); @@ -146,6 +148,7 @@ public void generateBlockStateModels(BlockStateModelGenerator gen) { gen.createLogTexturePool(PromenadeBlocks.PALM_LOG).log(PromenadeBlocks.PALM_LOG).wood(PromenadeBlocks.PALM_WOOD); gen.createLogTexturePool(PromenadeBlocks.STRIPPED_PALM_LOG).log(PromenadeBlocks.STRIPPED_PALM_LOG).wood(PromenadeBlocks.STRIPPED_PALM_WOOD); gen.registerHangingSign(PromenadeBlocks.STRIPPED_PALM_LOG, PromenadeBlocks.PALM_HANGING_SIGN, PromenadeBlocks.PALM_WALL_HANGING_SIGN); + gen.registerShelf(PromenadeBlocks.PALM_SHELF, PromenadeBlocks.STRIPPED_PALM_LOG); gen.registerFlowerPotPlantAndItem(PromenadeBlocks.PALM_SAPLING, PromenadeBlocks.POTTED_PALM_SAPLING, BlockStateModelGenerator.CrossType.NOT_TINTED); gen.registerTintedBlockAndItem(PromenadeBlocks.PALM_LEAVES, TexturedModel.LEAVES, PromenadeFoliageColors.PALM); this.registerSnowyLeaves(gen, PromenadeBlocks.SNOWY_PALM_LEAVES, PromenadeBlocks.PALM_LEAVES, PromenadeFoliageColors.PALM); @@ -159,6 +162,7 @@ public void generateBlockStateModels(BlockStateModelGenerator gen) { gen.createLogTexturePool(PromenadeBlocks.DARK_AMARANTH_STEM).stem(PromenadeBlocks.DARK_AMARANTH_STEM).wood(PromenadeBlocks.DARK_AMARANTH_HYPHAE); gen.createLogTexturePool(PromenadeBlocks.STRIPPED_DARK_AMARANTH_STEM).stem(PromenadeBlocks.STRIPPED_DARK_AMARANTH_STEM).wood(PromenadeBlocks.STRIPPED_DARK_AMARANTH_HYPHAE); gen.registerHangingSign(PromenadeBlocks.STRIPPED_DARK_AMARANTH_STEM, PromenadeBlocks.DARK_AMARANTH_HANGING_SIGN, PromenadeBlocks.DARK_AMARANTH_WALL_HANGING_SIGN); + gen.registerShelf(PromenadeBlocks.DARK_AMARANTH_SHELF, PromenadeBlocks.STRIPPED_DARK_AMARANTH_STEM); gen.registerFlowerPotPlantAndItem(PromenadeBlocks.DARK_AMARANTH_FUNGUS, PromenadeBlocks.POTTED_DARK_AMARANTH_FUNGUS, BlockStateModelGenerator.CrossType.NOT_TINTED); gen.registerSimpleCubeAll(PromenadeBlocks.SOUL_SHROOMLIGHT); diff --git a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeRecipeGenerator.java b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeRecipeGenerator.java index b1522e74..5a5d8637 100644 --- a/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeRecipeGenerator.java +++ b/src/datagen/java/fr/hugman/promenade/data/provider/PromenadeRecipeGenerator.java @@ -89,6 +89,7 @@ public void generate() { this.offerBarkBlockRecipe(PromenadeBlocks.SAKURA_WOOD, PromenadeBlocks.SAKURA_LOG); this.offerBarkBlockRecipe(PromenadeBlocks.STRIPPED_SAKURA_WOOD, PromenadeBlocks.STRIPPED_SAKURA_LOG); this.offerHangingSignRecipe(PromenadeItems.SAKURA_HANGING_SIGN, PromenadeBlocks.STRIPPED_SAKURA_LOG); + this.offerShelfRecipe(PromenadeBlocks.SAKURA_SHELF, PromenadeBlocks.STRIPPED_SAKURA_LOG); this.offerSnowyLeavesRecipe(PromenadeBlocks.SNOWY_BLUSH_SAKURA_BLOSSOMS, PromenadeBlocks.BLUSH_SAKURA_BLOSSOMS); this.offerSnowyLeavesRecipe(PromenadeBlocks.SNOWY_COTTON_SAKURA_BLOSSOMS, PromenadeBlocks.COTTON_SAKURA_BLOSSOMS); this.offerLeafPileRecipe(PromenadeBlocks.BLUSH_SAKURA_BLOSSOM_PILE, PromenadeBlocks.BLUSH_SAKURA_BLOSSOM_PILE); @@ -100,6 +101,7 @@ public void generate() { this.offerBarkBlockRecipe(PromenadeBlocks.MAPLE_WOOD, PromenadeBlocks.MAPLE_LOG); this.offerBarkBlockRecipe(PromenadeBlocks.STRIPPED_MAPLE_WOOD, PromenadeBlocks.STRIPPED_MAPLE_LOG); this.offerHangingSignRecipe(PromenadeItems.MAPLE_HANGING_SIGN, PromenadeBlocks.STRIPPED_MAPLE_LOG); + this.offerShelfRecipe(PromenadeBlocks.MAPLE_SHELF, PromenadeBlocks.STRIPPED_MAPLE_LOG); this.offerSnowyLeavesRecipe(PromenadeBlocks.SNOWY_SAP_MAPLE_LEAVES, PromenadeBlocks.SAP_MAPLE_LEAVES); this.offerSnowyLeavesRecipe(PromenadeBlocks.SNOWY_VERMILION_MAPLE_LEAVES, PromenadeBlocks.VERMILION_MAPLE_LEAVES); this.offerSnowyLeavesRecipe(PromenadeBlocks.SNOWY_FULVOUS_MAPLE_LEAVES, PromenadeBlocks.FULVOUS_MAPLE_LEAVES); @@ -119,6 +121,7 @@ public void generate() { this.offerBarkBlockRecipe(PromenadeBlocks.PALM_WOOD, PromenadeBlocks.PALM_LOG); this.offerBarkBlockRecipe(PromenadeBlocks.STRIPPED_PALM_WOOD, PromenadeBlocks.STRIPPED_PALM_LOG); this.offerHangingSignRecipe(PromenadeItems.PALM_HANGING_SIGN, PromenadeBlocks.STRIPPED_PALM_LOG); + this.offerShelfRecipe(PromenadeBlocks.PALM_SHELF, PromenadeBlocks.STRIPPED_PALM_LOG); this.offerSnowyLeavesRecipe(PromenadeBlocks.SNOWY_PALM_LEAVES, PromenadeBlocks.PALM_LEAVES); this.offerLeafPileRecipe(PromenadeBlocks.PALM_LEAF_PILE, PromenadeBlocks.PALM_LEAVES); this.offerBoatRecipe(PromenadeItems.PALM_BOAT, PromenadeBlocks.PALM_PLANKS); @@ -128,6 +131,7 @@ public void generate() { this.offerBarkBlockRecipe(PromenadeBlocks.DARK_AMARANTH_HYPHAE, PromenadeBlocks.DARK_AMARANTH_STEM); this.offerBarkBlockRecipe(PromenadeBlocks.STRIPPED_DARK_AMARANTH_HYPHAE, PromenadeBlocks.STRIPPED_DARK_AMARANTH_STEM); this.offerHangingSignRecipe(PromenadeItems.DARK_AMARANTH_HANGING_SIGN, PromenadeBlocks.STRIPPED_DARK_AMARANTH_STEM); + this.offerShelfRecipe(PromenadeBlocks.DARK_AMARANTH_SHELF, PromenadeBlocks.STRIPPED_DARK_AMARANTH_STEM); this.offerStonecuttingRecipe(RecipeCategory.BUILDING_BLOCKS, PromenadeBlocks.MOAI, Blocks.TUFF); diff --git a/src/main/java/fr/hugman/promenade/block/PromenadeBlocks.java b/src/main/java/fr/hugman/promenade/block/PromenadeBlocks.java index dfcc16aa..f78b6d79 100644 --- a/src/main/java/fr/hugman/promenade/block/PromenadeBlocks.java +++ b/src/main/java/fr/hugman/promenade/block/PromenadeBlocks.java @@ -12,10 +12,7 @@ import fr.hugman.promenade.tag.PromenadeBlockTags; import fr.hugman.promenade.world.PromenadeSaplingGenerators; import fr.hugman.promenade.world.gen.feature.PromenadeConfiguredFeatures; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.block.MapColor; +import net.minecraft.block.*; import net.minecraft.block.enums.NoteBlockInstrument; import net.minecraft.block.piston.PistonBehavior; import net.minecraft.entity.EquipmentSlot; @@ -115,6 +112,7 @@ public class PromenadeBlocks { public static final Block SAKURA_WALL_SIGN = register("sakura_wall_sign", BlockFactory.wallSign(SAKURA_PLANKS, PromenadeWoodTypes.SAKURA)); public static final Block SAKURA_HANGING_SIGN = register("sakura_hanging_sign", BlockFactory.hangingSign(SAKURA_PLANKS, PromenadeWoodTypes.SAKURA, BlockSoundGroup.CHERRY_WOOD_HANGING_SIGN)); public static final Block SAKURA_WALL_HANGING_SIGN = register("sakura_wall_hanging_sign", BlockFactory.wallHangingSign(SAKURA_PLANKS, PromenadeWoodTypes.SAKURA, BlockSoundGroup.CHERRY_WOOD_HANGING_SIGN)); + public static final Block SAKURA_SHELF = register("sakura_shelf", BlockFactory.shelf(SAKURA_PLANKS)); public static final Block BLUSH_SAKURA_SAPLING = register("blush_sakura_sapling", BlockFactory.sapling(PromenadeMapColors.BLUSH_BLOSSOMS, PromenadeSaplingGenerators.BLUSH_SAKURA)); public static final Block POTTED_BLUSH_SAKURA_SAPLING = register("potted_blush_sakura_sapling", BlockFactory.pot(BLUSH_SAKURA_SAPLING)); @@ -150,6 +148,7 @@ public class PromenadeBlocks { public static final Block MAPLE_WALL_SIGN = register("maple_wall_sign", BlockFactory.wallSign(MAPLE_PLANKS, PromenadeWoodTypes.MAPLE)); public static final Block MAPLE_HANGING_SIGN = register("maple_hanging_sign", BlockFactory.hangingSign(MAPLE_PLANKS, PromenadeWoodTypes.MAPLE, BlockSoundGroup.CHERRY_WOOD_HANGING_SIGN)); public static final Block MAPLE_WALL_HANGING_SIGN = register("maple_wall_hanging_sign", BlockFactory.wallHangingSign(MAPLE_PLANKS, PromenadeWoodTypes.MAPLE, BlockSoundGroup.CHERRY_WOOD_HANGING_SIGN)); + public static final Block MAPLE_SHELF = register("maple_shelf", BlockFactory.shelf(MAPLE_PLANKS)); public static final Block SAP_MAPLE_SAPLING = register("sap_maple_sapling", BlockFactory.sapling(PromenadeMapColors.SAP_MAPLE_LEAVES, PromenadeSaplingGenerators.SAP_MAPLE)); public static final Block POTTED_SAP_MAPLE_SAPLING = register("potted_sap_maple_sapling", BlockFactory.pot(SAP_MAPLE_SAPLING)); @@ -201,6 +200,7 @@ public class PromenadeBlocks { public static final Block PALM_WALL_SIGN = register("palm_wall_sign", BlockFactory.wallSign(PALM_PLANKS, PromenadeWoodTypes.PALM)); public static final Block PALM_HANGING_SIGN = register("palm_hanging_sign", BlockFactory.hangingSign(PALM_PLANKS, PromenadeWoodTypes.PALM, BlockSoundGroup.HANGING_SIGN)); public static final Block PALM_WALL_HANGING_SIGN = register("palm_wall_hanging_sign", BlockFactory.wallHangingSign(PALM_PLANKS, PromenadeWoodTypes.PALM, BlockSoundGroup.HANGING_SIGN)); + public static final Block PALM_SHELF = register("palm_shelf", BlockFactory.shelf(PALM_PLANKS)); public static final Block PALM_SAPLING = register("palm_sapling", BlockFactory.sapling(PromenadeMapColors.PALM_LEAVES, PromenadeSaplingGenerators.PALM, state -> state.isIn(BlockTags.SAND))); public static final Block POTTED_PALM_SAPLING = register("potted_palm_sapling", BlockFactory.pot(PALM_SAPLING)); @@ -253,6 +253,7 @@ public class PromenadeBlocks { public static final Block DARK_AMARANTH_WALL_SIGN = register("dark_amaranth_wall_sign", BlockFactory.wallSign(DARK_AMARANTH_PLANKS, PromenadeWoodTypes.DARK_AMARANTH)); public static final Block DARK_AMARANTH_HANGING_SIGN = register("dark_amaranth_hanging_sign", BlockFactory.hangingSign(DARK_AMARANTH_PLANKS, PromenadeWoodTypes.DARK_AMARANTH, BlockSoundGroup.NETHER_WOOD_HANGING_SIGN)); public static final Block DARK_AMARANTH_WALL_HANGING_SIGN = register("dark_amaranth_wall_hanging_sign", BlockFactory.wallHangingSign(DARK_AMARANTH_PLANKS, PromenadeWoodTypes.DARK_AMARANTH, BlockSoundGroup.NETHER_WOOD_HANGING_SIGN)); + public static final Block DARK_AMARANTH_SHELF = register("dark_amaranth_shelf", BlockFactory.shelf(DARK_AMARANTH_PLANKS)); public static final Block DARK_AMARANTH_FUNGUS = register("dark_amaranth_fungus", BlockFactory.fungus(MapColor.PURPLE, PromenadeConfiguredFeatures.PLANTED_DARK_AMARANTH_FUNGUS, PromenadeBlockTags.DARK_AMARANTH_FUNGUS_PLACEABLE_ON, PromenadeBlockTags.DARK_AMARANTH_FUNGUS_GROWABLE_ON)); public static final Block POTTED_DARK_AMARANTH_FUNGUS = register("potted_dark_amaranth_fungus", BlockFactory.pot(DARK_AMARANTH_FUNGUS)); diff --git a/src/main/java/fr/hugman/promenade/block/entity/PromenadeBlockEntities.java b/src/main/java/fr/hugman/promenade/block/entity/PromenadeBlockEntities.java index c4a72a3a..085579b6 100644 --- a/src/main/java/fr/hugman/promenade/block/entity/PromenadeBlockEntities.java +++ b/src/main/java/fr/hugman/promenade/block/entity/PromenadeBlockEntities.java @@ -21,5 +21,10 @@ public static void addBlocksToVanillaBlockEntityTypes() { BlockEntityType.SIGN.addSupportedBlock(PromenadeBlocks.DARK_AMARANTH_WALL_SIGN); BlockEntityType.HANGING_SIGN.addSupportedBlock(PromenadeBlocks.DARK_AMARANTH_HANGING_SIGN); BlockEntityType.HANGING_SIGN.addSupportedBlock(PromenadeBlocks.DARK_AMARANTH_WALL_HANGING_SIGN); + + BlockEntityType.SHELF.addSupportedBlock(PromenadeBlocks.SAKURA_SHELF); + BlockEntityType.SHELF.addSupportedBlock(PromenadeBlocks.MAPLE_SHELF); + BlockEntityType.SHELF.addSupportedBlock(PromenadeBlocks.PALM_SHELF); + BlockEntityType.SHELF.addSupportedBlock(PromenadeBlocks.DARK_AMARANTH_SHELF); } } diff --git a/src/main/java/fr/hugman/promenade/block/helper/BlockFactory.java b/src/main/java/fr/hugman/promenade/block/helper/BlockFactory.java index a3d5fd83..80596e17 100644 --- a/src/main/java/fr/hugman/promenade/block/helper/BlockFactory.java +++ b/src/main/java/fr/hugman/promenade/block/helper/BlockFactory.java @@ -8,6 +8,8 @@ import net.minecraft.block.*; import net.minecraft.block.enums.NoteBlockInstrument; import net.minecraft.block.piston.PistonBehavior; +import net.minecraft.component.DataComponentTypes; +import net.minecraft.component.type.ContainerComponent; import net.minecraft.particle.ParticleEffect; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.tag.TagKey; @@ -118,6 +120,10 @@ public static BlockBuilder wallHangingSign(Block standingSign, WoodType woodType .sounds(soundGroup)).noItem(); } + public static BlockBuilder shelf(Block planks) { + return copy(planks).factory(ShelfBlock::new).settings(AbstractBlock.Settings.copyShallow(planks).sounds(BlockSoundGroup.SHELF)).itemSettings((s -> s.component(DataComponentTypes.CONTAINER, ContainerComponent.DEFAULT))); + } + public static BlockBuilder log(MapColor woodColor, MapColor barkColor, BlockSoundGroup sounds, boolean flammable) { return log(woodColor, sounds, flammable) .settings(settings -> settings.mapColor((state) -> state.get(PillarBlock.AXIS) == Direction.Axis.Y ? woodColor : barkColor)); diff --git a/src/main/java/fr/hugman/promenade/itemgroup/PromenadeItemGroupAdditions.java b/src/main/java/fr/hugman/promenade/itemgroup/PromenadeItemGroupAdditions.java index a4a45bbf..405e87df 100644 --- a/src/main/java/fr/hugman/promenade/itemgroup/PromenadeItemGroupAdditions.java +++ b/src/main/java/fr/hugman/promenade/itemgroup/PromenadeItemGroupAdditions.java @@ -184,16 +184,20 @@ public static void appendItemGroups() { ItemGroupEvents.modifyEntriesEvent(ItemGroups.BUILDING_BLOCKS).register(e -> e.addAfter(Blocks.CUT_RED_SANDSTONE_SLAB, PromenadeBlocks.MOAI)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(e -> e.addAfter(Blocks.BIRCH_HANGING_SIGN, PromenadeItems.SAKURA_SIGN, PromenadeItems.SAKURA_HANGING_SIGN)); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(e -> e.addAfter(Blocks.BIRCH_SHELF, PromenadeBlocks.SAKURA_SHELF)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.TOOLS).register(e -> e.addAfter(Items.BIRCH_CHEST_BOAT, PromenadeItems.SAKURA_BOAT, PromenadeItems.SAKURA_CHEST_BOAT)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(e -> e.addAfter(PromenadeItems.SAKURA_HANGING_SIGN, PromenadeItems.MAPLE_SIGN, PromenadeItems.MAPLE_HANGING_SIGN)); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(e -> e.addAfter(PromenadeBlocks.SAKURA_SHELF, PromenadeBlocks.MAPLE_SHELF)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.TOOLS).register(e -> e.addAfter(PromenadeItems.SAKURA_CHEST_BOAT, PromenadeItems.MAPLE_BOAT, PromenadeItems.MAPLE_CHEST_BOAT)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.FOOD_AND_DRINK).register(e -> e.addAfter(Items.HONEY_BOTTLE, PromenadeItems.MAPLE_SYRUP_BOTTLE)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(e -> e.addAfter(Blocks.ACACIA_HANGING_SIGN, PromenadeItems.PALM_SIGN, PromenadeItems.PALM_HANGING_SIGN)); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(e -> e.addAfter(Blocks.ACACIA_SHELF, PromenadeBlocks.PALM_SHELF)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.TOOLS).register(e -> e.addAfter(Items.ACACIA_CHEST_BOAT, PromenadeItems.PALM_BOAT, PromenadeItems.PALM_CHEST_BOAT)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(e -> e.addAfter(Blocks.WARPED_HANGING_SIGN, PromenadeItems.DARK_AMARANTH_SIGN, PromenadeItems.DARK_AMARANTH_HANGING_SIGN)); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(e -> e.addAfter(Blocks.WARPED_SHELF, PromenadeBlocks.DARK_AMARANTH_SHELF)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.FOOD_AND_DRINK).register(e -> { e.addAfter(Items.SWEET_BERRIES, PromenadeItems.BLUEBERRIES); diff --git a/src/main/java/fr/hugman/promenade/registry/PromenadeFlammables.java b/src/main/java/fr/hugman/promenade/registry/PromenadeFlammables.java index 5f81828c..e47a911d 100644 --- a/src/main/java/fr/hugman/promenade/registry/PromenadeFlammables.java +++ b/src/main/java/fr/hugman/promenade/registry/PromenadeFlammables.java @@ -54,6 +54,7 @@ public static void register() { fire.add(PromenadeBlocks.SAKURA_SLAB, 5, 20); fire.add(PromenadeBlocks.SAKURA_FENCE, 5, 20); fire.add(PromenadeBlocks.SAKURA_FENCE_GATE, 5, 20); + fire.add(PromenadeBlocks.SAKURA_SHELF, 30, 20); fire.add(PromenadeBlocks.BLUSH_SAKURA_BLOSSOMS, 30, 60); fire.add(PromenadeBlocks.SNOWY_BLUSH_SAKURA_BLOSSOMS, 30, 60); fire.add(PromenadeBlocks.BLUSH_SAKURA_BLOSSOM_PILE, 30, 60); @@ -70,6 +71,7 @@ public static void register() { fire.add(PromenadeBlocks.MAPLE_SLAB, 5, 20); fire.add(PromenadeBlocks.MAPLE_FENCE, 5, 20); fire.add(PromenadeBlocks.MAPLE_FENCE_GATE, 5, 20); + fire.add(PromenadeBlocks.MAPLE_SHELF, 30, 20); fire.add(PromenadeBlocks.SAP_MAPLE_LEAVES, 30, 60); fire.add(PromenadeBlocks.SNOWY_SAP_MAPLE_LEAVES, 30, 60); fire.add(PromenadeBlocks.FALLEN_SAP_MAPLE_LEAVES, 30, 60); @@ -96,6 +98,7 @@ public static void register() { fire.add(PromenadeBlocks.PALM_SLAB, 5, 20); fire.add(PromenadeBlocks.PALM_FENCE, 5, 20); fire.add(PromenadeBlocks.PALM_FENCE_GATE, 5, 20); + fire.add(PromenadeBlocks.PALM_SHELF, 30, 20); fire.add(PromenadeBlocks.PALM_LEAVES, 30, 60); fire.add(PromenadeBlocks.SNOWY_PALM_LEAVES, 30, 60); fire.add(PromenadeBlocks.PALM_HANGING_LEAVES, 30, 60);