fixes
This commit is contained in:
1 parent
83aea53e57
commit
aa4f6b6ddc
842 files changed
+47284
-91563
No files matched your search
@@ -0,0 +1,74 @@
|
||||
package dev.zprestige.prestige.combat;
|
||||
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.projectile.PersistentProjectileEntity;
|
||||
import net.minecraft.entity.projectile.ProjectileUtil;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.hit.BlockHitResult;
|
||||
import net.minecraft.util.hit.EntityHitResult;
|
||||
import net.minecraft.util.hit.HitResult;
|
||||
import net.minecraft.util.hit.HitResult.Type;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public final class PearlTrajectorySimulatedPearl extends PersistentProjectileEntity {
|
||||
public boolean landed;
|
||||
|
||||
public PearlTrajectorySimulatedPearl(World worldIn, LivingEntity shooter, ItemStack pearlStack) {
|
||||
super(EntityType.ARROW, shooter, worldIn, pearlStack, pearlStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
HitResult hitResult = ProjectileUtil.getCollision(this, candidate -> this.canHit(candidate));
|
||||
if (hitResult.getType() != Type.MISS) {
|
||||
this.onCollision(hitResult);
|
||||
}
|
||||
|
||||
this.tickBlockCollision();
|
||||
Vec3d motion = this.getVelocity();
|
||||
double nextX = this.getX() + motion.x;
|
||||
double nextY = this.getY() + motion.y;
|
||||
double nextZ = this.getZ() + motion.z;
|
||||
this.updateRotation();
|
||||
this.setVelocity(motion.multiply(this.isTouchingWater() ? 0.8F : 0.99F));
|
||||
if (!this.hasNoGravity()) {
|
||||
Vec3d currentMotion = this.getVelocity();
|
||||
this.setVelocity(currentMotion.x, currentMotion.y - 0.03, currentMotion.z);
|
||||
}
|
||||
|
||||
this.setPosition(nextX, nextY, nextZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockHit(BlockHitResult blockHitResult) {
|
||||
this.landed = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityHit(EntityHitResult entityHitResult) {
|
||||
this.landed = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack asItemStack() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getDefaultItemStack() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVelocity(double x, double y, double z, float power, float uncertainty) {
|
||||
Vec3d scaledMotion = new Vec3d(x, y, z).normalize().multiply(power);
|
||||
this.setVelocity(scaledMotion);
|
||||
this.setYaw((float)(MathHelper.atan2(scaledMotion.x, scaledMotion.z) * 180.0F / (float)Math.PI));
|
||||
this.setPitch((float)(MathHelper.atan2(scaledMotion.y, scaledMotion.horizontalLength()) * 180.0F / (float)Math.PI));
|
||||
this.lastYaw = this.getYaw();
|
||||
this.lastPitch = this.getPitch();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user