mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2025-01-19 14:41:42 +01:00
Fix pig pathing speed
This commit is contained in:
parent
ec3182cc01
commit
6f30ed3496
@ -127,6 +127,7 @@ public class CitizensNavigator implements Navigator {
|
||||
private static final Map<EntityType, Float> MOVEMENT_SPEEDS = Maps.newEnumMap(EntityType.class);
|
||||
private static Field SPEED_FIELD;
|
||||
static {
|
||||
|
||||
MOVEMENT_SPEEDS.put(EntityType.IRON_GOLEM, 0.15F);
|
||||
MOVEMENT_SPEEDS.put(EntityType.CHICKEN, 0.25F);
|
||||
MOVEMENT_SPEEDS.put(EntityType.COW, 0.2F);
|
||||
@ -134,6 +135,7 @@ public class CitizensNavigator implements Navigator {
|
||||
MOVEMENT_SPEEDS.put(EntityType.VILLAGER, 0.3F);
|
||||
MOVEMENT_SPEEDS.put(EntityType.SNOWMAN, 0.25F);
|
||||
MOVEMENT_SPEEDS.put(EntityType.CREEPER, 0.3F);
|
||||
MOVEMENT_SPEEDS.put(EntityType.PIG, 0.25F);
|
||||
try {
|
||||
SPEED_FIELD = EntityLiving.class.getDeclaredField("bb");
|
||||
SPEED_FIELD.setAccessible(true);
|
||||
|
@ -73,10 +73,14 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
|
||||
getControllerMove().c();
|
||||
getControllerLook().a();
|
||||
getControllerJump().b();
|
||||
|
||||
// taken from EntityLiving
|
||||
if (aZ) {
|
||||
if (aT()) {
|
||||
boolean inLiquid = aT() || aU();
|
||||
if (inLiquid) {
|
||||
motY += 0.04;
|
||||
} else if (onGround && q == 0) {
|
||||
// ac(); - this doesn't jump high enough
|
||||
motY = 0.6;
|
||||
q = 10;
|
||||
}
|
||||
@ -86,6 +90,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
|
||||
|
||||
aX *= 0.98F;
|
||||
a(aW, aX);
|
||||
X = yaw; // TODO: this looks jerky
|
||||
X = yaw;
|
||||
}
|
||||
}
|
@ -3,7 +3,7 @@ package net.citizensnpcs.trait.waypoint;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import net.citizensnpcs.api.ai.Goal;
|
||||
import net.citizensnpcs.api.event.NPCDespawnEvent;
|
||||
import net.citizensnpcs.api.npc.NPC;
|
||||
import net.citizensnpcs.api.util.DataKey;
|
||||
import net.citizensnpcs.editor.Editor;
|
||||
@ -24,6 +24,7 @@ import com.google.common.collect.Lists;
|
||||
public class LinearWaypointProvider implements WaypointProvider, Iterable<Waypoint> {
|
||||
private WaypointGoal currentGoal;
|
||||
private final List<Waypoint> waypoints = Lists.newArrayList();
|
||||
private NPC npc;
|
||||
|
||||
@Override
|
||||
public Editor createEditor(final Player player) {
|
||||
@ -72,6 +73,12 @@ public class LinearWaypointProvider implements WaypointProvider, Iterable<Waypoi
|
||||
currentGoal.onProviderChanged();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onNPCDespawn(NPCDespawnEvent event) {
|
||||
if (event.getNPC().equals(npc))
|
||||
end();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerItemHeldChange(PlayerItemHeldEvent event) {
|
||||
if (!event.getPlayer().equals(player) || waypoints.size() == 0)
|
||||
@ -101,10 +108,11 @@ public class LinearWaypointProvider implements WaypointProvider, Iterable<Waypoi
|
||||
}
|
||||
|
||||
@Override
|
||||
public Goal getGoal(NPC npc) {
|
||||
public void onSpawn(NPC npc) {
|
||||
this.npc = npc;
|
||||
if (currentGoal == null)
|
||||
currentGoal = new WaypointGoal(this, npc.getNavigator());
|
||||
return currentGoal;
|
||||
npc.getDefaultGoalController().addGoal(currentGoal, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,6 +1,5 @@
|
||||
package net.citizensnpcs.trait.waypoint;
|
||||
|
||||
import net.citizensnpcs.api.ai.Goal;
|
||||
import net.citizensnpcs.api.npc.NPC;
|
||||
import net.citizensnpcs.api.util.DataKey;
|
||||
import net.citizensnpcs.editor.Editor;
|
||||
@ -18,14 +17,6 @@ public interface WaypointProvider {
|
||||
*/
|
||||
public Editor createEditor(Player player);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param npc
|
||||
* The attached {@link NPC} the goal is for.
|
||||
* @return The {@link Goal} to attach to the NPC.
|
||||
*/
|
||||
public Goal getGoal(NPC npc);
|
||||
|
||||
/**
|
||||
* Loads from the specified {@link DataKey}.
|
||||
*
|
||||
@ -41,4 +32,6 @@ public interface WaypointProvider {
|
||||
* The key to save to
|
||||
*/
|
||||
public void save(DataKey key);
|
||||
|
||||
public void onSpawn(NPC npc);
|
||||
}
|
@ -4,7 +4,6 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import net.citizensnpcs.api.ai.Goal;
|
||||
import net.citizensnpcs.api.exception.NPCLoadException;
|
||||
import net.citizensnpcs.api.trait.Trait;
|
||||
import net.citizensnpcs.api.util.DataKey;
|
||||
@ -51,10 +50,8 @@ public class Waypoints extends Trait {
|
||||
|
||||
@Override
|
||||
public void onSpawn() {
|
||||
if (provider != null) {
|
||||
Goal goal = provider.getGoal(getNPC());
|
||||
getNPC().getDefaultGoalController().addGoal(goal, 1);
|
||||
}
|
||||
if (provider != null)
|
||||
provider.onSpawn(getNPC());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user