Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
 string FormatSelectionMark(Vec3S32 P)
 {
     return(": &S(" + P.X + ", " + P.Y + ", " + P.Z + ")");
 }