Skip to content

Commit 96c9514

Browse files
committed
chore: Add datagen
1 parent 3423dff commit 96c9514

File tree

5 files changed

+145
-62
lines changed

5 files changed

+145
-62
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package gay.pridecraft.joy.data;
2+
3+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
4+
import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider;
5+
import net.minecraft.registry.RegistryWrapper;
6+
7+
import java.util.concurrent.CompletableFuture;
8+
9+
import static gay.pridecraft.joy.registry.JoyBlocks.ACE_CANDLE;
10+
import static gay.pridecraft.joy.registry.JoyBlocks.ACE_CANDLE_CAKE;
11+
import static gay.pridecraft.joy.registry.JoyBlocks.AGENDER_CANDLE;
12+
import static gay.pridecraft.joy.registry.JoyBlocks.AGENDER_CANDLE_CAKE;
13+
import static gay.pridecraft.joy.registry.JoyBlocks.APLATONIC_CANDLE;
14+
import static gay.pridecraft.joy.registry.JoyBlocks.APLATONIC_CANDLE_CAKE;
15+
import static gay.pridecraft.joy.registry.JoyBlocks.AROACE_CANDLE;
16+
import static gay.pridecraft.joy.registry.JoyBlocks.AROACE_CANDLE_CAKE;
17+
import static gay.pridecraft.joy.registry.JoyBlocks.ARO_CANDLE;
18+
import static gay.pridecraft.joy.registry.JoyBlocks.ARO_CANDLE_CAKE;
19+
import static gay.pridecraft.joy.registry.JoyBlocks.BEDS;
20+
import static gay.pridecraft.joy.registry.JoyBlocks.BIGENDER_CANDLE;
21+
import static gay.pridecraft.joy.registry.JoyBlocks.BIGENDER_CANDLE_CAKE;
22+
import static gay.pridecraft.joy.registry.JoyBlocks.BISEXUAL_CANDLE;
23+
import static gay.pridecraft.joy.registry.JoyBlocks.BISEXUAL_CANDLE_CAKE;
24+
import static gay.pridecraft.joy.registry.JoyBlocks.CANDLES;
25+
import static gay.pridecraft.joy.registry.JoyBlocks.ENBY_CANDLE;
26+
import static gay.pridecraft.joy.registry.JoyBlocks.ENBY_CANDLE_CAKE;
27+
import static gay.pridecraft.joy.registry.JoyBlocks.GAY_CANDLE;
28+
import static gay.pridecraft.joy.registry.JoyBlocks.GAY_CANDLE_CAKE;
29+
import static gay.pridecraft.joy.registry.JoyBlocks.GENDER_FLUID_CANDLE;
30+
import static gay.pridecraft.joy.registry.JoyBlocks.GENDER_FLUID_CANDLE_CAKE;
31+
import static gay.pridecraft.joy.registry.JoyBlocks.INTERSEX_CANDLE;
32+
import static gay.pridecraft.joy.registry.JoyBlocks.INTERSEX_CANDLE_CAKE;
33+
import static gay.pridecraft.joy.registry.JoyBlocks.LESBIAN_CANDLE;
34+
import static gay.pridecraft.joy.registry.JoyBlocks.LESBIAN_CANDLE_CAKE;
35+
import static gay.pridecraft.joy.registry.JoyBlocks.MLM_CANDLE;
36+
import static gay.pridecraft.joy.registry.JoyBlocks.MLM_CANDLE_CAKE;
37+
import static gay.pridecraft.joy.registry.JoyBlocks.PAN_CANDLE;
38+
import static gay.pridecraft.joy.registry.JoyBlocks.PAN_CANDLE_CAKE;
39+
import static gay.pridecraft.joy.registry.JoyBlocks.PLANTS;
40+
import static gay.pridecraft.joy.registry.JoyBlocks.POTTED_PLANTS;
41+
import static gay.pridecraft.joy.registry.JoyBlocks.PROGRESS_CANDLE;
42+
import static gay.pridecraft.joy.registry.JoyBlocks.PROGRESS_CANDLE_CAKE;
43+
import static gay.pridecraft.joy.registry.JoyBlocks.QUEER_CANDLE;
44+
import static gay.pridecraft.joy.registry.JoyBlocks.QUEER_CANDLE_CAKE;
45+
import static gay.pridecraft.joy.registry.JoyBlocks.TRANS_CANDLE;
46+
import static gay.pridecraft.joy.registry.JoyBlocks.TRANS_CANDLE_CAKE;
47+
48+
/**
49+
* @author Ampflower
50+
* @since 1.0.0
51+
**/
52+
public class JoyBlockLootProvider extends FabricBlockLootTableProvider {
53+
protected JoyBlockLootProvider(final FabricDataOutput dataOutput, final CompletableFuture<RegistryWrapper.WrapperLookup> registryLookup) {
54+
super(dataOutput, registryLookup);
55+
}
56+
57+
@Override
58+
public void generate() {
59+
BEDS.forEach(this::addDrop);
60+
CANDLES.forEach(this::addDrop);
61+
62+
addDrop(QUEER_CANDLE_CAKE, QUEER_CANDLE);
63+
addDrop(GAY_CANDLE_CAKE, GAY_CANDLE);
64+
addDrop(ENBY_CANDLE_CAKE, ENBY_CANDLE);
65+
addDrop(INTERSEX_CANDLE_CAKE, INTERSEX_CANDLE);
66+
addDrop(AGENDER_CANDLE_CAKE, AGENDER_CANDLE);
67+
addDrop(BIGENDER_CANDLE_CAKE, BIGENDER_CANDLE);
68+
addDrop(BISEXUAL_CANDLE_CAKE, BISEXUAL_CANDLE);
69+
addDrop(MLM_CANDLE_CAKE, MLM_CANDLE);
70+
addDrop(ACE_CANDLE_CAKE, ACE_CANDLE);
71+
addDrop(ARO_CANDLE_CAKE, ARO_CANDLE);
72+
addDrop(APLATONIC_CANDLE_CAKE, APLATONIC_CANDLE);
73+
addDrop(GENDER_FLUID_CANDLE_CAKE, GENDER_FLUID_CANDLE);
74+
addDrop(PAN_CANDLE_CAKE, PAN_CANDLE);
75+
addDrop(TRANS_CANDLE_CAKE, TRANS_CANDLE);
76+
addDrop(AROACE_CANDLE_CAKE, AROACE_CANDLE);
77+
addDrop(LESBIAN_CANDLE_CAKE, LESBIAN_CANDLE);
78+
addDrop(PROGRESS_CANDLE_CAKE, PROGRESS_CANDLE);
79+
80+
PLANTS.forEach(this::addDrop);
81+
POTTED_PLANTS.forEach(this::addPottedPlantDrops);
82+
}
83+
}

xplat/src/datagen/java/gay/pridecraft/joy/data/JoyBlockTagProvider.java

Lines changed: 6 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -17,58 +17,18 @@ public JoyBlockTagProvider(FabricDataOutput output, CompletableFuture<RegistryWr
1717
@Override
1818
protected void configure(RegistryWrapper.WrapperLookup arg) {
1919
getOrCreateTagBuilder(BlockTags.CANDLES)
20-
.add(JoyBlocks.QUEER_CANDLE)
21-
.add(JoyBlocks.GAY_CANDLE)
22-
.add(JoyBlocks.ENBY_CANDLE)
23-
.add(JoyBlocks.INTERSEX_CANDLE)
24-
.add(JoyBlocks.AGENDER_CANDLE)
25-
.add(JoyBlocks.BIGENDER_CANDLE)
26-
.add(JoyBlocks.BISEXUAL_CANDLE)
27-
.add(JoyBlocks.MLM_CANDLE)
28-
.add(JoyBlocks.ACE_CANDLE)
29-
.add(JoyBlocks.ARO_CANDLE)
30-
.add(JoyBlocks.APLATONIC_CANDLE)
31-
.add(JoyBlocks.GENDER_FLUID_CANDLE)
32-
.add(JoyBlocks.PAN_CANDLE)
33-
.add(JoyBlocks.TRANS_CANDLE)
34-
.add(JoyBlocks.AROACE_CANDLE)
35-
.add(JoyBlocks.LESBIAN_CANDLE)
36-
.add(JoyBlocks.PROGRESS_CANDLE);
20+
.add(JoyBlocks.CANDLES.toArray(Block[]::new));
3721

3822
getOrCreateTagBuilder(BlockTags.BEDS)
3923
.add(JoyBlocks.BEDS.toArray(Block[]::new));
4024

4125
getOrCreateTagBuilder(BlockTags.CANDLE_CAKES)
42-
.add(JoyBlocks.QUEER_CANDLE_CAKE)
43-
.add(JoyBlocks.GAY_CANDLE_CAKE)
44-
.add(JoyBlocks.ENBY_CANDLE_CAKE)
45-
.add(JoyBlocks.INTERSEX_CANDLE_CAKE)
46-
.add(JoyBlocks.AGENDER_CANDLE_CAKE)
47-
.add(JoyBlocks.BIGENDER_CANDLE_CAKE)
48-
.add(JoyBlocks.BISEXUAL_CANDLE_CAKE)
49-
.add(JoyBlocks.MLM_CANDLE_CAKE)
50-
.add(JoyBlocks.ACE_CANDLE_CAKE)
51-
.add(JoyBlocks.ARO_CANDLE_CAKE)
52-
.add(JoyBlocks.APLATONIC_CANDLE_CAKE)
53-
.add(JoyBlocks.GENDER_FLUID_CANDLE_CAKE)
54-
.add(JoyBlocks.PAN_CANDLE_CAKE)
55-
.add(JoyBlocks.TRANS_CANDLE_CAKE)
56-
.add(JoyBlocks.AROACE_CANDLE_CAKE)
57-
.add(JoyBlocks.LESBIAN_CANDLE_CAKE)
58-
.add(JoyBlocks.PROGRESS_CANDLE_CAKE);
26+
.add(JoyBlocks.CANDLE_CAKES.toArray(Block[]::new));
5927

60-
getOrCreateTagBuilder(BlockTags.SMALL_FLOWERS).add(
61-
JoyBlocks.PINK_ALLIUM,
62-
JoyBlocks.BLUE_ALLIUM,
63-
JoyBlocks.WHITE_ALLIUM,
64-
JoyBlocks.TRANS_ALLIUM
65-
);
28+
getOrCreateTagBuilder(BlockTags.SMALL_FLOWERS)
29+
.add(JoyBlocks.PLANTS.toArray(Block[]::new));
6630

67-
getOrCreateTagBuilder(BlockTags.FLOWER_POTS).add(
68-
JoyBlocks.POTTED_PINK_ALLIUM,
69-
JoyBlocks.POTTED_BLUE_ALLIUM,
70-
JoyBlocks.POTTED_WHITE_ALLIUM,
71-
JoyBlocks.POTTED_TRANS_ALLIUM
72-
);
31+
getOrCreateTagBuilder(BlockTags.FLOWER_POTS)
32+
.add(JoyBlocks.POTTED_PLANTS.toArray(Block[]::new));
7333
}
7434
}

xplat/src/datagen/java/gay/pridecraft/joy/data/JoyData.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public void onInitializeDataGenerator(final FabricDataGenerator fabricDataGenera
2020

2121
final var pack = fabricDataGenerator.createPack();
2222

23+
pack.addProvider(JoyBlockLootProvider::new);
2324
pack.addProvider(JoyBlockTagProvider::new);
2425
pack.addProvider(JoyEntityTagProvider::new);
2526
pack.addProvider(JoyModelProvider::new);

xplat/src/datagen/java/gay/pridecraft/joy/data/JoyModelProvider.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,7 @@ public JoyModelProvider(FabricDataOutput output) {
3131

3232
@Override
3333
public void generateBlockStateModels(BlockStateModelGenerator gen) {
34-
registerBed(gen, JoyBlocks.GAY_BED);
35-
registerBed(gen, JoyBlocks.ENBY_BED);
36-
registerBed(gen, JoyBlocks.INTERSEX_BED);
37-
registerBed(gen, JoyBlocks.AGENDER_BED);
38-
registerBed(gen, JoyBlocks.BIGENDER_BED);
39-
registerBed(gen, JoyBlocks.BISEXUAL_BED);
40-
registerBed(gen, JoyBlocks.MLM_BED);
41-
registerBed(gen, JoyBlocks.ACE_BED);
42-
registerBed(gen, JoyBlocks.ARO_BED);
43-
registerBed(gen, JoyBlocks.APLATONIC_BED);
44-
registerBed(gen, JoyBlocks.GENDER_FLUID_BED);
45-
registerBed(gen, JoyBlocks.PAN_BED);
46-
registerBed(gen, JoyBlocks.TRANS_BED);
47-
registerBed(gen, JoyBlocks.AROACE_BED);
48-
registerBed(gen, JoyBlocks.LESBIAN_BED);
49-
registerBed(gen, JoyBlocks.PROGRESS_BED);
34+
JoyBlocks.BEDS.forEach(bed -> registerBed(gen, bed));
5035
gen.registerCandle(JoyBlocks.QUEER_CANDLE, JoyBlocks.QUEER_CANDLE_CAKE);
5136
gen.registerCandle(JoyBlocks.GAY_CANDLE, JoyBlocks.GAY_CANDLE_CAKE);
5237
gen.registerCandle(JoyBlocks.ENBY_CANDLE, JoyBlocks.ENBY_CANDLE_CAKE);

xplat/src/main/java/gay/pridecraft/joy/registry/JoyBlocks.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,26 @@ private static Block registerBed(String name, Block src) {
8585
LESBIAN_CANDLE = registerCandle("lesbian_candle"),
8686
PROGRESS_CANDLE = registerCandle("progress_candle");
8787

88+
public static final List<Block> CANDLES = List.of(
89+
QUEER_CANDLE,
90+
GAY_CANDLE,
91+
ENBY_CANDLE,
92+
INTERSEX_CANDLE,
93+
AGENDER_CANDLE,
94+
BIGENDER_CANDLE,
95+
BISEXUAL_CANDLE,
96+
MLM_CANDLE,
97+
ACE_CANDLE,
98+
ARO_CANDLE,
99+
APLATONIC_CANDLE,
100+
GENDER_FLUID_CANDLE,
101+
PAN_CANDLE,
102+
TRANS_CANDLE,
103+
AROACE_CANDLE,
104+
LESBIAN_CANDLE,
105+
PROGRESS_CANDLE
106+
);
107+
88108
private static Block registerCandle(String name) {
89109
return registerBlock(name, new CandleBlock(copy(Blocks.CANDLE)));
90110
}
@@ -110,6 +130,26 @@ private static Block registerCandle(String name) {
110130
LESBIAN_CANDLE_CAKE = registerCandleCake(LESBIAN_CANDLE),
111131
PROGRESS_CANDLE_CAKE = registerCandleCake(PROGRESS_CANDLE);
112132

133+
public static final List<Block> CANDLE_CAKES = List.of(
134+
QUEER_CANDLE_CAKE,
135+
GAY_CANDLE_CAKE,
136+
ENBY_CANDLE_CAKE,
137+
INTERSEX_CANDLE_CAKE,
138+
AGENDER_CANDLE_CAKE,
139+
BIGENDER_CANDLE_CAKE,
140+
BISEXUAL_CANDLE_CAKE,
141+
MLM_CANDLE_CAKE,
142+
ACE_CANDLE_CAKE,
143+
ARO_CANDLE_CAKE,
144+
APLATONIC_CANDLE_CAKE,
145+
GENDER_FLUID_CANDLE_CAKE,
146+
PAN_CANDLE_CAKE,
147+
TRANS_CANDLE_CAKE,
148+
AROACE_CANDLE_CAKE,
149+
LESBIAN_CANDLE_CAKE,
150+
PROGRESS_CANDLE_CAKE
151+
);
152+
113153
private static Block registerCandleCake(Block candle) {
114154
final var name = Registries.BLOCK.getId(candle).getPath() + "_cake";
115155
return registerBlock(name, new CandleCakeBlock(candle, copy(Blocks.CANDLE_CAKE)));
@@ -129,6 +169,20 @@ private static Block registerCandleCake(Block candle) {
129169
POTTED_WHITE_ALLIUM = registerFlowerPot(WHITE_ALLIUM, Blocks.POTTED_ALLIUM),
130170
POTTED_TRANS_ALLIUM = registerFlowerPot(TRANS_ALLIUM, Blocks.POTTED_ALLIUM);
131171

172+
public static final List<Block> PLANTS = List.of(
173+
PINK_ALLIUM,
174+
BLUE_ALLIUM,
175+
WHITE_ALLIUM,
176+
TRANS_ALLIUM
177+
);
178+
179+
public static final List<Block> POTTED_PLANTS = List.of(
180+
POTTED_PINK_ALLIUM,
181+
POTTED_BLUE_ALLIUM,
182+
POTTED_WHITE_ALLIUM,
183+
POTTED_TRANS_ALLIUM
184+
);
185+
132186
// region Registration Helpers
133187

134188
private static Block registerFlower(String name, Block block) {

0 commit comments

Comments
 (0)