Interactable component system. (#9)

* InteractableComponent v1. Broken edition

* It works!
This commit is contained in:
Pieter-Jan Briers
2017-10-06 21:05:21 +02:00
committed by GitHub
parent 8c1fa84c6e
commit 7597cd9172
8 changed files with 174 additions and 22 deletions

View File

@@ -51,7 +51,6 @@ namespace Content.Server.GameObjects
}
Owner.SubscribeEvent<BoundKeyChangeEventArgs>(OnKeyChange, this);
Owner.SubscribeEvent<ClickedOnEntityEventArgs>(OnClick, this);
base.Initialize();
}
@@ -258,24 +257,6 @@ namespace Content.Server.GameObjects
ActiveIndex = orderedHands[index];
}
public void OnClick(object sender, EntityEventArgs uncast)
{
var cast = (ClickedOnEntityEventArgs)uncast;
if (cast.MouseButton != MouseClickType.Left || Owner.EntityManager.GetEntity(cast.Clicker) != Owner)
{
return;
}
var target = Owner.EntityManager.GetEntity(cast.Clicked);
var targetTransform = target.GetComponent<IServerTransformComponent>();
if (!target.TryGetComponent<IItemComponent>(out var item) || (targetTransform.WorldPosition - transform.WorldPosition).Length > PICKUP_RANGE)
{
return;
}
PutInHand(item, ActiveIndex, fallback: false);
}
public override void HandleNetworkMessage(IncomingEntityComponentMessage message, NetConnection sender)
{
if (message.MessageParameters.Count != 1)