Skip to content

Commit

Permalink
fixed PathfinderGoalAttack && PathfinderGoalBlockBreak for 1.14.4
Browse files Browse the repository at this point in the history
  • Loading branch information
BerndiVader committed Sep 17, 2019
1 parent 078edcb commit 28cb897
Show file tree
Hide file tree
Showing 11 changed files with 126 additions and 29 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#Sun Sep 08 22:40:04 CEST 2019
#Tue Sep 17 19:46:08 CEST 2019
appName=MythicMobsExtension
artbuild=3753
artbuild=3807
artver=1.440-SNAPSHOT
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.gmail.berndivader.mythicmobsext.conditions;

import java.util.Iterator;

import com.gmail.berndivader.mythicmobsext.externals.*;

import io.lumine.xikage.mythicmobs.adapters.AbstractEntity;
import io.lumine.xikage.mythicmobs.io.MythicLineConfig;
import io.lumine.xikage.mythicmobs.skills.SkillMetadata;
import io.lumine.xikage.mythicmobs.skills.conditions.ISkillMetaCondition;
import io.lumine.xikage.mythicmobs.skills.placeholders.parsers.PlaceholderString;

@ExternalAnnotation(name="cmptargetvar,comparetargetvariables",author="BerndiVader")
public
class
CompareVariables
extends
AbstractCustomCondition
implements
ISkillMetaCondition
{
PlaceholderString compare;

public CompareVariables(String line, MythicLineConfig mlc) {
super(line, mlc);
compare=mlc.getPlaceholderString(new String[]{"c","cmp","compare"}, "");
}

@Override
public boolean check(SkillMetadata data) {
if(data.getEntityTargets()!=null) {
Iterator<AbstractEntity>iter=data.getEntityTargets().iterator();
while(iter.hasNext()) {
AbstractEntity target=iter.next();

}
}
return false;
}

boolean check(AbstractEntity target) {
if(target!=null) {

}
return false;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public ReachableCondition(String line, MythicLineConfig mlc) {

@Override
public boolean check(AbstractEntity e, AbstractEntity t) {
if(e.isLiving()&&t.isLiving()) return Volatile.handler.isReachable((LivingEntity)e.getBukkitEntity(),(LivingEntity)t.getBukkitEntity());
if(e.isLiving()&&t.isLiving()) return Volatile.handler.isReachable1((LivingEntity)e.getBukkitEntity(),(LivingEntity)t.getBukkitEntity());
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import io.lumine.xikage.mythicmobs.skills.SkillMechanic;
import io.lumine.xikage.mythicmobs.skills.SkillMetadata;

@ExternalAnnotation(name="jumpex",author="BerndiVader")
@ExternalAnnotation(name="jump_ex",author="BerndiVader")
public
class
JumpCasterMechanic
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.gmail.berndivader.mythicmobsext.volatilecode;

import java.util.Set;

import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.ArmorStand;
Expand All @@ -11,6 +13,10 @@

import com.gmail.berndivader.mythicmobsext.utils.Vec3D;

import net.minecraft.server.v1_14_R1.BlockPosition;
import net.minecraft.server.v1_14_R1.EntityInsentient;
import net.minecraft.server.v1_14_R1.PathEntity;

public interface Handler {
public void aiPathfinderGoal(LivingEntity livingEntity, String goalList, LivingEntity target);
public boolean inMotion(LivingEntity entity);
Expand Down Expand Up @@ -54,8 +60,10 @@ public interface Handler {
Vec3D getPredictedMotion(LivingEntity bukkit_source, LivingEntity bukkit_target, float delta);
boolean velocityChanged(Entity bukkit_entity);
void sendPlayerAdvancement(Player player,Material material,String title,String description,String task);
boolean isReachable(LivingEntity bukkit_entity, LivingEntity bukkit_target);
boolean isReachable1(LivingEntity bukkit_entity, LivingEntity bukkit_target);
void addTravelPoint(Entity bukkit_entity, Vec3D vector);
void addTravelPoint(Entity bukkit_entity, Vec3D vector, boolean remove);
void clearTravelPoints(Entity bukkit_entity);
PathEntity getPathEntity(Set<BlockPosition> position, EntityInsentient entity, int range, boolean is_entity,
int length);
}
Original file line number Diff line number Diff line change
Expand Up @@ -1091,7 +1091,7 @@ public void sendPlayerAdvancement(Player player,Material material,String title,S
}

@Override
public boolean isReachable(LivingEntity bukkit_entity, LivingEntity bukkit_target) {
public boolean isReachable1(LivingEntity bukkit_entity, LivingEntity bukkit_target) {
if(bukkit_entity==null||bukkit_target==null) return false;
EntityLiving target=((CraftLivingEntity)bukkit_target).getHandle();
EntityLiving entity=((CraftLivingEntity)bukkit_entity).getHandle();
Expand Down Expand Up @@ -1152,5 +1152,13 @@ public void clearTravelPoints(Entity bukkit_entity) {
ex.printStackTrace();
}
}

@Override
public net.minecraft.server.v1_14_R1.PathEntity getPathEntity(
Set<net.minecraft.server.v1_14_R1.BlockPosition> position,
net.minecraft.server.v1_14_R1.EntityInsentient entity, int range, boolean is_entity, int length) {
// TODO Auto-generated method stub
return null;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -1097,7 +1097,7 @@ public void sendPlayerAdvancement(Player player,Material material,String title,S
}

@Override
public boolean isReachable(LivingEntity bukkit_entity, LivingEntity bukkit_target) {
public boolean isReachable1(LivingEntity bukkit_entity, LivingEntity bukkit_target) {
EntityLiving target=((CraftLivingEntity)bukkit_target).getHandle();
EntityInsentient entity=(EntityInsentient)((CraftLivingEntity)bukkit_entity).getHandle();
if (target==null) return true;
Expand All @@ -1115,4 +1115,12 @@ public void addTravelPoint(Entity bukkit_entity, Vec3D vector) {
this.addTravelPoint(bukkit_entity,vector,true);
}

@Override
public net.minecraft.server.v1_14_R1.PathEntity getPathEntity(
Set<net.minecraft.server.v1_14_R1.BlockPosition> position,
net.minecraft.server.v1_14_R1.EntityInsentient entity, int range, boolean is_entity, int length) {
// TODO Auto-generated method stub
return null;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,12 @@

import com.gmail.berndivader.mythicmobsext.Main;

public class PathfinderGoalBreakBlocks extends PathfinderGoal {
public
class
PathfinderGoalBreakBlocks
extends
PathfinderGoal
{
protected EntityInsentient entity;
protected boolean isBreaking;
protected int chance;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1099,18 +1099,34 @@ public void sendPlayerAdvancement(Player player,Material material,String title,S
}

@Override
public boolean isReachable(LivingEntity bukkit_entity, LivingEntity bukkit_target) {
public boolean isReachable1(LivingEntity bukkit_entity, LivingEntity bukkit_target) {
EntityLiving target=((CraftLivingEntity)bukkit_target).getHandle();
EntityInsentient entity=(EntityInsentient)((CraftLivingEntity)bukkit_entity).getHandle();
if (target==null) return true;
PathEntity pe=(entity).getNavigation().a(target,0);
PathEntity pe=entity.getNavigation().a(target,16);
if (pe==null) {
return entity.onGround!=true;
} else {
PathPoint pp=pe.c();
return pp!=null;
}
}

@Override
public PathEntity getPathEntity(Set<BlockPosition> position,EntityInsentient entity,int range,boolean is_entity,int length) {
net.minecraft.server.v1_14_R1.World world=entity.getWorld();
if (position.isEmpty()||entity.locY<0.0d) return null;
world.getMethodProfiler().enter("pathfind");
float var4=entity.getNavigation().i();
BlockPosition var5=is_entity?new BlockPosition(entity).up():new BlockPosition(entity);
int var6=(int)(var4+(float)range);
ChunkCache chunk_cache=new ChunkCache(world,var5.b(-var6,-var6,-var6),var5.b(var6,var6,var6));
Pathfinder pathfinder=new Pathfinder(entity.getNavigation().q(),(int)entity.getAttributeInstance(GenericAttributes.FOLLOW_RANGE).getValue());
PathEntity path_entity=pathfinder.a(chunk_cache,entity,position,var4,range);
world.getMethodProfiler().exit();
return path_entity;
}


@Override
public void addTravelPoint(Entity bukkit_entity, Vec3D vector) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@
import io.lumine.xikage.mythicmobs.adapters.bukkit.BukkitAdapter;
import io.lumine.xikage.mythicmobs.mobs.ActiveMob;

public class PathfinderGoalAttack
extends PathfinderGoalMeleeAttack {
public
class
PathfinderGoalAttack
extends
PathfinderGoalMeleeAttack {
protected float r;
boolean is_monster;

Expand All @@ -30,14 +33,14 @@ protected void a(EntityLiving entityLiving,double d2) {
this.b = 20;
if(is_monster) {
this.a.a(EnumHand.MAIN_HAND);
this.a.B(entityLiving);
this.a.C(entityLiving);
}
ActiveMob am=Utils.mobmanager.getMythicMobInstance(this.a.getBukkitEntity());
if (am!=null) am.signalMob(BukkitAdapter.adapt(entityLiving.getBukkitEntity()),Utils.signal_AIHIT);
}
}

@Override
@Override
protected double a(EntityLiving e) {
return (double)(this.a.getWidth()*this.r*this.a.getWidth()*this.r+e.getWidth());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
import net.minecraft.server.v1_14_R1.BlockPosition;
import net.minecraft.server.v1_14_R1.EntityInsentient;
import net.minecraft.server.v1_14_R1.EntityLiving;
import net.minecraft.server.v1_14_R1.PathEntity;
import net.minecraft.server.v1_14_R1.PathPoint;
import net.minecraft.server.v1_14_R1.PathfinderGoal;

import org.bukkit.Material;
Expand All @@ -21,13 +19,20 @@

import com.gmail.berndivader.mythicmobsext.Main;

public class PathfinderGoalBreakBlocks extends PathfinderGoal {
public
class
PathfinderGoalBreakBlocks
extends
PathfinderGoal
{
protected EntityInsentient entity;
protected boolean isBreaking;
protected int chance;
protected HashSet<Material>materials;
Block[] blocks;

public PathfinderGoalBreakBlocks(EntityInsentient entity, String mL, int chance) {
this.blocks=new Block[2];
this.isBreaking=false;
this.entity=entity;
this.materials=new HashSet<>();
Expand Down Expand Up @@ -58,14 +63,16 @@ public boolean b() {
}

public void e() {
if (!this.canContinue()) return;
if (!this.canContinue()) {
return;
}
EntityLiving target=this.entity.getGoalTarget();
Block[] blocks=new Block[2];
blocks[1] = this.getBreakableTargetBlock(target);
blocks[0] = blocks[1].getRelative(BlockFace.UP);
int size=blocks.length;
for (int a=0;a<size;a++) {
if (this.materials.isEmpty()||this.materials.contains(blocks[a].getType())) this.attemptBreakBlock(blocks[a]);
for (int a=0;a<2;a++) {
if (this.materials.isEmpty()||this.materials.contains(blocks[a].getType())) {
this.attemptBreakBlock(blocks[a]);
}
}
}

Expand Down Expand Up @@ -116,12 +123,6 @@ public void run() {
}
private boolean isReachable(EntityLiving target) {
if (target==null) return true;
PathEntity pe=this.entity.getNavigation().a(target,0);
if (pe==null) {
return this.entity.onGround!=true;
} else {
PathPoint pp=pe.c();
return pp!=null;
}
return this.entity.hasLineOfSight(target);
}
}

0 comments on commit 28cb897

Please sign in to comment.