Spaces:
Runtime error
Runtime error
using System; | |
using Photon.Deterministic; | |
namespace Quantum | |
{ | |
public unsafe class PickupSpawnerSystem : SystemMainThread | |
{ | |
public override void Update(Frame frame) | |
{ | |
if (frame.Unsafe.TryGetPointerSingleton<PickupSpawner>(out var spawner)) | |
{ | |
int frameInterval = spawner->SpawnInterval * frame.UpdateRate; | |
//if ((frameInterval % f.Number) == 0 && spawner->Count < spawner->MaxCount) | |
if (spawner->Count < spawner->MaxCount) | |
{ | |
EntityRef pickup = frame.Create(spawner->PickupPrototype); | |
if (frame.Unsafe.TryGetPointer<Transform3D>(pickup, out var transform)) | |
{ | |
FP angle = frame.RNG->Next(0, 360); | |
FPQuaternion rotation = FPQuaternion.Euler(0, angle, 0); | |
transform->Position = (rotation * FPVector3.Right) * frame.RNG->Next(FP._0, spawner->RandomRadius); | |
} | |
spawner->Count++; | |
} | |
} | |
ComponentIterator<ChainItem> chainItems = frame.GetComponentIterator<ChainItem>(); | |
foreach (var item in chainItems) | |
{ | |
if (item.Component.Destroy) frame.Destroy(item.Entity); | |
} | |
} | |
} | |
} | |