Continue mapping migration

This commit is contained in:
Aleksey 2021-04-12 21:38:22 +03:00
parent 99ade39404
commit f03fd03bd0
499 changed files with 12567 additions and 12723 deletions

View file

@ -2,30 +2,27 @@ package ru.betterend.mixin.client;
import java.io.Reader;
import java.io.StringReader;
import net.minecraft.client.renderer.block.model.BlockModelDefinition;
import net.minecraft.util.GsonHelper;
import net.minecraft.world.level.block.Block;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import com.google.gson.Gson;
import net.minecraft.world.level.block.Block;
import net.minecraft.client.render.model.json.ModelVariantMap;
import net.minecraft.util.JsonHelper;
import ru.betterend.patterns.BlockPatterned;
@Mixin(ModelVariantMap.class)
@Mixin(BlockModelDefinition.class)
public abstract class ModelVariantMapMixin {
@Inject(method = "deserialize", at = @At("HEAD"), cancellable = true)
private static void be_deserializeBlockState(ModelVariantMap.DeserializationContext context, Reader reader,
CallbackInfoReturnable<ModelVariantMap> info) {
Block block = context.getStateFactory().defaultBlockState().getBlock();
private static void be_deserializeBlockState(BlockModelDefinition.Context context, Reader reader, CallbackInfoReturnable<BlockModelDefinition> info) {
Block block = context.getDefinition().any().getBlock();
if (block instanceof BlockPatterned) {
String pattern = ((BlockPatterned) block).getStatesPattern(reader);
Gson gson = ContextGsonAccessor.class.cast(context).getGson();
ModelVariantMap map = JsonHelper.deserialize(gson, new StringReader(pattern), ModelVariantMap.class);
BlockModelDefinition map = GsonHelper.fromJson(gson, new StringReader(pattern), BlockModelDefinition.class);
info.setReturnValue(map);
}
}