From 7f5293602545727652525fa7bb163b07e6919652 Mon Sep 17 00:00:00 2001 From: Vos Date: Mon, 3 Nov 2025 19:02:58 -0600 Subject: [PATCH] Add Lemonwood --- .../acesbs/blockstates/lemonwood_planks.json | 7 ++++ .../acesbs/models/block/lemonwood_planks.json | 6 ++++ .../acesbs/models/item/lemonwood_planks.json | 3 ++ .../building_blocks/lemonwood_planks.json | 32 ++++++++++++++++++ .../loot_table/blocks/lemonwood_planks.json | 20 +++++++++++ .../data/acesbs/recipe/lemonwood_planks.json | 25 ++++++++++++++ .../minecraft/tags/block/mineable/axe.json | 5 +++ .../acesbs/block/ModBlocks.java | 18 +++++++--- .../acesbs/datagen/ModBlockTagProvider.java | 2 ++ .../acesbs/datagen/ModLootTableProvider.java | 1 + .../acesbs/datagen/ModModelProvider.java | 2 ++ .../acesbs/datagen/ModRecipeProvider.java | 8 +++++ .../acesbs/item/ModItemGroups.java | 1 + .../resources/assets/acesbs/lang/en_us.json | 1 + .../textures/block/lemonwood_planks.png | Bin 0 -> 5058 bytes 15 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 src/main/generated/assets/acesbs/blockstates/lemonwood_planks.json create mode 100644 src/main/generated/assets/acesbs/models/block/lemonwood_planks.json create mode 100644 src/main/generated/assets/acesbs/models/item/lemonwood_planks.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks.json create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/lemonwood_planks.json create mode 100644 src/main/generated/data/acesbs/recipe/lemonwood_planks.json create mode 100644 src/main/generated/data/minecraft/tags/block/mineable/axe.json create mode 100644 src/main/resources/assets/acesbs/textures/block/lemonwood_planks.png diff --git a/src/main/generated/assets/acesbs/blockstates/lemonwood_planks.json b/src/main/generated/assets/acesbs/blockstates/lemonwood_planks.json new file mode 100644 index 0000000..c6f7113 --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/lemonwood_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "acesbs:block/lemonwood_planks" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/lemonwood_planks.json b/src/main/generated/assets/acesbs/models/block/lemonwood_planks.json new file mode 100644 index 0000000..ef260c0 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/lemonwood_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "acesbs:block/lemonwood_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/lemonwood_planks.json b/src/main/generated/assets/acesbs/models/item/lemonwood_planks.json new file mode 100644 index 0000000..2e4a227 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/lemonwood_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/lemonwood_planks" +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks.json b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks.json new file mode 100644 index 0000000..fc8e0a1 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/lemonwood_planks.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lemon": { + "conditions": { + "items": [ + { + "items": "acesbs:lemon" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:lemonwood_planks" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lemon" + ] + ], + "rewards": { + "recipes": [ + "acesbs:lemonwood_planks" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_planks.json b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_planks.json new file mode 100644 index 0000000..bbc7e8e --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/lemonwood_planks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "acesbs:lemonwood_planks" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/lemonwood_planks.json b/src/main/generated/data/acesbs/recipe/lemonwood_planks.json new file mode 100644 index 0000000..d8a56e6 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/lemonwood_planks.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "minecraft:birch_planks" + }, + { + "item": "minecraft:birch_planks" + }, + { + "item": "minecraft:birch_planks" + }, + { + "item": "minecraft:birch_planks" + }, + { + "item": "acesbs:lemon" + } + ], + "result": { + "count": 4, + "id": "acesbs:lemonwood_planks" + } +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/mineable/axe.json b/src/main/generated/data/minecraft/tags/block/mineable/axe.json new file mode 100644 index 0000000..b308d88 --- /dev/null +++ b/src/main/generated/data/minecraft/tags/block/mineable/axe.json @@ -0,0 +1,5 @@ +{ + "values": [ + "acesbs:lemonwood_planks" + ] +} \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java index 689db72..6b65fa8 100644 --- a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java +++ b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java @@ -3,12 +3,11 @@ package com.acethewildfire.acesbs.block; import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.block.custom.EntropyBlock; import com.acethewildfire.acesbs.block.custom.StableEntropyBlock; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.block.*; +import net.minecraft.block.enums.NoteBlockInstrument; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; +import net.minecraft.item.Items; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.sound.BlockSoundGroup; @@ -31,6 +30,7 @@ public class ModBlocks { .requiresTool() .sounds(BlockSoundGroup.STONE))); + public static final Block STABLE_ENTROPY_BLOCK = registerBlock("stable_entropy_block", new StableEntropyBlock(AbstractBlock.Settings.create() .strength(5f) @@ -43,6 +43,16 @@ public class ModBlocks { .requiresTool() .sounds(BlockSoundGroup.LODESTONE))); + public static final Block LEMONWOOD_PLANKS = registerBlock("lemonwood_planks", + new Block( + AbstractBlock.Settings.create() + .mapColor(MapColor.PALE_YELLOW) + .instrument(NoteBlockInstrument.BASS) + .strength(2.0F, 3.0F) + .sounds(BlockSoundGroup.WOOD) + .burnable() + )); + private static Block registerBlock(String name, Block block){ registerBlockItem(name, block); return Registry.register(Registries.BLOCK, Identifier.of(AcesBS.MOD_ID, name), block); diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java index 2ddf4a6..e96f1e9 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java @@ -24,5 +24,7 @@ public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider { getOrCreateTagBuilder(BlockTags.NEEDS_IRON_TOOL) .add(ModBlocks.ENTROPY_ORE) .add(ModBlocks.ENTROPY_BLOCK); + getOrCreateTagBuilder(BlockTags.AXE_MINEABLE) + .add(ModBlocks.LEMONWOOD_PLANKS); } } diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java index 63a4de6..747cb99 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java @@ -29,6 +29,7 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider { public void generate() { addDrop(ModBlocks.ENTROPY_BLOCK); addDrop(ModBlocks.STABLE_ENTROPY_BLOCK); + addDrop(ModBlocks.LEMONWOOD_PLANKS); addDrop(ModBlocks.ENTROPY_ORE, multipleOreDrops(ModBlocks.ENTROPY_ORE, ModItems.RAW_ENTROPY, 1, 5)); } diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java index f68944b..f07dde8 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java @@ -20,6 +20,8 @@ public class ModModelProvider extends FabricModelProvider { // blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.ENTROPY_BLOCK); // Has a complex texture, use the default blockbench method. blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.STABLE_ENTROPY_BLOCK); + blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.LEMONWOOD_PLANKS); + } @Override diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java index 13a4fe8..63f94ac 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java @@ -5,8 +5,10 @@ import com.acethewildfire.acesbs.block.ModBlocks; import com.acethewildfire.acesbs.item.ModItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.block.Blocks; import net.minecraft.data.server.recipe.RecipeExporter; import net.minecraft.data.server.recipe.ShapedRecipeJsonBuilder; +import net.minecraft.data.server.recipe.ShapelessRecipeJsonBuilder; import net.minecraft.item.ItemConvertible; import net.minecraft.recipe.CampfireCookingRecipe; import net.minecraft.recipe.RecipeSerializer; @@ -45,6 +47,12 @@ public class ModRecipeProvider extends FabricRecipeProvider { .criterion(hasItem(ModItems.LEMON), conditionsFromItem(ModItems.LEMON)) .offerTo(recipeExporter); + ShapelessRecipeJsonBuilder.create(RecipeCategory.BUILDING_BLOCKS, ModBlocks.LEMONWOOD_PLANKS, 4) + .input(Blocks.BIRCH_PLANKS, 4) + .input(ModItems.LEMON, 1) + .criterion(hasItem(ModItems.LEMON), conditionsFromItem(ModItems.LEMON)) + .offerTo(recipeExporter); + // For 2+ recipes with the same RESULT use // .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, "output_item_from_input_item")); } diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java index 2e429d8..3676422 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java @@ -35,6 +35,7 @@ public class ModItemGroups { entries.add(ModBlocks.ENTROPY_ORE); entries.add(ModBlocks.ENTROPY_BLOCK); entries.add(ModBlocks.STABLE_ENTROPY_BLOCK); + entries.add(ModBlocks.LEMONWOOD_PLANKS); }) .build()); diff --git a/src/main/resources/assets/acesbs/lang/en_us.json b/src/main/resources/assets/acesbs/lang/en_us.json index 861930d..da32e9e 100644 --- a/src/main/resources/assets/acesbs/lang/en_us.json +++ b/src/main/resources/assets/acesbs/lang/en_us.json @@ -14,6 +14,7 @@ "block.acesbs.entropy_block": "Block of Entropy", "block.acesbs.entropy_ore": "Entropic Ore", "block.acesbs.stable_entropy_block": "Block of Stabilized Entropy", + "block.acesbs.lemonwood_planks": "Lemonwood Planks", "itemgroup.acesbs.items": "Ace's BS Items", "itemgroup.acesbs.blocks": "Ace's BS Blocks", diff --git a/src/main/resources/assets/acesbs/textures/block/lemonwood_planks.png b/src/main/resources/assets/acesbs/textures/block/lemonwood_planks.png new file mode 100644 index 0000000000000000000000000000000000000000..d51cd8e339b30ddc3b3b6403a4335cbbe98dd81a GIT binary patch literal 5058 zcmeHLdsGu=79T*MB2rOS>sswN(xWa;GLsj{Y=XuFA*+Fih~lF%nVE!p|p#7j&5tqv2GDPU9Dn$)IO-P-y{&AwY8qz{zo{I zWbSwG@4NSRA0Lwywv4p?F~5(2AgI43-JAtJ2T0co;oyDE+I$W8I9-xGQ_LcLu$Si? ztc!ugVlM+Te%1j&{wBB07-w^?mIsTL zrbVaq-%@d7i!yB1-}wl9Oa87&7pETGxqe*9d$G$Bzx~jKwmqJxV8cxpSxQpRrd4 zF14kKaq#1};r^4%ub!~wMb)fZc0Q%=;QL(W=#xX5bh!iDYx)*JP*^EzGTAI9Q)fIN zifs$m8q!Zqc)5Pwr9Y)6#T5-$&|sTeyRt&N@ehMfOk|U4Z{_hfhp5=}tT``7US3lA z%F5}{L!5Jm&xtgC6>)m5H%nYQuzgd)tkZt)mDRp)M)>YRJ9C-pq07Un9Yb%L=QQ4! zQU7_;_wf)GHr2knvT>ZFS$C|px#i2b8=S>E+Jx9Kk?X@!)@sj)r;w{~~$-1KeerJE+172{AK#6dh?b?EhC=9pWT6Mno<+< zl5ViAH0FbQrR^u~dd^*YxM6ETMT9|q@G&0M$G14=)WP>xyAKzJf4gIG(%zPR>cw@L z7l#c;`986ph#{AUTdzjQe6Kf;o~uYqyMHO6BK7mftB#F*G4`|Yg#{k&&cbaeQ0}ey z-$iM)ea=kYaJ2Pa>($n)PYjn@??zX(@pUQ9arYtU#my`zubI{<1jV^!B+c0wncwXN zbq7KE@qRB!6)+-fXPm6ZfZRR&J_56}0hyt;Vpgw-$!F6`cxGBjMmAMaKAK!FA-6njL{k9ver5=0Qg%m@_E zdPSD=z!D~D=L$swf`E0n(?7S@Y7N1Agbo$}A96qGmE$r@?sm(&TL@xm5di6M=&2S$ zHt14$79((lJjJ9IF&=SLcLg?1vXCfnvTkp{ z3Xt7H)0@wUoRH6XL+U*o3@rx&>+X`sI=WcyVI!^lL>=t=^c^}$3t$5+tCcWwRG}1? z#cV);L`JhTp&}hx+M!gTc1*2Caaxs(>g*(g+SLxN)B3bi6x z(WR8b@B%1a2^Gg=N>yMbltjYBxj5d+(To96{%8rzSX=POFd#x!+C7W70KDSmcVs{T9bsS31u+MkT%C> zbDYb7NKC+zyCEc^D2fFF{hlfT=*3bih-97F=YXQft4uTtg@V=Ma4)&lsJ6 zUjt&4W-Dy#>`qvrkg4G@9Yry=rvtuxM#}il(k}lMkqKlG^P{+^eA44&!2IqQ7{3&+ zmeQ&E+VI?#!cJ{?knByBeXhsf}PpNTncjD}{-qvnOFG04gwqa1#9K)JjyTq?9N|t1y&g zk}=ew);LsJigeg@x}X~_wgWKWR41Zd{tOR-#@$XKfD)8}(+wP!^3ZA7;US>&w|sRp z!Ed<*4EJvGT>SRZ)l1iNG4Nc# z;7L5nJ~_<{S)f|z0yFM~Y9Q(BP0tk|sNW#z3WK(6dkF}mMT<2x`ewgA5E?sfzbzm9 z+A`TJBbabpSRq4d~bF78)g5ho8A5>qp@*2A?BIv^P4uv2Q6Rk)!gzv zq>bEx3tv2F`|h;^^Uj6WWe+nn#z$_y?cRO0@prFhZ=E1pQ*evXRE}|Hx!*(9w1h)P zXFFRg2hewpL?6$LE&lwB_g5M^=e($Jb9MHmw@H_4W*< zp>cK5f*s>0U-l=R)Ymm8R3vX6`;XlZuW!&)&iQxF{n*$bnf4Tl-;}j4$vEgMh^#93Q1$&Em&F%{M^$l2^>_A_ z#q7V*ygIDv*v5T(zMdbq?)uo`1Leb^L{Iyo+Let76Hm(4=)RhAde#RAx1I6SeFQJ6 z)Bp40=5fl%VSnZRR(^I!&7&C~H$6VG!fk)6MClxHZ{S&Zd`4g0ygb_xz%*n@%`n$Y H%v