From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.Client/GameMode.h | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Minecraft.Client/GameMode.h (limited to 'Minecraft.Client/GameMode.h') 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); + virtual void tick(); + virtual bool canHurtPlayer() = 0; + virtual void adjustPlayer(shared_ptr player); + virtual bool useItem(shared_ptr player, Level *level, shared_ptr item, bool bTestUseOnly=false); + virtual bool useItemOn(shared_ptr player, Level *level, shared_ptr item, int x, int y, int z, int face, bool bTestUseOnOnly=false, bool *pbUsedItem = NULL) = 0; + + virtual shared_ptr createPlayer(Level *level); + virtual bool interact(shared_ptr player, shared_ptr entity); + virtual void attack(shared_ptr player, shared_ptr entity); + virtual shared_ptr handleInventoryMouseClick(int containerId, int slotNum, int buttonNum, bool quickKeyHeld, shared_ptr player); + virtual void handleCloseInventory(int containerId, shared_ptr player); + virtual void handleInventoryButtonClick(int containerId, int buttonId); + + virtual bool isCutScene(); + virtual void releaseUsingItem(shared_ptr player); + virtual bool hasExperience(); + virtual bool hasMissTime(); + virtual bool hasInfiniteItems(); + virtual bool hasFarPickRange(); + virtual void handleCreativeModeItemAdd(shared_ptr clicked, int i); + virtual void handleCreativeModeItemDrop(shared_ptr clicked); + + // 4J Stu - Added so we can send packets for this in the network game + virtual bool handleCraftItem(int recipe, shared_ptr player); + virtual void handleDebugOptions(unsigned int uiVal, shared_ptr player); + + // 4J Stu - Added for tutorial checks + virtual bool isInputAllowed(int mapping) { return true; } + virtual bool isTutorial() { return false; } + virtual Tutorial *getTutorial() { return NULL; } +}; -- cgit v1.2.3