LibsDisguises/src/me/libraryaddict/disguise/utilities/DisguiseValues.java

147 lines
4.1 KiB
Java
Raw Normal View History

package me.libraryaddict.disguise.utilities;
2013-07-11 20:36:55 +02:00
import java.util.HashMap;
2016-05-09 17:28:38 +02:00
import me.libraryaddict.disguise.disguisetypes.DisguiseType;
public class DisguiseValues {
private static HashMap<DisguiseType, DisguiseValues> values = new HashMap<>();
public static DisguiseValues getDisguiseValues(DisguiseType type) {
switch (type) {
case DONKEY:
case MULE:
case UNDEAD_HORSE:
case SKELETON_HORSE:
type = DisguiseType.HORSE;
break;
case MINECART_CHEST:
case MINECART_COMMAND:
case MINECART_FURNACE:
case MINECART_HOPPER:
case MINECART_TNT:
case MINECART_MOB_SPAWNER:
type = DisguiseType.MINECART;
break;
case WITHER_SKELETON:
type = DisguiseType.SKELETON;
break;
case ZOMBIE_VILLAGER:
type = DisguiseType.ZOMBIE;
break;
default:
break;
}
return values.get(type);
2013-07-11 20:38:38 +02:00
}
public static HashMap<Integer, Object> getMetaValues(DisguiseType type) {
return getDisguiseValues(type).getMetaValues();
}
public static Class getNmsEntityClass(DisguiseType type) {
return getDisguiseValues(type).getNmsEntityClass();
}
2013-12-22 01:03:47 +01:00
private FakeBoundingBox adultBox;
private FakeBoundingBox babyBox;
2013-12-22 05:35:57 +01:00
private float[] entitySize;
2013-11-18 04:24:25 +01:00
private int enumEntitySize;
private double maxHealth;
private HashMap<Integer, Object> metaValues = new HashMap<>();
private Class nmsEntityClass;
@SuppressWarnings("LeakingThisInConstructor")
public DisguiseValues(DisguiseType type, Class classType, int entitySize, double maxHealth) {
values.put(type, this);
enumEntitySize = entitySize;
nmsEntityClass = classType;
this.maxHealth = maxHealth;
}
2013-07-16 07:23:11 +02:00
public FakeBoundingBox getAdultBox() {
return adultBox;
}
2013-12-22 01:03:47 +01:00
public FakeBoundingBox getBabyBox() {
return babyBox;
}
2013-12-22 05:35:57 +01:00
public float[] getEntitySize() {
return entitySize;
}
2013-11-18 04:24:25 +01:00
public int getEntitySize(double paramDouble) {
double d = paramDouble - (((int) Math.floor(paramDouble)) + 0.5D);
switch (enumEntitySize) {
case 1:
if (d < 0.0D ? d < -0.3125D : d < 0.3125D) {
return (int) Math.ceil(paramDouble * 32.0D);
}
2013-11-18 04:24:25 +01:00
return (int) Math.floor(paramDouble * 32.0D);
case 2:
if (d < 0.0D ? d < -0.3125D : d < 0.3125D) {
return (int) Math.floor(paramDouble * 32.0D);
}
2013-11-18 04:24:25 +01:00
return (int) Math.ceil(paramDouble * 32.0D);
case 3:
if (d > 0.0D) {
return (int) Math.floor(paramDouble * 32.0D);
}
2013-11-18 04:24:25 +01:00
return (int) Math.ceil(paramDouble * 32.0D);
case 4:
if (d < 0.0D ? d < -0.1875D : d < 0.1875D) {
return (int) Math.ceil(paramDouble * 32.0D);
}
2013-11-18 04:24:25 +01:00
return (int) Math.floor(paramDouble * 32.0D);
case 5:
if (d < 0.0D ? d < -0.1875D : d < 0.1875D) {
return (int) Math.floor(paramDouble * 32.0D);
}
2013-11-18 04:24:25 +01:00
return (int) Math.ceil(paramDouble * 32.0D);
default:
break;
2013-11-18 04:24:25 +01:00
}
if (d > 0.0D) {
return (int) Math.ceil(paramDouble * 32.0D);
}
return (int) Math.floor(paramDouble * 32.0D);
2013-08-08 23:14:44 +02:00
}
public double getMaxHealth() {
return maxHealth;
}
public HashMap<Integer, Object> getMetaValues() {
return metaValues;
2013-07-11 20:38:38 +02:00
}
public Class getNmsEntityClass() {
return nmsEntityClass;
}
2013-12-22 01:03:47 +01:00
public void setAdultBox(FakeBoundingBox newBox) {
adultBox = newBox;
}
public void setBabyBox(FakeBoundingBox newBox) {
babyBox = newBox;
}
2013-12-22 05:35:57 +01:00
public void setEntitySize(float[] size) {
this.entitySize = size;
}
public void setMetaValue(int id, Object value) {
metaValues.put(id, value);
2013-07-11 20:36:55 +02:00
}
}