chore: Add datagen

This commit is contained in:
Ampflower 🌺 2025-03-13 13:06:50 -07:00
parent 3423dffea2
commit 96c9514cac
No known key found for this signature in database
GPG Key ID: FC0397C90D508D7F
5 changed files with 145 additions and 62 deletions

View File

@ -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<RegistryWrapper.WrapperLookup> 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);
}
}

View File

@ -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));
}
}

View File

@ -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);

View File

@ -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);

View File

@ -85,6 +85,26 @@ public final class JoyBlocks {
LESBIAN_CANDLE = registerCandle("lesbian_candle"),
PROGRESS_CANDLE = registerCandle("progress_candle");
public static final List<Block> 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<Block> 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<Block> PLANTS = List.of(
PINK_ALLIUM,
BLUE_ALLIUM,
WHITE_ALLIUM,
TRANS_ALLIUM
);
public static final List<Block> 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) {