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

import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
import com.google.gson.JsonObject;
import javax.annotation.Nullable;

public class CriterionConditionDistance {

    public static final CriterionConditionDistance a = new CriterionConditionDistance(CriterionConditionValue.FloatRange.e, CriterionConditionValue.FloatRange.e, CriterionConditionValue.FloatRange.e, CriterionConditionValue.FloatRange.e, CriterionConditionValue.FloatRange.e);
    private final CriterionConditionValue.FloatRange b;
    private final CriterionConditionValue.FloatRange c;
    private final CriterionConditionValue.FloatRange d;
    private final CriterionConditionValue.FloatRange e;
    private final CriterionConditionValue.FloatRange f;

    public CriterionConditionDistance(CriterionConditionValue.FloatRange criterionconditionvalue_floatrange, CriterionConditionValue.FloatRange criterionconditionvalue_floatrange1, CriterionConditionValue.FloatRange criterionconditionvalue_floatrange2, CriterionConditionValue.FloatRange criterionconditionvalue_floatrange3, CriterionConditionValue.FloatRange criterionconditionvalue_floatrange4) {
        this.b = criterionconditionvalue_floatrange;
        this.c = criterionconditionvalue_floatrange1;
        this.d = criterionconditionvalue_floatrange2;
        this.e = criterionconditionvalue_floatrange3;
        this.f = criterionconditionvalue_floatrange4;
    }

    public static CriterionConditionDistance a(CriterionConditionValue.FloatRange criterionconditionvalue_floatrange) {
        return new CriterionConditionDistance(CriterionConditionValue.FloatRange.e, CriterionConditionValue.FloatRange.e, CriterionConditionValue.FloatRange.e, criterionconditionvalue_floatrange, CriterionConditionValue.FloatRange.e);
    }

    public static CriterionConditionDistance b(CriterionConditionValue.FloatRange criterionconditionvalue_floatrange) {
        return new CriterionConditionDistance(CriterionConditionValue.FloatRange.e, criterionconditionvalue_floatrange, CriterionConditionValue.FloatRange.e, CriterionConditionValue.FloatRange.e, CriterionConditionValue.FloatRange.e);
    }

    public boolean a(double d0, double d1, double d2, double d3, double d4, double d5) {
        float f = (float) (d0 - d3);
        float f1 = (float) (d1 - d4);
        float f2 = (float) (d2 - d5);

        return this.b.d(MathHelper.e(f)) && this.c.d(MathHelper.e(f1)) && this.d.d(MathHelper.e(f2)) ? (!this.e.a((double) (f * f + f2 * f2)) ? false : this.f.a((double) (f * f + f1 * f1 + f2 * f2))) : false;
    }

    public static CriterionConditionDistance a(@Nullable JsonElement jsonelement) {
        if (jsonelement != null && !jsonelement.isJsonNull()) {
            JsonObject jsonobject = ChatDeserializer.m(jsonelement, "distance");
            CriterionConditionValue.FloatRange criterionconditionvalue_floatrange = CriterionConditionValue.FloatRange.a(jsonobject.get("x"));
            CriterionConditionValue.FloatRange criterionconditionvalue_floatrange1 = CriterionConditionValue.FloatRange.a(jsonobject.get("y"));
            CriterionConditionValue.FloatRange criterionconditionvalue_floatrange2 = CriterionConditionValue.FloatRange.a(jsonobject.get("z"));
            CriterionConditionValue.FloatRange criterionconditionvalue_floatrange3 = CriterionConditionValue.FloatRange.a(jsonobject.get("horizontal"));
            CriterionConditionValue.FloatRange criterionconditionvalue_floatrange4 = CriterionConditionValue.FloatRange.a(jsonobject.get("absolute"));

            return new CriterionConditionDistance(criterionconditionvalue_floatrange, criterionconditionvalue_floatrange1, criterionconditionvalue_floatrange2, criterionconditionvalue_floatrange3, criterionconditionvalue_floatrange4);
        } else {
            return CriterionConditionDistance.a;
        }
    }

    public JsonElement a() {
        if (this == CriterionConditionDistance.a) {
            return JsonNull.INSTANCE;
        } else {
            JsonObject jsonobject = new JsonObject();

            jsonobject.add("x", this.b.d());
            jsonobject.add("y", this.c.d());
            jsonobject.add("z", this.d.d());
            jsonobject.add("horizontal", this.e.d());
            jsonobject.add("absolute", this.f.d());
            return jsonobject;
        }
    }
}