custom-chatbot / data /PickupSpawnerSystem.cs
fastx's picture
Upload 84 files
ac55997
raw
history blame
1.06 kB
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);
}
}
}
}