static public void selected(M.P p) { string t0 = p.c + "_" + p.r; bs.go(t0, "com", "rotater"); if (_comboColor != _selectColor) { bs.go(t0, "C", _comboColor); } if (_comboScale > 1f) { bs.go(t0, "s", _cellScale * _comboScale); } }
private void onMove(string e, int id, float x, float y, float dx, float dy) { if (!_isSelect) { return; } M.P p = V.mapPos(x, y); if ((_pos.r == p.r && _pos.c == p.c) || p.r < 0 || p.c < 0 || p.r >= M.row || p.c >= M.col || _curr != M.map[p.r, p.c]) { return; } int c = _select[_select.Count - 1], r = _select[_select.Count - 2], odd = (r % 2) - 1; if ((p.c == c + odd && p.r == r - 1) || (p.c == c + 1 + odd && p.r == r - 1) || (p.c == c - 1 && p.r == r) || (p.c == c + 1 && p.r == r) || (p.c == c + odd && p.r == r + 1) || (p.c == c + 1 + odd && p.r == r + 1) ) { if (_select.Count > 2 && p.c == _select[_select.Count - 3] && p.r == _select[_select.Count - 4]) { V.unselected(_pos); _pos.r = p.r; _pos.c = p.c; _select.RemoveAt(_select.Count - 1); _select.RemoveAt(_select.Count - 1); } else { for (int i = 0; i < _select.Count;) { r = _select[i++]; c = _select[i++]; if (r == p.r && c == p.c) { return; } } V.selectCount(_select, M.selectCount(_select.Count)); _pos.r = p.r; _pos.c = p.c; _select.Add(p.r); _select.Add(p.c); V.selected(_pos); } } }
private void onDown(string e, int id, float x, float y, float dx, float dy) { bs.log("down"); M.P p = V.mapPos(x, y); if (p.r < 0 || p.c < 0 || p.r >= M.row || p.c >= M.col || M.map[p.r, p.c] < 1) { _isSelect = false; } else { _pos.r = p.r; _pos.c = p.c; _isSelect = true; _select.Clear(); _select.Add(p.r); _select.Add(p.c); _curr = M.map[p.r, p.c]; V.selected(_pos.c + "_" + _pos.r); } }
static public void unselected(M.P p, bool isUp = false) { bs.go(p.c + "_" + p.r, "com-", "rotater", "r", bs.V3[0], "C", _selectColor, "s", _cellScale); }