mirror of
https://github.com/Pridecraft-Studios/joy.git
synced 2025-08-03 06:26:00 -04:00
feat: Add Pride Cake
This commit is contained in:
parent
5be9b1e2d2
commit
e02eb14921
@ -7,13 +7,19 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||
import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.CakeBlock;
|
||||
import net.minecraft.data.client.BlockStateModelGenerator;
|
||||
import net.minecraft.data.client.BlockStateSupplier;
|
||||
import net.minecraft.data.client.BlockStateVariant;
|
||||
import net.minecraft.data.client.ItemModelGenerator;
|
||||
import net.minecraft.data.client.Model;
|
||||
import net.minecraft.data.client.ModelIds;
|
||||
import net.minecraft.data.client.Models;
|
||||
import net.minecraft.data.client.MultipartBlockStateSupplier;
|
||||
import net.minecraft.data.client.TextureKey;
|
||||
import net.minecraft.data.client.TextureMap;
|
||||
import net.minecraft.data.client.VariantSettings;
|
||||
import net.minecraft.data.client.When;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import java.util.Optional;
|
||||
@ -58,6 +64,7 @@ public class JoyModelProvider extends FabricModelProvider {
|
||||
gen.registerCandle(JoyBlocks.AROACE_CANDLE, JoyBlocks.AROACE_CANDLE_CAKE);
|
||||
gen.registerCandle(JoyBlocks.LESBIAN_CANDLE, JoyBlocks.LESBIAN_CANDLE_CAKE);
|
||||
gen.registerCandle(JoyBlocks.PROGRESS_CANDLE, JoyBlocks.PROGRESS_CANDLE_CAKE);
|
||||
registerCake(gen, JoyBlocks.PRIDE_CAKE);
|
||||
}
|
||||
|
||||
private static void registerBed(BlockStateModelGenerator gen, Block block) {
|
||||
@ -72,6 +79,44 @@ public class JoyModelProvider extends FabricModelProvider {
|
||||
gen.blockStateCollector.accept(BlockStateModelGenerator.createSingletonBlockState(block, ModelIds.getBlockModelId(block)));
|
||||
}
|
||||
|
||||
public static void registerCake(BlockStateModelGenerator gen, Block cake) {
|
||||
gen.registerItemModel(cake.asItem());
|
||||
|
||||
final var base = blockVanilla("cake", TextureKey.TOP);
|
||||
base.upload(
|
||||
ModelIds.getBlockModelId(cake),
|
||||
TextureMap.top(cake),
|
||||
gen.modelCollector
|
||||
);
|
||||
|
||||
for (int i = 1; i <= 6; i++) {
|
||||
final var slice = blockVanilla("cake_slice" + i, TextureKey.TOP);
|
||||
slice.upload(
|
||||
ModelIds.getBlockSubModelId(cake, "_slice" + i),
|
||||
TextureMap.top(cake),
|
||||
gen.modelCollector
|
||||
);
|
||||
}
|
||||
|
||||
gen.blockStateCollector.accept(cakeBlockState(cake, ModelIds.getBlockModelId(cake)));
|
||||
}
|
||||
|
||||
private static BlockStateSupplier cakeBlockState(Block block, Identifier base) {
|
||||
final var supplier = MultipartBlockStateSupplier.create(block)
|
||||
.with(When.create().set(CakeBlock.BITES, 0), model(base));
|
||||
|
||||
for (int i = 1; i <= 6; i++) {
|
||||
supplier.with(When.create().set(CakeBlock.BITES, i), model(base.withSuffixedPath("_slice" + i)));
|
||||
}
|
||||
|
||||
return supplier;
|
||||
}
|
||||
|
||||
private static BlockStateVariant model(Identifier model) {
|
||||
return BlockStateVariant.create()
|
||||
.put(VariantSettings.MODEL, model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateItemModels(ItemModelGenerator gen) {
|
||||
for (final var bundle : JoyItems.BUNDLES) {
|
||||
@ -102,6 +147,10 @@ public class JoyModelProvider extends FabricModelProvider {
|
||||
return new Model(Optional.of(JoyUtil.id("block/" + parent)), Optional.empty(), requiredTextureKeys);// 191
|
||||
}
|
||||
|
||||
private static Model blockVanilla(String parent, TextureKey... requiredTextureKeys) {
|
||||
return new Model(Optional.of(Identifier.ofVanilla("block/" + parent)), Optional.empty(), requiredTextureKeys);// 191
|
||||
}
|
||||
|
||||
private static Model item(String parent, TextureKey... requiredTextureKeys) {
|
||||
return new Model(Optional.of(JoyUtil.id("item/" + parent)), Optional.empty(), requiredTextureKeys);// 195
|
||||
}
|
||||
|
@ -96,6 +96,12 @@ public final class JoyItemGroups {
|
||||
entries.add(JoyItems.PRIDE_ELYTRA);
|
||||
});
|
||||
|
||||
public static final ItemGroup FOOD = register("food",
|
||||
() -> new ItemStack(JoyBlocks.PRIDE_CAKE),
|
||||
(ctx, entries) -> {
|
||||
entries.add(JoyBlocks.PRIDE_CAKE);
|
||||
});
|
||||
|
||||
public static final ItemGroup JOY_BUNDLES = register("bundles",
|
||||
JoyItems.PROGRESS_BUNDLE::getDefaultStack,
|
||||
(ctx, entries) -> JoyItems.BUNDLES.forEach(entries::add));
|
||||
|
@ -5,6 +5,7 @@ import gay.pridecraft.joy.block.JoyBedBlock;
|
||||
import net.minecraft.block.AbstractBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.CakeBlock;
|
||||
import net.minecraft.block.CandleBlock;
|
||||
import net.minecraft.block.CandleCakeBlock;
|
||||
import net.minecraft.item.BlockItem;
|
||||
@ -159,15 +160,18 @@ public final class JoyBlocks {
|
||||
new CandleCakeBlock(TRANS_CANDLE, AbstractBlock.Settings.copy(Blocks.CANDLE_CAKE)));
|
||||
|
||||
public static final Block AROACE_CANDLE_CAKE = registerBlock("aroace_candle_cake",
|
||||
new CandleCakeBlock(AROACE_CANDLE, AbstractBlock.Settings.copy(Blocks.CANDLE_CAKE)));
|
||||
new CandleCakeBlock(AROACE_CANDLE, AbstractBlock.Settings.copy(Blocks.CANDLE_CAKE)));
|
||||
|
||||
public static final Block LESBIAN_CANDLE_CAKE = registerBlock("lesbian_candle_cake",
|
||||
new CandleCakeBlock(LESBIAN_CANDLE, AbstractBlock.Settings.copy(Blocks.CANDLE_CAKE)));
|
||||
new CandleCakeBlock(LESBIAN_CANDLE, AbstractBlock.Settings.copy(Blocks.CANDLE_CAKE)));
|
||||
|
||||
public static final Block PROGRESS_CANDLE_CAKE = registerBlock("progress_candle_cake",
|
||||
new CandleCakeBlock(PROGRESS_CANDLE, AbstractBlock.Settings.copy(Blocks.CANDLE_CAKE)));
|
||||
new CandleCakeBlock(PROGRESS_CANDLE, AbstractBlock.Settings.copy(Blocks.CANDLE_CAKE)));
|
||||
// endregion
|
||||
|
||||
public static final Block PRIDE_CAKE = registerBlock("pride_cake",
|
||||
new CakeBlock(AbstractBlock.Settings.copy(Blocks.CAKE)));
|
||||
|
||||
// region Registration Helpers
|
||||
private static Block registerBlock(String name, Block block) {
|
||||
registerBlockItem(name, block);
|
||||
|
@ -5,6 +5,7 @@
|
||||
"itemgroup.joy.entities": "Joy Entities",
|
||||
"itemgroup.joy.hajs": "Håjs",
|
||||
"itemgroup.joy.misc": "Joy Misc",
|
||||
"itemgroup.joy.food": "Joy Food",
|
||||
|
||||
"block.joy.gay_bed": "Gay Bed",
|
||||
"block.joy.enby_bed": "Enby Bed",
|
||||
@ -41,6 +42,8 @@
|
||||
"block.joy.lesbian_candle": "Lesbian Candle",
|
||||
"block.joy.progress_candle": "Progress Candle",
|
||||
|
||||
"block.joy.pride_cake": "Pride Cake",
|
||||
|
||||
"item.joy.pride_elytra": "Pride Elytra",
|
||||
"item.joy.totem_of_pride": "Totem of Pride",
|
||||
"item.joy.pride_brush": "Pride Brush",
|
||||
|
Loading…
x
Reference in New Issue
Block a user