185 lines
2.3 KiB
C#
185 lines
2.3 KiB
C#
using Godot;
|
|
using System;
|
|
|
|
public partial class Ball : RigidBody2D
|
|
{
|
|
[Signal]
|
|
public delegate void OnHitEventHandler();
|
|
public bool _active = false, _placed = false, _potted = false, _available = false, _hovered = false, _selected = false, _aimed = false, _launched = false, _moving = false, _isCue = false;
|
|
public float _moveThreshold = 5.0f;
|
|
public Vector2 _newPosition = new Vector2(-1, -1);
|
|
|
|
|
|
public static Ball _Create()
|
|
{
|
|
PackedScene scene = ResourceLoader.Load<PackedScene>("res://Gameplay/ball.tscn");
|
|
Ball newBall = scene.Instantiate<Ball>();
|
|
|
|
return newBall;
|
|
}
|
|
|
|
|
|
public override void _Ready()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
public override void _Process(double DELTA_)
|
|
{
|
|
if (LinearVelocity.Length() > 0 && LinearVelocity.Length() < _moveThreshold)
|
|
{
|
|
Sleeping = true;
|
|
if (_moving)
|
|
{
|
|
_moving = false;
|
|
if (_launched)
|
|
{
|
|
_launched = false;
|
|
}
|
|
}
|
|
}
|
|
else if (LinearVelocity.Length() >= _moveThreshold)
|
|
{
|
|
if (!_moving)
|
|
{
|
|
_moving = true;
|
|
}
|
|
}
|
|
|
|
if (Globals.Instance._anyMovement)
|
|
{
|
|
if (_available)
|
|
{
|
|
_available = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!_available)
|
|
{
|
|
_available = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void Pot()
|
|
{
|
|
_placed = false;
|
|
_potted = true;
|
|
Sleeping = true;
|
|
_moving = false;
|
|
}
|
|
|
|
public void SetSprite(string PATH)
|
|
{
|
|
GetNode<Sprite2D>("Image").Texture = GD.Load<Texture2D>(PATH);
|
|
}
|
|
|
|
private void OnBodyEntered(Node2D TARGET)
|
|
{
|
|
|
|
}
|
|
|
|
private void OnMouseEntered()
|
|
{
|
|
if (_active)
|
|
{
|
|
_hovered = true;
|
|
}
|
|
}
|
|
|
|
private void OnMouseExited()
|
|
{
|
|
if (_active)
|
|
{
|
|
_hovered = false;
|
|
}
|
|
}
|
|
|
|
|
|
//Processes
|
|
public virtual void ProcessOnAdd()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnBattleStart()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnBattleEnd()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnCollision()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnCreation()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnCritical()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnDeath()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnDefend()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnExpiration()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnLaunch()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnMovement()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnRemove()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnSell()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnStop()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnTurnEnd()
|
|
{
|
|
|
|
}
|
|
|
|
public virtual void ProcessOnTurnStart()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|