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

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonObject;
import java.util.Random;

public class LootItemFunctionExplosionDecay extends LootItemFunctionConditional {

    private LootItemFunctionExplosionDecay(LootItemCondition[] alootitemcondition) {
        super(alootitemcondition);
    }

    @Override
    public ItemStack a(ItemStack itemstack, LootTableInfo loottableinfo) {
        Float ofloat = (Float) loottableinfo.getContextParameter(LootContextParameters.EXPLOSION_RADIUS);

        if (ofloat != null) {
            Random random = loottableinfo.a();
            float f = 1.0F / ofloat;
            int i = itemstack.getCount();
            int j = 0;

            for (int k = 0; k < i; ++k) {
                if (random.nextFloat() <= f) {
                    ++j;
                }
            }

            itemstack.setCount(j);
        }

        return itemstack;
    }

    public static LootItemFunctionConditional.a<?> b() {
        return a(LootItemFunctionExplosionDecay::new);
    }

    public static class a extends LootItemFunctionConditional.c<LootItemFunctionExplosionDecay> {

        protected a() {
            super(new MinecraftKey("explosion_decay"), LootItemFunctionExplosionDecay.class);
        }

        @Override
        public LootItemFunctionExplosionDecay b(JsonObject jsonobject, JsonDeserializationContext jsondeserializationcontext, LootItemCondition[] alootitemcondition) {
            return new LootItemFunctionExplosionDecay(alootitemcondition);
        }
    }
}