aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/NearestAttackableTargetGoal.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/NearestAttackableTargetGoal.h')
-rw-r--r--Minecraft.World/NearestAttackableTargetGoal.h26
1 files changed, 20 insertions, 6 deletions
diff --git a/Minecraft.World/NearestAttackableTargetGoal.h b/Minecraft.World/NearestAttackableTargetGoal.h
index a10e9264..1ba6c519 100644
--- a/Minecraft.World/NearestAttackableTargetGoal.h
+++ b/Minecraft.World/NearestAttackableTargetGoal.h
@@ -1,9 +1,26 @@
#pragma once
#include "TargetGoal.h"
+#include "EntitySelector.h"
+
+class NearestAttackableTargetGoal;
+
+// Anonymous class from NearestAttackableTargetGoal
+class SubselectEntitySelector : public EntitySelector
+{
+private:
+ EntitySelector *m_subselector;
+ NearestAttackableTargetGoal *m_parent;
+
+public:
+ SubselectEntitySelector(NearestAttackableTargetGoal *parent, EntitySelector *subselector);
+ ~SubselectEntitySelector();
+ bool matches(shared_ptr<Entity> entity) const;
+};
class NearestAttackableTargetGoal : public TargetGoal
{
+ friend class SubselectEntitySelector;
public:
class DistComp
{
@@ -17,18 +34,15 @@ public:
};
private:
- weak_ptr<Mob> target;
const type_info& targetType;
int randomInterval;
DistComp *distComp;
+ EntitySelector *selector;
+ weak_ptr<LivingEntity> target;
public:
- //public NearestAttackableTargetGoal(Mob mob, const type_info& targetType, float within, int randomInterval, bool mustSee)
- //{
- // this(mob, targetType, within, randomInterval, mustSee, false);
- //}
+ NearestAttackableTargetGoal(PathfinderMob *mob, const type_info& targetType, int randomInterval, bool mustSee, bool mustReach = false, EntitySelector *entitySelector = NULL);
- NearestAttackableTargetGoal(Mob *mob, const type_info& targetType, float within, int randomInterval, bool mustSee, bool mustReach = false);
virtual ~NearestAttackableTargetGoal();
virtual bool canUse();