public override bool Window() { deletePrevious = EditorGUILayout.Toggle("Remove previous tiles", deletePrevious); copyEmpty = EditorGUILayout.Toggle("Copy empty tiles", copyEmpty); if (GUILayout.Button("Cancel selection")) { toolState = AreaToolState.NONE; } return(false); }
public override bool OnMouseDown() { switch (toolState) { case AreaToolState.SELECTION: int x = mouseX; int y = mouseY; if (IsMouseInSelection(x, y)) { mouseInSelectionX = x - selectMinX; mouseInSelectionY = y - selectMinY; toolState = AreaToolState.DRAG; } else { selectStartX = mouseX; selectStartY = mouseY; CalculateSelectionBound(selectStartX, selectStartY); toolState = AreaToolState.SELECTING; } break; case AreaToolState.NONE: selectStartX = mouseX; selectStartY = mouseY; CalculateSelectionBound(selectStartX, selectStartY); toolState = AreaToolState.SELECTING; break; case AreaToolState.DRAG: case AreaToolState.SELECTING: break; } return(false); }
public override bool OnMouseUp() { switch (toolState) { case AreaToolState.DRAG: CopyCurrentTo(mouseX - mouseInSelectionX, mouseY - mouseInSelectionY, deletePrevious); toolState = AreaToolState.NONE; return(true); case AreaToolState.SELECTING: CalculateSelectionBound(mouseX, mouseY); toolState = AreaToolState.SELECTION; break; case AreaToolState.SELECTION: case AreaToolState.NONE: break; } return(false); }