Exemplo n.º 1
0
    public override void OnInspectorGUI()
    {
        GUILayout.Space(15.0f);

        GUI.enabled = TargetMap.IsValid;
        _paintLayer = (PaintLayer)EditorGUILayout.MaskField("Painted layer: ", (int)_paintLayer, new[] { "Type", "Height" });

        // HexaType picker
        GUI.enabled  = TargetMap.IsValid && _paintLayer.Contain(PaintLayer.Type);
        _typeIdBrush = EditorGUILayout.Popup("Brush type: ", _typeIdBrush, GUI.enabled ? TargetMap.Types.GetNames() : new[] { "" });

        // Height picker
        GUI.enabled  = TargetMap.IsValid && _paintLayer.Contain(PaintLayer.Height);
        _heightBrush = EditorGUILayout.Slider("Brush height: ", _heightBrush, 0, 20);

        // Space
        GUILayout.Space(5.0f);

        // Enable edit mode buton
        GUI.enabled = TargetMap.IsValid;
        GUI.color   = IsEditModeEnabled ? Color.green : Color.yellow;
        if (GUILayout.Button(EditModeButtonString))
        {
            IsEditModeEnabled = !IsEditModeEnabled;
        }
        GUI.color = Color.white;
        GUILayout.Label(IsEditModeEnabled ? "Edit mode hide scene view handlers!" : "");

        // Rebuild button.
        if (GUILayout.Button("Force rebuild"))
        {
            TargetMap.ForceRebuild();
        }

        GUILayout.Space(15.0f);

        // Set Data
        GUI.enabled       = true;
        TargetMap.HexData = EditorGUILayout.ObjectField("HexTerrain data:", TargetMap.HexData,
                                                        typeof(HexTerrainData), false) as HexTerrainData;
        TargetMap.Types = EditorGUILayout.ObjectField("Types data:", TargetMap.Types,
                                                      typeof(HexagonTypeData), false) as HexagonTypeData;
    }
Exemplo n.º 2
0
    bool EditHexagon(Vector2i gridCoordinate, int typeID, float height, PaintLayer paintLayer)
    {
        //Debug.Log("gridCoordinate: " + gridCoordinate);
        bool isDirty = false;

        if (HexData.Contains(gridCoordinate))
        {
            if (paintLayer.Contain(PaintLayer.Type) && HexData[gridCoordinate].TypeID != typeID)
            {
                HexData[gridCoordinate].TypeID = typeID;
                isDirty |= true;
            }
            if (paintLayer.Contain(PaintLayer.Height) && HexData[gridCoordinate].Height != height)
            {
                HexData[gridCoordinate].Height = height;
                isDirty |= true;
            }
            _chunks[gridCoordinate.y / chunkLength * ChunkRow + gridCoordinate.x / chunkWidth].IsDirty |= isDirty;
        }
        return(isDirty);
    }