aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/Tutorial/TutorialConstraint.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Common/Tutorial/TutorialConstraint.h')
-rw-r--r--Minecraft.Client/Common/Tutorial/TutorialConstraint.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/Tutorial/TutorialConstraint.h b/Minecraft.Client/Common/Tutorial/TutorialConstraint.h
new file mode 100644
index 00000000..877fd57e
--- /dev/null
+++ b/Minecraft.Client/Common/Tutorial/TutorialConstraint.h
@@ -0,0 +1,41 @@
+#pragma once
+
+// 4J Stu - An abstract class that represents a constraint on what the user is able to do
+class TutorialConstraint
+{
+private:
+ int descriptionId;
+ bool m_deleteOnDeactivate;
+ bool m_queuedForRemoval;
+public:
+ enum ConstraintType
+ {
+ e_ConstraintInput = 0, // Constraint on controller input
+ e_ConstraintArea,
+ e_ConstraintAllInput,
+ e_ConstraintXuiInput,
+ e_ConstraintChangeState,
+ };
+
+ TutorialConstraint(int descriptionId) : descriptionId( descriptionId ), m_deleteOnDeactivate( false ), m_queuedForRemoval( false ) {}
+ virtual ~TutorialConstraint() {}
+
+ int getDescriptionId() { return descriptionId; }
+
+ virtual ConstraintType getType() = 0;
+
+ virtual void tick(int iPad) {}
+ virtual bool isConstraintSatisfied(int iPad) { return true; }
+ virtual bool isConstraintRestrictive(int iPad) { return true; }
+
+ virtual bool isMappingConstrained(int iPad, int mapping) { return false;}
+ virtual bool isXuiInputConstrained(int vk) { return false;}
+
+ void setDeleteOnDeactivate(bool deleteOnDeactivated) { m_deleteOnDeactivate = deleteOnDeactivated; }
+ bool getDeleteOnDeactivate() { return m_deleteOnDeactivate; }
+
+ void setQueuedForRemoval(bool queued) { m_queuedForRemoval = queued; }
+ bool getQueuedForRemoval() { return m_queuedForRemoval; }
+
+ virtual bool canMoveToPosition(double xo, double yo, double zo, double xt, double yt, double zt) { return true; }
+}; \ No newline at end of file