Spaces:
Runtime error
Runtime error
File size: 1,041 Bytes
ce81a16 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
namespace Quantum
{
using Photon.Deterministic;
unsafe class CardManagerSystem : SystemMainThread
{
public override void Update(Frame frame)
{
foreach (var pair in frame.Unsafe.GetComponentBlockIterator<CardManager>())
{
pair.Component->Update(frame, pair.Entity);
}
var gameplay = frame.Unsafe.GetPointerSingleton<Gameplay>();
if (gameplay->IsActive == false)
return;
foreach (var pair in frame.Unsafe.GetComponentBlockIterator<Player>())
{
var command = frame.GetPlayerCommand(pair.Component->PlayerRef);
switch (command)
{
case UseCardCommand useCard:
ProcessCommand(frame, pair.Entity, pair.Component->PlayerRef, useCard);
break;
}
}
}
// PRIVATE METHODS
private void ProcessCommand(Frame frame, EntityRef entity, PlayerRef playerRef, UseCardCommand useCard)
{
var cardManager = frame.Unsafe.GetPointer<CardManager>(entity);
cardManager->UseCard(frame, entity, playerRef, useCard.CardIndex, useCard.Position, playerRef * FP.Rad_180);
}
}
}
|