private void AddComponentImmediate(GameComponent component) { if (Components.ContainsKey(component.GlobalID)) { if (Object.ReferenceEquals(Components[component.GlobalID], component)) { return; } throw new InvalidOperationException("Attempted to add component with same ID as existing component."); } Components[component.GlobalID] = component; if (component is MinimapIcon) { MinimapIcons.Add(component as MinimapIcon); } foreach (var system in World.UpdateSystems) { system.ComponentCreated(component); } component.ProcessTransformChange(); }