diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/GameMode.h | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.Client/GameMode.h')
| -rw-r--r-- | Minecraft.Client/GameMode.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Minecraft.Client/GameMode.h b/Minecraft.Client/GameMode.h new file mode 100644 index 00000000..ab9ec9d1 --- /dev/null +++ b/Minecraft.Client/GameMode.h @@ -0,0 +1,59 @@ +#pragma once + +class Minecraft; +class Level; +class Player; +class ItemInstance; +class Entity; + +class Tutorial; + +class GameMode +{ +protected: + Minecraft *minecraft; +public: + bool instaBuild; + + GameMode(Minecraft *minecraft); + virtual ~GameMode() {} + + virtual void initLevel(Level *level) ; + virtual void startDestroyBlock(int x, int y, int z, int face) = 0; + virtual bool destroyBlock(int x, int y, int z, int face); + virtual void continueDestroyBlock(int x, int y, int z, int face) = 0; + virtual void stopDestroyBlock() = 0; + virtual void render(float a); + virtual float getPickRange() = 0; + virtual void initPlayer(shared_ptr<Player> player); + virtual void tick(); + virtual bool canHurtPlayer() = 0; + virtual void adjustPlayer(shared_ptr<Player> player); + virtual bool useItem(shared_ptr<Player> player, Level *level, shared_ptr<ItemInstance> item, bool bTestUseOnly=false); + virtual bool useItemOn(shared_ptr<Player> player, Level *level, shared_ptr<ItemInstance> item, int x, int y, int z, int face, bool bTestUseOnOnly=false, bool *pbUsedItem = NULL) = 0; + + virtual shared_ptr<Player> createPlayer(Level *level); + virtual bool interact(shared_ptr<Player> player, shared_ptr<Entity> entity); + virtual void attack(shared_ptr<Player> player, shared_ptr<Entity> entity); + virtual shared_ptr<ItemInstance> handleInventoryMouseClick(int containerId, int slotNum, int buttonNum, bool quickKeyHeld, shared_ptr<Player> player); + virtual void handleCloseInventory(int containerId, shared_ptr<Player> player); + virtual void handleInventoryButtonClick(int containerId, int buttonId); + + virtual bool isCutScene(); + virtual void releaseUsingItem(shared_ptr<Player> player); + virtual bool hasExperience(); + virtual bool hasMissTime(); + virtual bool hasInfiniteItems(); + virtual bool hasFarPickRange(); + virtual void handleCreativeModeItemAdd(shared_ptr<ItemInstance> clicked, int i); + virtual void handleCreativeModeItemDrop(shared_ptr<ItemInstance> clicked); + + // 4J Stu - Added so we can send packets for this in the network game + virtual bool handleCraftItem(int recipe, shared_ptr<Player> player); + virtual void handleDebugOptions(unsigned int uiVal, shared_ptr<Player> player); + + // 4J Stu - Added for tutorial checks + virtual bool isInputAllowed(int mapping) { return true; } + virtual bool isTutorial() { return false; } + virtual Tutorial *getTutorial() { return NULL; } +}; |
