Files
minecraft-pe-0.6.1/src/client/gamemode/GameMode.h
2026-03-02 22:04:18 +03:00

64 lines
1.9 KiB
C++
Executable File

#ifndef NET_MINECRAFT_CLIENT_GAMEMODE__GameMode_H__
#define NET_MINECRAFT_CLIENT_GAMEMODE__GameMode_H__
//package net.minecraft.client.gamemode;
#include "../../world/level/tile/Tile.h"
class ItemInstance;
class Minecraft;
class Level;
class Player;
class Abilities;
class GameMode
{
protected:
Minecraft* minecraft;
public:
GameMode(Minecraft* minecraft);
virtual ~GameMode() {}
virtual void initLevel(Level* level) {}
virtual void startDestroyBlock(int x, int y, int z, int face);
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() {}
virtual void tick();
virtual void render(float a);
virtual float getPickRange();
/* void postLevelGen(LevelGen levelGen, Level level) {} */
virtual bool useItem(Player* player, Level* level, ItemInstance* item);
virtual bool useItemOn(Player* player, Level* level, ItemInstance* item, int x, int y, int z, int face, const Vec3& hit);
virtual Player* createPlayer(Level* level);
virtual void initPlayer(Player* player);
virtual void adjustPlayer(Player* player) {}
virtual bool canHurtPlayer() { return false; }
virtual void interact(Player* player, Entity* entity);
virtual void attack(Player* player, Entity* entity);
virtual ItemInstance* handleInventoryMouseClick(int containerId, int slotNum, int buttonNum, Player* player);
virtual void handleCloseInventory(int containerId, Player* player);
virtual bool isCreativeType() { return false; }
virtual bool isSurvivalType() { return false; }
virtual void initAbilities(Abilities& abilities) {}
virtual void releaseUsingItem(Player* player);
float oDestroyProgress;
float destroyProgress;
protected:
int destroyTicks;
int destroyDelay;
};
#endif /*NET_MINECRAFT_CLIENT_GAMEMODE__GameMode_H__*/