aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/EntitySelector.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/EntitySelector.h')
-rw-r--r--Minecraft.World/EntitySelector.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/Minecraft.World/EntitySelector.h b/Minecraft.World/EntitySelector.h
new file mode 100644
index 00000000..5cba9e84
--- /dev/null
+++ b/Minecraft.World/EntitySelector.h
@@ -0,0 +1,32 @@
+#pragma once
+
+class EntitySelector
+{
+public:
+ static const EntitySelector *ENTITY_STILL_ALIVE;
+ static const EntitySelector *CONTAINER_ENTITY_SELECTOR;
+
+ virtual bool matches(shared_ptr<Entity> entity) const = 0;
+};
+
+class AliveEntitySelector : public EntitySelector
+{
+public:
+ bool matches(shared_ptr<Entity> entity) const;
+};
+
+class ContainerEntitySelector : public EntitySelector
+{
+public:
+ bool matches(shared_ptr<Entity> entity) const;
+};
+
+class MobCanWearArmourEntitySelector : public EntitySelector
+{
+private:
+ shared_ptr<ItemInstance> item;
+
+public:
+ MobCanWearArmourEntitySelector(shared_ptr<ItemInstance> item);
+ bool matches(shared_ptr<Entity> entity) const;
+}; \ No newline at end of file