mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-02-22 17:18:12 +01:00
217 lines
4.5 KiB
C++
217 lines
4.5 KiB
C++
#pragma once
|
|
#include <System/System.h>
|
|
#include "MonoBehaviour.h"
|
|
#include "Rigidbody.h"
|
|
#include "Touchpad.h"
|
|
#include "Turnpanel.h"
|
|
#include "Vector2.h"
|
|
#include "Vector3.h"
|
|
#include "WorldEntity.h"
|
|
#include "PlayerData.h"
|
|
#include "Stats.h"
|
|
#include "StateComponent.h"
|
|
#include "PlayerFacingComponent.h"
|
|
#include "TargetComponent.h"
|
|
#include "Rect.h"
|
|
#include "RaycastHit2D.h"
|
|
#include "Camera.h"
|
|
#include "RaycastResult.h"
|
|
#include <System/Collections/Generic/List.h>
|
|
#include "PointerEventData.h"
|
|
#include "GameObject.h"
|
|
#include "Collider2D.h"
|
|
#include "RaycastHit.h"
|
|
#include "Ray.h"
|
|
#include "Quaternion.h"
|
|
#include "EventSystem.h"
|
|
#include "BSSecondaryInputModule.h"
|
|
#include "BSState.h"
|
|
#include "BrokenSeals.h"
|
|
#include "Mathf.h"
|
|
#include "Physics.h"
|
|
#include "Collider.h"
|
|
#include "Stat.h"
|
|
#include "BSPointerEventData.h"
|
|
#include "Screen.h"
|
|
|
|
using namespace UnityEngine;
|
|
using namespace UnityEngine::EventSystems;
|
|
using namespace System::Collections::Generic;
|
|
using namespace BS::BSInput;
|
|
using namespace System;
|
|
namespace BS {
|
|
namespace Player {
|
|
//Forward Declaration
|
|
class WorldEntity;
|
|
|
|
class VoxelPlayerController : public virtual MonoBehaviour, public virtual Object{
|
|
public:
|
|
float movementSpeed;
|
|
public:
|
|
float ROTATION_SPEED;
|
|
public:
|
|
float JUMP_FORCE;
|
|
public:
|
|
float GRAVITY;
|
|
public:
|
|
float TERMINAL_VELOCITY;
|
|
public:
|
|
float fingerMoveBeforeAimingModeOn;
|
|
public:
|
|
float maxAngleLeewayInSelection;
|
|
public:
|
|
float heightAboveThePlayer;
|
|
public:
|
|
float rotationX;
|
|
public:
|
|
float aimTargetingRange;
|
|
public:
|
|
float gravity;
|
|
public:
|
|
Rigidbody* rigidBody;
|
|
public:
|
|
Touchpad* touchPad;
|
|
public:
|
|
Turnpanel* turnpanel;
|
|
public:
|
|
Vector2* v2tmp1;
|
|
public:
|
|
Vector2* ftmp;
|
|
public:
|
|
Vector2* tmp;
|
|
public:
|
|
Vector2* tmp2;
|
|
public:
|
|
Vector3* v3tmp;
|
|
public:
|
|
Vector3* v3tmp2;
|
|
private:
|
|
WorldEntity* we;
|
|
private:
|
|
PlayerData* pd;
|
|
public:
|
|
Stats* playerStats;
|
|
public:
|
|
StateComponent* stateComponent;
|
|
public:
|
|
PlayerFacingComponent* playerFacing;
|
|
public:
|
|
bool touchInput;
|
|
public:
|
|
TargetComponent* targetComponent;
|
|
public:
|
|
Rect* tcRect;
|
|
public:
|
|
int tcPointer;
|
|
public:
|
|
float tcTime;
|
|
public:
|
|
bool tcDown;
|
|
public:
|
|
int tcButton;
|
|
public:
|
|
Vector2* tcTmpV2;
|
|
public:
|
|
Array<RaycastHit2D>* raycasthit;
|
|
public:
|
|
bool aimingModeOn;
|
|
public:
|
|
Camera* cam;
|
|
private:
|
|
bool menuOpen;
|
|
public:
|
|
List_T<RaycastResult>* raycastResult;
|
|
public:
|
|
PointerEventData* tcPed;
|
|
public:
|
|
List_T<GameObject>* clickThroughGOs;
|
|
public:
|
|
Vector2* circlePosTmp;
|
|
public:
|
|
Array<Collider2D>* circleColliders;
|
|
public:
|
|
Array<RaycastHit>* rcharr;
|
|
private:
|
|
Ray* ray;
|
|
public:
|
|
float originalY;
|
|
public:
|
|
RaycastHit* rch;
|
|
public:
|
|
Vector2* v2tmp;
|
|
public:
|
|
Vector2* v2mtmp;
|
|
public:
|
|
Vector2* aimTmp;
|
|
public:
|
|
Vector2* aim2Tmp;
|
|
public:
|
|
Vector2* aim3Tmp;
|
|
public:
|
|
Vector2* ac1tmp;
|
|
public:
|
|
Vector2* ac2tmp;
|
|
private:
|
|
int LAYER;
|
|
private:
|
|
Quaternion* inputQuaternion;
|
|
private:
|
|
Quaternion* targetQuaternion;
|
|
public:
|
|
Vector2* lastMoveVector;
|
|
public:
|
|
bool didMove;
|
|
private:
|
|
Vector2* mouseMoveDirection;
|
|
private:
|
|
bool mouseMOveDown;
|
|
private:
|
|
Vector2* mouseTargetDirection;
|
|
private:
|
|
bool mouseTargetDown;
|
|
private:
|
|
bool rMouseDOwn;
|
|
private:
|
|
void Start();
|
|
private:
|
|
void Update();
|
|
private:
|
|
void OnDestroy();
|
|
public:
|
|
bool EpsilonEquals(float a, float b);
|
|
public:
|
|
void setMovementSpeed(float ms);
|
|
public:
|
|
bool TryToTarget(float x, float y);
|
|
public:
|
|
void TryToTarget(Vector2* aimVector);
|
|
public:
|
|
void OnSpeedStatChanged(int statId, Stat* stat);
|
|
public:
|
|
float Calculate2DAngle(float fx, float fy, float sx, float sy);
|
|
public:
|
|
void OnPointerDown(PointerEventData* eventData);
|
|
public:
|
|
void OnPointerUp(PointerEventData* eventData);
|
|
public:
|
|
void OnTouchClick(BSPointerEventData* eventData);
|
|
public:
|
|
void BSOnMouseClick(BSPointerEventData* eventData);
|
|
public:
|
|
void BSOnMouseDown(BSPointerEventData* eventData);
|
|
public:
|
|
void BSOnMouseUp(BSPointerEventData* eventData);
|
|
public:
|
|
void BSOnMouseDrag(BSPointerEventData* eventData);
|
|
private:
|
|
void CalculateMouseMoveDirection(float x, float y);
|
|
private:
|
|
void CalculateMouseTargetDirection(float x, float y);
|
|
private:
|
|
void OnIngameMenuChanged(bool open);
|
|
public:
|
|
VoxelPlayerController();
|
|
};
|
|
}
|
|
}
|