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);
			}
		}
	}
}