using System.Threading.Tasks; using Impostor.Api.Innersloth.Customization; using Impostor.Api.Net.Inner.Objects.Components; namespace Impostor.Api.Net.Inner.Objects { public interface IInnerPlayerControl : IInnerNetObject { /// /// Gets the assigned by the client of the host of the game. /// byte PlayerId { get; } /// /// Gets the of the . /// Contains vent logic. /// IInnerPlayerPhysics Physics { get; } /// /// Gets the of the . /// Contains position data about the player. /// IInnerCustomNetworkTransform NetworkTransform { get; } /// /// Gets the of the . /// Contains metadata about the player. /// IInnerPlayerInfo PlayerInfo { get; } /// /// Sets the name of the current . /// Visible to all players. /// /// A name for the player. /// Task that must be awaited. ValueTask SetNameAsync(string name); /// /// Sets the color of the current . /// Visible to all players. /// /// A color for the player. /// Task that must be awaited. ValueTask SetColorAsync(byte colorId); /// A color for the player. /// ValueTask SetColorAsync(ColorType colorType); /// /// Sets the hat of the current . /// Visible to all players. /// /// An hat for the player. /// Task that must be awaited. ValueTask SetHatAsync(uint hatId); /// An hat for the player. /// ValueTask SetHatAsync(HatType hatType); /// /// Sets the pet of the current . /// Visible to all players. /// /// A pet for the player. /// Task that must be awaited. ValueTask SetPetAsync(uint petId); /// A pet for the player. /// ValueTask SetPetAsync(PetType petType); /// /// Sets the skin of the current . /// Visible to all players. /// /// A skin for the player. /// Task that must be awaited. ValueTask SetSkinAsync(uint skinId); /// A skin for the player. /// ValueTask SetSkinAsync(SkinType skinType); /// /// Send a chat message as the current . /// Visible to all players. /// /// The message to send. /// Task that must be awaited. ValueTask SendChatAsync(string text); /// /// Send a chat message as the current . /// Visible to only the current. /// /// The message to send. /// /// The player that should receive this chat message. /// When left as null, will send message to self. /// /// Task that must be awaited. ValueTask SendChatToPlayerAsync(string text, IInnerPlayerControl? player = null); /// /// Sets the current to be murdered by an impostor . /// Visible to all players. /// /// /// The Impostor who kill. /// Task that must be awaited. ValueTask SetMurderedByAsync(IClientPlayer impostor); } }