diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateDefinitionMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateDefinitionMixin.java index 0649452a..82ae09df 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateDefinitionMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateDefinitionMixin.java @@ -1,23 +1,26 @@ package org.embeddedt.modernfix.common.mixin.perf.dynamic_block_codecs; -import com.mojang.serialization.MapCodec; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.StateHolder; +import net.minecraft.world.level.block.state.properties.Property; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyVariable; +import java.util.Map; +import java.util.function.Function; + @Mixin(StateDefinition.class) public class StateDefinitionMixin> { @Shadow @Final private O owner; - @ModifyVariable(method = "", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/Maps;newLinkedHashMap()Ljava/util/LinkedHashMap;"), ordinal = 0) - private MapCodec replaceMapCodec(MapCodec codec) { - if(this.owner instanceof Block) - return null; - return codec; + @ModifyVariable(method = "", at = @At("HEAD"), ordinal = 0, argsOnly = true) + private static > StateDefinition.Factory replaceMapCodec(StateDefinition.Factory factory, Function function, O object, StateDefinition.Factory factory2, Map> map) { + if(object instanceof Block) + return (o, m, c) -> factory.create(o, m, null); + return factory; } } diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateHolderMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateHolderMixin.java index eaa4f8d6..7455fcbb 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateHolderMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateHolderMixin.java @@ -7,7 +7,6 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.Decoder; import com.mojang.serialization.Encoder; import com.mojang.serialization.MapCodec; -import net.minecraft.core.Registry; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; @@ -28,7 +27,6 @@ public class StateHolderMixin { .build(new CacheLoader>() { @Override public MapCodec load(Block block) throws Exception { - System.out.println("Generating codec for " + Registry.BLOCK.getKey(block)); Supplier stateSupplier = block::defaultBlockState; MapCodec mapCodec = MapCodec.of(Encoder.empty(), Decoder.unit(stateSupplier)); for(Property property : block.getStateDefinition().getProperties()) {