Beispiel #1
0
        private static AscensionPhysicsHits Raycast(Ray ray, AscensionHitboxWorldSnapshot sn)
        {
            Iterator <AscensionHitboxBodySnapshot> it = sn.bodySnapshots.GetIterator();
            AscensionPhysicsHits hits = AscensionPhysicsHits.Pool.Acquire();

            while (it.Next())
            {
                it.val.Raycast(ray.origin, ray.direction, hits);
            }

            return(hits);
        }
Beispiel #2
0
        internal static void SnapshotWorld()
        {
            Iterator <AscensionHitboxBody> it = HitboxBodies.GetIterator();
            AscensionHitboxWorldSnapshot   sn = AscensionHitboxWorldSnapshot.Pool.Acquire();

            // set frame
            sn.frame = Core.Frame;

            // create snapshot
            while (it.Next())
            {
                sn.Snapshot(it.val);
            }

            WorldSnapshots.AddLast(sn);

            while (WorldSnapshots.Count > maxWorldSnapshots)
            {
                WorldSnapshots.RemoveFirst().Dispose();
            }
        }
Beispiel #3
0
        private static AscensionPhysicsHits OverlapSphere(Vector3 origin, float radius, AscensionHitboxWorldSnapshot sn)
        {
            Iterator <AscensionHitboxBodySnapshot> it = sn.bodySnapshots.GetIterator();
            AscensionPhysicsHits hits = AscensionPhysicsHits.Pool.Acquire();

            while (it.Next())
            {
                it.val.OverlapSphere(origin, radius, hits);
            }

            return(hits);
        }