private void HolderPutDown(UIObjectSelection holding, UpdateState state) { if (OldSelection != -1) { if (!holding.IsBought && (state.KeyboardState.IsKeyDown(Keys.LeftShift) || state.KeyboardState.IsKeyDown(Keys.RightShift))) { //place another var prevDir = holding.Dir; Catalog_OnSelectionChange(OldSelection); Holder.Holding.Dir = prevDir; } else { Catalog.SetActive(OldSelection, false); OldSelection = -1; } } QueryPanel.Active = false; }
private void HolderPickup(UIObjectSelection holding, UpdateState state) { QueryPanel.Mode = 0; QueryPanel.Active = true; QueryPanel.Tab = 1; QueryPanel.SetInfo(holding.Group.BaseObject, holding.IsBought); }
public void ClearSelected() { //TODO: selected items are only spooky ghosts of the items themselves. // ...so that they dont cause serverside desyncs // and so that clearing selections doesnt delete already placed objects. if (Holding != null) { for (int i = 0; i < Holding.Group.Objects.Count; i++) { var target = Holding.Group.Objects[i]; if (target is VMGameObject) ((ObjectComponent)target.WorldUI).ForceDynamic = false; } for (int i = 0; i < Holding.CursorTiles.Length; i++) { Holding.CursorTiles[i].Delete(true, vm.Context); ((ObjectComponent)Holding.CursorTiles[i].WorldUI).ForceDynamic = false; } } Holding = null; }
private void HolderDelete(UIObjectSelection holding, UpdateState state) { if (OldSelection != -1) { Catalog.SetActive(OldSelection, false); OldSelection = -1; } QueryPanel.Active = false; }
public void SetSelected(VMMultitileGroup Group) { if (Holding != null) ClearSelected(); Holding = new UIObjectSelection(); Holding.Group = Group; Holding.PreviousTile = Holding.Group.BaseObject.Position; Holding.Dir = Group.Objects[0].Direction; VMEntity[] CursorTiles = new VMEntity[Group.Objects.Count]; for (int i = 0; i < Group.Objects.Count; i++) { var target = Group.Objects[i]; if (target is VMGameObject) ((ObjectComponent)target.WorldUI).ForceDynamic = true; CursorTiles[i] = vm.Context.CreateObjectInstance(0x00000437, new LotTilePos(target.Position), tso.world.model.Direction.NORTH).Objects[0]; CursorTiles[i].SetPosition(new LotTilePos(0,0,1), Direction.NORTH, vm.Context); ((ObjectComponent)CursorTiles[i].WorldUI).ForceDynamic = true; } Holding.TilePosOffset = new Vector2(0, 0); Holding.CursorTiles = CursorTiles; }