kakozuzo/Code/swb_shared/IPlayerBase.cs
2024-10-30 19:01:58 +03:00

53 lines
1.7 KiB
C#

using Sandbox.Citizen;
using System;
namespace SWB.Shared;
public interface IPlayerBase : IValid
{
// public CameraComponent ViewModelCamera { get; set; }
public CameraComponent Camera { get; set; }
public GameObject Body { get; set; }
public SkinnedModelRenderer BodyRenderer { get; set; }
public ShrimpleCharacterController.ShrimpleCharacterController CharacterController { get; set; }
public AnimationHelper AnimationHelper { get; set; }
public GameObject GameObject { get; }
public IInventory Inventory { get; set; }
public bool IsAlive { get; }
public int MaxHealth { get; set; }
public int Health { get; set; }
public int Kills { get; set; }
public int Deaths { get; set; }
public Guid Id { get; }
// /// <summary>Input sensitivity modifier</summary>
// public float InputSensitivity { get; set; }
/// <summary>
/// Called when the weapon wants to know how much ammo is available
/// </summary>
/// <param name="type">The type of ammo</param>
/// <returns>How much ammo is available</returns>
public int AmmoCount( string type );
/// <summary>
/// Called when the weapon is trying to take ammo.
/// </summary>
/// <param name="type">The type of ammo</param>
/// <param name="amount">The amount of ammo requested</param>
/// <returns>How much ammo was actually taken</returns>
public int TakeAmmo( string type, int amount );
/// <summary>
/// Called when the player takes damage
/// </summary>
/// <param name="info">Information about the damage</param>
public void TakeDamage( DamageInfo info );
/// <summary>
/// Shakes the camera
/// </summary>
/// <param name="screenShake">Information about the shake</param>
public void ShakeScreen( ScreenShake screenShake );
}