public void Update(float deltaTime) { // Try equip tool if (!GUISystem.HandledMouseInput) { if (Input.GetKeyDown(Key.Tilde)) { if (selectedTool != null) { selectedTool.Unequipped(); } selectedTool = null; } else { foreach (EditorTool tool in tools.Values) { if (Input.GetKeyDown(tool.KeyBind)) { EquipTool(tool); screen.UI.SetToolType(tool.Type); break; } } } } raycastResult = screen.World.Raycast(); if (selectedTool != null) { selectedTool.Update(raycastResult, deltaTime); TerrainEditorTool terrainTool = selectedTool as TerrainEditorTool; if (terrainTool != null) { TerrainEditor.Update(deltaTime, terrainTool, raycastResult.TerrainResult); } } }
void AddTool(EditorTool tool) { tools.Add(tool.Type, tool); }