diff --git a/build.gradle b/build.gradle index 079c9a78..ba6bc72f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.11-SNAPSHOT' + id 'fabric-loom' version '1.0-SNAPSHOT' id 'maven-publish' } @@ -12,6 +12,8 @@ group = project.maven_group repositories { mavenCentral() + mavenLocal() + maven { url = 'https://server.bbkr.space/artifactory/libs-release/' } } dependencies { @@ -28,11 +30,8 @@ dependencies { include "io.github.vampirestudios:artifice:${project.artifice_version}" // Jankson - //modImplementation "io.github.cottonmc:Jankson-Fabric:${project.jankson_version}" - //include "io.github.cottonmc:Jankson-Fabric:${project.jankson_version}" - - modImplementation "blue.endless:jankson:${project.jankson_version}" - include "blue.endless:jankson:${project.jankson_version}" + modImplementation "io.github.cottonmc:Jankson-Fabric:${project.jankson_version}" + include "io.github.cottonmc:Jankson-Fabric:${project.jankson_version}" } processResources { diff --git a/gradle.properties b/gradle.properties index 0a20c03c..1c479f53 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ org.gradle.jvmargs=-Xmx1G fabric_version=0.69.1+1.19.3 # check on bintray at https://bintray.com/natanfudge/libs/artifice - artifice_version=0.32.0+1.19.3 + artifice_version=0.31.0+build.2-1.19.3 # check on cotton maven at http://server.bbkr.space:8081/artifactory/libs-release/io/github/cottonmc/Jankson-Fabric/ - jankson_version=j1.2.1 \ No newline at end of file + jankson_version=5.0.0+j1.2.1 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index bb8b2fc2..ae04661e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/com/shnupbups/extrapieces/ExtraPieces.java b/src/main/java/com/shnupbups/extrapieces/ExtraPieces.java index 24b8c2cd..5406d075 100644 --- a/src/main/java/com/shnupbups/extrapieces/ExtraPieces.java +++ b/src/main/java/com/shnupbups/extrapieces/ExtraPieces.java @@ -8,13 +8,12 @@ import com.shnupbups.extrapieces.register.ModBlocks; import com.shnupbups.extrapieces.register.ModConfigs; import io.github.vampirestudios.artifice.api.Artifice; -import io.github.vampirestudios.artifice.api.ArtificeResourcePack; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.util.Identifier; -import net.minecraft.registry.Registry; import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -26,8 +25,6 @@ public class ExtraPieces implements ModInitializer { public static final String piece_pack_version = "2.9.0"; public static final Logger logger = LogManager.getFormatterLogger(mod_name); - public static ArtificeResourcePack datapack; - public static File configDir; public static File ppDir; @@ -75,16 +72,6 @@ public static boolean isWoodmillInstalled() { return FabricLoader.getInstance().isModLoaded("woodmill"); } - public static void dump() { - if (ModConfigs.dumpData) { - try { - datapack.dumpResources(FabricLoader.getInstance().getConfigDirectory().getParent() + "/dump"); - } catch (Exception e) { - ExtraPieces.debugLog("BIG OOF: " + e.getMessage()); - } - } - } - @Override public void onInitialize() { ModConfigs.init(); @@ -94,14 +81,21 @@ public void onInitialize() { api.onInitialize(); }); ModConfigs.initPiecePacks(); - datapack = Artifice.registerData(getID("ep_data"), ArtificeResourcePack.ofData(ModBlocks::init)); + Artifice.registerDataPack(getID("ep_data"), serverResourcePackBuilder -> { + ModBlocks.init(serverResourcePackBuilder); + try { + serverResourcePackBuilder.dump(FabricLoader.getInstance().getConfigDir().getParent() + "/dump", "data", ModConfigs.dumpData && ModBlocks.finished); + } catch (Exception e) { + ExtraPieces.debugLog("BIG OOF: " + e.getMessage()); + } + }); Registry.register(Registries.ITEM, getID("debug_item"), new DebugItem()); ServerLifecycleEvents.SERVER_STARTED.register(server -> { if (ModBlocks.setBuilders.size() != PieceSets.registry.size()) { for (PieceSet.Builder psb : ModBlocks.setBuilders.values()) { if (!psb.isBuilt()) - System.out.println("Piece Set " + psb.toString() + " could not be built, make sure the base and any vanilla pieces actually exist!"); + System.out.println("Piece Set " + psb + " could not be built, make sure the base and any vanilla pieces actually exist!"); } } }); diff --git a/src/main/java/com/shnupbups/extrapieces/ExtraPiecesClient.java b/src/main/java/com/shnupbups/extrapieces/ExtraPiecesClient.java index a20a9bd0..2aeefdda 100644 --- a/src/main/java/com/shnupbups/extrapieces/ExtraPiecesClient.java +++ b/src/main/java/com/shnupbups/extrapieces/ExtraPiecesClient.java @@ -3,21 +3,16 @@ import com.shnupbups.extrapieces.register.ModModels; import com.shnupbups.extrapieces.register.ModRenderLayers; import io.github.vampirestudios.artifice.api.Artifice; -import io.github.vampirestudios.artifice.api.ArtificeResourcePack; import net.fabricmc.api.ClientModInitializer; public class ExtraPiecesClient implements ClientModInitializer { + @Override public void onInitializeClient() { - //try { - Artifice.registerAssets(ExtraPieces.getID("ep_assets"), ArtificeResourcePack.ofAssets(assets -> { - ModModels.init(assets); - assets.setDescription("Assets necessary for Extra Pieces."); - }))/*.dumpResources(FabricLoader.getInstance().getConfigDirectory().getParent()+"/dump")*/; - /*} catch(Exception e) { - ExtraPieces.log("BIG OOF: "+e.getMessage()); - }*/ - + Artifice.registerAssetPack(ExtraPieces.getID("ep_assets"), register -> { + ModModels.init(register); + register.setDescription("Assets necessary for Extra Pieces."); + }); ModRenderLayers.init(); } } diff --git a/src/main/java/com/shnupbups/extrapieces/blocks/PieceBlockItem.java b/src/main/java/com/shnupbups/extrapieces/blocks/PieceBlockItem.java index 4890b38a..09592d0d 100644 --- a/src/main/java/com/shnupbups/extrapieces/blocks/PieceBlockItem.java +++ b/src/main/java/com/shnupbups/extrapieces/blocks/PieceBlockItem.java @@ -1,17 +1,12 @@ package com.shnupbups.extrapieces.blocks; -import com.shnupbups.extrapieces.register.ModItemGroups; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemGroups; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; - import net.minecraft.util.Language; -import org.jetbrains.annotations.NotNull; public class PieceBlockItem extends BlockItem { @@ -32,9 +27,4 @@ public Text getName(ItemStack stack) { if (Language.getInstance().hasTranslation(this.getTranslationKey(stack))) return super.getName(stack); return Text.translatable((getPieceBlock().getType().getTranslationKey()), Text.translatable((getPieceBlock().getSet().getTranslationKey()))); } - - @Override - protected boolean isIn(@NotNull ItemGroup group) { - return group.equals(ModItemGroups.getItemGroup(this.getPieceBlock().getType())) || group.equals(ItemGroups.SEARCH) || super.isIn(group); - } } diff --git a/src/main/java/com/shnupbups/extrapieces/core/PieceType.java b/src/main/java/com/shnupbups/extrapieces/core/PieceType.java index 28193b31..de6a2d8a 100644 --- a/src/main/java/com/shnupbups/extrapieces/core/PieceType.java +++ b/src/main/java/com/shnupbups/extrapieces/core/PieceType.java @@ -11,6 +11,7 @@ import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; import io.github.vampirestudios.artifice.api.builder.assets.ModelBuilder; import io.github.vampirestudios.artifice.api.builder.data.LootTableBuilder; +import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.network.PacketByteBuf; import net.minecraft.util.Identifier; @@ -20,7 +21,6 @@ import java.util.function.Consumer; public abstract class PieceType { - private final Identifier id; public PieceType(String id) { @@ -114,30 +114,17 @@ public int getStonecuttingCount() { } public void addLootTable(ArtificeResourcePack.ServerResourcePackBuilder data, PieceBlock pb) { - LootTableBuilder loot = new LootTableBuilder(); - TypedJsonObject cond = new TypedJsonObject(); - loot.type(new Identifier("block")); - loot.pool(new LootTableBuilder.Pool() - .rolls(1) - .entry(new LootTableBuilder.Pool.Entry() - .type(new Identifier("item")) - .name(Registries.BLOCK.getId(pb.getBlock()))) - .condition(new Identifier("survives_explosion"), cond)); + LootTableBuilder loot = new LootTableBuilder() + .type(new Identifier("block")) + .pool(new LootTableBuilder.Pool() + .rolls(1) + .entry(new LootTableBuilder.Pool.Entry() + .type(new Identifier("item")) + .name(Registries.BLOCK.getId(pb.getBlock())) + .condition(new Identifier("survives_explosion"), new TypedJsonObject()) + ) + ); data.addLootTable(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "blocks/"), loot); - - -// data.addLootTable(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "blocks/"), loot -> { -// loot.type(new Identifier("block")); -// loot.pool(pool -> { -// pool.rolls(1); -// pool.entry(entry -> { -// entry.type(new Identifier("item")); -// entry.name(Registries.BLOCK.getId(pb.getBlock())); -// }); -// pool.condition(new Identifier("survives_explosion"), cond -> { -// }); -// }); -// }); } @@ -157,35 +144,28 @@ public void addBlockModels(ArtificeResourcePack.ClientResourcePackBuilder pack, } public void addItemModel(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - ModelBuilder model = new ModelBuilder(); - model.parent(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "block/")); + ModelBuilder model = new ModelBuilder() + .parent(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "block/")); pack.addItemModel(Registries.BLOCK.getId(pb.getBlock()), model); } public void addBlockModel(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb, String append) { - ModelBuilder model = new ModelBuilder(); - model.parent(ExtraPieces.prependToPath(ExtraPieces.appendToPath(this.getId(), "_" + append), "block/dummy_")); - model.texture("particle", pb.getSet().getMainTexture()); - model.texture("main", pb.getSet().getMainTexture()); - model.texture("top", pb.getSet().getTopTexture()); - model.texture("bottom", pb.getSet().getBottomTexture()); + ModelBuilder model = new ModelBuilder() + .parent(ExtraPieces.prependToPath(ExtraPieces.appendToPath(this.getId(), "_" + append), "block/dummy_")) + .texture("particle", pb.getSet().getMainTexture()) + .texture("main", pb.getSet().getMainTexture()) + .texture("top", pb.getSet().getTopTexture()) + .texture("bottom", pb.getSet().getBottomTexture()); pack.addBlockModel(ExtraPieces.appendToPath(Registries.BLOCK.getId(pb.getBlock()), "_" + append), model); } public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - BlockStateBuilder state = new BlockStateBuilder(); - state.variant("", new BlockStateBuilder.Variant().model(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "block/"))); + BlockStateBuilder state = new BlockStateBuilder() + .variant("", new BlockStateBuilder.Variant().model(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "block/"))); pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state); } -// pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { -// state.variant("", var -> { -// var.model(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "block/")); -// }); -// }); -// } - public PieceBlockItem getBlockItem(PieceBlock pb) { return new PieceBlockItem(pb, new Item.Settings()); } diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/ColumnPiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/ColumnPiece.java index b6262810..52ea4d34 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/ColumnPiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/ColumnPiece.java @@ -6,10 +6,8 @@ import com.shnupbups.extrapieces.core.PieceType; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; -import net.minecraft.block.Block; -import net.minecraft.util.math.Direction; -import net.minecraft.registry.Registry; import net.minecraft.registry.Registries; +import net.minecraft.util.math.Direction; public class ColumnPiece extends PieceType { public ColumnPiece() { @@ -22,35 +20,18 @@ public ColumnPieceBlock getNew(PieceSet set) { public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { BlockStateBuilder state = new BlockStateBuilder(); - for (Direction.Axis a : Direction.Axis.values()){ - if (a != Direction.Axis.Y){ - state.variant("axis=" + a.asString(),new BlockStateBuilder.Variant() - .uvlock(true) - .model(getModelPath(pb)).rotationX(90)); + for (Direction.Axis a : Direction.Axis.values()) { + BlockStateBuilder.Variant variant = new BlockStateBuilder.Variant(); + variant.uvlock(true); + variant.model(getModelPath(pb)); + if (a != Direction.Axis.Y) { + variant.rotationX(90); if (a == Direction.Axis.X) { - state.variant("axis=" + a.asString(), new BlockStateBuilder.Variant() - .uvlock(true) - .model(getModelPath(pb)).rotationY(90)); + variant.rotationY(90); } } + state.variant("axis=" + a.asString(), variant); } pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state); } - -// -// pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { -// for (Direction.Axis a : Direction.Axis.values()) { -// state.variant("axis=" + a.asString(), var -> { -// var.uvlock(true); -// var.model(getModelPath(pb)); -// if (a != Direction.Axis.Y) { -// var.rotationX(90); -// if (a == Direction.Axis.X) { -// var.rotationY(90); -// } -// } -// }); -// } -// }); -// } } diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/CornerPiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/CornerPiece.java index d0d626cd..b677e094 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/CornerPiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/CornerPiece.java @@ -7,9 +7,9 @@ import com.shnupbups.extrapieces.core.PieceTypes; import com.shnupbups.extrapieces.recipe.ShapedPieceRecipe; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; -import net.minecraft.util.math.Direction; -import net.minecraft.registry.Registry; +import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; import net.minecraft.registry.Registries; +import net.minecraft.util.math.Direction; import java.util.ArrayList; @@ -29,26 +29,20 @@ public ArrayList getShapedRecipes() { } public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { - for (Direction d : Direction.values()) { - if (d != Direction.UP && d != Direction.DOWN) { - state.variant("facing=" + d.asString(), var -> { - var.model(getModelPath(pb)); - var.uvlock(true); - switch (d) { - case SOUTH: - var.rotationY(180); - break; - case EAST: - var.rotationY(90); - break; - case WEST: - var.rotationY(270); - break; - } - }); + BlockStateBuilder builder = new BlockStateBuilder(); + for (Direction d : Direction.values()) { + if (d != Direction.UP && d != Direction.DOWN) { + BlockStateBuilder.Variant variant = new BlockStateBuilder.Variant(); + variant.model(getModelPath(pb)); + variant.uvlock(true); + switch (d) { + case SOUTH -> variant.rotationY(180); + case EAST -> variant.rotationY(90); + case WEST -> variant.rotationY(270); } + builder.variant("facing=" + d.asString(), variant); } - }); + } + pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), builder); } } diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/FenceGatePiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/FenceGatePiece.java index a1e642a6..89a7ba5f 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/FenceGatePiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/FenceGatePiece.java @@ -7,11 +7,11 @@ import com.shnupbups.extrapieces.core.PieceTypes; import com.shnupbups.extrapieces.recipe.ShapedPieceRecipe; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; +import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; import net.minecraft.item.Items; +import net.minecraft.registry.Registries; import net.minecraft.sound.SoundEvent; import net.minecraft.util.math.Direction; -import net.minecraft.registry.Registry; -import net.minecraft.registry.Registries; import java.util.ArrayList; @@ -43,71 +43,47 @@ public void addBlockModels(ArtificeResourcePack.ClientResourcePackBuilder pack, } public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { - for (Direction d : Direction.values()) { - if (d != Direction.UP && d != Direction.DOWN) { - state.variant("facing=" + d.asString() + ",in_wall=false,open=false", var -> { - var.model(getModelPath(pb)); - var.uvlock(true); - switch (d) { - case NORTH: - var.rotationY(180); - break; - case WEST: - var.rotationY(90); - break; - case EAST: - var.rotationY(270); - break; - } - }); - state.variant("facing=" + d.asString() + ",in_wall=true,open=false", var -> { - var.model(getModelPath(pb, "wall")); - var.uvlock(true); - switch (d) { - case NORTH: - var.rotationY(180); - break; - case WEST: - var.rotationY(90); - break; - case EAST: - var.rotationY(270); - break; - } - }); - state.variant("facing=" + d.asString() + ",in_wall=false,open=true", var -> { - var.model(getModelPath(pb, "open")); - var.uvlock(true); - switch (d) { - case NORTH: - var.rotationY(180); - break; - case WEST: - var.rotationY(90); - break; - case EAST: - var.rotationY(270); - break; - } - }); - state.variant("facing=" + d.asString() + ",in_wall=true,open=true", var -> { - var.model(getModelPath(pb, "wall_open")); - var.uvlock(true); - switch (d) { - case NORTH: - var.rotationY(180); - break; - case WEST: - var.rotationY(90); - break; - case EAST: - var.rotationY(270); - break; - } - }); + BlockStateBuilder builder = new BlockStateBuilder(); + for (Direction d : Direction.values()) { + if (d != Direction.UP && d != Direction.DOWN) { + BlockStateBuilder.Variant variant = new BlockStateBuilder.Variant(); + variant.model(getModelPath(pb)); + variant.uvlock(true); + switch (d) { + case NORTH -> variant.rotationY(180); + case WEST -> variant.rotationY(90); + case EAST -> variant.rotationY(270); + } + builder.variant("facing=" + d.asString() + ",in_wall=false,open=false", variant); + variant = new BlockStateBuilder.Variant(); + variant.model(getModelPath(pb, "wall")); + variant.uvlock(true); + switch (d) { + case NORTH -> variant.rotationY(180); + case WEST -> variant.rotationY(90); + case EAST -> variant.rotationY(270); + } + builder.variant("facing=" + d.asString() + ",in_wall=true,open=false", variant); + variant = new BlockStateBuilder.Variant(); + variant.model(getModelPath(pb, "open")); + variant.uvlock(true); + switch (d) { + case NORTH -> variant.rotationY(180); + case WEST -> variant.rotationY(90); + case EAST -> variant.rotationY(270); + } + builder.variant("facing=" + d.asString() + ",in_wall=false,open=true", variant); + variant = new BlockStateBuilder.Variant(); + variant.model(getModelPath(pb, "wall_open")); + variant.uvlock(true); + switch (d) { + case NORTH -> variant.rotationY(180); + case WEST -> variant.rotationY(90); + case EAST -> variant.rotationY(270); } + builder.variant("facing=" + d.asString() + ",in_wall=true,open=true", variant); } - }); + } + pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), builder); } } diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/FencePiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/FencePiece.java index 7d086816..cdf80b31 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/FencePiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/FencePiece.java @@ -8,11 +8,12 @@ import com.shnupbups.extrapieces.core.PieceTypes; import com.shnupbups.extrapieces.recipe.ShapedPieceRecipe; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; +import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; +import io.github.vampirestudios.artifice.api.builder.assets.ModelBuilder; import net.minecraft.item.Items; +import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; -import net.minecraft.registry.Registry; -import net.minecraft.registry.Registries; import java.util.ArrayList; @@ -42,40 +43,30 @@ public void addBlockModels(ArtificeResourcePack.ClientResourcePackBuilder pack, } public void addItemModel(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addItemModel(Registries.BLOCK.getId(pb.getBlock()), model -> { - model.parent(ExtraPieces.prependToPath(ExtraPieces.appendToPath(Registries.BLOCK.getId(pb.getBlock()), "_inventory"), "block/")); - }); + ModelBuilder builder = new ModelBuilder() + .parent(ExtraPieces.prependToPath(ExtraPieces.appendToPath(Registries.BLOCK.getId(pb.getBlock()), "_inventory"), "block/")); + pack.addItemModel(Registries.BLOCK.getId(pb.getBlock()), builder); } public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { - state.multipartCase(caze -> { - caze.apply(var -> { - var.model(getModelPath(pb)); - }); - }); - for (Direction d : Direction.values()) { - if (d != Direction.UP && d != Direction.DOWN) { - state.multipartCase(caze -> { - caze.when(d.asString(), "true"); - caze.apply(var -> { - var.model(getModelPath(pb, "side")); - var.uvlock(true); - switch (d) { - case EAST: - var.rotationY(90); - break; - case WEST: - var.rotationY(270); - break; - case SOUTH: - var.rotationY(180); - break; - } - }); - }); + BlockStateBuilder builder = new BlockStateBuilder() + .multipartCase(new BlockStateBuilder.Case().apply(new BlockStateBuilder.Variant().model(getModelPath(pb)))); + for (Direction d : Direction.values()) { + if (d != Direction.UP && d != Direction.DOWN) { + BlockStateBuilder.Case caze = new BlockStateBuilder.Case(); + caze.when(d.asString(), "true"); + BlockStateBuilder.Variant variant = new BlockStateBuilder.Variant() + .model(getModelPath(pb, "side")) + .uvlock(true); + switch (d) { + case EAST -> variant.rotationY(90); + case WEST -> variant.rotationY(270); + case SOUTH -> variant.rotationY(180); } + caze.apply(variant); + builder.multipartCase(caze); } - }); + } + pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), builder); } } diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/LayerPiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/LayerPiece.java index db437eb5..528a5aef 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/LayerPiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/LayerPiece.java @@ -1,5 +1,6 @@ package com.shnupbups.extrapieces.pieces; +import com.google.gson.JsonObject; import com.shnupbups.extrapieces.ExtraPieces; import com.shnupbups.extrapieces.blocks.LayerPieceBlock; import com.shnupbups.extrapieces.blocks.PieceBlock; @@ -8,10 +9,13 @@ import com.shnupbups.extrapieces.core.PieceTypes; import com.shnupbups.extrapieces.recipe.ShapedPieceRecipe; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; +import io.github.vampirestudios.artifice.api.builder.TypedJsonObject; +import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; +import io.github.vampirestudios.artifice.api.builder.assets.ModelBuilder; +import io.github.vampirestudios.artifice.api.builder.data.LootTableBuilder; +import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; -import net.minecraft.registry.Registry; -import net.minecraft.registry.Registries; import java.util.ArrayList; @@ -42,42 +46,47 @@ public void addBlockModels(ArtificeResourcePack.ClientResourcePackBuilder pack, } public void addItemModel(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addItemModel(Registries.BLOCK.getId(pb.getBlock()), model -> { - model.parent(getModelPath(pb, "height_2")); - }); + pack.addItemModel(Registries.BLOCK.getId(pb.getBlock()), new ModelBuilder() + .parent(getModelPath(pb, "height_2")) + ); } public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { - for(Direction dir : Direction.values()) { - for (int i = 1; i <= 8; i++) { - final int j = i * 2; - state.variant("facing="+dir.asString()+",layers=" + i, var -> { - var.model(getModelPath(pb, "height_"+j)); - var.uvlock(true); - switch(dir) { - case DOWN: - var.rotationX(180); - return; - case NORTH: - var.rotationX(90); - return; - case SOUTH: - var.rotationX(90); - var.rotationY(180); - return; - case EAST: - var.rotationX(90); - var.rotationY(90); - return; - case WEST: - var.rotationX(90); - var.rotationY(270); - } - }); + BlockStateBuilder builder = new BlockStateBuilder(); + for(Direction dir : Direction.values()) { + for (int i = 1; i <= 8; i++) { + final int j = i * 2; + BlockStateBuilder.Variant variant = new BlockStateBuilder.Variant() + .model(getModelPath(pb, "height_" + j)) + .uvlock(true); + switch (dir) { + case DOWN -> { + variant.rotationX(180); + return; + } + case NORTH -> { + variant.rotationX(90); + return; + } + case SOUTH -> { + variant.rotationX(90); + variant.rotationY(180); + return; + } + case EAST -> { + variant.rotationX(90); + variant.rotationY(90); + return; + } + case WEST -> { + variant.rotationX(90); + variant.rotationY(270); + } } + builder.variant("facing=" + dir.asString() + ",layers=" + i, variant); } - }); + } + pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), builder); } public int getStonecuttingCount() { @@ -86,29 +95,23 @@ public int getStonecuttingCount() { @Override public void addLootTable(ArtificeResourcePack.ServerResourcePackBuilder data, PieceBlock pb) { - data.addLootTable(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "blocks/"), loot -> { - loot.type(new Identifier("block")); - loot.pool(pool -> { - pool.rolls(1); - pool.entry(entry -> { - entry.type(new Identifier("item")); - entry.name(Registry.BLOCK.getId(pb.getBlock())); - for (int i = 1; i <= 8; i++) { - final int j = i; - entry.function(new Identifier("set_count"), func -> { - func.add("count", j); - func.condition(new Identifier("block_state_property"), cond -> { - cond.add("block", Registry.BLOCK.getId(pb.getBlock()).toString()); - cond.addObject("properties", prop -> { - prop.add("layers", j); - }); - }); - }); - } - entry.function(new Identifier("explosion_decay"), cond -> { - }); - }); - }); - }); + LootTableBuilder builder = new LootTableBuilder().type(new Identifier("block")); + LootTableBuilder.Pool pool = new LootTableBuilder.Pool().rolls(1); + LootTableBuilder.Pool.Entry entry = new LootTableBuilder.Pool.Entry() + .type(new Identifier("item")) + .name(Registries.BLOCK.getId(pb.getBlock())); + for (int i = 1; i <= 8; i++) { + LootTableBuilder.Pool.Entry.Function function = new LootTableBuilder.Pool.Entry.Function(new JsonObject()); + TypedJsonObject condition = new TypedJsonObject() + .add("block", Registries.BLOCK.getId(pb.getBlock()).toString()) + .add("properties", new TypedJsonObject().add("layers", i)); + function.condition(new Identifier("block_state_property"), condition); + function.add("count", 3); + entry.function(new Identifier("set_count"), function); + } + entry.function(new Identifier("explosion_decay"), new LootTableBuilder.Pool.Entry.Function(new JsonObject())); + pool.entry(entry); + builder.pool(pool); + data.addLootTable(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "blocks/"), builder); } } diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/PostPiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/PostPiece.java index 1344057b..2082065d 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/PostPiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/PostPiece.java @@ -5,9 +5,9 @@ import com.shnupbups.extrapieces.core.PieceSet; import com.shnupbups.extrapieces.core.PieceType; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; -import net.minecraft.util.math.Direction; -import net.minecraft.registry.Registry; +import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; import net.minecraft.registry.Registries; +import net.minecraft.util.math.Direction; public class PostPiece extends PieceType { public PostPiece() { @@ -19,19 +19,19 @@ public PostPieceBlock getNew(PieceSet set) { } public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { - for (Direction.Axis a : Direction.Axis.values()) { - state.variant("axis=" + a.asString(), var -> { - var.uvlock(true); - var.model(getModelPath(pb)); - if (a != Direction.Axis.Y) { - var.rotationX(90); - if (a == Direction.Axis.X) { - var.rotationY(90); - } - } - }); + BlockStateBuilder builder = new BlockStateBuilder(); + for (Direction.Axis a : Direction.Axis.values()) { + BlockStateBuilder.Variant variant = new BlockStateBuilder.Variant() + .uvlock(true) + .model(getModelPath(pb)); + if (a != Direction.Axis.Y) { + variant.rotationX(90); + if (a == Direction.Axis.X) { + variant.rotationY(90); + } } - }); + builder.variant("axis=" + a.asString(), variant); + } + pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), builder); } } diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/SidingPiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/SidingPiece.java index 0412cb5a..e8fb5486 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/SidingPiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/SidingPiece.java @@ -1,5 +1,6 @@ package com.shnupbups.extrapieces.pieces; +import com.google.gson.JsonObject; import com.shnupbups.extrapieces.ExtraPieces; import com.shnupbups.extrapieces.blocks.PieceBlock; import com.shnupbups.extrapieces.blocks.SidingPieceBlock; @@ -9,10 +10,12 @@ import com.shnupbups.extrapieces.recipe.ShapedPieceRecipe; import com.shnupbups.extrapieces.register.ModProperties; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; +import io.github.vampirestudios.artifice.api.builder.TypedJsonObject; +import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; +import io.github.vampirestudios.artifice.api.builder.data.LootTableBuilder; +import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; -import net.minecraft.registry.Registry; -import net.minecraft.registry.Registries; import java.util.ArrayList; @@ -37,27 +40,23 @@ public int getStonecuttingCount() { @Override public void addLootTable(ArtificeResourcePack.ServerResourcePackBuilder data, PieceBlock pb) { - data.addLootTable(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "blocks/"), loot -> { - loot.type(new Identifier("block")); - loot.pool(pool -> { - pool.rolls(1); - pool.entry(entry -> { - entry.type(new Identifier("item")); - entry.name(Registries.BLOCK.getId(pb.getBlock())); - entry.function(new Identifier("set_count"), func -> { - func.add("count", 2); - func.condition(new Identifier("block_state_property"), cond -> { - cond.add("block", Registries.BLOCK.getId(pb.getBlock()).toString()); - cond.addObject("properties", prop -> { - prop.add("type", "double"); - }); - }); - }); - entry.function(new Identifier("explosion_decay"), cond -> { - }); - }); - }); - }); + LootTableBuilder builder = new LootTableBuilder() + .type(new Identifier("block")); + LootTableBuilder.Pool pool = new LootTableBuilder.Pool() + .rolls(1); + LootTableBuilder.Pool.Entry entry = new LootTableBuilder.Pool.Entry() + .type(new Identifier("item")) + .name(Registries.BLOCK.getId(pb.getBlock())); + LootTableBuilder.Pool.Entry.Function function = new LootTableBuilder.Pool.Entry.Function(new JsonObject()); + function.add("count", 2); + TypedJsonObject condition = new TypedJsonObject() + .add("block", Registries.BLOCK.getId(pb.getBlock()).toString()) + .add("properties", new TypedJsonObject().add("type", "double")); + function.condition(new Identifier("block_state_property"), condition); + entry.function(new Identifier("set_count"), function); + entry.function(new Identifier("explosion_decay"), new LootTableBuilder.Pool.Entry.Function(new JsonObject())); + builder.pool(pool); + data.addLootTable(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "blocks/"), builder); } public void addBlockModels(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { @@ -66,38 +65,30 @@ public void addBlockModels(ArtificeResourcePack.ClientResourcePackBuilder pack, } public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { - for (ModProperties.SidingType t : ModProperties.SidingType.values()) { - switch (t) { - case SINGLE: - for (Direction d : Direction.values()) { - if (!(d.equals(Direction.DOWN) || d.equals(Direction.UP))) { - state.variant("type=" + t.asString() + ",facing=" + d.asString(), var -> { - var.uvlock(true); - var.model(getModelPath(pb)); - switch (d) { - case EAST: - var.rotationY(90); - break; - case WEST: - var.rotationY(270); - break; - case SOUTH: - var.rotationY(180); - break; - } - }); + BlockStateBuilder builder = new BlockStateBuilder(); + for (ModProperties.SidingType t : ModProperties.SidingType.values()) { + switch (t) { + case SINGLE -> { + for (Direction d : Direction.values()) { + if (!(d.equals(Direction.DOWN) || d.equals(Direction.UP))) { + BlockStateBuilder.Variant variant = new BlockStateBuilder.Variant() + .uvlock(true) + .model(getModelPath(pb)); + switch (d) { + case EAST -> variant.rotationY(90); + case WEST -> variant.rotationY(270); + case SOUTH -> variant.rotationY(180); } + builder.variant("type=" + t.asString() + ",facing=" + d.asString(), variant); } - break; - case DOUBLE: - state.variant("type=" + t.asString(), var -> { - var.model(getModelPath(pb, "double")); - }); - break; + } } - + case DOUBLE -> builder.variant("type=" + t.asString(), new BlockStateBuilder.Variant() + .model(getModelPath(pb, "double")) + ); } - }); + + } + pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), builder); } } diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/SlabPiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/SlabPiece.java index 91a1f8ee..7dc47bc6 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/SlabPiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/SlabPiece.java @@ -1,5 +1,6 @@ package com.shnupbups.extrapieces.pieces; +import com.google.gson.JsonObject; import com.shnupbups.extrapieces.ExtraPieces; import com.shnupbups.extrapieces.blocks.PieceBlock; import com.shnupbups.extrapieces.blocks.SlabPieceBlock; @@ -8,10 +9,12 @@ import com.shnupbups.extrapieces.core.PieceTypes; import com.shnupbups.extrapieces.recipe.ShapedPieceRecipe; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; +import io.github.vampirestudios.artifice.api.builder.TypedJsonObject; +import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; +import io.github.vampirestudios.artifice.api.builder.data.LootTableBuilder; import net.minecraft.block.enums.SlabType; -import net.minecraft.util.Identifier; -import net.minecraft.registry.Registry; import net.minecraft.registry.Registries; +import net.minecraft.util.Identifier; import java.util.ArrayList; @@ -40,27 +43,24 @@ public int getStonecuttingCount() { @Override public void addLootTable(ArtificeResourcePack.ServerResourcePackBuilder data, PieceBlock pb) { - data.addLootTable(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "blocks/"), loot -> { - loot.type(new Identifier("block")); - loot.pool(pool -> { - pool.rolls(1); - pool.entry(entry -> { - entry.type(new Identifier("item")); - entry.name(Registries.BLOCK.getId(pb.getBlock())); - entry.function(new Identifier("set_count"), func -> { - func.add("count", 2); - func.condition(new Identifier("block_state_property"), cond -> { - cond.add("block", Registries.BLOCK.getId(pb.getBlock()).toString()); - cond.addObject("properties", prop -> { - prop.add("type", "double"); - }); - }); - }); - entry.function(new Identifier("explosion_decay"), cond -> { - }); - }); - }); - }); + LootTableBuilder builder = new LootTableBuilder() + .type(new Identifier("block")); + LootTableBuilder.Pool pool = new LootTableBuilder.Pool() + .rolls(1); + + LootTableBuilder.Pool.Entry entry = new LootTableBuilder.Pool.Entry() + .type(new Identifier("item")) + .name(Registries.BLOCK.getId(pb.getBlock())); + LootTableBuilder.Pool.Entry.Function function = new LootTableBuilder.Pool.Entry.Function(new JsonObject()); + function.add("count", 2); + TypedJsonObject condition = new TypedJsonObject() + .add("block", Registries.BLOCK.getId(pb.getBlock()).toString()) + .add("properties", new TypedJsonObject().add("type", "double")); + function.condition(new Identifier("block_state_property"), condition); + entry.function(new Identifier("set_count"), function); + entry.function(new Identifier("explosion_decay"), new LootTableBuilder.Pool.Entry.Function(new JsonObject())); + builder.pool(pool); + data.addLootTable(ExtraPieces.prependToPath(Registries.BLOCK.getId(pb.getBlock()), "blocks/"), builder); } public void addBlockModels(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { @@ -70,22 +70,16 @@ public void addBlockModels(ArtificeResourcePack.ClientResourcePackBuilder pack, } public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { - for (SlabType t : SlabType.values()) { - state.variant("type=" + t.asString(), var -> { - switch (t) { - case BOTTOM: - var.model(getModelPath(pb)); - break; - case TOP: - var.model(getModelPath(pb, "top")); - break; - case DOUBLE: - var.model(getModelPath(pb, "double")); - break; - } - }); + BlockStateBuilder builder = new BlockStateBuilder(); + for (SlabType t : SlabType.values()) { + BlockStateBuilder.Variant variant = new BlockStateBuilder.Variant(); + switch (t) { + case BOTTOM -> variant.model(getModelPath(pb)); + case TOP -> variant.model(getModelPath(pb, "top")); + case DOUBLE -> variant.model(getModelPath(pb, "double")); } - }); + builder.variant("type=" + t.asString(), variant); + } + pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), builder); } } diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/StairsPiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/StairsPiece.java index 2115ec79..84f4f97f 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/StairsPiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/StairsPiece.java @@ -53,171 +53,93 @@ public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, P var.uvlock(true); int y = 0; switch (s) { - case STRAIGHT: + case STRAIGHT -> { var.model(getModelPath(pb)); switch (d) { - case EAST: - y = 0; - break; - case WEST: - y = 180; - break; - case NORTH: - y = 270; - break; - case SOUTH: - y = 90; - break; + case EAST -> y = 0; + case WEST -> y = 180; + case NORTH -> y = 270; + case SOUTH -> y = 90; } - break; - case OUTER_RIGHT: + } + case OUTER_RIGHT -> { var.model(getModelPath(pb, "outer")); switch (h) { - case BOTTOM: - switch (d) { - case EAST: - y = 0; - break; - case WEST: - y = 180; - break; - case NORTH: - y = 270; - break; - case SOUTH: - y = 90; - break; - } - break; - case TOP: - switch (d) { - case EAST: - y = 90; - break; - case WEST: - y = 270; - break; - case NORTH: - y = 0; - break; - case SOUTH: - y = 180; - break; - } - break; + case BOTTOM -> y = switch (d) { + case EAST -> 0; + case WEST -> 180; + case NORTH -> 270; + case SOUTH -> 90; + default -> y; + }; + case TOP -> y = switch (d) { + case EAST -> 90; + case WEST -> 270; + case NORTH -> 0; + case SOUTH -> 180; + default -> y; + }; } - break; - case OUTER_LEFT: + } + case OUTER_LEFT -> { var.model(getModelPath(pb, "outer")); switch (h) { - case BOTTOM: - switch (d) { - case EAST: - y = 270; - break; - case WEST: - y = 90; - break; - case NORTH: - y = 180; - break; - case SOUTH: - y = 0; - break; - } - break; - case TOP: - switch (d) { - case EAST: - y = 0; - break; - case WEST: - y = 180; - break; - case NORTH: - y = 270; - break; - case SOUTH: - y = 90; - break; - } - break; + case BOTTOM -> y = switch (d) { + case EAST -> 270; + case WEST -> 90; + case NORTH -> 180; + case SOUTH -> 0; + default -> y; + }; + case TOP -> { + y = switch (d) { + case EAST -> 0; + case WEST -> 180; + case NORTH -> 270; + case SOUTH -> 90; + default -> y; + }; + } } - break; - case INNER_RIGHT: + } + case INNER_RIGHT -> { var.model(getModelPath(pb, "inner")); - switch (h) { - case BOTTOM: - switch (d) { - case EAST: - y = 0; - break; - case WEST: - y = 180; - break; - case SOUTH: - y = 90; - break; - case NORTH: - y = 270; - break; - } - break; - case TOP: - switch (d) { - case EAST: - y = 90; - break; - case WEST: - y = 270; - break; - case NORTH: - y = 0; - break; - case SOUTH: - y = 180; - break; - } - break; - } - break; - case INNER_LEFT: + y = switch (h) { + case BOTTOM -> switch (d) { + case EAST -> 0; + case WEST -> 180; + case SOUTH -> 90; + case NORTH -> 270; + default -> y; + }; + case TOP -> switch (d) { + case EAST -> 90; + case WEST -> 270; + case NORTH -> 0; + case SOUTH -> 180; + default -> y; + }; + }; + } + case INNER_LEFT -> { var.model(getModelPath(pb, "inner")); - switch (h) { - case BOTTOM: - switch (d) { - case EAST: - y = 270; - break; - case WEST: - y = 90; - break; - case NORTH: - y = 180; - break; - case SOUTH: - y = 0; - break; - } - break; - case TOP: - switch (d) { - case EAST: - y = 0; - break; - case WEST: - y = 180; - break; - case NORTH: - y = 270; - break; - case SOUTH: - y = 90; - break; - } - break; - } - break; + y = switch (h) { + case BOTTOM -> switch (d) { + case EAST -> 270; + case WEST -> 90; + case NORTH -> 180; + case SOUTH -> 0; + default -> y; + }; + case TOP -> switch (d) { + case EAST -> 0; + case WEST -> 180; + case NORTH -> 270; + case SOUTH -> 90; + default -> y; + }; + }; + } } if (h.equals(BlockHalf.TOP)) var.rotationX(180); var.rotationY(y); diff --git a/src/main/java/com/shnupbups/extrapieces/pieces/WallPiece.java b/src/main/java/com/shnupbups/extrapieces/pieces/WallPiece.java index 98f9a552..487a7435 100644 --- a/src/main/java/com/shnupbups/extrapieces/pieces/WallPiece.java +++ b/src/main/java/com/shnupbups/extrapieces/pieces/WallPiece.java @@ -8,6 +8,7 @@ import com.shnupbups.extrapieces.core.PieceTypes; import com.shnupbups.extrapieces.recipe.ShapedPieceRecipe; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; +import io.github.vampirestudios.artifice.api.builder.assets.BlockStateBuilder; import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; import net.minecraft.registry.Registry; @@ -48,53 +49,42 @@ public void addItemModel(ArtificeResourcePack.ClientResourcePackBuilder pack, Pi } public void addBlockstate(ArtificeResourcePack.ClientResourcePackBuilder pack, PieceBlock pb) { - pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { - state.multipartCase(caze -> { - caze.when(Direction.UP.asString(), "true"); - caze.apply(var -> { - var.model(getModelPath(pb)); - }); - }); - for (Direction d : Direction.values()) { - if (d != Direction.UP && d != Direction.DOWN) { - state.multipartCase(caze -> { - caze.when(d.asString(), "low"); - caze.apply(var -> { - var.model(getModelPath(pb, "side")); - var.uvlock(true); - switch (d) { - case EAST: - var.rotationY(90); - break; - case WEST: - var.rotationY(270); - break; - case SOUTH: - var.rotationY(180); - break; - } - }); + BlockStateBuilder builder = new BlockStateBuilder(); + builder.multipartCase(new BlockStateBuilder.Case() + .when(Direction.UP.asString(), "true") + .apply(new BlockStateBuilder.Variant().model(getModelPath(pb))) + ); + for (Direction d : Direction.values()) { + if (d != Direction.UP && d != Direction.DOWN) { + BlockStateBuilder.Variant variant = new BlockStateBuilder.Variant(); + builder.multipartCase(caze -> { + caze.when(d.asString(), "low"); + caze.apply(var -> { + var.model(getModelPath(pb, "side")); + var.uvlock(true); + switch (d) { + case EAST -> var.rotationY(90); + case WEST -> var.rotationY(270); + case SOUTH -> var.rotationY(180); + } }); - state.multipartCase(caze -> { - caze.when(d.asString(), "tall"); - caze.apply(var -> { - var.model(getModelPath(pb, "side_tall")); - var.uvlock(true); - switch (d) { - case EAST: - var.rotationY(90); - break; - case WEST: - var.rotationY(270); - break; - case SOUTH: - var.rotationY(180); - break; - } - }); + }); + state.multipartCase(caze -> { + caze.when(d.asString(), "tall"); + caze.apply(var -> { + var.model(getModelPath(pb, "side_tall")); + var.uvlock(true); + switch (d) { + case EAST -> var.rotationY(90); + case WEST -> var.rotationY(270); + case SOUTH -> var.rotationY(180); + } }); - } + }); } + } + pack.addBlockState(Registries.BLOCK.getId(pb.getBlock()), state -> { + }); } } diff --git a/src/main/java/com/shnupbups/extrapieces/recipe/PieceIngredient.java b/src/main/java/com/shnupbups/extrapieces/recipe/PieceIngredient.java index 6dadb392..874b1ae7 100644 --- a/src/main/java/com/shnupbups/extrapieces/recipe/PieceIngredient.java +++ b/src/main/java/com/shnupbups/extrapieces/recipe/PieceIngredient.java @@ -4,21 +4,17 @@ import com.shnupbups.extrapieces.core.PieceSet; import com.shnupbups.extrapieces.core.PieceType; import com.shnupbups.extrapieces.core.PieceTypes; -import com.shnupbups.extrapieces.recipe.PieceIngredient.PIType; -import net.minecraft.item.Item; +import net.minecraft.block.Blocks; import net.minecraft.item.ItemConvertible; -import net.minecraft.item.Items; - +import net.minecraft.registry.Registries; import net.minecraft.registry.tag.TagKey; import net.minecraft.util.Identifier; -import net.minecraft.registry.Registry; -import net.minecraft.registry.Registries; import java.util.Optional; public class PieceIngredient { public final PIType type; - private Identifier id; + private final Identifier id; public PieceIngredient(PieceType type) { this.type = PIType.PIECE; @@ -36,18 +32,13 @@ public PieceIngredient(TagKey tag) { } public Identifier getId(PieceSet set) { - if ((type == PIType.PIECE) && set.getPiece(getPieceType()).equals(Items.AIR)) { + if ((type == PIType.PIECE) && set.getPiece(getPieceType()).equals(Blocks.AIR)) { ExtraPieces.log("Attempted to get type " + id.toString() + " from set " + set.getName() + " for a recipe, but got air! This is not good!"); } - switch (type) { - case ITEM: - case TAG: - return id; - case PIECE: - return Registries.ITEM.getId(set.getPiece(getPieceType()).asItem()); - default: - return null; - } + return switch (type) { + case ITEM, TAG -> id; + case PIECE -> Registries.ITEM.getId(set.getPiece(getPieceType()).asItem()); + }; } public boolean isTag() { diff --git a/src/main/java/com/shnupbups/extrapieces/recipe/ShapedPieceRecipe.java b/src/main/java/com/shnupbups/extrapieces/recipe/ShapedPieceRecipe.java index a9960cd8..9228945b 100644 --- a/src/main/java/com/shnupbups/extrapieces/recipe/ShapedPieceRecipe.java +++ b/src/main/java/com/shnupbups/extrapieces/recipe/ShapedPieceRecipe.java @@ -6,6 +6,8 @@ import com.shnupbups.extrapieces.core.PieceSet; import com.shnupbups.extrapieces.core.PieceType; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; +import io.github.vampirestudios.artifice.api.builder.data.recipe.MultiIngredientBuilder; +import io.github.vampirestudios.artifice.api.builder.data.recipe.ShapedRecipeBuilder; import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; @@ -57,19 +59,19 @@ public List getFromKey(char c) { } public void add(ArtificeResourcePack.ServerResourcePackBuilder data, Identifier id, PieceSet set) { - data.addShapedRecipe(id, recipe -> { - recipe.result(Registries.BLOCK.getId(this.getOutput(set)), this.getCount()); - recipe.group(Registries.BLOCK.getId(getOutput(set))); - recipe.pattern(this.getPattern()); - for (Map.Entry> ingredients : this.getKey().asMap().entrySet()) { - recipe.multiIngredient(ingredients.getKey(), ingredient -> { - for (PieceIngredient pi : ingredients.getValue()) { - if (pi.isTag()) ingredient.tag(pi.getId(set)); - else ingredient.item(pi.getId(set)); - } - }); + ShapedRecipeBuilder builder = new ShapedRecipeBuilder() + .result(Registries.BLOCK.getId(this.getOutput(set)), this.getCount()) + .group(Registries.BLOCK.getId(getOutput(set))) + .pattern(this.getPattern()); + for (Map.Entry> ingredients : this.getKey().asMap().entrySet()) { + MultiIngredientBuilder ingredientBuilder = new MultiIngredientBuilder(); + for (PieceIngredient pi : ingredients.getValue()) { + if (pi.isTag()) ingredientBuilder.tag(pi.getId(set)); + else ingredientBuilder.item(pi.getId(set)); } - }); + builder.multiIngredient(ingredients.getKey(), ingredientBuilder); + } + data.addShapedRecipe(id, builder); } @Override diff --git a/src/main/java/com/shnupbups/extrapieces/recipe/ShapelessPieceRecipe.java b/src/main/java/com/shnupbups/extrapieces/recipe/ShapelessPieceRecipe.java index e839cd96..9865174c 100644 --- a/src/main/java/com/shnupbups/extrapieces/recipe/ShapelessPieceRecipe.java +++ b/src/main/java/com/shnupbups/extrapieces/recipe/ShapelessPieceRecipe.java @@ -3,10 +3,16 @@ import com.shnupbups.extrapieces.core.PieceSet; import com.shnupbups.extrapieces.core.PieceType; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; +import io.github.vampirestudios.artifice.api.builder.data.recipe.MultiIngredientBuilder; +import io.github.vampirestudios.artifice.api.builder.data.recipe.ShapedRecipeBuilder; +import io.github.vampirestudios.artifice.api.builder.data.recipe.ShapelessRecipeBuilder; import net.minecraft.util.Identifier; import net.minecraft.registry.Registry; import net.minecraft.registry.Registries; +import java.util.Collection; +import java.util.Map; + public class ShapelessPieceRecipe extends PieceRecipe { private PieceIngredient[] inputs; @@ -20,14 +26,14 @@ public PieceIngredient[] getInputs() { } public void add(ArtificeResourcePack.ServerResourcePackBuilder data, Identifier id, PieceSet set) { - data.addShapelessRecipe(id, recipe -> { - recipe.result(Registries.BLOCK.getId(this.getOutput(set)), this.getCount()); - recipe.group(Registries.BLOCK.getId(getOutput(set))); - for (PieceIngredient pi : getInputs()) { - if(pi.isTag()) recipe.ingredientTag(pi.getId(set)); - else recipe.ingredientItem(pi.getId(set)); - } - }); + ShapelessRecipeBuilder builder = new ShapelessRecipeBuilder() + .result(Registries.BLOCK.getId(this.getOutput(set)), this.getCount()) + .group(Registries.BLOCK.getId(getOutput(set))); + for (PieceIngredient pi : getInputs()) { + if (pi.isTag()) builder.ingredientTag(pi.getId(set)); + else builder.ingredientItem(pi.getId(set)); + } + data.addShapelessRecipe(id, builder); } @Override diff --git a/src/main/java/com/shnupbups/extrapieces/recipe/StonecuttingPieceRecipe.java b/src/main/java/com/shnupbups/extrapieces/recipe/StonecuttingPieceRecipe.java index baf05d83..f1d67a3c 100644 --- a/src/main/java/com/shnupbups/extrapieces/recipe/StonecuttingPieceRecipe.java +++ b/src/main/java/com/shnupbups/extrapieces/recipe/StonecuttingPieceRecipe.java @@ -3,16 +3,14 @@ import com.shnupbups.extrapieces.core.PieceSet; import com.shnupbups.extrapieces.core.PieceType; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; -import net.minecraft.item.Item; +import io.github.vampirestudios.artifice.api.builder.data.recipe.StonecuttingRecipeBuilder; import net.minecraft.item.ItemConvertible; - +import net.minecraft.registry.Registries; import net.minecraft.registry.tag.TagKey; import net.minecraft.util.Identifier; -import net.minecraft.registry.Registry; -import net.minecraft.registry.Registries; public class StonecuttingPieceRecipe extends PieceRecipe { - private PieceIngredient input; + private final PieceIngredient input; public StonecuttingPieceRecipe(PieceType output, int count, PieceIngredient input) { super(output, count); @@ -36,14 +34,14 @@ public PieceIngredient getInput() { } public void add(ArtificeResourcePack.ServerResourcePackBuilder data, Identifier id, PieceSet set) { - data.addStonecuttingRecipe(id, recipe -> { - recipe.result(Registries.BLOCK.getId(getOutput(set))); - recipe.group(Registries.BLOCK.getId(getOutput(set))); - recipe.count(getCount()); - PieceIngredient pi = getInput(); - if(pi.isTag()) recipe.ingredientTag(pi.getId(set)); - else recipe.ingredientItem(pi.getId(set)); - }); + StonecuttingRecipeBuilder builder = new StonecuttingRecipeBuilder() + .result(Registries.BLOCK.getId(getOutput(set))) + .group(Registries.BLOCK.getId(getOutput(set))) + .count(getCount()); + PieceIngredient pi = getInput(); + if(pi.isTag()) builder.ingredientTag(pi.getId(set)); + else builder.ingredientItem(pi.getId(set)); + data.addStonecuttingRecipe(id, builder); } @Override diff --git a/src/main/java/com/shnupbups/extrapieces/recipe/WoodmillingPieceRecipe.java b/src/main/java/com/shnupbups/extrapieces/recipe/WoodmillingPieceRecipe.java index 60e8eea1..ff4de497 100644 --- a/src/main/java/com/shnupbups/extrapieces/recipe/WoodmillingPieceRecipe.java +++ b/src/main/java/com/shnupbups/extrapieces/recipe/WoodmillingPieceRecipe.java @@ -3,16 +3,14 @@ import com.shnupbups.extrapieces.core.PieceSet; import com.shnupbups.extrapieces.core.PieceType; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; -import net.minecraft.item.Item; +import io.github.vampirestudios.artifice.api.builder.data.recipe.StonecuttingRecipeBuilder; import net.minecraft.item.ItemConvertible; - +import net.minecraft.registry.Registries; import net.minecraft.registry.tag.TagKey; import net.minecraft.util.Identifier; -import net.minecraft.registry.Registry; -import net.minecraft.registry.Registries; public class WoodmillingPieceRecipe extends PieceRecipe { - private PieceIngredient input; + private final PieceIngredient input; public WoodmillingPieceRecipe(PieceType output, int count, PieceIngredient input) { super(output, count); @@ -36,15 +34,15 @@ public PieceIngredient getInput() { } public void add(ArtificeResourcePack.ServerResourcePackBuilder data, Identifier id, PieceSet set) { - data.addStonecuttingRecipe(id, recipe -> { - recipe.type(new Identifier("woodmill", "woodmilling")); - recipe.result(Registries.BLOCK.getId(getOutput(set))); - recipe.group(Registries.BLOCK.getId(getOutput(set))); - recipe.count(getCount()); - PieceIngredient pi = getInput(); - if(pi.isTag()) recipe.ingredientTag(pi.getId(set)); - else recipe.ingredientItem(pi.getId(set)); - }); + StonecuttingRecipeBuilder builder = new StonecuttingRecipeBuilder() + .type(new Identifier("woodmill", "woodmilling")) + .result(Registries.BLOCK.getId(getOutput(set))) + .group(Registries.BLOCK.getId(getOutput(set))) + .count(getCount()); + PieceIngredient pi = getInput(); + if(pi.isTag()) builder.ingredientTag(pi.getId(set)); + else builder.ingredientItem(pi.getId(set)); + data.addStonecuttingRecipe(id, builder); } @Override diff --git a/src/main/java/com/shnupbups/extrapieces/register/ModBlocks.java b/src/main/java/com/shnupbups/extrapieces/register/ModBlocks.java index 4d59af4c..f8ba33b8 100644 --- a/src/main/java/com/shnupbups/extrapieces/register/ModBlocks.java +++ b/src/main/java/com/shnupbups/extrapieces/register/ModBlocks.java @@ -482,8 +482,6 @@ public static void finish(ArtificeResourcePack.ServerResourcePackBuilder data) { FabricLoader.getInstance().getEntrypoints("extrapieces", EPInitializer.class).forEach(api -> api.addData(data)); ModBlocks.finished = true; - - ExtraPieces.dump(); } public static boolean isDone() { diff --git a/src/main/java/com/shnupbups/extrapieces/register/ModTags.java b/src/main/java/com/shnupbups/extrapieces/register/ModTags.java index fc4375e9..3c31ea88 100644 --- a/src/main/java/com/shnupbups/extrapieces/register/ModTags.java +++ b/src/main/java/com/shnupbups/extrapieces/register/ModTags.java @@ -6,10 +6,11 @@ import com.shnupbups.extrapieces.core.PieceSets; import com.shnupbups.extrapieces.core.PieceType; import io.github.vampirestudios.artifice.api.ArtificeResourcePack; +import io.github.vampirestudios.artifice.api.builder.data.TagBuilder; import net.minecraft.block.Block; -import net.minecraft.util.Identifier; -import net.minecraft.registry.Registry; +import net.minecraft.item.Item; import net.minecraft.registry.Registries; +import net.minecraft.util.Identifier; import java.util.HashMap; import java.util.HashSet; @@ -35,17 +36,16 @@ public static void init(ArtificeResourcePack.ServerResourcePackBuilder data) { PieceType type = entry.getKey(); HashSet identifiers = entry.getValue(); - data.addBlockTag(entry.getKey().getTagId(), tag -> { - tag.replace(false); - tag.values(identifiers.toArray(new Identifier[0])); - }); - - data.addItemTag(entry.getKey().getTagId(), tag -> { - tag.replace(false); - tag.values(identifiers.toArray(new Identifier[0])); - }); + data.addTag("block", entry.getKey().getTagId(), new TagBuilder() + .replace(false) + .values(identifiers.toArray(new Identifier[0])) + ); + data.addTag("item", entry.getKey().getTagId(), new TagBuilder() + .replace(false) + .values(identifiers.toArray(new Identifier[0])) + ); - ExtraPieces.debugLog("Added block and item tags for " + type.toString() + ", " + identifiers.size() + " entries."); + ExtraPieces.debugLog("Added block and item tags for " + type + ", " + identifiers.size() + " entries."); } } }