void DrawMarkers() { MarkerNode clickedNode = null; foreach (MarkerNode markerNode in markers) { Rect markerRect = GetMarkerRect(markerNode); if (MouseClickedOnRect(markerRect, mouseButton: 0)) { clickedNode = markerNode; } var markerColor = GetMarkerColor(markerNode.Marker); if (markerNode == selectedMarker) { // To make the selected marker stand out, its transparency is increased/decreased if low/high. markerColor.a = markerColor.a > 0.5f ? 0.2f : 0.8f; } GUI.color = markerColor; GUI.Box(markerRect, GUIContent.none); } Event e = Event.current; if (clickedNode != null) { SelectedMarker = clickedNode; GUI.changed = true; } else if (e.type == EventType.MouseDown && e.button == 0) { SelectedMarker = null; GUI.changed = true; } }
void DrawMarkerEditor(MarkerNode marker) { Editor.CreateCachedEditor(marker, null, ref selectedMarkerEditor); if (selectedMarkerEditor != null) { selectedMarkerEditor.OnInspectorGUI(); } }
public MarkerNode DeepCopy() { RawMarker copiedMarker = new RawMarker(marker.Position, marker.Size, marker.Category); MarkerNode copiedNode = Construct(copiedMarker); copiedNode.rawPosition = rawPosition; return(copiedNode); }
void RemoveMarker(MarkerNode node) { chart.RemoveMarker(node.Marker); markers.Remove(node); if (SelectedMarker == node) { SelectedMarker = null; } }
void CreateMarker(MarkerNode node) { var copied = node.DeepCopy(); markers.Add(copied); chart.AddMarker(copied.Marker); SelectedMarker = copied; }
void RemoveAllMarkers() { if (EditorUtility.DisplayDialog("Confirm Remove All", "Remove all markers from chart?", "Yes", "No")) { properties.chart.RemoveAllMarkers(); markers.Clear(); SelectedMarker = null; } }
bool IsNodeRightClicked(out MarkerNode rightClickedNode) { rightClickedNode = markers.LastOrDefault(node => { Rect markerRect = GetMarkerRect(node); markerRect.x += PANEL_OFFSET; return(MouseClickedOnRect(markerRect, mouseButton: 1)); }); return(rightClickedNode != null); }
void OnEnable() { Load(); SelectedMarker = null; if (markers == null) { markers = properties.chart == null ? new List <MarkerNode>() : properties.chart.Markers.Select(m => MarkerNode.Construct(m)).ToList(); } }
void CreateMarker(Vector2 position, Vector2 size, string category = "", string preset = "", MetaData metaData = null) { position = (position - dragTotal - PANEL_OFFSET * Vector2.right) / scale; position.y = Map.height - position.y; var marker = new RawMarker(position, size, category, preset, metaData); chart.AddMarker(marker); var markerNode = MarkerNode.Construct(marker); markers.Add(markerNode); SelectedMarker = markerNode; }
Rect GetMarkerRect(MarkerNode marker) { Vector2 size = scale * marker.Size; Vector2 rawLocation = marker.Location; Vector2 flippedLocation = new Vector2(rawLocation.x, Map.height - rawLocation.y); Vector2 scaledLocation = scale * flippedLocation; Vector2 offsetLocation = scaledLocation + dragTotal; Rect rect = new Rect(); rect.size = size; rect.center = offsetLocation; return(rect); }
void LoadChart(ChartStatic chart) { if (chart == null) { markers.Clear(); chartName = string.Empty; } else { markers = chart.Markers.Select(m => MarkerNode.Construct(m)).ToList(); chartName = chart.name; } }
void CreateMarker(MarkerNode node) { RawMarker marker = node.Marker; CreateMarker(marker.Position, marker.Size, marker.Category, marker.Preset, marker.MetaData); }