Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / DefinedStructureProcessorGravity.java
package net.minecraft.server;

import com.google.common.collect.ImmutableMap;
import com.mojang.datafixers.Dynamic;
import com.mojang.datafixers.types.DynamicOps;
import javax.annotation.Nullable;

public class DefinedStructureProcessorGravity extends DefinedStructureProcessor {

    private final HeightMap.Type a;
    private final int b;

    public DefinedStructureProcessorGravity(HeightMap.Type heightmap_type, int i) {
        this.a = heightmap_type;
        this.b = i;
    }

    public DefinedStructureProcessorGravity(Dynamic<?> dynamic) {
        this(HeightMap.Type.a(dynamic.get("heightmap").asString(HeightMap.Type.WORLD_SURFACE_WG.a())), dynamic.get("offset").asInt(0));
    }

    @Nullable
    @Override
    public DefinedStructure.BlockInfo a(IWorldReader iworldreader, BlockPosition blockposition, DefinedStructure.BlockInfo definedstructure_blockinfo, DefinedStructure.BlockInfo definedstructure_blockinfo1, DefinedStructureInfo definedstructureinfo) {
        int i = iworldreader.a(this.a, definedstructure_blockinfo1.a.getX(), definedstructure_blockinfo1.a.getZ()) + this.b;
        int j = definedstructure_blockinfo.a.getY();

        return new DefinedStructure.BlockInfo(new BlockPosition(definedstructure_blockinfo1.a.getX(), i + j, definedstructure_blockinfo1.a.getZ()), definedstructure_blockinfo1.b, definedstructure_blockinfo1.c);
    }

    @Override
    protected DefinedStructureStructureProcessorType a() {
        return DefinedStructureStructureProcessorType.d;
    }

    @Override
    protected <T> Dynamic<T> a(DynamicOps<T> dynamicops) {
        return new Dynamic(dynamicops, dynamicops.createMap(ImmutableMap.of(dynamicops.createString("heightmap"), dynamicops.createString(this.a.a()), dynamicops.createString("offset"), dynamicops.createInt(this.b))));
    }
}