From e2cd006c2dca51934886e69db449208b7f87cf63 Mon Sep 17 00:00:00 2001 From: kineticneticat <84404038+kineticneticat@users.noreply.github.com> Date: Wed, 17 Jul 2024 19:07:06 +0100 Subject: [PATCH 1/2] Changed `GaslightingTracker` to be instanced, not static --- .../models/item/quenched_allay.json | 8 ++--- .../models/item/quenched_allay_bricks.json | 8 ++--- .../item/quenched_allay_bricks_small.json | 8 ++--- .../models/item/quenched_allay_shard.json | 8 ++--- .../models/item/quenched_allay_tiles.json | 8 ++--- .../models/item/staff/quenched.json | 8 ++--- .../api/client/GaslightingTracker.java | 36 +++++++++++++++++++ .../hexcasting/client/ClientTickCounter.java | 9 +++-- .../client/RegisterClientStuff.java | 22 ++++++------ .../client/render/GaslightingTracker.java | 27 -------------- .../be/BlockEntityQuenchedAllayRenderer.java | 5 ++- .../hexcasting/fabric/FabricHexInitializer.kt | 2 ++ .../hexcasting/forge/ForgeHexInitializer.java | 2 ++ .../forge/datagen/xplat/HexItemModels.java | 20 +++++------ 14 files changed, 93 insertions(+), 78 deletions(-) create mode 100644 Common/src/main/java/at/petrak/hexcasting/api/client/GaslightingTracker.java delete mode 100644 Common/src/main/java/at/petrak/hexcasting/client/render/GaslightingTracker.java diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json index c6ee6b0951..86b59ada02 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json @@ -3,25 +3,25 @@ { "model": "hexcasting:block/quenched_allay_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:block/quenched_allay_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:block/quenched_allay_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:block/quenched_allay_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json index c3a1b63856..23d455ac17 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json @@ -3,25 +3,25 @@ { "model": "hexcasting:block/deco/quenched_allay_bricks_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json index c0e376a548..9183f9588e 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json @@ -3,25 +3,25 @@ { "model": "hexcasting:block/deco/quenched_allay_bricks_small_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_small_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_small_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_small_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json index 495e817b78..bf3fafe117 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json @@ -3,25 +3,25 @@ { "model": "hexcasting:item/quenched_shard_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:item/quenched_shard_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:item/quenched_shard_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:item/quenched_shard_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json index 5ea5cf33c5..debed51943 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json @@ -3,25 +3,25 @@ { "model": "hexcasting:block/deco/quenched_allay_tiles_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:block/deco/quenched_allay_tiles_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:block/deco/quenched_allay_tiles_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:block/deco/quenched_allay_tiles_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json index 16e5858599..a778f5cde1 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json @@ -3,25 +3,25 @@ { "model": "hexcasting:item/staff/quenched_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:item/staff/quenched_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:item/staff/quenched_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:item/staff/quenched_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/main/java/at/petrak/hexcasting/api/client/GaslightingTracker.java b/Common/src/main/java/at/petrak/hexcasting/api/client/GaslightingTracker.java new file mode 100644 index 0000000000..ca1e7e524a --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/api/client/GaslightingTracker.java @@ -0,0 +1,36 @@ +package at.petrak.hexcasting.api.client; + +import net.minecraft.resources.ResourceLocation; + +import java.util.LinkedHashMap; +import java.util.Map; + +// *nothing* that changes can be looked at for changes +public class GaslightingTracker { + public static Map GASLIGHTING_TRACKERS = new LinkedHashMap<>(); + private int GASLIGHTING_AMOUNT = 0; + private final int LOOKING_COOLDOWN_MAX; + private int LOOKING_COOLDOWN; + + public ResourceLocation GASLIGHTING_PRED; + + public GaslightingTracker(ResourceLocation resLoc, int maxCooldown) { + this.GASLIGHTING_PRED = resLoc; + this.LOOKING_COOLDOWN_MAX = maxCooldown; + this.LOOKING_COOLDOWN = LOOKING_COOLDOWN_MAX; + GaslightingTracker.GASLIGHTING_TRACKERS.put(this.GASLIGHTING_PRED, this); + } + + public int getGaslightingAmount() { + LOOKING_COOLDOWN = LOOKING_COOLDOWN_MAX; + return GASLIGHTING_AMOUNT; + } + + public void postFrameCheckRendered() { + if (LOOKING_COOLDOWN > 0) { + LOOKING_COOLDOWN -= 1; + } else { + GASLIGHTING_AMOUNT += 1; + } + } +} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java b/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java index e45ba75643..6e635eab2d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java @@ -1,7 +1,10 @@ package at.petrak.hexcasting.client; -import at.petrak.hexcasting.client.render.GaslightingTracker; +import at.petrak.hexcasting.api.client.GaslightingTracker; import net.minecraft.client.Minecraft; +import net.minecraft.resources.ResourceLocation; + +import java.util.Map; public class ClientTickCounter { public static long ticksInGame = 0L; @@ -19,7 +22,9 @@ public static void clientTickEnd() { if (!Minecraft.getInstance().isPaused()) { ++ticksInGame; partialTicks = 0.0F; - GaslightingTracker.postFrameCheckRendered(); + for (Map.Entry entry : GaslightingTracker.GASLIGHTING_TRACKERS.entrySet()) { + entry.getValue().postFrameCheckRendered(); + } } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java b/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java index 75658fa63a..8f42ad4c1c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java @@ -7,7 +7,7 @@ import at.petrak.hexcasting.api.misc.MediaConstants; import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.client.entity.WallScrollRenderer; -import at.petrak.hexcasting.client.render.GaslightingTracker; +import at.petrak.hexcasting.api.client.GaslightingTracker; import at.petrak.hexcasting.client.render.ScryingLensOverlays; import at.petrak.hexcasting.client.render.be.BlockEntityAkashicBookshelfRenderer; import at.petrak.hexcasting.client.render.be.BlockEntityQuenchedAllayRenderer; @@ -30,7 +30,6 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; @@ -109,12 +108,12 @@ public static void init() { // purposely skip quenched registerWandOverrides(HexItems.STAFF_MINDSPLICE); - registerGaslight4(HexItems.STAFF_QUENCHED); - registerGaslight4(HexBlocks.QUENCHED_ALLAY.asItem()); - registerGaslight4(HexBlocks.QUENCHED_ALLAY_TILES.asItem()); - registerGaslight4(HexBlocks.QUENCHED_ALLAY_BRICKS.asItem()); - registerGaslight4(HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL.asItem()); - registerGaslight4(HexItems.QUENCHED_SHARD); + registerGaslight4(HexItems.STAFF_QUENCHED, "quenched_allay_variants"); + registerGaslight4(HexBlocks.QUENCHED_ALLAY.asItem(), "quenched_allay_variants"); + registerGaslight4(HexBlocks.QUENCHED_ALLAY_TILES.asItem(), "quenched_allay_variants"); + registerGaslight4(HexBlocks.QUENCHED_ALLAY_BRICKS.asItem(), "quenched_allay_variants"); + registerGaslight4(HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL.asItem(), "quenched_allay_variants"); + registerGaslight4(HexItems.QUENCHED_SHARD, "quenched_allay_variants"); x.setRenderLayer(HexBlocks.CONJURED_LIGHT, RenderType.cutout()); x.setRenderLayer(HexBlocks.CONJURED_BLOCK, RenderType.cutout()); @@ -143,10 +142,11 @@ public static void init() { ScryingLensOverlays.addScryingLensStuff(); } - private static void registerGaslight4(Item item) { + private static void registerGaslight4(Item item, String gaslightingPredicate) { IClientXplatAbstractions.INSTANCE.registerItemProperty(item, - GaslightingTracker.GASLIGHTING_PRED, (stack, level, holder, holderID) -> - Math.abs(GaslightingTracker.getGaslightingAmount() % 4)); + GaslightingTracker.GASLIGHTING_TRACKERS.get(modLoc(gaslightingPredicate)).GASLIGHTING_PRED, + (stack, level, holder, holderID) -> + Math.abs(GaslightingTracker.GASLIGHTING_TRACKERS.get(modLoc(gaslightingPredicate)).getGaslightingAmount() % 4)); } public static void registerColorProviders(BiConsumer itemColorRegistry, diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/GaslightingTracker.java b/Common/src/main/java/at/petrak/hexcasting/client/render/GaslightingTracker.java deleted file mode 100644 index c57a5abd49..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/GaslightingTracker.java +++ /dev/null @@ -1,27 +0,0 @@ -package at.petrak.hexcasting.client.render; - -import net.minecraft.resources.ResourceLocation; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; - -// *nothing* that changes can be looked at for changes -public class GaslightingTracker { - private static int GASLIGHTING_AMOUNT = 0; - private static int LOOKING_COOLDOWN_MAX = 40; - private static int LOOKING_COOLDOWN = LOOKING_COOLDOWN_MAX; - - public static ResourceLocation GASLIGHTING_PRED = modLoc("variant"); - - public static int getGaslightingAmount() { - LOOKING_COOLDOWN = LOOKING_COOLDOWN_MAX; - return GASLIGHTING_AMOUNT; - } - - public static void postFrameCheckRendered() { - if (LOOKING_COOLDOWN > 0) { - LOOKING_COOLDOWN -= 1; - } else { - GASLIGHTING_AMOUNT += 1; - } - } -} diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java b/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java index 15f89ad049..b5b8615a91 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java @@ -1,9 +1,9 @@ package at.petrak.hexcasting.client.render.be; import at.petrak.hexcasting.client.RegisterClientStuff; -import at.petrak.hexcasting.client.render.GaslightingTracker; import at.petrak.hexcasting.common.blocks.BlockQuenchedAllay; import at.petrak.hexcasting.common.blocks.entity.BlockEntityQuenchedAllay; +import at.petrak.hexcasting.common.lib.hex.HexGaslighting; import at.petrak.hexcasting.xplat.IClientXplatAbstractions; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.renderer.MultiBufferSource; @@ -11,7 +11,6 @@ import net.minecraft.client.renderer.block.BlockRenderDispatcher; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.phys.AABB; @@ -29,7 +28,7 @@ private static void doRender(BlockQuenchedAllay block, BlockRenderDispatcher dis var buffer = bufSource.getBuffer(RenderType.translucent()); var pose = ps.last(); - var idx = Math.abs(GaslightingTracker.getGaslightingAmount() % BlockQuenchedAllay.VARIANTS); + var idx = Math.abs(HexGaslighting.QUENCHED_ALLAY_GASLIGHTING.getGaslightingAmount() % BlockQuenchedAllay.VARIANTS); var model = RegisterClientStuff.QUENCHED_ALLAY_VARIANTS.get(BuiltInRegistries.BLOCK.getKey(block)).get(idx); dispatcher.getModelRenderer().renderModel(pose, buffer, null, model, 1f, 1f, 1f, packedLight, packedOverlay); diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt index e7d3163458..de063a4fe3 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt @@ -69,6 +69,8 @@ object FabricHexInitializer : ModInitializer { HexInterop.init() RegisterMisc.register() + + HexGaslighting.init() } fun initListeners() { diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java index 8fa6affec6..b6772443c6 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java @@ -148,6 +148,8 @@ private static void initRegistry() { HexAdvancementTriggers.registerTriggers(); RegisterMisc.register(); + + HexGaslighting.init(); } // https://github.com/VazkiiMods/Botania/blob/1.18.x/Forge/src/main/java/vazkii/botania/forge/ForgeCommonInitializer.java diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java b/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java index 7def15a4e4..348c7e21ca 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java @@ -1,7 +1,7 @@ package at.petrak.hexcasting.forge.datagen.xplat; import at.petrak.hexcasting.api.HexAPI; -import at.petrak.hexcasting.client.render.GaslightingTracker; +import at.petrak.hexcasting.api.client.GaslightingTracker; import at.petrak.hexcasting.common.blocks.BlockQuenchedAllay; import at.petrak.hexcasting.common.items.ItemStaff; import at.petrak.hexcasting.common.items.pigment.ItemPridePigment; @@ -14,8 +14,6 @@ import at.petrak.hexcasting.common.lib.HexBlocks; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.paucal.api.forge.datagen.PaucalItemModelProvider; -import net.minecraft.client.renderer.block.model.ItemTransforms; -import net.minecraft.data.DataGenerator; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; @@ -98,19 +96,19 @@ protected void registerModels() { buildStaff(HexItems.STAFF_MINDSPLICE, "mindsplice"); // again, doesn't like paths with slashes in them, so we do it manually - buildFourVariantGaslight("item/staff/quenched", "item/staff/quenched", (name, path) -> + buildFourVariantGaslight("item/staff/quenched", "item/staff/quenched", "quenched_allay_variants", (name, path) -> singleTexture(path.getPath(), new ResourceLocation("item/handheld_rod"), "layer0", modLoc(path.getPath()))); - buildFourVariantGaslight(getPath(HexItems.QUENCHED_SHARD), "item/quenched_shard", (name, path) -> + buildFourVariantGaslight(getPath(HexItems.QUENCHED_SHARD), "item/quenched_shard", "quenched_allay_variants", (name, path) -> singleTexture(path.getPath(), new ResourceLocation("item/handheld"), "layer0", modLoc(path.getPath()))); - buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY), "block/quenched_allay", (name, path) -> + buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY), "block/quenched_allay", "quenched_allay_variants", (name, path) -> cubeAll(path.getPath(), path)); - buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_TILES), "block/deco/quenched_allay_tiles", (name, path) -> + buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_TILES), "block/deco/quenched_allay_tiles", "quenched_allay_variants", (name, path) -> cubeAll(path.getPath(), path)); - buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_BRICKS), "block/deco/quenched_allay_bricks", (name, path) -> + buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_BRICKS), "block/deco/quenched_allay_bricks", "quenched_allay_variants", (name, path) -> cubeAll(path.getPath(), path)); - buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL), "block/deco/quenched_allay_bricks_small", (name, path) -> + buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL), "block/deco/quenched_allay_bricks_small", "quenched_allay_variants", (name, path) -> cubeAll(path.getPath(), path)); simpleItem(modLoc("patchouli_book")); @@ -289,7 +287,7 @@ private void buildPackagedSpell(Item item, String stub, int numVariants) { } } - private void buildFourVariantGaslight(String name, String path, + private void buildFourVariantGaslight(String name, String path, String gaslightingPredicate, BiFunction makeModel) { var builder = getBuilder(name); for (int i = 0; i < BlockQuenchedAllay.VARIANTS; i++) { @@ -297,7 +295,7 @@ private void buildFourVariantGaslight(String name, String path, var model = makeModel.apply(name, textureLoc); builder.override() - .predicate(GaslightingTracker.GASLIGHTING_PRED, i) + .predicate(GaslightingTracker.GASLIGHTING_TRACKERS.get(modLoc(gaslightingPredicate)).GASLIGHTING_PRED, i) .model(model) .end(); } From a89d45b99d40878cf75fd3666fa944733bd3561d Mon Sep 17 00:00:00 2001 From: kineticneticat <84404038+kineticneticat@users.noreply.github.com> Date: Wed, 17 Jul 2024 19:07:06 +0100 Subject: [PATCH 2/2] Changed `GaslightingTracker` to be instanced, not static --- .../models/item/quenched_allay.json | 8 ++--- .../models/item/quenched_allay_bricks.json | 8 ++--- .../item/quenched_allay_bricks_small.json | 8 ++--- .../models/item/quenched_allay_shard.json | 8 ++--- .../models/item/quenched_allay_tiles.json | 8 ++--- .../models/item/staff/quenched.json | 8 ++--- .../api/client/GaslightingTracker.java | 36 +++++++++++++++++++ .../hexcasting/client/ClientTickCounter.java | 9 +++-- .../client/RegisterClientStuff.java | 22 ++++++------ .../client/render/GaslightingTracker.java | 27 -------------- .../be/BlockEntityQuenchedAllayRenderer.java | 5 ++- .../common/lib/hex/HexGaslighting.java | 12 +++++++ .../hexcasting/fabric/FabricHexInitializer.kt | 2 ++ .../hexcasting/forge/ForgeHexInitializer.java | 2 ++ .../forge/datagen/xplat/HexItemModels.java | 20 +++++------ 15 files changed, 105 insertions(+), 78 deletions(-) create mode 100644 Common/src/main/java/at/petrak/hexcasting/api/client/GaslightingTracker.java delete mode 100644 Common/src/main/java/at/petrak/hexcasting/client/render/GaslightingTracker.java create mode 100644 Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexGaslighting.java diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json index c6ee6b0951..86b59ada02 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay.json @@ -3,25 +3,25 @@ { "model": "hexcasting:block/quenched_allay_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:block/quenched_allay_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:block/quenched_allay_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:block/quenched_allay_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json index c3a1b63856..23d455ac17 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks.json @@ -3,25 +3,25 @@ { "model": "hexcasting:block/deco/quenched_allay_bricks_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json index c0e376a548..9183f9588e 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_bricks_small.json @@ -3,25 +3,25 @@ { "model": "hexcasting:block/deco/quenched_allay_bricks_small_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_small_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_small_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:block/deco/quenched_allay_bricks_small_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json index 495e817b78..bf3fafe117 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_shard.json @@ -3,25 +3,25 @@ { "model": "hexcasting:item/quenched_shard_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:item/quenched_shard_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:item/quenched_shard_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:item/quenched_shard_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json index 5ea5cf33c5..debed51943 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/quenched_allay_tiles.json @@ -3,25 +3,25 @@ { "model": "hexcasting:block/deco/quenched_allay_tiles_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:block/deco/quenched_allay_tiles_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:block/deco/quenched_allay_tiles_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:block/deco/quenched_allay_tiles_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json b/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json index 16e5858599..a778f5cde1 100644 --- a/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json +++ b/Common/src/generated/resources/assets/hexcasting/models/item/staff/quenched.json @@ -3,25 +3,25 @@ { "model": "hexcasting:item/staff/quenched_0", "predicate": { - "hexcasting:variant": 0.0 + "hexcasting:quenched_allay_variants": 0.0 } }, { "model": "hexcasting:item/staff/quenched_1", "predicate": { - "hexcasting:variant": 1.0 + "hexcasting:quenched_allay_variants": 1.0 } }, { "model": "hexcasting:item/staff/quenched_2", "predicate": { - "hexcasting:variant": 2.0 + "hexcasting:quenched_allay_variants": 2.0 } }, { "model": "hexcasting:item/staff/quenched_3", "predicate": { - "hexcasting:variant": 3.0 + "hexcasting:quenched_allay_variants": 3.0 } } ] diff --git a/Common/src/main/java/at/petrak/hexcasting/api/client/GaslightingTracker.java b/Common/src/main/java/at/petrak/hexcasting/api/client/GaslightingTracker.java new file mode 100644 index 0000000000..ca1e7e524a --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/api/client/GaslightingTracker.java @@ -0,0 +1,36 @@ +package at.petrak.hexcasting.api.client; + +import net.minecraft.resources.ResourceLocation; + +import java.util.LinkedHashMap; +import java.util.Map; + +// *nothing* that changes can be looked at for changes +public class GaslightingTracker { + public static Map GASLIGHTING_TRACKERS = new LinkedHashMap<>(); + private int GASLIGHTING_AMOUNT = 0; + private final int LOOKING_COOLDOWN_MAX; + private int LOOKING_COOLDOWN; + + public ResourceLocation GASLIGHTING_PRED; + + public GaslightingTracker(ResourceLocation resLoc, int maxCooldown) { + this.GASLIGHTING_PRED = resLoc; + this.LOOKING_COOLDOWN_MAX = maxCooldown; + this.LOOKING_COOLDOWN = LOOKING_COOLDOWN_MAX; + GaslightingTracker.GASLIGHTING_TRACKERS.put(this.GASLIGHTING_PRED, this); + } + + public int getGaslightingAmount() { + LOOKING_COOLDOWN = LOOKING_COOLDOWN_MAX; + return GASLIGHTING_AMOUNT; + } + + public void postFrameCheckRendered() { + if (LOOKING_COOLDOWN > 0) { + LOOKING_COOLDOWN -= 1; + } else { + GASLIGHTING_AMOUNT += 1; + } + } +} \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java b/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java index e45ba75643..6e635eab2d 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/ClientTickCounter.java @@ -1,7 +1,10 @@ package at.petrak.hexcasting.client; -import at.petrak.hexcasting.client.render.GaslightingTracker; +import at.petrak.hexcasting.api.client.GaslightingTracker; import net.minecraft.client.Minecraft; +import net.minecraft.resources.ResourceLocation; + +import java.util.Map; public class ClientTickCounter { public static long ticksInGame = 0L; @@ -19,7 +22,9 @@ public static void clientTickEnd() { if (!Minecraft.getInstance().isPaused()) { ++ticksInGame; partialTicks = 0.0F; - GaslightingTracker.postFrameCheckRendered(); + for (Map.Entry entry : GaslightingTracker.GASLIGHTING_TRACKERS.entrySet()) { + entry.getValue().postFrameCheckRendered(); + } } } } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java b/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java index 75658fa63a..8f42ad4c1c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/RegisterClientStuff.java @@ -7,7 +7,7 @@ import at.petrak.hexcasting.api.misc.MediaConstants; import at.petrak.hexcasting.api.utils.NBTHelper; import at.petrak.hexcasting.client.entity.WallScrollRenderer; -import at.petrak.hexcasting.client.render.GaslightingTracker; +import at.petrak.hexcasting.api.client.GaslightingTracker; import at.petrak.hexcasting.client.render.ScryingLensOverlays; import at.petrak.hexcasting.client.render.be.BlockEntityAkashicBookshelfRenderer; import at.petrak.hexcasting.client.render.be.BlockEntityQuenchedAllayRenderer; @@ -30,7 +30,6 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; @@ -109,12 +108,12 @@ public static void init() { // purposely skip quenched registerWandOverrides(HexItems.STAFF_MINDSPLICE); - registerGaslight4(HexItems.STAFF_QUENCHED); - registerGaslight4(HexBlocks.QUENCHED_ALLAY.asItem()); - registerGaslight4(HexBlocks.QUENCHED_ALLAY_TILES.asItem()); - registerGaslight4(HexBlocks.QUENCHED_ALLAY_BRICKS.asItem()); - registerGaslight4(HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL.asItem()); - registerGaslight4(HexItems.QUENCHED_SHARD); + registerGaslight4(HexItems.STAFF_QUENCHED, "quenched_allay_variants"); + registerGaslight4(HexBlocks.QUENCHED_ALLAY.asItem(), "quenched_allay_variants"); + registerGaslight4(HexBlocks.QUENCHED_ALLAY_TILES.asItem(), "quenched_allay_variants"); + registerGaslight4(HexBlocks.QUENCHED_ALLAY_BRICKS.asItem(), "quenched_allay_variants"); + registerGaslight4(HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL.asItem(), "quenched_allay_variants"); + registerGaslight4(HexItems.QUENCHED_SHARD, "quenched_allay_variants"); x.setRenderLayer(HexBlocks.CONJURED_LIGHT, RenderType.cutout()); x.setRenderLayer(HexBlocks.CONJURED_BLOCK, RenderType.cutout()); @@ -143,10 +142,11 @@ public static void init() { ScryingLensOverlays.addScryingLensStuff(); } - private static void registerGaslight4(Item item) { + private static void registerGaslight4(Item item, String gaslightingPredicate) { IClientXplatAbstractions.INSTANCE.registerItemProperty(item, - GaslightingTracker.GASLIGHTING_PRED, (stack, level, holder, holderID) -> - Math.abs(GaslightingTracker.getGaslightingAmount() % 4)); + GaslightingTracker.GASLIGHTING_TRACKERS.get(modLoc(gaslightingPredicate)).GASLIGHTING_PRED, + (stack, level, holder, holderID) -> + Math.abs(GaslightingTracker.GASLIGHTING_TRACKERS.get(modLoc(gaslightingPredicate)).getGaslightingAmount() % 4)); } public static void registerColorProviders(BiConsumer itemColorRegistry, diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/GaslightingTracker.java b/Common/src/main/java/at/petrak/hexcasting/client/render/GaslightingTracker.java deleted file mode 100644 index c57a5abd49..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/GaslightingTracker.java +++ /dev/null @@ -1,27 +0,0 @@ -package at.petrak.hexcasting.client.render; - -import net.minecraft.resources.ResourceLocation; - -import static at.petrak.hexcasting.api.HexAPI.modLoc; - -// *nothing* that changes can be looked at for changes -public class GaslightingTracker { - private static int GASLIGHTING_AMOUNT = 0; - private static int LOOKING_COOLDOWN_MAX = 40; - private static int LOOKING_COOLDOWN = LOOKING_COOLDOWN_MAX; - - public static ResourceLocation GASLIGHTING_PRED = modLoc("variant"); - - public static int getGaslightingAmount() { - LOOKING_COOLDOWN = LOOKING_COOLDOWN_MAX; - return GASLIGHTING_AMOUNT; - } - - public static void postFrameCheckRendered() { - if (LOOKING_COOLDOWN > 0) { - LOOKING_COOLDOWN -= 1; - } else { - GASLIGHTING_AMOUNT += 1; - } - } -} diff --git a/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java b/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java index 15f89ad049..b5b8615a91 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/render/be/BlockEntityQuenchedAllayRenderer.java @@ -1,9 +1,9 @@ package at.petrak.hexcasting.client.render.be; import at.petrak.hexcasting.client.RegisterClientStuff; -import at.petrak.hexcasting.client.render.GaslightingTracker; import at.petrak.hexcasting.common.blocks.BlockQuenchedAllay; import at.petrak.hexcasting.common.blocks.entity.BlockEntityQuenchedAllay; +import at.petrak.hexcasting.common.lib.hex.HexGaslighting; import at.petrak.hexcasting.xplat.IClientXplatAbstractions; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.renderer.MultiBufferSource; @@ -11,7 +11,6 @@ import net.minecraft.client.renderer.block.BlockRenderDispatcher; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.phys.AABB; @@ -29,7 +28,7 @@ private static void doRender(BlockQuenchedAllay block, BlockRenderDispatcher dis var buffer = bufSource.getBuffer(RenderType.translucent()); var pose = ps.last(); - var idx = Math.abs(GaslightingTracker.getGaslightingAmount() % BlockQuenchedAllay.VARIANTS); + var idx = Math.abs(HexGaslighting.QUENCHED_ALLAY_GASLIGHTING.getGaslightingAmount() % BlockQuenchedAllay.VARIANTS); var model = RegisterClientStuff.QUENCHED_ALLAY_VARIANTS.get(BuiltInRegistries.BLOCK.getKey(block)).get(idx); dispatcher.getModelRenderer().renderModel(pose, buffer, null, model, 1f, 1f, 1f, packedLight, packedOverlay); diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexGaslighting.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexGaslighting.java new file mode 100644 index 0000000000..ebbc4831a4 --- /dev/null +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/hex/HexGaslighting.java @@ -0,0 +1,12 @@ +package at.petrak.hexcasting.common.lib.hex; + +import at.petrak.hexcasting.api.client.GaslightingTracker; + +import static at.petrak.hexcasting.api.HexAPI.modLoc; + +public class HexGaslighting { + public static void init() {} + + public static GaslightingTracker QUENCHED_ALLAY_GASLIGHTING = new GaslightingTracker(modLoc("quenched_allay_variants"), 40); + +} diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt index e7d3163458..de063a4fe3 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/FabricHexInitializer.kt @@ -69,6 +69,8 @@ object FabricHexInitializer : ModInitializer { HexInterop.init() RegisterMisc.register() + + HexGaslighting.init() } fun initListeners() { diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java index 8fa6affec6..b6772443c6 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexInitializer.java @@ -148,6 +148,8 @@ private static void initRegistry() { HexAdvancementTriggers.registerTriggers(); RegisterMisc.register(); + + HexGaslighting.init(); } // https://github.com/VazkiiMods/Botania/blob/1.18.x/Forge/src/main/java/vazkii/botania/forge/ForgeCommonInitializer.java diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java b/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java index 7def15a4e4..348c7e21ca 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/datagen/xplat/HexItemModels.java @@ -1,7 +1,7 @@ package at.petrak.hexcasting.forge.datagen.xplat; import at.petrak.hexcasting.api.HexAPI; -import at.petrak.hexcasting.client.render.GaslightingTracker; +import at.petrak.hexcasting.api.client.GaslightingTracker; import at.petrak.hexcasting.common.blocks.BlockQuenchedAllay; import at.petrak.hexcasting.common.items.ItemStaff; import at.petrak.hexcasting.common.items.pigment.ItemPridePigment; @@ -14,8 +14,6 @@ import at.petrak.hexcasting.common.lib.HexBlocks; import at.petrak.hexcasting.common.lib.HexItems; import at.petrak.paucal.api.forge.datagen.PaucalItemModelProvider; -import net.minecraft.client.renderer.block.model.ItemTransforms; -import net.minecraft.data.DataGenerator; import net.minecraft.data.PackOutput; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; @@ -98,19 +96,19 @@ protected void registerModels() { buildStaff(HexItems.STAFF_MINDSPLICE, "mindsplice"); // again, doesn't like paths with slashes in them, so we do it manually - buildFourVariantGaslight("item/staff/quenched", "item/staff/quenched", (name, path) -> + buildFourVariantGaslight("item/staff/quenched", "item/staff/quenched", "quenched_allay_variants", (name, path) -> singleTexture(path.getPath(), new ResourceLocation("item/handheld_rod"), "layer0", modLoc(path.getPath()))); - buildFourVariantGaslight(getPath(HexItems.QUENCHED_SHARD), "item/quenched_shard", (name, path) -> + buildFourVariantGaslight(getPath(HexItems.QUENCHED_SHARD), "item/quenched_shard", "quenched_allay_variants", (name, path) -> singleTexture(path.getPath(), new ResourceLocation("item/handheld"), "layer0", modLoc(path.getPath()))); - buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY), "block/quenched_allay", (name, path) -> + buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY), "block/quenched_allay", "quenched_allay_variants", (name, path) -> cubeAll(path.getPath(), path)); - buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_TILES), "block/deco/quenched_allay_tiles", (name, path) -> + buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_TILES), "block/deco/quenched_allay_tiles", "quenched_allay_variants", (name, path) -> cubeAll(path.getPath(), path)); - buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_BRICKS), "block/deco/quenched_allay_bricks", (name, path) -> + buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_BRICKS), "block/deco/quenched_allay_bricks", "quenched_allay_variants", (name, path) -> cubeAll(path.getPath(), path)); - buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL), "block/deco/quenched_allay_bricks_small", (name, path) -> + buildFourVariantGaslight(getPath(HexBlocks.QUENCHED_ALLAY_BRICKS_SMALL), "block/deco/quenched_allay_bricks_small", "quenched_allay_variants", (name, path) -> cubeAll(path.getPath(), path)); simpleItem(modLoc("patchouli_book")); @@ -289,7 +287,7 @@ private void buildPackagedSpell(Item item, String stub, int numVariants) { } } - private void buildFourVariantGaslight(String name, String path, + private void buildFourVariantGaslight(String name, String path, String gaslightingPredicate, BiFunction makeModel) { var builder = getBuilder(name); for (int i = 0; i < BlockQuenchedAllay.VARIANTS; i++) { @@ -297,7 +295,7 @@ private void buildFourVariantGaslight(String name, String path, var model = makeModel.apply(name, textureLoc); builder.override() - .predicate(GaslightingTracker.GASLIGHTING_PRED, i) + .predicate(GaslightingTracker.GASLIGHTING_TRACKERS.get(modLoc(gaslightingPredicate)).GASLIGHTING_PRED, i) .model(model) .end(); }