//remove permanently or until specified time public override void DestroyObj(GameObject obj) { //Default behavior ToLoad.Remove(obj.GetComponent <SpawnObject>().GetMyOrigin()); removeObj(obj); }
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); }
public void FinishedLoading(Player player) { var start = false; lock (ToLoad) { ToLoad.Remove(player); if (ToLoad.Count == 0) { start = true; } } if (start) { StartGameLoop(); } }