mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-06-04 15:15:11 +00:00
refactor: flatten app/ and util/ directory structure
This commit is contained in:
87
targets/app/common/Tutorial/Tasks/TutorialTask.h
Normal file
87
targets/app/common/Tutorial/Tasks/TutorialTask.h
Normal file
@@ -0,0 +1,87 @@
|
||||
#pragma once
|
||||
#include <format>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
// using namespace std;
|
||||
#include "app/common/Tutorial/TutorialEnum.h"
|
||||
|
||||
class Level;
|
||||
class Tutorial;
|
||||
class TutorialConstraint;
|
||||
class MobEffect;
|
||||
class Entity;
|
||||
class ItemInstance;
|
||||
|
||||
// A class that represents each individual task in the tutorial.
|
||||
//
|
||||
// Members:
|
||||
// enablePreCompletion - If this is true, then the player can complete this
|
||||
// task out of sequence.
|
||||
// This stops us asking them to do
|
||||
// things they have already done
|
||||
// constraints - A list of constraints which can be activated
|
||||
// (as a whole).
|
||||
// If they are active, then the
|
||||
// constraints are removed when the task is completed
|
||||
// areConstraintsEnabled- A flag which records whether or not we have added the
|
||||
// constraints to the tutorial
|
||||
class TutorialTask {
|
||||
protected:
|
||||
int descriptionId;
|
||||
int m_promptId;
|
||||
Tutorial* tutorial;
|
||||
bool enablePreCompletion;
|
||||
bool bHasBeenActivated;
|
||||
bool m_bAllowFade;
|
||||
bool m_bTaskReminders;
|
||||
bool m_bShowMinimumTime;
|
||||
|
||||
protected:
|
||||
bool bIsCompleted;
|
||||
bool m_bShownForMinimumTime;
|
||||
std::vector<TutorialConstraint*> constraints;
|
||||
bool areConstraintsEnabled;
|
||||
|
||||
public:
|
||||
TutorialTask(Tutorial* tutorial, int descriptionId,
|
||||
bool enablePreCompletion,
|
||||
std::vector<TutorialConstraint*>* inConstraints,
|
||||
bool bShowMinimumTime = false, bool bAllowFade = true,
|
||||
bool bTaskReminders = true);
|
||||
virtual ~TutorialTask();
|
||||
|
||||
virtual int getDescriptionId() { return descriptionId; }
|
||||
virtual int getPromptId() { return m_promptId; }
|
||||
|
||||
virtual bool isCompleted() = 0;
|
||||
virtual eTutorial_CompletionAction getCompletionAction() {
|
||||
return e_Tutorial_Completion_None;
|
||||
}
|
||||
virtual bool isPreCompletionEnabled() { return enablePreCompletion; }
|
||||
virtual void taskCompleted();
|
||||
virtual void enableConstraints(bool enable, bool delayRemove = false);
|
||||
virtual void setAsCurrentTask(bool active = true);
|
||||
|
||||
virtual void setShownForMinimumTime() { m_bShownForMinimumTime = true; }
|
||||
virtual bool hasBeenActivated() { return bHasBeenActivated; }
|
||||
virtual bool AllowFade() { return m_bAllowFade; }
|
||||
bool TaskReminders() { return m_bTaskReminders; }
|
||||
virtual bool ShowMinimumTime() { return m_bShowMinimumTime; }
|
||||
|
||||
virtual void useItemOn(Level* level, std::shared_ptr<ItemInstance> item,
|
||||
int x, int y, int z, bool bTestUseOnly = false) {}
|
||||
virtual void useItem(std::shared_ptr<ItemInstance> item,
|
||||
bool bTestUseOnly = false) {}
|
||||
virtual void completeUsingItem(std::shared_ptr<ItemInstance> item) {}
|
||||
virtual void handleUIInput(int iAction) {}
|
||||
virtual void onCrafted(std::shared_ptr<ItemInstance> item) {}
|
||||
virtual void onTake(std::shared_ptr<ItemInstance> item,
|
||||
unsigned int invItemCountAnyAux,
|
||||
unsigned int invItemCountThisAux) {}
|
||||
virtual void onStateChange(eTutorial_State newState) {}
|
||||
virtual void onEffectChanged(MobEffect* effect, bool bRemoved = false) {}
|
||||
|
||||
virtual void onLookAtEntity(std::shared_ptr<Entity> entity) {}
|
||||
virtual void onRideEntity(std::shared_ptr<Entity> entity) {}
|
||||
};
|
||||
Reference in New Issue
Block a user