2020-02-17 17:33:53 +01:00
|
|
|
package fr.themode.demo.entity;
|
2019-08-10 08:44:35 +02:00
|
|
|
|
2019-08-30 01:17:46 +02:00
|
|
|
import fr.themode.minestom.entity.Entity;
|
2019-08-10 08:44:35 +02:00
|
|
|
import fr.themode.minestom.entity.EntityCreature;
|
2019-08-27 20:49:11 +02:00
|
|
|
import fr.themode.minestom.entity.EntityType;
|
2019-08-29 02:15:52 +02:00
|
|
|
import fr.themode.minestom.entity.Player;
|
2020-03-29 20:58:30 +02:00
|
|
|
import fr.themode.minestom.entity.vehicle.PlayerVehicleInformation;
|
2019-08-29 02:15:52 +02:00
|
|
|
import fr.themode.minestom.utils.Position;
|
2019-08-30 01:17:46 +02:00
|
|
|
import fr.themode.minestom.utils.Vector;
|
2019-08-10 08:44:35 +02:00
|
|
|
|
|
|
|
public class ChickenCreature extends EntityCreature {
|
|
|
|
|
2020-03-29 20:58:30 +02:00
|
|
|
public ChickenCreature(Position defaultPosition) {
|
|
|
|
super(EntityType.CHICKEN, defaultPosition);
|
|
|
|
setBoundingBox(0.4f, 0.7f, 0.4f);
|
|
|
|
}
|
2019-09-07 11:42:33 +02:00
|
|
|
|
2019-08-10 08:44:35 +02:00
|
|
|
public ChickenCreature() {
|
2020-03-29 20:58:30 +02:00
|
|
|
this(new Position());
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void spawn() {
|
2020-04-09 14:25:42 +02:00
|
|
|
|
2019-08-10 08:44:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void update() {
|
2019-08-24 20:34:01 +02:00
|
|
|
super.update();
|
2020-03-29 20:58:30 +02:00
|
|
|
float speed = 0.075f;
|
2019-08-10 08:44:35 +02:00
|
|
|
|
2019-08-30 01:17:46 +02:00
|
|
|
if (hasPassenger()) {
|
2019-08-20 17:41:07 +02:00
|
|
|
Entity passenger = getPassengers().iterator().next();
|
|
|
|
if (passenger instanceof Player) {
|
|
|
|
Player player = (Player) passenger;
|
2020-03-29 20:58:30 +02:00
|
|
|
PlayerVehicleInformation vehicleInformation = player.getVehicleInformation();
|
|
|
|
float sideways = vehicleInformation.getSideways();
|
|
|
|
float forward = vehicleInformation.getForward();
|
2019-08-30 01:17:46 +02:00
|
|
|
|
2020-03-29 20:58:30 +02:00
|
|
|
boolean jump = vehicleInformation.shouldJump();
|
|
|
|
boolean unmount = vehicleInformation.shouldUnmount();
|
2019-08-30 01:17:46 +02:00
|
|
|
|
|
|
|
if (jump && isOnGround()) {
|
|
|
|
setVelocity(new Vector(0, 6, 0), 500);
|
|
|
|
}
|
|
|
|
|
|
|
|
boolean updateView = forward > 0;
|
2019-08-20 17:41:07 +02:00
|
|
|
if (sideways == 0f && forward == 0f)
|
|
|
|
return;
|
2019-08-11 13:57:23 +02:00
|
|
|
|
2019-08-30 01:17:46 +02:00
|
|
|
float yaw = player.getPosition().getYaw();
|
2019-08-20 17:41:07 +02:00
|
|
|
yaw %= 360;
|
2019-08-30 01:17:46 +02:00
|
|
|
|
|
|
|
sideways = yaw + (updateView ? -sideways * 90 : sideways * 90);
|
|
|
|
|
2019-08-20 17:41:07 +02:00
|
|
|
if (forward > 0) {
|
|
|
|
forward = yaw * forward;
|
|
|
|
} else {
|
2019-08-30 01:17:46 +02:00
|
|
|
forward = yaw + forward * 360;
|
2019-08-20 17:41:07 +02:00
|
|
|
}
|
|
|
|
yaw = (forward + sideways) / 2 % 360;
|
|
|
|
double radian = Math.toRadians(yaw + 90);
|
|
|
|
double cos = Math.cos(radian);
|
|
|
|
double sin = Math.sin(radian);
|
2019-08-30 01:17:46 +02:00
|
|
|
float x = (float) cos * speed;
|
|
|
|
float z = (float) sin * speed;
|
|
|
|
|
|
|
|
/*BlockPosition blockPosition = getPosition().toBlockPosition();
|
|
|
|
BlockPosition belowPosition = blockPosition.clone().add(0, -1, 0);
|
|
|
|
BlockPosition upPosition = blockPosition.clone().add(0, 1, 0);
|
|
|
|
boolean airCurrent = getInstance().getBlockId(blockPosition) == 0;
|
|
|
|
boolean airBelow = getInstance().getBlockId(belowPosition) == 0;
|
|
|
|
boolean airUp = getInstance().getBlockId(upPosition) == 0;
|
|
|
|
boolean shouldJump = false;
|
|
|
|
int boundingBoxY = (int) Math.ceil(getBoundingBox().getY());
|
|
|
|
for (int i = 0; i < boundingBoxY; i++) {
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
//System.out.println("test: "+player.isVehicleJump());
|
|
|
|
//System.out.println(getInstance().getBlockId(getPosition().toBlockPosition()));
|
|
|
|
|
|
|
|
move(x, 0, z, updateView);
|
2019-08-20 17:41:07 +02:00
|
|
|
}
|
2019-09-07 11:42:33 +02:00
|
|
|
} else {
|
2020-03-29 20:58:30 +02:00
|
|
|
//move(randomX * speed, 0, randomZ * speed, true);
|
2019-08-30 01:17:46 +02:00
|
|
|
}
|
2019-08-29 02:15:52 +02:00
|
|
|
|
2020-04-09 14:25:42 +02:00
|
|
|
//Player player = MinecraftServer.getConnectionManager().getPlayer("TheMode911");
|
|
|
|
//moveTo(player.getPosition().clone().add(2, 0, 2));
|
2019-08-29 02:15:52 +02:00
|
|
|
}
|
2019-08-10 08:44:35 +02:00
|
|
|
}
|