From 4cbac61c05ac9a58610346380f2c7ff9fc9da87d Mon Sep 17 00:00:00 2001 From: TropheusJ Date: Fri, 30 Jun 2023 01:37:07 -0400 Subject: [PATCH 1/4] update bucket volume constant --- .../create/infrastructure/gametest/tests/TestFluids.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/simibubi/create/infrastructure/gametest/tests/TestFluids.java b/src/main/java/com/simibubi/create/infrastructure/gametest/tests/TestFluids.java index d037f4578b..b4c0eef541 100644 --- a/src/main/java/com/simibubi/create/infrastructure/gametest/tests/TestFluids.java +++ b/src/main/java/com/simibubi/create/infrastructure/gametest/tests/TestFluids.java @@ -14,8 +14,6 @@ import com.simibubi.create.infrastructure.gametest.GameTestGroup; import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.core.Registry; import net.minecraft.gametest.framework.GameTest; import net.minecraft.gametest.framework.GameTestAssertException; import net.minecraft.tags.BlockTags; @@ -254,7 +252,7 @@ public static void smartObserverPipes(CreateGameTestHelper helper) { BlockPos lever = new BlockPos(3, 3, 1); BlockPos output = new BlockPos(3, 4, 4); BlockPos tankOutput = new BlockPos(1, 2, 4); - FluidStack expected = new FluidStack(Fluids.WATER, 2 * FluidAttributes.BUCKET_VOLUME); + FluidStack expected = new FluidStack(Fluids.WATER, 2 * FluidType.BUCKET_VOLUME); helper.pullLever(lever); helper.succeedWhen(() -> { helper.assertFluidPresent(expected, tankOutput); From 364ad6edf257307a165ab961f8adbdc732d63374 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue, 4 Jul 2023 12:43:50 +0200 Subject: [PATCH 2/4] Honey Vision - Moved fluid fog distance and colour handling to their fluid types - Bumped Flywheel --- gradle.properties | 2 +- .../java/com/simibubi/create/AllFluids.java | 82 +++++++++++++++++-- .../foundation/events/ClientEvents.java | 43 ---------- 3 files changed, 75 insertions(+), 52 deletions(-) diff --git a/gradle.properties b/gradle.properties index 37a2a771d1..2a7df783be 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,7 +23,7 @@ use_parchment = true # dependency versions registrate_version = MC1.19-1.1.5 flywheel_minecraft_version = 1.19.2 -flywheel_version = 0.6.9-17 +flywheel_version = 0.6.9-18 jei_minecraft_version = 1.19.2 jei_version = 11.2.0.254 curios_minecraft_version = 1.19.2 diff --git a/src/main/java/com/simibubi/create/AllFluids.java b/src/main/java/com/simibubi/create/AllFluids.java index 3a5765df5e..d978e0192c 100644 --- a/src/main/java/com/simibubi/create/AllFluids.java +++ b/src/main/java/com/simibubi/create/AllFluids.java @@ -3,16 +3,28 @@ import static com.simibubi.create.Create.REGISTRATE; import java.util.function.Consumer; +import java.util.function.Supplier; import javax.annotation.Nullable; +import org.jetbrains.annotations.NotNull; + +import com.mojang.blaze3d.shaders.FogShape; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.math.Vector3f; import com.simibubi.create.AllTags.AllFluidTags; import com.simibubi.create.content.decoration.palettes.AllPaletteStoneTypes; import com.simibubi.create.content.fluids.VirtualFluid; import com.simibubi.create.content.fluids.potion.PotionFluid; import com.simibubi.create.content.fluids.potion.PotionFluid.PotionFluidType; +import com.simibubi.create.foundation.utility.Color; +import com.simibubi.create.infrastructure.config.AllConfigs; +import com.tterrag.registrate.builders.FluidBuilder.FluidTypeFactory; import com.tterrag.registrate.util.entry.FluidEntry; +import net.minecraft.client.Camera; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.renderer.FogRenderer.FogMode; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.BlockAndTintGetter; @@ -41,7 +53,9 @@ public class AllFluids { .register(); public static final FluidEntry HONEY = - REGISTRATE.standardFluid("honey", NoColorFluidAttributes::new) + REGISTRATE.standardFluid("honey", + SolidRenderedPlaceableFluidType.create(0xEAAE2F, + () -> 1f / 8f * AllConfigs.client().honeyTransparencyMultiplier.getF())) .lang("Honey") .properties(b -> b.viscosity(2000) .density(1400)) @@ -57,7 +71,9 @@ public class AllFluids { .register(); public static final FluidEntry CHOCOLATE = - REGISTRATE.standardFluid("chocolate", NoColorFluidAttributes::new) + REGISTRATE.standardFluid("chocolate", + SolidRenderedPlaceableFluidType.create(0x622020, + () -> 1f / 32f * AllConfigs.client().chocolateTransparencyMultiplier.getF())) .lang("Chocolate") .tag(AllTags.forgeFluidTag("chocolate")) .properties(b -> b.viscosity(1500) @@ -149,6 +165,25 @@ public int getTintColor(FluidStack stack) { public int getTintColor(FluidState state, BlockAndTintGetter getter, BlockPos pos) { return TintedFluidType.this.getTintColor(state, getter, pos); } + + @Override + public @NotNull Vector3f modifyFogColor(Camera camera, float partialTick, ClientLevel level, + int renderDistance, float darkenWorldAmount, Vector3f fluidFogColor) { + Vector3f customFogColor = TintedFluidType.this.getCustomFogColor(); + return customFogColor == null ? fluidFogColor : customFogColor; + } + + @Override + public void modifyFogRender(Camera camera, FogMode mode, float renderDistance, float partialTick, + float nearDistance, float farDistance, FogShape shape) { + float modifier = TintedFluidType.this.getFogDistanceModifier(); + float baseWaterFog = 96.0f; + if (modifier != 1f) { + RenderSystem.setShaderFogShape(FogShape.CYLINDER); + RenderSystem.setShaderFogStart(-8); + RenderSystem.setShaderFogEnd(baseWaterFog * modifier); + } + } }); } @@ -156,16 +191,32 @@ public int getTintColor(FluidState state, BlockAndTintGetter getter, BlockPos po protected abstract int getTintColor(FluidStack stack); protected abstract int getTintColor(FluidState state, BlockAndTintGetter getter, BlockPos pos); + + protected Vector3f getCustomFogColor() { + return null; + } + + protected float getFogDistanceModifier() { + return 1f; + } } - /** - * Removing alpha from tint prevents optifine from forcibly applying biome - * colors to modded fluids (Makes translucent fluids disappear) - */ - private static class NoColorFluidAttributes extends TintedFluidType { + private static class SolidRenderedPlaceableFluidType extends TintedFluidType { + + private Vector3f fogColor; + private Supplier fogDistance; + + public static FluidTypeFactory create(int fogColor, Supplier fogDistance) { + return (p, s, f) -> { + SolidRenderedPlaceableFluidType fluidType = new SolidRenderedPlaceableFluidType(p, s, f); + fluidType.fogColor = new Color(fogColor, false).asVectorF(); + fluidType.fogDistance = fogDistance; + return fluidType; + }; + } - public NoColorFluidAttributes(Properties properties, ResourceLocation stillTexture, + private SolidRenderedPlaceableFluidType(Properties properties, ResourceLocation stillTexture, ResourceLocation flowingTexture) { super(properties, stillTexture, flowingTexture); } @@ -175,10 +226,25 @@ protected int getTintColor(FluidStack stack) { return NO_TINT; } + /* + * Removing alpha from tint prevents optifine from forcibly applying biome + * colors to modded fluids (this workaround only works for fluids in the solid + * render layer) + */ @Override public int getTintColor(FluidState state, BlockAndTintGetter world, BlockPos pos) { return 0x00ffffff; } + + @Override + protected Vector3f getCustomFogColor() { + return fogColor; + } + + @Override + protected float getFogDistanceModifier() { + return fogDistance.get(); + } } diff --git a/src/main/java/com/simibubi/create/foundation/events/ClientEvents.java b/src/main/java/com/simibubi/create/foundation/events/ClientEvents.java index d88e23c72b..a76500733f 100644 --- a/src/main/java/com/simibubi/create/foundation/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/foundation/events/ClientEvents.java @@ -2,7 +2,6 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.AllFluids; import com.simibubi.create.AllItems; import com.simibubi.create.AllPackets; import com.simibubi.create.Create; @@ -298,20 +297,6 @@ public static void getFogDensity(ViewportEvent.RenderFog event) { Fluid fluid = fluidState.getType(); Entity entity = camera.getEntity(); - if (AllFluids.CHOCOLATE.get() - .isSame(fluid)) { - event.scaleFarPlaneDistance(1f / 32f * AllConfigs.client().chocolateTransparencyMultiplier.getF()); - event.setCanceled(true); - return; - } - - if (AllFluids.HONEY.get() - .isSame(fluid)) { - event.scaleFarPlaneDistance(1f / 8f * AllConfigs.client().honeyTransparencyMultiplier.getF()); - event.setCanceled(true); - return; - } - if (entity.isSpectator()) return; @@ -330,34 +315,6 @@ public static void getFogDensity(ViewportEvent.RenderFog event) { } } - @SubscribeEvent - public static void getFogColor(ViewportEvent.ComputeFogColor event) { - Camera info = event.getCamera(); - Level level = Minecraft.getInstance().level; - BlockPos blockPos = info.getBlockPosition(); - FluidState fluidState = level.getFluidState(blockPos); - if (info.getPosition().y > blockPos.getY() + fluidState.getHeight(level, blockPos)) - return; - - Fluid fluid = fluidState.getType(); - - if (AllFluids.CHOCOLATE.get() - .isSame(fluid)) { - event.setRed(98 / 255f); - event.setGreen(32 / 255f); - event.setBlue(32 / 255f); - return; - } - - if (AllFluids.HONEY.get() - .isSame(fluid)) { - event.setRed(234 / 255f); - event.setGreen(174 / 255f); - event.setBlue(47 / 255f); - return; - } - } - @SubscribeEvent public static void leftClickEmpty(PlayerInteractEvent.LeftClickEmpty event) { ItemStack stack = event.getItemStack(); From a6a4078356251992d41bcb51584892875ff6ca24 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue, 4 Jul 2023 13:28:09 +0200 Subject: [PATCH 3/4] Fixed wood cutting compat for HexCasting #5058 --- .../.cache/8e794e243511ea3d808ffb90a97ef5ee71d8d5f9 | 6 +++--- .../.cache/b256105d8411632b0d585496ea8944a751a08034 | 10 +++++----- .../hexcasting/{akashic_log.json => edified_log.json} | 4 ++-- .../{akashic_wood.json => edified_wood.json} | 4 ++-- ...hic_log_stripped.json => stripped_edified_log.json} | 4 ++-- ...c_wood_stripped.json => stripped_edified_wood.json} | 4 ++-- .../data/create/tags/items/modded_stripped_logs.json | 2 +- .../data/create/tags/items/modded_stripped_wood.json | 2 +- .../foundation/data/recipe/CuttingRecipeGen.java | 2 +- .../simibubi/create/foundation/data/recipe/Mods.java | 2 +- 10 files changed, 20 insertions(+), 20 deletions(-) rename src/generated/resources/data/create/recipes/cutting/compat/hexcasting/{akashic_log.json => edified_log.json} (71%) rename src/generated/resources/data/create/recipes/cutting/compat/hexcasting/{akashic_wood.json => edified_wood.json} (71%) rename src/generated/resources/data/create/recipes/cutting/compat/hexcasting/{akashic_log_stripped.json => stripped_edified_log.json} (72%) rename src/generated/resources/data/create/recipes/cutting/compat/hexcasting/{akashic_wood_stripped.json => stripped_edified_wood.json} (72%) diff --git a/src/generated/resources/.cache/8e794e243511ea3d808ffb90a97ef5ee71d8d5f9 b/src/generated/resources/.cache/8e794e243511ea3d808ffb90a97ef5ee71d8d5f9 index e901e29e9c..5562122a05 100644 --- a/src/generated/resources/.cache/8e794e243511ea3d808ffb90a97ef5ee71d8d5f9 +++ b/src/generated/resources/.cache/8e794e243511ea3d808ffb90a97ef5ee71d8d5f9 @@ -1,4 +1,4 @@ -// 1.19.2 2023-07-03T14:12:56.5498328 Registrate Provider for create [Recipes, Advancements, Loot tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] +// 1.19.2 2023-07-04T13:25:50.900324 Registrate Provider for create [Recipes, Advancements, Loot tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] 60bbdf92d2ac9824ea6144955c74043a6005f79d assets/create/blockstates/acacia_window.json 6a67703c2697d81b7dc83e9d72a66f9c9ff08383 assets/create/blockstates/acacia_window_pane.json c3ae87b62e81d8e9476eccd793bb1548d74c66a1 assets/create/blockstates/adjustable_chain_gearshift.json @@ -4195,8 +4195,8 @@ f43cac8216e2a9347e48cf93a43de95dd810ca20 data/create/tags/items/contraption_cont d371dfd35e49a7bef19f59c03e7f4ae20992f03d data/create/tags/items/create_ingots.json 910d0f5ccbc4c84b224eca1f1588b1695f41447b data/create/tags/items/crushed_raw_materials.json 0fa526e7e742573b603ad26b09526cf724efa1dc data/create/tags/items/deployable_drink.json -29ca12609f7c419c5c06338a86c7f4ba1fc7390e data/create/tags/items/modded_stripped_logs.json -ae63f7dc5d9221890ee593ff03cd2aff8cd6a356 data/create/tags/items/modded_stripped_wood.json +99d3f12c67bd4c1f14fa9e6cbc1de5ed209ef402 data/create/tags/items/modded_stripped_logs.json +b49ad07e47fbb4b12c1d95d72f752e6e6839a815 data/create/tags/items/modded_stripped_wood.json 695d75b352fd190b303c724d1aaee9bb786a903b data/create/tags/items/pressurized_air_sources.json 2cd3adffd8b151354df137a990dcb97996a665bb data/create/tags/items/sandpaper.json 79418bd729cef417b322cef9b491e7ae83317d61 data/create/tags/items/seats.json diff --git a/src/generated/resources/.cache/b256105d8411632b0d585496ea8944a751a08034 b/src/generated/resources/.cache/b256105d8411632b0d585496ea8944a751a08034 index 4133d38474..09de275aca 100644 --- a/src/generated/resources/.cache/b256105d8411632b0d585496ea8944a751a08034 +++ b/src/generated/resources/.cache/b256105d8411632b0d585496ea8944a751a08034 @@ -1,4 +1,4 @@ -// 1.19.2 2023-05-21T22:23:35.981366 Create's Processing Recipes +// 1.19.2 2023-07-04T13:25:50.9302443 Create's Processing Recipes 3c94326fb730f68c1e44fe1e2ef09c9db6ffd92b data/create/recipes/compacting/andesite_from_flint.json 8d3d5b31f3601b9f681ff710e0545a483a1494c6 data/create/recipes/compacting/blaze_cake.json 8bd7f4e3a686ab520b2d55594d2018d0e9a50c91 data/create/recipes/compacting/chocolate.json @@ -329,10 +329,10 @@ e5c3b98a78aa3995654583f3ce1c70e7cf8c2130 data/create/recipes/cutting/compat/forb 4b2e710b98a3fd0a883cf5be9ec75835f8e4631b data/create/recipes/cutting/compat/forbidden_arcanus/stripped_cherrywood_log.json a3035cdad141574294844b8aaa41b92ac76dac2e data/create/recipes/cutting/compat/forbidden_arcanus/stripped_mysterywood.json 20e75208dcb1720de5bbf629911f52b95612227f data/create/recipes/cutting/compat/forbidden_arcanus/stripped_mysterywood_log.json -4bfafcc6fe8372535420dde28fcb3670cf171ad6 data/create/recipes/cutting/compat/hexcasting/akashic_log.json -ff7713c6899e7c4cd921f0e72d1cfc26f506ada5 data/create/recipes/cutting/compat/hexcasting/akashic_log_stripped.json -0bb9d6dd590881c9b8c4b7297694e78196cd9f85 data/create/recipes/cutting/compat/hexcasting/akashic_wood.json -e01ed96c30daba091c4f435858795f1aa088f1be data/create/recipes/cutting/compat/hexcasting/akashic_wood_stripped.json +3a9be23a966c2737c5059474c17a86566bc5505f data/create/recipes/cutting/compat/hexcasting/edified_log.json +3f3879c426acb1753f2985ed19f0a905bdbd3797 data/create/recipes/cutting/compat/hexcasting/edified_wood.json +68d80d00d15d6ad14100025eecbd76c1fa8e3a52 data/create/recipes/cutting/compat/hexcasting/stripped_edified_log.json +9e665be213a1eca08df0dcf38766d2ce3a76de8a data/create/recipes/cutting/compat/hexcasting/stripped_edified_wood.json f87872a26b790bd29abfc036486474c5db8ee518 data/create/recipes/cutting/compat/integrateddynamics/menril_log.json cd568df5168a0cfccbdaaf767ec63d71871ba3ba data/create/recipes/cutting/compat/integrateddynamics/menril_log_stripped.json b5573785c73cbf3b2c2bd096bb0a12b054819b74 data/create/recipes/cutting/compat/integrateddynamics/menril_wood.json diff --git a/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_log.json b/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/edified_log.json similarity index 71% rename from src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_log.json rename to src/generated/resources/data/create/recipes/cutting/compat/hexcasting/edified_log.json index b7b4d8fe74..2caaf5516d 100644 --- a/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_log.json +++ b/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/edified_log.json @@ -8,13 +8,13 @@ ], "ingredients": [ { - "item": "hexcasting:akashic_log" + "item": "hexcasting:edified_log" } ], "processingTime": 50, "results": [ { - "item": "hexcasting:akashic_log_stripped" + "item": "hexcasting:stripped_edified_log" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_wood.json b/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/edified_wood.json similarity index 71% rename from src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_wood.json rename to src/generated/resources/data/create/recipes/cutting/compat/hexcasting/edified_wood.json index f19a72719c..ccb3794265 100644 --- a/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_wood.json +++ b/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/edified_wood.json @@ -8,13 +8,13 @@ ], "ingredients": [ { - "item": "hexcasting:akashic_wood" + "item": "hexcasting:edified_wood" } ], "processingTime": 50, "results": [ { - "item": "hexcasting:akashic_wood_stripped" + "item": "hexcasting:stripped_edified_wood" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_log_stripped.json b/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/stripped_edified_log.json similarity index 72% rename from src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_log_stripped.json rename to src/generated/resources/data/create/recipes/cutting/compat/hexcasting/stripped_edified_log.json index d0d29307b1..6dc80b52df 100644 --- a/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_log_stripped.json +++ b/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/stripped_edified_log.json @@ -8,14 +8,14 @@ ], "ingredients": [ { - "item": "hexcasting:akashic_log_stripped" + "item": "hexcasting:stripped_edified_log" } ], "processingTime": 50, "results": [ { "count": 6, - "item": "hexcasting:akashic_planks" + "item": "hexcasting:edified_planks" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_wood_stripped.json b/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/stripped_edified_wood.json similarity index 72% rename from src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_wood_stripped.json rename to src/generated/resources/data/create/recipes/cutting/compat/hexcasting/stripped_edified_wood.json index f2cd27eb33..2757bd0c49 100644 --- a/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/akashic_wood_stripped.json +++ b/src/generated/resources/data/create/recipes/cutting/compat/hexcasting/stripped_edified_wood.json @@ -8,14 +8,14 @@ ], "ingredients": [ { - "item": "hexcasting:akashic_wood_stripped" + "item": "hexcasting:stripped_edified_wood" } ], "processingTime": 50, "results": [ { "count": 6, - "item": "hexcasting:akashic_planks" + "item": "hexcasting:edified_planks" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/items/modded_stripped_logs.json b/src/generated/resources/data/create/tags/items/modded_stripped_logs.json index caa6ee108d..c839e91cc4 100644 --- a/src/generated/resources/data/create/tags/items/modded_stripped_logs.json +++ b/src/generated/resources/data/create/tags/items/modded_stripped_logs.json @@ -33,7 +33,7 @@ "required": false }, { - "id": "hexcasting:akashic_log_stripped", + "id": "hexcasting:stripped_akashic_log", "required": false }, { diff --git a/src/generated/resources/data/create/tags/items/modded_stripped_wood.json b/src/generated/resources/data/create/tags/items/modded_stripped_wood.json index 855895d638..0f6689dd57 100644 --- a/src/generated/resources/data/create/tags/items/modded_stripped_wood.json +++ b/src/generated/resources/data/create/tags/items/modded_stripped_wood.json @@ -33,7 +33,7 @@ "required": false }, { - "id": "hexcasting:akashic_wood_stripped", + "id": "hexcasting:stripped_akashic_wood", "required": false }, { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CuttingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CuttingRecipeGen.java index 334dcefa9c..469f3de449 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CuttingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CuttingRecipeGen.java @@ -56,7 +56,7 @@ public class CuttingRecipeGen extends ProcessingRecipeGen { FA = cuttingCompat(Mods.FA, "cherrywood", "mysterywood"), // Hexcasting (stripped is a suffix here) - HEX = cuttingCompat(Mods.HEX, "akashic"), + HEX = cuttingCompat(Mods.HEX, "edified"), // Integrated Dynamics (stripped is a suffix here also) ID = cuttingCompat(Mods.ID, "menril"), diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/Mods.java b/src/main/java/com/simibubi/create/foundation/data/recipe/Mods.java index b89e5498e9..bf168b880e 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/Mods.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/Mods.java @@ -15,7 +15,7 @@ public enum Mods { BSK("blue_skies"), BTN("botania", b -> b.omitWoodSuffix()), FA("forbidden_arcanus", b -> b.omitWoodSuffix()), - HEX("hexcasting", b -> b.strippedWoodIsSuffix()), + HEX("hexcasting"), ID("integrateddynamics", b -> b.strippedWoodIsSuffix()), BYG("byg"), SG("silentgear"), From 064dc1e2476b7e68277bd41ec5a142e065063c41 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue, 4 Jul 2023 17:56:30 +0200 Subject: [PATCH 4/4] More NPE Guards --- .../create/content/decoration/copycat/CopycatModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/simibubi/create/content/decoration/copycat/CopycatModel.java b/src/main/java/com/simibubi/create/content/decoration/copycat/CopycatModel.java index 7bd452d99c..65280d5ab8 100644 --- a/src/main/java/com/simibubi/create/content/decoration/copycat/CopycatModel.java +++ b/src/main/java/com/simibubi/create/content/decoration/copycat/CopycatModel.java @@ -137,7 +137,7 @@ public TextureAtlasSprite getParticleIcon(ModelData data) { @Nullable public static BlockState getMaterial(ModelData data) { - BlockState material = data.get(MATERIAL_PROPERTY); + BlockState material = data == null ? null : data.get(MATERIAL_PROPERTY); return material == null ? AllBlocks.COPYCAT_BASE.getDefaultState() : material; }