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

import com.google.common.collect.ImmutableMap;
import com.mojang.datafixers.Dynamic;
import com.mojang.datafixers.types.DynamicOps;
import java.util.Random;

public class DefinedStructureTestRandomBlockState extends DefinedStructureRuleTest {

    private final IBlockData a;
    private final float b;

    public DefinedStructureTestRandomBlockState(IBlockData iblockdata, float f) {
        this.a = iblockdata;
        this.b = f;
    }

    public <T> DefinedStructureTestRandomBlockState(Dynamic<T> dynamic) {
        this(IBlockData.a(dynamic.get("blockstate").orElseEmptyMap()), dynamic.get("probability").asFloat(1.0F));
    }

    @Override
    public boolean a(IBlockData iblockdata, Random random) {
        return iblockdata == this.a && random.nextFloat() < this.b;
    }

    @Override
    protected DefinedStructureRuleTestType a() {
        return DefinedStructureRuleTestType.g;
    }

    @Override
    protected <T> Dynamic<T> a(DynamicOps<T> dynamicops) {
        return new Dynamic(dynamicops, dynamicops.createMap(ImmutableMap.of(dynamicops.createString("blockstate"), IBlockData.a(dynamicops, this.a).getValue(), dynamicops.createString("probability"), dynamicops.createFloat(this.b))));
    }
}