コード例 #1
0
ファイル: Player.cs プロジェクト: rdebath/MCGalaxy
 public void ClearSelection()
 {
     lock (selLock) {
         if (selTitle != null)
         {
             ResetSelectionHUD();
         }
         selTitle        = null;
         selState        = null;
         selCallback     = null;
         selMarkCallback = null;
         Blockchange     = null;
     }
 }
コード例 #2
0
ファイル: Player.cs プロジェクト: ProtheanGod/KingMC
        void SelectionBlockChange(Player p, ushort x, ushort y, ushort z, ExtBlock block)
        {
            lock (selLock) {
                Blockchange = SelectionBlockChange;
                RevertBlock(x, y, z);

                selMarks[selIndex] = new Vec3S32(x, y, z);
                if (selMarkCallback != null)
                {
                    selMarkCallback(p, selMarks, selIndex, selState, block);
                }
                // Mark callback cancelled selection
                if (selCallback == null)
                {
                    return;
                }

                selIndex++;
                if (selIndex == 1 && selTitle != null)
                {
                    SendCpeMessage(CpeMessageType.BottomRight2, "Mark #1" + FormatSelectionMark(selMarks[0]));
                }
                else if (selIndex == 2 && selTitle != null)
                {
                    SendCpeMessage(CpeMessageType.BottomRight1, "Mark #2" + FormatSelectionMark(selMarks[0]));
                }
                if (selIndex != selMarks.Length)
                {
                    return;
                }

                string title = selTitle;
                object state = selState;
                SelectionMarkHandler markCallback = selMarkCallback;
                SelectionHandler     callback     = selCallback;
                ClearSelection();

                if (!block.IsPhysicsType)
                {
                    block = p.BlockBindings[block.RawID];
                }
                bool canRepeat = callback(this, selMarks, state, block);

                if (canRepeat && staticCommands)
                {
                    MakeSelection(selIndex, title, state, callback, markCallback);
                }
            }
        }
コード例 #3
0
ファイル: Player.cs プロジェクト: ProtheanGod/KingMC
 public void MakeSelection(int marks, string title, object state,
                           SelectionHandler callback, SelectionMarkHandler markCallback = null)
 {
     lock (selLock) {
         selMarks        = new Vec3S32[marks];
         selTitle        = title;
         selState        = state;
         selCallback     = callback;
         selMarkCallback = markCallback;
         selIndex        = 0;
         Blockchange     = SelectionBlockChange;
         if (title != null)
         {
             InitSelectionHUD();
         }
     }
 }