From 7855843c34c4655589ae301b3c29a894a013fc77 Mon Sep 17 00:00:00 2001 From: Hunter19823 Date: Mon, 4 Mar 2024 20:27:46 -0700 Subject: [PATCH] Created a CarpetBlockBuilder --- .../mods/kubejs/BuiltinKubeJSPlugin.java | 2 + .../block/custom/CarpetBlockBuilder.java | 40 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 common/src/main/java/dev/latvian/mods/kubejs/block/custom/CarpetBlockBuilder.java diff --git a/common/src/main/java/dev/latvian/mods/kubejs/BuiltinKubeJSPlugin.java b/common/src/main/java/dev/latvian/mods/kubejs/BuiltinKubeJSPlugin.java index 007f338b8..de8179e45 100644 --- a/common/src/main/java/dev/latvian/mods/kubejs/BuiltinKubeJSPlugin.java +++ b/common/src/main/java/dev/latvian/mods/kubejs/BuiltinKubeJSPlugin.java @@ -34,6 +34,7 @@ import dev.latvian.mods.kubejs.block.MaterialListJS; import dev.latvian.mods.kubejs.block.SoundTypeWrapper; import dev.latvian.mods.kubejs.block.custom.BasicBlockJS; +import dev.latvian.mods.kubejs.block.custom.CarpetBlockBuilder; import dev.latvian.mods.kubejs.block.custom.CropBlockBuilder; import dev.latvian.mods.kubejs.block.custom.FallingBlockBuilder; import dev.latvian.mods.kubejs.block.custom.FenceBlockBuilder; @@ -194,6 +195,7 @@ public void init() { RegistryInfo.BLOCK.addType("falling", FallingBlockBuilder.class, FallingBlockBuilder::new); RegistryInfo.BLOCK.addType("crop", CropBlockBuilder.class, CropBlockBuilder::new); RegistryInfo.BLOCK.addType("cardinal", HorizontalDirectionalBlockBuilder.class, HorizontalDirectionalBlockBuilder::new); + RegistryInfo.BLOCK.addType("carpet", CarpetBlockBuilder.class, CarpetBlockBuilder::new); RegistryInfo.ITEM.addType("basic", BasicItemJS.Builder.class, BasicItemJS.Builder::new); RegistryInfo.ITEM.addType("sword", SwordItemBuilder.class, SwordItemBuilder::new); diff --git a/common/src/main/java/dev/latvian/mods/kubejs/block/custom/CarpetBlockBuilder.java b/common/src/main/java/dev/latvian/mods/kubejs/block/custom/CarpetBlockBuilder.java new file mode 100644 index 000000000..5743391a6 --- /dev/null +++ b/common/src/main/java/dev/latvian/mods/kubejs/block/custom/CarpetBlockBuilder.java @@ -0,0 +1,40 @@ +package dev.latvian.mods.kubejs.block.custom; + +import dev.latvian.mods.kubejs.client.VariantBlockStateGenerator; +import dev.latvian.mods.kubejs.generator.AssetJsonGenerator; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.CarpetBlock; + +public class CarpetBlockBuilder extends ShapedBlockBuilder { + public CarpetBlockBuilder(ResourceLocation i) { + super(i, "_carpet"); + tagBoth(BlockTags.WOOL_CARPETS.location()); + } + + @Override + public Block createObject() { + return new CarpetBlock(createProperties()); + } + + @Override + protected void generateBlockStateJson(VariantBlockStateGenerator bs) { + var mod = newID("block/", "").toString(); + bs.variant("", (v) -> v.model(mod)); + } + + @Override + protected void generateBlockModelJsons(AssetJsonGenerator generator) { + var texture = textures.get("texture").getAsString(); + + generator.blockModel(id, m -> { + m.parent("minecraft:block/carpet"); + m.texture("wool", texture); + }); + } + + public CarpetBlockBuilder texture(String texture) { + return (CarpetBlockBuilder) textureAll(texture); + } +}