/// <summary>
        /// If an entity type was found we can determine what type of appearance we are.
        /// </summary>
        private void DetermineAppearanceType()
        {
            // Determine the appearance type
            if (kind != null)
            {
                // Determine what type of appearance to use.
                switch (( EntityKind )Kind)
                {
                case EntityKind.CulturalFeature:
                    selectedAppearanceType = AppearanceTypes.Cultural;
                    break;

                case EntityKind.Environmental:
                    selectedAppearanceType = AppearanceTypes.Environmental;
                    break;

                case EntityKind.Lifeform:
                    selectedAppearanceType = AppearanceTypes.Lifeform;
                    break;

                case EntityKind.Munition:
                    if (Category == 1)  // Guided
                    {
                        selectedAppearanceType = AppearanceTypes.GuidedMunition;
                    }
                    break;

                case EntityKind.Platform:
                    switch (( EntityDomain )Domain)
                    {
                    case EntityDomain.Air:
                        selectedAppearanceType = AppearanceTypes.Air;
                        break;

                    case EntityDomain.Land:
                        selectedAppearanceType = AppearanceTypes.Land;
                        break;

                    case EntityDomain.Subsurface:
                        selectedAppearanceType = AppearanceTypes.Subsurface;
                        break;

                    case EntityDomain.Surface:
                        selectedAppearanceType = AppearanceTypes.Surface;
                        break;

                    case EntityDomain.Space:
                        selectedAppearanceType = AppearanceTypes.Space;
                        break;
                    }
                    break;

                case EntityKind.SensorEmitter:
                    selectedAppearanceType = AppearanceTypes.Sensor;
                    break;
                }
            }
        }
        /// <summary>
        /// Draw property
        /// </summary>
        /// <param name="position"></param>
        /// <param name="property"></param>
        /// <param name="label"></param>
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            label = GetLabel(label);

            Init(property);

            EditorGUI.BeginProperty(position, label, property);
            position.height = EditorGUIUtility.singleLineHeight;

            // Label
            property.isExpanded = EditorGUI.Foldout(position, property.isExpanded, label);
            position.y         += EditorGUIUtility.singleLineHeight;

            if (property.isExpanded)
            {
                EditorGUI.indentLevel++;

                EditorGUI.BeginChangeCheck();

                if (EditorSettings.AdvancedMode)
                {
                    tmpAppearance.Appearance = EditorGUI.IntField(position, "Appearance Field", tmpAppearance.Appearance);
                    position.y += EditorGUIUtility.singleLineHeight;
                }

                if (property.isExpanded)
                {
                    if (selectedAppearanceType == AppearanceTypes.Unknown || EditorSettings.AdvancedMode)
                    {
                        selectedAppearanceType = ( AppearanceTypes )EditorGUI.EnumPopup(position, "Appearance Type", selectedAppearanceType);
                        position.y            += EditorGUIUtility.singleLineHeight;
                    }

                    switch (selectedAppearanceType)
                    {
                    case AppearanceTypes.Air:
                        DrawAir(position);
                        break;

                    case AppearanceTypes.Cultural:
                        DrawCultural(position);
                        break;

                    case AppearanceTypes.Environmental:
                        DrawEnvironmentals(position);
                        break;

                    case AppearanceTypes.GuidedMunition:
                        DrawGuidedMunitions(position);
                        break;

                    case AppearanceTypes.Land:
                        DrawLand(position);
                        break;

                    case AppearanceTypes.Lifeform:
                        DrawLifeform(position);
                        break;

                    case AppearanceTypes.Sensor:
                        DrawSensorEmitter(position);
                        break;

                    case AppearanceTypes.Space:
                        DrawSpace(position);
                        break;

                    case AppearanceTypes.Subsurface:
                        DrawSubSurface(position);
                        break;

                    case AppearanceTypes.Surface:
                        DrawSurface(position);
                        break;
                    }
                }

                if (EditorGUI.EndChangeCheck())
                {
                    appearance.intValue = tmpAppearance.Appearance;
                }
            }
            EditorGUI.EndProperty();
        }