From 96c9514cac8bb8b0350202687f33a255d480c6ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ampflower=20=F0=9F=8C=BA?= Date: Thu, 13 Mar 2025 13:06:50 -0700 Subject: [PATCH] chore: Add datagen --- .../joy/data/JoyBlockLootProvider.java | 83 +++++++++++++++++++ .../joy/data/JoyBlockTagProvider.java | 52 ++---------- .../java/gay/pridecraft/joy/data/JoyData.java | 1 + .../pridecraft/joy/data/JoyModelProvider.java | 17 +--- .../pridecraft/joy/registry/JoyBlocks.java | 54 ++++++++++++ 5 files changed, 145 insertions(+), 62 deletions(-) create mode 100644 xplat/src/datagen/java/gay/pridecraft/joy/data/JoyBlockLootProvider.java diff --git a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyBlockLootProvider.java b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyBlockLootProvider.java new file mode 100644 index 0000000..eae0cb5 --- /dev/null +++ b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyBlockLootProvider.java @@ -0,0 +1,83 @@ +package gay.pridecraft.joy.data; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider; +import net.minecraft.registry.RegistryWrapper; + +import java.util.concurrent.CompletableFuture; + +import static gay.pridecraft.joy.registry.JoyBlocks.ACE_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.ACE_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.AGENDER_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.AGENDER_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.APLATONIC_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.APLATONIC_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.AROACE_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.AROACE_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.ARO_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.ARO_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.BEDS; +import static gay.pridecraft.joy.registry.JoyBlocks.BIGENDER_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.BIGENDER_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.BISEXUAL_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.BISEXUAL_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.CANDLES; +import static gay.pridecraft.joy.registry.JoyBlocks.ENBY_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.ENBY_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.GAY_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.GAY_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.GENDER_FLUID_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.GENDER_FLUID_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.INTERSEX_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.INTERSEX_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.LESBIAN_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.LESBIAN_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.MLM_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.MLM_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.PAN_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.PAN_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.PLANTS; +import static gay.pridecraft.joy.registry.JoyBlocks.POTTED_PLANTS; +import static gay.pridecraft.joy.registry.JoyBlocks.PROGRESS_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.PROGRESS_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.QUEER_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.QUEER_CANDLE_CAKE; +import static gay.pridecraft.joy.registry.JoyBlocks.TRANS_CANDLE; +import static gay.pridecraft.joy.registry.JoyBlocks.TRANS_CANDLE_CAKE; + +/** + * @author Ampflower + * @since 1.0.0 + **/ +public class JoyBlockLootProvider extends FabricBlockLootTableProvider { + protected JoyBlockLootProvider(final FabricDataOutput dataOutput, final CompletableFuture registryLookup) { + super(dataOutput, registryLookup); + } + + @Override + public void generate() { + BEDS.forEach(this::addDrop); + CANDLES.forEach(this::addDrop); + + addDrop(QUEER_CANDLE_CAKE, QUEER_CANDLE); + addDrop(GAY_CANDLE_CAKE, GAY_CANDLE); + addDrop(ENBY_CANDLE_CAKE, ENBY_CANDLE); + addDrop(INTERSEX_CANDLE_CAKE, INTERSEX_CANDLE); + addDrop(AGENDER_CANDLE_CAKE, AGENDER_CANDLE); + addDrop(BIGENDER_CANDLE_CAKE, BIGENDER_CANDLE); + addDrop(BISEXUAL_CANDLE_CAKE, BISEXUAL_CANDLE); + addDrop(MLM_CANDLE_CAKE, MLM_CANDLE); + addDrop(ACE_CANDLE_CAKE, ACE_CANDLE); + addDrop(ARO_CANDLE_CAKE, ARO_CANDLE); + addDrop(APLATONIC_CANDLE_CAKE, APLATONIC_CANDLE); + addDrop(GENDER_FLUID_CANDLE_CAKE, GENDER_FLUID_CANDLE); + addDrop(PAN_CANDLE_CAKE, PAN_CANDLE); + addDrop(TRANS_CANDLE_CAKE, TRANS_CANDLE); + addDrop(AROACE_CANDLE_CAKE, AROACE_CANDLE); + addDrop(LESBIAN_CANDLE_CAKE, LESBIAN_CANDLE); + addDrop(PROGRESS_CANDLE_CAKE, PROGRESS_CANDLE); + + PLANTS.forEach(this::addDrop); + POTTED_PLANTS.forEach(this::addPottedPlantDrops); + } +} diff --git a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyBlockTagProvider.java b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyBlockTagProvider.java index 403e1d4..3dfcef4 100644 --- a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyBlockTagProvider.java +++ b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyBlockTagProvider.java @@ -17,58 +17,18 @@ public class JoyBlockTagProvider extends FabricTagProvider.BlockTagProvider { @Override protected void configure(RegistryWrapper.WrapperLookup arg) { getOrCreateTagBuilder(BlockTags.CANDLES) - .add(JoyBlocks.QUEER_CANDLE) - .add(JoyBlocks.GAY_CANDLE) - .add(JoyBlocks.ENBY_CANDLE) - .add(JoyBlocks.INTERSEX_CANDLE) - .add(JoyBlocks.AGENDER_CANDLE) - .add(JoyBlocks.BIGENDER_CANDLE) - .add(JoyBlocks.BISEXUAL_CANDLE) - .add(JoyBlocks.MLM_CANDLE) - .add(JoyBlocks.ACE_CANDLE) - .add(JoyBlocks.ARO_CANDLE) - .add(JoyBlocks.APLATONIC_CANDLE) - .add(JoyBlocks.GENDER_FLUID_CANDLE) - .add(JoyBlocks.PAN_CANDLE) - .add(JoyBlocks.TRANS_CANDLE) - .add(JoyBlocks.AROACE_CANDLE) - .add(JoyBlocks.LESBIAN_CANDLE) - .add(JoyBlocks.PROGRESS_CANDLE); + .add(JoyBlocks.CANDLES.toArray(Block[]::new)); getOrCreateTagBuilder(BlockTags.BEDS) .add(JoyBlocks.BEDS.toArray(Block[]::new)); getOrCreateTagBuilder(BlockTags.CANDLE_CAKES) - .add(JoyBlocks.QUEER_CANDLE_CAKE) - .add(JoyBlocks.GAY_CANDLE_CAKE) - .add(JoyBlocks.ENBY_CANDLE_CAKE) - .add(JoyBlocks.INTERSEX_CANDLE_CAKE) - .add(JoyBlocks.AGENDER_CANDLE_CAKE) - .add(JoyBlocks.BIGENDER_CANDLE_CAKE) - .add(JoyBlocks.BISEXUAL_CANDLE_CAKE) - .add(JoyBlocks.MLM_CANDLE_CAKE) - .add(JoyBlocks.ACE_CANDLE_CAKE) - .add(JoyBlocks.ARO_CANDLE_CAKE) - .add(JoyBlocks.APLATONIC_CANDLE_CAKE) - .add(JoyBlocks.GENDER_FLUID_CANDLE_CAKE) - .add(JoyBlocks.PAN_CANDLE_CAKE) - .add(JoyBlocks.TRANS_CANDLE_CAKE) - .add(JoyBlocks.AROACE_CANDLE_CAKE) - .add(JoyBlocks.LESBIAN_CANDLE_CAKE) - .add(JoyBlocks.PROGRESS_CANDLE_CAKE); + .add(JoyBlocks.CANDLE_CAKES.toArray(Block[]::new)); - getOrCreateTagBuilder(BlockTags.SMALL_FLOWERS).add( - JoyBlocks.PINK_ALLIUM, - JoyBlocks.BLUE_ALLIUM, - JoyBlocks.WHITE_ALLIUM, - JoyBlocks.TRANS_ALLIUM - ); + getOrCreateTagBuilder(BlockTags.SMALL_FLOWERS) + .add(JoyBlocks.PLANTS.toArray(Block[]::new)); - getOrCreateTagBuilder(BlockTags.FLOWER_POTS).add( - JoyBlocks.POTTED_PINK_ALLIUM, - JoyBlocks.POTTED_BLUE_ALLIUM, - JoyBlocks.POTTED_WHITE_ALLIUM, - JoyBlocks.POTTED_TRANS_ALLIUM - ); + getOrCreateTagBuilder(BlockTags.FLOWER_POTS) + .add(JoyBlocks.POTTED_PLANTS.toArray(Block[]::new)); } } diff --git a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyData.java b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyData.java index 350424b..9b4e3e8 100644 --- a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyData.java +++ b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyData.java @@ -20,6 +20,7 @@ public class JoyData implements DataGeneratorEntrypoint { final var pack = fabricDataGenerator.createPack(); + pack.addProvider(JoyBlockLootProvider::new); pack.addProvider(JoyBlockTagProvider::new); pack.addProvider(JoyEntityTagProvider::new); pack.addProvider(JoyModelProvider::new); diff --git a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyModelProvider.java b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyModelProvider.java index e47f465..0d99930 100644 --- a/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyModelProvider.java +++ b/xplat/src/datagen/java/gay/pridecraft/joy/data/JoyModelProvider.java @@ -31,22 +31,7 @@ public class JoyModelProvider extends FabricModelProvider { @Override public void generateBlockStateModels(BlockStateModelGenerator gen) { - registerBed(gen, JoyBlocks.GAY_BED); - registerBed(gen, JoyBlocks.ENBY_BED); - registerBed(gen, JoyBlocks.INTERSEX_BED); - registerBed(gen, JoyBlocks.AGENDER_BED); - registerBed(gen, JoyBlocks.BIGENDER_BED); - registerBed(gen, JoyBlocks.BISEXUAL_BED); - registerBed(gen, JoyBlocks.MLM_BED); - registerBed(gen, JoyBlocks.ACE_BED); - registerBed(gen, JoyBlocks.ARO_BED); - registerBed(gen, JoyBlocks.APLATONIC_BED); - registerBed(gen, JoyBlocks.GENDER_FLUID_BED); - registerBed(gen, JoyBlocks.PAN_BED); - registerBed(gen, JoyBlocks.TRANS_BED); - registerBed(gen, JoyBlocks.AROACE_BED); - registerBed(gen, JoyBlocks.LESBIAN_BED); - registerBed(gen, JoyBlocks.PROGRESS_BED); + JoyBlocks.BEDS.forEach(bed -> registerBed(gen, bed)); gen.registerCandle(JoyBlocks.QUEER_CANDLE, JoyBlocks.QUEER_CANDLE_CAKE); gen.registerCandle(JoyBlocks.GAY_CANDLE, JoyBlocks.GAY_CANDLE_CAKE); gen.registerCandle(JoyBlocks.ENBY_CANDLE, JoyBlocks.ENBY_CANDLE_CAKE); diff --git a/xplat/src/main/java/gay/pridecraft/joy/registry/JoyBlocks.java b/xplat/src/main/java/gay/pridecraft/joy/registry/JoyBlocks.java index 39c01ed..e3c2bad 100644 --- a/xplat/src/main/java/gay/pridecraft/joy/registry/JoyBlocks.java +++ b/xplat/src/main/java/gay/pridecraft/joy/registry/JoyBlocks.java @@ -85,6 +85,26 @@ public final class JoyBlocks { LESBIAN_CANDLE = registerCandle("lesbian_candle"), PROGRESS_CANDLE = registerCandle("progress_candle"); + public static final List CANDLES = List.of( + QUEER_CANDLE, + GAY_CANDLE, + ENBY_CANDLE, + INTERSEX_CANDLE, + AGENDER_CANDLE, + BIGENDER_CANDLE, + BISEXUAL_CANDLE, + MLM_CANDLE, + ACE_CANDLE, + ARO_CANDLE, + APLATONIC_CANDLE, + GENDER_FLUID_CANDLE, + PAN_CANDLE, + TRANS_CANDLE, + AROACE_CANDLE, + LESBIAN_CANDLE, + PROGRESS_CANDLE + ); + private static Block registerCandle(String name) { return registerBlock(name, new CandleBlock(copy(Blocks.CANDLE))); } @@ -110,6 +130,26 @@ public final class JoyBlocks { LESBIAN_CANDLE_CAKE = registerCandleCake(LESBIAN_CANDLE), PROGRESS_CANDLE_CAKE = registerCandleCake(PROGRESS_CANDLE); + public static final List CANDLE_CAKES = List.of( + QUEER_CANDLE_CAKE, + GAY_CANDLE_CAKE, + ENBY_CANDLE_CAKE, + INTERSEX_CANDLE_CAKE, + AGENDER_CANDLE_CAKE, + BIGENDER_CANDLE_CAKE, + BISEXUAL_CANDLE_CAKE, + MLM_CANDLE_CAKE, + ACE_CANDLE_CAKE, + ARO_CANDLE_CAKE, + APLATONIC_CANDLE_CAKE, + GENDER_FLUID_CANDLE_CAKE, + PAN_CANDLE_CAKE, + TRANS_CANDLE_CAKE, + AROACE_CANDLE_CAKE, + LESBIAN_CANDLE_CAKE, + PROGRESS_CANDLE_CAKE + ); + private static Block registerCandleCake(Block candle) { final var name = Registries.BLOCK.getId(candle).getPath() + "_cake"; return registerBlock(name, new CandleCakeBlock(candle, copy(Blocks.CANDLE_CAKE))); @@ -129,6 +169,20 @@ public final class JoyBlocks { POTTED_WHITE_ALLIUM = registerFlowerPot(WHITE_ALLIUM, Blocks.POTTED_ALLIUM), POTTED_TRANS_ALLIUM = registerFlowerPot(TRANS_ALLIUM, Blocks.POTTED_ALLIUM); + public static final List PLANTS = List.of( + PINK_ALLIUM, + BLUE_ALLIUM, + WHITE_ALLIUM, + TRANS_ALLIUM + ); + + public static final List POTTED_PLANTS = List.of( + POTTED_PINK_ALLIUM, + POTTED_BLUE_ALLIUM, + POTTED_WHITE_ALLIUM, + POTTED_TRANS_ALLIUM + ); + // region Registration Helpers private static Block registerFlower(String name, Block block) {