コード例 #1
0
 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;
 }
コード例 #2
0
 private void HolderPickup(UIObjectSelection holding, UpdateState state)
 {
     QueryPanel.Mode = 0;
     QueryPanel.Active = true;
     QueryPanel.Tab = 1;
     QueryPanel.SetInfo(holding.Group.BaseObject, holding.IsBought);
 }
コード例 #3
0
        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;
        }
コード例 #4
0
 private void HolderDelete(UIObjectSelection holding, UpdateState state)
 {
     if (OldSelection != -1)
     {
         Catalog.SetActive(OldSelection, false);
         OldSelection = -1;
     }
     QueryPanel.Active = false;
 }
コード例 #5
0
 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;
 }