Player.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include <Array.h>
  3. #include "CraftingStorage.h"
  4. #include "Entity.h"
  5. #include "EntityType.h"
  6. class PlayerEntityType;
  7. class Player : public Entity,
  8. public BasicShapedCrafter
  9. {
  10. public:
  11. class Key
  12. {
  13. public:
  14. static const __int64 LEFT_HAND_ACTION = 0x100;
  15. static const __int64 RIGHT_HAND_ACTION = 0x200;
  16. };
  17. private:
  18. Framework::Text name;
  19. Framework::Array<ItemSlot*> itemBar;
  20. Framework::Array<ItemSlot*> crafting;
  21. int leftHandPosition;
  22. bool jumping;
  23. __int64 keyState;
  24. int gameMode;
  25. void useItemSlot(ItemSlot* zSlot, bool left);
  26. Player(Framework::Vec3<float> location, int dimensionId, int entityId);
  27. Framework::XML::Element* getInventoryUIML() const;
  28. Framework::XML::Element* getPlayerGUI() const;
  29. public:
  30. virtual void onTargetChange() override;
  31. void setName(Framework::Text name);
  32. const char* getName() const;
  33. void tick(const Dimension* zDimension, double seconds) override;
  34. void playerApi(
  35. Framework::StreamReader* zRequest, NetworkMessage* zResponse);
  36. void onFall(float collisionSpeed) override;
  37. void onDeath(
  38. Entity* zActor, Item* zUsedItem, ItemSkill* zUsedSkill) override;
  39. void setGameMode(int gameMode);
  40. int getGameMode() const;
  41. friend PlayerEntityType;
  42. };
  43. class PlayerEntityType : public EntityType
  44. {
  45. protected:
  46. virtual void loadSuperEntity(
  47. Entity* zEntity, Framework::StreamReader* zReader) const override;
  48. virtual void saveSuperEntity(
  49. Entity* zEntity, Framework::StreamWriter* zWriter) const override;
  50. public:
  51. PlayerEntityType();
  52. virtual Entity* createEntity(Framework::Vec3<float> position,
  53. int dimensionId,
  54. int entityId) const override;
  55. };