26 lines
995 B
C#
26 lines
995 B
C#
using GameCore.ECS;
|
|
using GameCore.ECS.Interfaces;
|
|
using GameCore.Player;
|
|
|
|
namespace GameCore.Input;
|
|
|
|
public class PlayerInputSystem : ISystem
|
|
{
|
|
public void Update(World world, float deltaTime)
|
|
{
|
|
var playerEntities = world.GetEntitiesWith<PlayerComponent>();
|
|
if (!playerEntities.Any()) return;
|
|
|
|
var playerEntity = playerEntities.First();
|
|
var inputState = world.GetComponent<InputStateComponent>(playerEntity);
|
|
if (inputState == null) return;
|
|
|
|
inputState.MoveDirection = world.InputService.MoveDirection.Normalize();
|
|
inputState.LookDirection = world.InputService.LookDirection;
|
|
inputState.IsJumping = world.InputService.IsJumping;
|
|
inputState.IsInteracting = world.InputService.IsInteracting;
|
|
inputState.IsFiring = world.InputService.IsFiring;
|
|
inputState.IsSwapWeaponNext = world.InputService.IsSwapWeaponNext;
|
|
inputState.IsSwapWeaponPrevious = world.InputService.IsSwapWeaponPrevious;
|
|
}
|
|
} |