package buildcraft.api.gates;
import java.util.Arrays;
import net.minecraft.util.EnumWorldBlockLayer;
public class GateExpansionModelKey<K extends GateExpansionModelKey<K>> {
public final EnumWorldBlockLayer layer;
public final IExpansionBaker<K> baker;
private final int hash;
public GateExpansionModelKey(EnumWorldBlockLayer layer, IExpansionBaker<K> baker) {
if (layer != EnumWorldBlockLayer.CUTOUT && layer != EnumWorldBlockLayer.TRANSLUCENT) {
throw new IllegalArgumentException("Unsuported layer! Was " + layer + ", wanted CUTOUT or TRANSLUCENT");
}
if (baker == null) throw new NullPointerException("baker");
this.layer = layer;
this.baker = baker;
hash = Arrays.hashCode(new int[] { layer.hashCode(), System.identityHashCode(baker) });
}
@Override
public int hashCode() {
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
GateExpansionModelKey<?> other = (GateExpansionModelKey<?>) obj;
if (baker != other.baker) return false;
return true;
}
}