Spaces:
Runtime error
Runtime error
File size: 1,058 Bytes
ac55997 |
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 |
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);
}
}
}
}
|