示例#1
0
    //remove permanently or until specified time
    public override void DestroyObj(GameObject obj)
    {
        //Default behavior

        ToLoad.Remove(obj.GetComponent <SpawnObject>().GetMyOrigin());
        removeObj(obj);
    }
示例#2
0
        static void Frame()
        {
            Processor.Process();

            Model ToLoad;

            for (int i = 0; i < 2 - VSync && Model.ModelsToLoad.TryPop(out ToLoad); i++)
            {
                ToLoad.Load();
            }

            Sun.Main.Tick();

            Renderer.PrepareShadow();
            Chunks.RenderVisible();
            Renderer.EndShadow();

            using (Renderer.PrepareCamera(Constants.Background))
            {
                Chunks.RenderVisible();

                ((CameraShader)Renderer.ActiveShader).DisableLighting();

                Skybox.Main.MoveWorld = Camera.Position;
                Skybox.Main.Render();
                Sun.Main.Render();
            }

            Overlay?.Start();
            Overlay?.DrawCrosshair();
            Overlay?.Draw($"Coords ({Camera.Position.X}, {Camera.Position.Y}, {Camera.Position.Z})", 10, 10, 600, 20);
            Overlay?.Draw($"Rotation ({Camera.RotationX}, {Camera.RotationY})", 10, 30, 600, 20);
            Overlay?.Draw($"Frames ({FPS}, VSync {VSync})", 10, 50, 600, 20);
            Overlay?.Draw($"Moved Chunks ({ChunkLoader.MovedX}, {ChunkLoader.MovedZ}) - Size {ChunkLoader.ChunkCountSide}", 10, 70, 600, 20);
            Overlay?.Draw($"F1/2/4 Anti Aliasing Count", 10, 90, 600, 20);
            Overlay?.Draw($"F9/10 Chunks, F11 Fullscreen, ESC Exit", 10, 110, 600, 20);
            Overlay?.Draw($"F8 WASD Space/Shift Movement", 10, 130, 600, 20);
            Overlay?.End();

            Frames++;
            if (Watch.ElapsedMilliseconds >= 1000)
            {
                FPS = (float)Frames / Watch.ElapsedMilliseconds * 1000;
                Watch.Restart();
                Frames = 0;
            }

            Renderer.EndCamera(VSync);
        }
示例#3
0
        public void FinishedLoading(Player player)
        {
            var start = false;

            lock (ToLoad)
            {
                ToLoad.Remove(player);
                if (ToLoad.Count == 0)
                {
                    start = true;
                }
            }
            if (start)
            {
                StartGameLoop();
            }
        }