13
0
geforkt von Mirrors/Paper

#1144: Add more Guardian API, particularly for its laser

By: Parker Hawke <hawkeboyz2@hotmail.com>
Dieser Commit ist enthalten in:
CraftBukkit/Spigot 2023-04-02 13:49:05 +10:00
Ursprung 257f5ad3e8
Commit df5cb9bc3a
2 geänderte Dateien mit 48 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -0,0 +1,19 @@
--- a/net/minecraft/world/entity/monster/EntityGuardian.java
+++ b/net/minecraft/world/entity/monster/EntityGuardian.java
@@ -62,6 +62,7 @@
private boolean clientSideTouchedGround;
@Nullable
public PathfinderGoalRandomStroll randomStrollGoal;
+ public EntityGuardian.PathfinderGoalGuardianAttack guardianAttackGoal; // CraftBukkit - add field
public EntityGuardian(EntityTypes<? extends EntityGuardian> entitytypes, World world) {
super(entitytypes, world);
@@ -77,7 +78,7 @@
PathfinderGoalMoveTowardsRestriction pathfindergoalmovetowardsrestriction = new PathfinderGoalMoveTowardsRestriction(this, 1.0D);
this.randomStrollGoal = new PathfinderGoalRandomStroll(this, 1.0D, 80);
- this.goalSelector.addGoal(4, new EntityGuardian.PathfinderGoalGuardianAttack(this));
+ this.goalSelector.addGoal(4, guardianAttackGoal = new EntityGuardian.PathfinderGoalGuardianAttack(this)); // CraftBukkit - assign field
this.goalSelector.addGoal(5, pathfindergoalmovetowardsrestriction);
this.goalSelector.addGoal(7, this.randomStrollGoal);
this.goalSelector.addGoal(8, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F));

Datei anzeigen

@ -1,5 +1,6 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.world.entity.monster.EntityGuardian;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
@ -8,6 +9,8 @@ import org.bukkit.entity.LivingEntity;
public class CraftGuardian extends CraftMonster implements Guardian {
private static final int MINIMUM_ATTACK_TICKS = -10;
public CraftGuardian(CraftServer server, EntityGuardian entity) {
super(server, entity);
}
@ -58,6 +61,27 @@ public class CraftGuardian extends CraftMonster implements Guardian {
return getHandle().hasActiveAttackTarget();
}
@Override
public int getLaserDuration() {
return getHandle().getAttackDuration();
}
@Override
public void setLaserTicks(int ticks) {
Preconditions.checkArgument(ticks >= MINIMUM_ATTACK_TICKS, "ticks must be >= %s. Given %s", MINIMUM_ATTACK_TICKS, ticks);
EntityGuardian.PathfinderGoalGuardianAttack goal = getHandle().guardianAttackGoal;
if (goal != null) {
goal.attackTime = ticks;
}
}
@Override
public int getLaserTicks() {
EntityGuardian.PathfinderGoalGuardianAttack goal = getHandle().guardianAttackGoal;
return (goal != null) ? goal.attackTime : MINIMUM_ATTACK_TICKS;
}
@Override
public boolean isElder() {
return false;
@ -67,4 +91,9 @@ public class CraftGuardian extends CraftMonster implements Guardian {
public void setElder(boolean shouldBeElder) {
throw new UnsupportedOperationException("Not supported.");
}
@Override
public boolean isMoving() {
return getHandle().isMoving();
}
}