public void QueueUnit(SidePanel a_sidePanel, UnitArgs a_events) { if (a_events.create) { QueuedUnit unit = new QueuedUnit(); unit.prefab = a_events.prefab; unit.buildTime = a_events.prefab.buildTime; unit.percentage = 0f; m_queue.Add(unit); } else { for (int i = m_queue.Count - 1; i >= 0; --i) { if (m_queue[i].prefab.ID == a_events.prefab.ID) { m_queue.Remove(m_queue[i]); break; } } } }
public void Update() { if (Main.m_res.buildings.Count != m_buildingCount) { m_buildingCount = Main.m_res.buildings.Count; if (m_display == Type.Building) ListBuildings(); else if (m_display == Type.Unit) ListUnits(); } // Update buttons if (Main.m_event != null) { // Left & Right Arrows if (m_index > 0) { if (m_buttonLeft.Process(Main.m_event) == Button.MOUSE1UP) { --m_index; } } if (m_index < m_prefabButtons.Count / 8) { if (m_buttonRight.Process(Main.m_event) == Button.MOUSE1UP) { ++m_index; } } // Update main buttons for (int i = 0; i < 8; ++i) { int index = i + (m_index * 8); if (index >= m_prefabButtons.Count) break; // Check if we can afford the building or unit. m_buttons[index].Lock(Main.m_res.funds < m_prefabButtons[index].cost && m_prefabButtons[index].count < 20); // Process buttons int eventType = m_buttons[index].Process(Main.m_event); if (eventType == Button.MOUSE1UP) { if (m_prefabButtons[index].type == Type.Building) { if (BuildingEvent != null) { BuildingArgs args = new BuildingArgs(); args.prefab = m_prefabButtons[index].building; BuildingEvent(this, args); break; } } else { if (UnitEvent != null) { UnitArgs args = new UnitArgs(); args.prefab = m_prefabButtons[index].unit; args.create = true; UnitEvent(this, args); PrefabButton button = m_prefabButtons[index]; ++button.count; m_prefabButtons[index] = button; break; } } } else if (eventType == Button.MOUSE2UP) { if (m_prefabButtons[index].type == Type.Unit && m_prefabButtons[index].count > 0) { UnitArgs args = new UnitArgs(); args.prefab = m_prefabButtons[index].unit; args.create = false; UnitEvent(this, args); PrefabButton button = m_prefabButtons[index]; --button.count; m_prefabButtons[index] = button; break; } } } } }