mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2024-11-26 06:18:00 +01:00
Clean up some things and fixed pony level not being applied
This commit is contained in:
parent
1b584ed351
commit
3c357c9061
5 changed files with 45 additions and 71 deletions
|
@ -11,12 +11,22 @@ import com.minelittlepony.client.MineLittlePony;
|
||||||
|
|
||||||
public interface IPony {
|
public interface IPony {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the global pony manager instance.
|
||||||
|
*/
|
||||||
|
static IPonyManager getManager() {
|
||||||
|
return MineLittlePony.getInstance().getManager();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or creates a new pony associated with the provided resource location.
|
* Gets or creates a new pony associated with the provided resource location.
|
||||||
* The results of this method should not be cached.
|
* The results of this method should not be cached.
|
||||||
|
*
|
||||||
|
* @deprecated User IPony.getManager().getPony(texture) instead
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
static IPony forResource(Identifier texture) {
|
static IPony forResource(Identifier texture) {
|
||||||
return MineLittlePony.getInstance().getManager().getPony(texture);
|
return getManager().getPony(texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,18 +34,6 @@ public interface IPony {
|
||||||
*/
|
*/
|
||||||
void updateForEntity(Entity entity);
|
void updateForEntity(Entity entity);
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if this pony has wings and the will to use them.
|
|
||||||
*/
|
|
||||||
default boolean canFly() {
|
|
||||||
return getRace().hasWings();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks the required conditions for whether the given entity can perform a sonic rainboom.
|
|
||||||
*/
|
|
||||||
boolean isPerformingRainboom(LivingEntity entity);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns whether this is one of the default ponies assigned to a player without a custom skin.
|
* Returns whether this is one of the default ponies assigned to a player without a custom skin.
|
||||||
*/
|
*/
|
||||||
|
@ -65,21 +63,11 @@ public interface IPony {
|
||||||
*/
|
*/
|
||||||
boolean isSwimming(LivingEntity entity);
|
boolean isSwimming(LivingEntity entity);
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if the provided entity is fully submerged with water reaching the entity's eyeheight or above.
|
|
||||||
*/
|
|
||||||
boolean isFullySubmerged(LivingEntity entity);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if the provided entity is partially submerged. That is if any part of it is in contact with water.
|
* Returns true if the provided entity is partially submerged. That is if any part of it is in contact with water.
|
||||||
*/
|
*/
|
||||||
boolean isPartiallySubmerged(LivingEntity entity);
|
boolean isPartiallySubmerged(LivingEntity entity);
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
default Race getRace(boolean ignorePony) {
|
|
||||||
return com.minelittlepony.client.pony.Pony.getEffectiveRace(getMetadata().getRace(), ignorePony);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the race associated with this pony.
|
* Gets the race associated with this pony.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -16,6 +16,7 @@ import com.minelittlepony.api.pony.meta.TriggerPixel;
|
||||||
import com.minelittlepony.api.pony.meta.Wearable;
|
import com.minelittlepony.api.pony.meta.Wearable;
|
||||||
import com.minelittlepony.client.MineLittlePony;
|
import com.minelittlepony.client.MineLittlePony;
|
||||||
import com.minelittlepony.common.util.animation.Interpolator;
|
import com.minelittlepony.common.util.animation.Interpolator;
|
||||||
|
import com.minelittlepony.settings.PonyConfig;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
@ -91,7 +92,7 @@ class NativePonyData implements IPonyData {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasHorn() {
|
public boolean hasHorn() {
|
||||||
return getRace() != null && Pony.getEffectiveRace(getRace(), false).hasHorn();
|
return getRace() != null && PonyConfig.getEffectiveRace(getRace()).hasHorn();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -9,11 +9,10 @@ import com.minelittlepony.api.pony.meta.Sizes;
|
||||||
import com.minelittlepony.api.pony.network.MsgPonyData;
|
import com.minelittlepony.api.pony.network.MsgPonyData;
|
||||||
import com.minelittlepony.api.pony.network.fabric.Channel;
|
import com.minelittlepony.api.pony.network.fabric.Channel;
|
||||||
import com.minelittlepony.api.pony.network.fabric.PonyDataCallback;
|
import com.minelittlepony.api.pony.network.fabric.PonyDataCallback;
|
||||||
import com.minelittlepony.client.MineLittlePony;
|
|
||||||
import com.minelittlepony.client.render.IPonyRenderContext;
|
import com.minelittlepony.client.render.IPonyRenderContext;
|
||||||
import com.minelittlepony.client.render.PonyRenderDispatcher;
|
import com.minelittlepony.client.render.PonyRenderDispatcher;
|
||||||
import com.minelittlepony.client.transform.PonyTransformation;
|
import com.minelittlepony.client.transform.PonyTransformation;
|
||||||
import com.minelittlepony.settings.PonyLevel;
|
import com.minelittlepony.settings.PonyConfig;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@ -79,14 +78,6 @@ public class Pony implements IPony {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isPerformingRainboom(LivingEntity entity) {
|
|
||||||
Vec3d motion = entity.getVelocity();
|
|
||||||
double zMotion = Math.sqrt(motion.x * motion.x + motion.z * motion.z);
|
|
||||||
|
|
||||||
return (isFlying(entity) && canFly()) || entity.isFallFlying() & zMotion > 0.4F;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isCrouching(LivingEntity entity) {
|
public boolean isCrouching(LivingEntity entity) {
|
||||||
|
|
||||||
|
@ -97,6 +88,13 @@ public class Pony implements IPony {
|
||||||
return !isPerformingRainboom(entity) && !isSwimming && isSneak && !isFlying;
|
return !isPerformingRainboom(entity) && !isSwimming && isSneak && !isFlying;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isPerformingRainboom(LivingEntity entity) {
|
||||||
|
Vec3d motion = entity.getVelocity();
|
||||||
|
double zMotion = Math.sqrt(motion.x * motion.x + motion.z * motion.z);
|
||||||
|
|
||||||
|
return (isFlying(entity) && getRace().hasWings()) || entity.isFallFlying() & zMotion > 0.4F;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFlying(LivingEntity entity) {
|
public boolean isFlying(LivingEntity entity) {
|
||||||
return !(isOnGround(entity)
|
return !(isOnGround(entity)
|
||||||
|
@ -141,12 +139,6 @@ public class Pony implements IPony {
|
||||||
|| entity.getEntityWorld().getBlockState(entity.getBlockPos()).getMaterial() == Material.WATER;
|
|| entity.getEntityWorld().getBlockState(entity.getBlockPos()).getMaterial() == Material.WATER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isFullySubmerged(LivingEntity entity) {
|
|
||||||
return entity.isSubmergedInWater()
|
|
||||||
&& entity.getEntityWorld().getBlockState(new BlockPos(getVisualEyePosition(entity))).getMaterial() == Material.WATER;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Vec3d getVisualEyePosition(LivingEntity entity) {
|
protected Vec3d getVisualEyePosition(LivingEntity entity) {
|
||||||
Size size = entity.isBaby() ? Sizes.FOAL : getMetadata().getSize();
|
Size size = entity.isBaby() ? Sizes.FOAL : getMetadata().getSize();
|
||||||
|
|
||||||
|
@ -159,7 +151,7 @@ public class Pony implements IPony {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Race getRace() {
|
public Race getRace() {
|
||||||
return getEffectiveRace(getMetadata().getRace(), true);
|
return PonyConfig.getEffectiveRace(getMetadata().getRace());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -246,26 +238,6 @@ public class Pony implements IPony {
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the actual race determined by the given pony level.
|
|
||||||
* PonyLevel.HUMANS would force all races to be humans.
|
|
||||||
* PonyLevel.BOTH is no change.
|
|
||||||
* PonyLevel.PONIES (should) return a pony if this is a human. Don't be fooled, though. It doesn't.
|
|
||||||
*/
|
|
||||||
public static Race getEffectiveRace(Race race, boolean ignorePony) {
|
|
||||||
|
|
||||||
Race override = MineLittlePony.getInstance().getConfig().raceOverride.get();
|
|
||||||
if (override != Race.HUMAN) {
|
|
||||||
return override;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (MineLittlePony.getInstance().getConfig().getEffectivePonyLevel(ignorePony) == PonyLevel.HUMANS) {
|
|
||||||
return Race.HUMAN;
|
|
||||||
}
|
|
||||||
|
|
||||||
return race;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface RegistrationHandler {
|
public interface RegistrationHandler {
|
||||||
boolean shouldUpdateRegistration(Pony pony);
|
boolean shouldUpdateRegistration(Pony pony);
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,7 +133,7 @@ public class PonyData implements IPonyData {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasHorn() {
|
public boolean hasHorn() {
|
||||||
return getRace() != null && Pony.getEffectiveRace(getRace(), false).hasHorn();
|
return getRace() != null && getRace().hasHorn();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,6 +4,7 @@ import net.minecraft.util.math.MathHelper;
|
||||||
|
|
||||||
import com.minelittlepony.api.pony.meta.Race;
|
import com.minelittlepony.api.pony.meta.Race;
|
||||||
import com.minelittlepony.api.pony.meta.Sizes;
|
import com.minelittlepony.api.pony.meta.Sizes;
|
||||||
|
import com.minelittlepony.client.MineLittlePony;
|
||||||
import com.minelittlepony.common.util.settings.*;
|
import com.minelittlepony.common.util.settings.*;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
@ -60,15 +61,6 @@ public class PonyConfig extends Config {
|
||||||
super(HEIRARCHICAL_JSON_ADAPTER, path);
|
super(HEIRARCHICAL_JSON_ADAPTER, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the current PonyLevel. That is the level of ponies you would like to see.
|
|
||||||
*
|
|
||||||
* @param ignorePony true to ignore whatever value the setting has.
|
|
||||||
*/
|
|
||||||
public PonyLevel getEffectivePonyLevel(boolean ignorePony) {
|
|
||||||
return ignorePony ? PonyLevel.BOTH : ponyLevel.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public float setGlobalScaleFactor(float f) {
|
public float setGlobalScaleFactor(float f) {
|
||||||
|
|
||||||
if (f < 0.15F) {
|
if (f < 0.15F) {
|
||||||
|
@ -101,4 +93,25 @@ public class PonyConfig extends Config {
|
||||||
public float getGlobalScaleFactor() {
|
public float getGlobalScaleFactor() {
|
||||||
return showscale.get() ? scaleFactor.get() : 1;
|
return showscale.get() ? scaleFactor.get() : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the actual race determined by the given pony level.
|
||||||
|
* PonyLevel.HUMANS would force all races to be humans.
|
||||||
|
* PonyLevel.BOTH is no change.
|
||||||
|
* PonyLevel.PONIES (should) return a pony if this is a human. Don't be fooled, though. It doesn't.
|
||||||
|
*/
|
||||||
|
public static Race getEffectiveRace(Race race) {
|
||||||
|
|
||||||
|
Race override = MineLittlePony.getInstance().getConfig().raceOverride.get();
|
||||||
|
if (override != Race.HUMAN) {
|
||||||
|
return override;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (MineLittlePony.getInstance().getConfig().ponyLevel.get() == PonyLevel.HUMANS) {
|
||||||
|
return Race.HUMAN;
|
||||||
|
}
|
||||||
|
|
||||||
|
return race;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue