public MyGuiScreenEditorEditProperties(List <MyEntity> entities) : base(new Vector2(0.5f, 0.5f), new Vector2(0.75f, 1f)) { Debug.Assert(entities.Count > 0); Debug.Assert(CanEditProperties(entities)); AddCaption(new StringBuilder("Edit properties"), MyGuiConstants.LABEL_TEXT_COLOR); m_entities = entities; m_editProperties = new MyEditProperties(); m_editProperties.Name = m_entities[0].Name; m_editProperties.DisplayName = m_entities[0].DisplayName; m_editProperties.Faction = m_entities[0].Faction; m_editProperties.HealthRatio = m_entities[0].HealthRatio; m_editProperties.MaxHealth = m_entities[0].MaxHealth; m_editProperties.IsIndestructible = !m_entities[0].IsDestructible; m_editProperties.RequiresEnergy = m_entities[0] is MyPrefabBase ? ((MyPrefabBase)m_entities[0]).RequiresEnergy : null; m_editProperties.UseProperties = m_entities[0] is IMyUseableEntity ? ((IMyUseableEntity)m_entities[0]).UseProperties : null; m_editProperties.IsActivated = m_entities[0].Activated; m_editProperties.DisplayHud = m_entities[0].DisplayOnHud; m_editProperties.Difficulty = m_entities[0].MaxDifficultyToActivated; if (m_entities[0] is MyPrefabKinematic) { MyPrefabKinematic prefabKinematic = m_entities[0] as MyPrefabKinematic; MyPrefabConfigurationKinematic prefabKinematicConfig = prefabKinematic.GetConfiguration() as MyPrefabConfigurationKinematic; m_editProperties.KinematicPartsHealthAndMaxHealth = new MyHealthAndMaxHealth[prefabKinematicConfig.KinematicParts.Count]; for (int i = 0; i < m_editProperties.KinematicPartsHealthAndMaxHealth.Length; i++) { MyPrefabKinematicPart kinematicPart = prefabKinematic.Parts[i]; if (kinematicPart != null) { float health = kinematicPart.Health; float maxHealth = kinematicPart.MaxHealth; m_editProperties.KinematicPartsHealthAndMaxHealth[i] = new MyHealthAndMaxHealth(health, maxHealth); } } } m_editPropertiesFlags = GetEditProperties(m_entities); DetectNotSameProperties(); InitControls(); m_errorMessages = new List <StringBuilder>(); m_errorMessage = new StringBuilder(); }
public MyGuiScreenEditorEditProperties(List<MyEntity> entities) : base(new Vector2(0.5f, 0.5f), new Vector2(0.75f, 1f)) { Debug.Assert(entities.Count > 0); Debug.Assert(CanEditProperties(entities)); AddCaption(new StringBuilder("Edit properties"), MyGuiConstants.LABEL_TEXT_COLOR); m_entities = entities; m_editProperties = new MyEditProperties(); m_editProperties.Name = m_entities[0].Name; m_editProperties.DisplayName = m_entities[0].DisplayName; m_editProperties.Faction = m_entities[0].Faction; m_editProperties.HealthRatio = m_entities[0].HealthRatio; m_editProperties.MaxHealth = m_entities[0].MaxHealth; m_editProperties.IsIndestructible = !m_entities[0].IsDestructible; m_editProperties.RequiresEnergy = m_entities[0] is MyPrefabBase ? ((MyPrefabBase)m_entities[0]).RequiresEnergy : null; m_editProperties.UseProperties = m_entities[0] is IMyUseableEntity ? ((IMyUseableEntity)m_entities[0]).UseProperties : null; m_editProperties.IsActivated = m_entities[0].Activated; m_editProperties.DisplayHud = m_entities[0].DisplayOnHud; m_editProperties.Difficulty = m_entities[0].MaxDifficultyToActivated; if (m_entities[0] is MyPrefabKinematic) { MyPrefabKinematic prefabKinematic = m_entities[0] as MyPrefabKinematic; MyPrefabConfigurationKinematic prefabKinematicConfig = prefabKinematic.GetConfiguration() as MyPrefabConfigurationKinematic; m_editProperties.KinematicPartsHealthAndMaxHealth = new MyHealthAndMaxHealth[prefabKinematicConfig.KinematicParts.Count]; for (int i = 0; i < m_editProperties.KinematicPartsHealthAndMaxHealth.Length; i++) { MyPrefabKinematicPart kinematicPart = prefabKinematic.Parts[i]; if (kinematicPart != null) { float health = kinematicPart.Health; float maxHealth = kinematicPart.MaxHealth; m_editProperties.KinematicPartsHealthAndMaxHealth[i] = new MyHealthAndMaxHealth(health, maxHealth); } } } m_editPropertiesFlags = GetEditProperties(m_entities); DetectNotSameProperties(); InitControls(); m_errorMessages = new List<StringBuilder>(); m_errorMessage = new StringBuilder(); }