From a52b18ba9b7ac4597e920c8d9b76a8a190f966cb Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 18 Oct 2021 19:26:10 +0200 Subject: [PATCH] `MultiPartBuilder.create` returns an Instance not a globa Object (improves thread safety, fixes paulevsGitch/BetterEnd#316) --- .../ru/bclib/client/models/ModelsHelper.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/ru/bclib/client/models/ModelsHelper.java b/src/main/java/ru/bclib/client/models/ModelsHelper.java index a27ab958..267345ea 100644 --- a/src/main/java/ru/bclib/client/models/ModelsHelper.java +++ b/src/main/java/ru/bclib/client/models/ModelsHelper.java @@ -1,6 +1,11 @@ package ru.bclib.client.models; +import java.util.List; +import java.util.Optional; +import java.util.function.Function; + import com.google.common.collect.Lists; + import com.mojang.math.Transformation; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -17,10 +22,6 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; -import java.util.List; -import java.util.Optional; -import java.util.function.Function; - @Environment(EnvType.CLIENT) public class ModelsHelper { public static BlockModel fromPattern(Optional pattern) { @@ -88,18 +89,21 @@ public class ModelsHelper { public static class MultiPartBuilder { - private final static MultiPartBuilder BUILDER = new MultiPartBuilder(); + //private final static MultiPartBuilder BUILDER = new MultiPartBuilder(); public static MultiPartBuilder create(StateDefinition stateDefinition) { - BUILDER.stateDefinition = stateDefinition; - BUILDER.modelParts.clear(); - return BUILDER; + // BUILDER.stateDefinition = stateDefinition; + //BUILDER.modelParts.clear(); + // return BUILDER; + return new MultiPartBuilder(stateDefinition); } private final List modelParts = Lists.newArrayList(); private StateDefinition stateDefinition; - private MultiPartBuilder() {} + private MultiPartBuilder(StateDefinition stateDefinition) { + this.stateDefinition = stateDefinition; + } public ModelPart part(ResourceLocation modelId) { ModelPart part = new ModelPart(modelId);