_wipshit
This commit is contained in:
@@ -6,154 +6,148 @@ using FlaxEditor.CustomEditors.Dedicated;
|
||||
using FlaxEditor.Scripting;
|
||||
#endif
|
||||
|
||||
namespace Game
|
||||
{
|
||||
namespace Game;
|
||||
|
||||
#if FLAX_EDITOR
|
||||
[CustomEditor(typeof(PlayerActor))]
|
||||
public class PlayerActorEditor : ActorEditor
|
||||
[CustomEditor(typeof(PlayerActor))]
|
||||
public class PlayerActorEditor : ActorEditor
|
||||
{
|
||||
protected override List<ItemInfo> GetItemsForType(ScriptType type)
|
||||
{
|
||||
protected override List<ItemInfo> GetItemsForType(ScriptType type)
|
||||
var items = GetItemsForType(type, type.IsClass, true);
|
||||
|
||||
// Remove all Rigid Body options
|
||||
items.RemoveAll(x => x.Display?.Group == "Rigid Body");
|
||||
|
||||
// Inject scripts editor
|
||||
ScriptMemberInfo scriptsMember = type.GetProperty("Scripts");
|
||||
if (scriptsMember != ScriptMemberInfo.Null)
|
||||
{
|
||||
var items = GetItemsForType(type, type.IsClass, true);
|
||||
|
||||
// Remove all Rigid Body options
|
||||
items.RemoveAll(x => x.Display?.Group == "Rigid Body");
|
||||
|
||||
// Inject scripts editor
|
||||
ScriptMemberInfo scriptsMember = type.GetProperty("Scripts");
|
||||
if (scriptsMember != ScriptMemberInfo.Null)
|
||||
ItemInfo item = new ItemInfo(scriptsMember)
|
||||
{
|
||||
ItemInfo item = new ItemInfo(scriptsMember)
|
||||
{
|
||||
CustomEditor = new CustomEditorAttribute(typeof(ScriptsEditor))
|
||||
};
|
||||
items.Add(item);
|
||||
}
|
||||
|
||||
return items;
|
||||
CustomEditor = new CustomEditorAttribute(typeof(ScriptsEditor))
|
||||
};
|
||||
items.Add(item);
|
||||
}
|
||||
|
||||
return items;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
public class SomeActor : EmptyActor
|
||||
public class PlayerActor : RigidBody//, INetworkSerializable
|
||||
{
|
||||
private PlayerMovement playerMovement;
|
||||
public CapsuleCollider capsuleCollider;
|
||||
public BoxCollider boxCollider;
|
||||
public MeshCollider meshCollider;
|
||||
|
||||
//[NetworkReplicated]
|
||||
public uint PlayerId = uint.MaxValue;
|
||||
|
||||
/*public PlayerActor()
|
||||
{
|
||||
// Default internal values for RigidBody
|
||||
IsKinematic = true;
|
||||
EnableGravity = false;
|
||||
LinearDamping = 0f;
|
||||
AngularDamping = 0f;
|
||||
Constraints = RigidbodyConstraints.LockRotation;
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
public class PlayerActor : RigidBody//, INetworkSerializable
|
||||
public override void OnBeginPlay()
|
||||
{
|
||||
private PlayerMovement playerMovement;
|
||||
public CapsuleCollider capsuleCollider;
|
||||
public BoxCollider boxCollider;
|
||||
public MeshCollider meshCollider;
|
||||
// Default internal values for RigidBody
|
||||
IsKinematic = true;
|
||||
EnableGravity = false;
|
||||
LinearDamping = 0f;
|
||||
AngularDamping = 0f;
|
||||
Constraints = RigidbodyConstraints.LockRotation;
|
||||
|
||||
//[NetworkReplicated]
|
||||
public uint PlayerId = uint.MaxValue;
|
||||
base.OnBeginPlay();
|
||||
|
||||
/*public PlayerActor()
|
||||
{
|
||||
// Default internal values for RigidBody
|
||||
IsKinematic = true;
|
||||
EnableGravity = false;
|
||||
LinearDamping = 0f;
|
||||
AngularDamping = 0f;
|
||||
Constraints = RigidbodyConstraints.LockRotation;
|
||||
}*/
|
||||
|
||||
public override void OnBeginPlay()
|
||||
{
|
||||
// Default internal values for RigidBody
|
||||
IsKinematic = true;
|
||||
EnableGravity = false;
|
||||
LinearDamping = 0f;
|
||||
AngularDamping = 0f;
|
||||
Constraints = RigidbodyConstraints.LockRotation;
|
||||
|
||||
base.OnBeginPlay();
|
||||
|
||||
playerMovement = FindScript<PlayerMovement>();
|
||||
capsuleCollider = GetChild<CapsuleCollider>();
|
||||
boxCollider = GetChild<BoxCollider>();
|
||||
meshCollider = GetChild<MeshCollider>();
|
||||
//playerRigidBody = FindActor<RigidBody>();
|
||||
playerMovement = FindScript<PlayerMovement>();
|
||||
capsuleCollider = GetChild<CapsuleCollider>();
|
||||
boxCollider = GetChild<BoxCollider>();
|
||||
meshCollider = GetChild<MeshCollider>();
|
||||
//playerRigidBody = FindActor<RigidBody>();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Console.Print("OnBeginPlay playerid: " + PlayerId.ToString());
|
||||
//playerMovement.input = new PlayerInputNetwork();
|
||||
}
|
||||
//Console.Print("OnBeginPlay playerid: " + PlayerId.ToString());
|
||||
//playerMovement.input = new PlayerInputNetwork();
|
||||
}
|
||||
|
||||
public override void OnEnable()
|
||||
public override void OnEnable()
|
||||
{
|
||||
// Trigger OnEnable manually, does not seem to propagate when parent gets enabled/disabled
|
||||
playerMovement.Enabled = true;
|
||||
//NetworkReplicator.AddObject(this);
|
||||
}
|
||||
|
||||
public override void OnDisable()
|
||||
{
|
||||
playerMovement.Enabled = false;
|
||||
//NetworkReplicator.RemoveObject(this);
|
||||
}
|
||||
|
||||
//[NetworkRpc(client: true)]
|
||||
public void Initialize(uint playerId, Float3 newPosition, Float3 eulerAngles)
|
||||
{
|
||||
if (PlayerId == playerId) // FIXME
|
||||
return;
|
||||
|
||||
FindActor("PlayerModel").IsActive = true;
|
||||
IsActive = true;
|
||||
|
||||
PlayerId = playerId;
|
||||
playerMovement.SetInput(playerId);
|
||||
if (playerId == NetworkManager.LocalPlayerClientId)
|
||||
{
|
||||
// Trigger OnEnable manually, does not seem to propagate when parent gets enabled/disabled
|
||||
playerMovement.Enabled = true;
|
||||
//NetworkReplicator.AddObject(this);
|
||||
FindActor("CameraHolder").IsActive = true;
|
||||
//FindActor("ViewModelHolder").IsActive = true;
|
||||
FindActor("PlayerModel").IsActive = false;
|
||||
}
|
||||
SetPosition(newPosition);
|
||||
SetRotation(eulerAngles);
|
||||
//else
|
||||
// FindActor("PlayerModel").IsActive = true;
|
||||
//IsActive = true;
|
||||
}
|
||||
|
||||
public override void OnDisable()
|
||||
{
|
||||
playerMovement.Enabled = false;
|
||||
//NetworkReplicator.RemoveObject(this);
|
||||
}
|
||||
//[NetworkRpc(server: true)]
|
||||
public void UpdateNetworkInput(PlayerInputState inputState/*, Float4 viewDeltaXYMoveForwardRight, bool attacking, bool jumping*/)
|
||||
{
|
||||
if (playerMovement.input is not PlayerInputNetwork playerInputNetwork)
|
||||
return;
|
||||
|
||||
//[NetworkRpc(client: true)]
|
||||
public void Initialize(uint playerId, Float3 newPosition, Float3 eulerAngles)
|
||||
{
|
||||
if (PlayerId == playerId) // FIXME
|
||||
return;
|
||||
//PlayerInputState inputState = new PlayerInputState(frame, viewDeltaXYMoveForwardRight.X, viewDeltaXYMoveForwardRight.Y, viewDeltaXYMoveForwardRight.Z, viewDeltaXYMoveForwardRight.W, attacking, jumping);
|
||||
//playerInputNetwork.currentState.input = inputState;
|
||||
playerInputNetwork.SetState(inputState.frame, inputState);
|
||||
}
|
||||
|
||||
FindActor("PlayerModel").IsActive = true;
|
||||
IsActive = true;
|
||||
public void SetPosition(Float3 newPosition)
|
||||
{
|
||||
Position = newPosition;
|
||||
playerMovement.movementState.position = newPosition;
|
||||
}
|
||||
|
||||
PlayerId = playerId;
|
||||
playerMovement.SetInput(playerId);
|
||||
if (playerId == NetworkManager.LocalPlayerClientId)
|
||||
{
|
||||
FindActor("CameraHolder").IsActive = true;
|
||||
//FindActor("ViewModelHolder").IsActive = true;
|
||||
FindActor("PlayerModel").IsActive = false;
|
||||
}
|
||||
SetPosition(newPosition);
|
||||
SetRotation(eulerAngles);
|
||||
//else
|
||||
// FindActor("PlayerModel").IsActive = true;
|
||||
//IsActive = true;
|
||||
}
|
||||
public void SetRotation(Float3 eulerAngles)
|
||||
{
|
||||
playerMovement.ResetRotation(eulerAngles);
|
||||
}
|
||||
|
||||
//[NetworkRpc(server: true)]
|
||||
public void UpdateNetworkInput(PlayerInputState inputState/*, Float4 viewDeltaXYMoveForwardRight, bool attacking, bool jumping*/)
|
||||
{
|
||||
if (playerMovement.input is not PlayerInputNetwork playerInputNetwork)
|
||||
return;
|
||||
public Float3 GetRotation()
|
||||
{
|
||||
return playerMovement.viewAngles;
|
||||
}
|
||||
|
||||
//PlayerInputState inputState = new PlayerInputState(frame, viewDeltaXYMoveForwardRight.X, viewDeltaXYMoveForwardRight.Y, viewDeltaXYMoveForwardRight.Z, viewDeltaXYMoveForwardRight.W, attacking, jumping);
|
||||
//playerInputNetwork.currentState.input = inputState;
|
||||
playerInputNetwork.SetState(inputState.frame, inputState);
|
||||
}
|
||||
|
||||
public void SetPosition(Float3 newPosition)
|
||||
{
|
||||
Position = newPosition;
|
||||
playerMovement.movementState.position = newPosition;
|
||||
}
|
||||
|
||||
public void SetRotation(Float3 eulerAngles)
|
||||
{
|
||||
playerMovement.ResetRotation(eulerAngles);
|
||||
}
|
||||
|
||||
public Float3 GetRotation()
|
||||
{
|
||||
return playerMovement.viewAngles;
|
||||
}
|
||||
|
||||
//[NetworkRpc(client: true)]
|
||||
public void Teleport(Float3 newPosition, Float3 eulerAngles)
|
||||
{
|
||||
SetPosition(newPosition);
|
||||
SetRotation(eulerAngles);
|
||||
}
|
||||
//[NetworkRpc(client: true)]
|
||||
public void Teleport(Float3 newPosition, Float3 eulerAngles)
|
||||
{
|
||||
SetPosition(newPosition);
|
||||
SetRotation(eulerAngles);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user