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; }
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); }