Skip to content

Commit 0c5975a

Browse files
committed
chore: datagen blahaj, fix when held left-handed
Fixes #47
1 parent 457e697 commit 0c5975a

File tree

79 files changed

+153
-817
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+153
-817
lines changed

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

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package gay.pridecraft.joy.data;
22

33
import gay.pridecraft.joy.JoyUtil;
4+
import gay.pridecraft.joy.block.BlahajBlocks;
5+
import gay.pridecraft.joy.block.CuddlyBlock;
46
import gay.pridecraft.joy.registry.JoyBlocks;
57
import gay.pridecraft.joy.registry.JoyItems;
68
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
@@ -20,8 +22,11 @@
2022
import net.minecraft.data.client.TextureMap;
2123
import net.minecraft.data.client.VariantSettings;
2224
import net.minecraft.data.client.When;
25+
import net.minecraft.registry.Registries;
2326
import net.minecraft.util.Identifier;
27+
import net.minecraft.util.math.Direction;
2428

29+
import java.util.List;
2530
import java.util.Optional;
2631

2732
public class JoyModelProvider extends FabricModelProvider {
@@ -55,6 +60,44 @@ public void generateBlockStateModels(BlockStateModelGenerator gen) {
5560
gen.registerFlowerPotPlant(JoyBlocks.BLUE_ALLIUM, JoyBlocks.POTTED_BLUE_ALLIUM, BlockStateModelGenerator.TintType.NOT_TINTED);
5661
gen.registerFlowerPotPlant(JoyBlocks.WHITE_ALLIUM, JoyBlocks.POTTED_WHITE_ALLIUM, BlockStateModelGenerator.TintType.NOT_TINTED);
5762
gen.registerFlowerPotPlant(JoyBlocks.TRANS_ALLIUM, JoyBlocks.POTTED_TRANS_ALLIUM, BlockStateModelGenerator.TintType.NOT_TINTED);
63+
64+
registerProxy(gen,
65+
BlahajBlocks.BLAHAJ_BLOCK,
66+
BlahajBlocks.BLAVINGAD_BLOCK,
67+
BlahajBlocks.BREAD_BLOCK,
68+
BlahajBlocks.BROWN_BEAR_BLOCK
69+
);
70+
for (final var block : List.of(
71+
BlahajBlocks.BLAHAJ_BLOCK,
72+
BlahajBlocks.BLAVINGAD_BLOCK,
73+
BlahajBlocks.BREAD_BLOCK,
74+
BlahajBlocks.BROWN_BEAR_BLOCK)) {
75+
gen.blockStateCollector.accept(cuddlyBlockState(block, ModelIds.getBlockModelId(block), false));
76+
}
77+
registerShark(gen, BlahajBlocks.GRAY_SHARK_BLOCK, false);
78+
BlahajBlocks.PRIDE_BLOCKS.forEach(shark -> registerShark(gen, shark, true));
79+
}
80+
81+
private static void registerShark(BlockStateModelGenerator gen, Block shark, boolean pride) {
82+
final var model = block("blue_shark", TextureKey.TEXTURE);
83+
final var id = ModelIds.getBlockModelId(shark);
84+
model.upload(
85+
id,
86+
pride ?
87+
TextureMap.texture(Registries.BLOCK.getId(shark)
88+
.withPath(str -> "block/pride_sharks/" + str.substring(0, str.lastIndexOf('_')))) :
89+
TextureMap.texture(shark),
90+
gen.modelCollector
91+
);
92+
93+
gen.registerParentedItemModel(shark, id);
94+
gen.blockStateCollector.accept(cuddlyBlockState(shark, id, false));
95+
}
96+
97+
private static void registerProxy(BlockStateModelGenerator gen, Block... toProxy) {
98+
for (final var proxied : toProxy) {
99+
gen.registerParentedItemModel(proxied, ModelIds.getBlockModelId(proxied));
100+
}
58101
}
59102

60103
private static void registerBed(BlockStateModelGenerator gen, Block block) {
@@ -102,6 +145,31 @@ private static BlockStateSupplier cakeBlockState(Block block, Identifier base) {
102145
return supplier;
103146
}
104147

148+
private static BlockStateSupplier cuddlyBlockState(Block block, Identifier model, boolean wall) {
149+
return MultipartBlockStateSupplier.create(block)
150+
.with(When.create().set(CuddlyBlock.FACING, Direction.NORTH),
151+
rotateVariant(model, VariantSettings.Rotation.R0, wall))
152+
153+
.with(When.create().set(CuddlyBlock.FACING, Direction.EAST),
154+
rotateVariant(model, VariantSettings.Rotation.R90, wall))
155+
156+
.with(When.create().set(CuddlyBlock.FACING, Direction.SOUTH),
157+
rotateVariant(model, VariantSettings.Rotation.R180, wall))
158+
159+
.with(When.create().set(CuddlyBlock.FACING, Direction.WEST),
160+
rotateVariant(model, VariantSettings.Rotation.R270, wall));
161+
}
162+
163+
private static BlockStateVariant rotateVariant(Identifier model, VariantSettings.Rotation Y, boolean wall) {
164+
final var var = BlockStateVariant.create()
165+
.put(VariantSettings.MODEL, model)
166+
.put(VariantSettings.Y, Y);
167+
if (wall) {
168+
var.put(VariantSettings.X, VariantSettings.Rotation.R90);
169+
}
170+
return var;
171+
}
172+
105173
private static BlockStateVariant model(Identifier model) {
106174
return BlockStateVariant.create()
107175
.put(VariantSettings.MODEL, model);

xplat/src/main/resources/assets/joy/blockstates/ace_shark.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

xplat/src/main/resources/assets/joy/blockstates/agender_shark.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

xplat/src/main/resources/assets/joy/blockstates/aro_shark.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

xplat/src/main/resources/assets/joy/blockstates/aroace_shark.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

xplat/src/main/resources/assets/joy/blockstates/bi_shark.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

xplat/src/main/resources/assets/joy/blockstates/blue_shark.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

xplat/src/main/resources/assets/joy/blockstates/blue_whale.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

xplat/src/main/resources/assets/joy/blockstates/bread.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

xplat/src/main/resources/assets/joy/blockstates/brown_bear.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)