示例#1
0
        private void OnPlayerJoin(IPlayer player)
        {
            fromPlayer = player as IServerPlayer;

            WorldEditWorkspace workspace = GetOrCreateWorkSpace(player);

            IBlockAccessorRevertable revertableBlockAccess = sapi.World.GetBlockAccessorRevertable(true, true);

            // Initialize all tools once to build up the workspace for the client gui tool options
            foreach (var val in ToolRegistry.ToolTypes)
            {
                ToolRegistry.InstanceFromType(val.Key, workspace, revertableBlockAccess);
            }


            if (workspace.ToolsEnabled)
            {
                if (workspace.ToolInstance != null)
                {
                    EnumHighlightBlocksMode mode = EnumHighlightBlocksMode.CenteredToSelectedBlock;
                    if (workspace.ToolOffsetMode == EnumToolOffsetMode.Attach)
                    {
                        mode = EnumHighlightBlocksMode.AttachedToSelectedBlock;
                    }

                    sapi.World.HighlightBlocks(player, (int)EnumHighlightSlot.Brush, workspace.ToolInstance.GetBlockHighlights(this), workspace.ToolInstance.GetBlockHighlightColors(this), mode);
                }
            }
            else
            {
                workspace.HighlightSelectedArea();
            }
        }
示例#2
0
        public void ResendBlockHighlights(WorldEdit we)
        {
            var player = world.PlayerByUid(PlayerUID);

            HighlightSelectedArea();

            if (ToolsEnabled)
            {
                EnumHighlightBlocksMode mode = EnumHighlightBlocksMode.CenteredToSelectedBlock;
                if (ToolOffsetMode == EnumToolOffsetMode.Attach)
                {
                    mode = EnumHighlightBlocksMode.AttachedToSelectedBlock;
                }
                if (ToolInstance != null)
                {
                    world.HighlightBlocks(player, (int)EnumHighlightSlot.Brush, ToolInstance.GetBlockHighlights(we), ToolInstance.GetBlockHighlightColors(we), mode, EnumHighlightShape.Arbitrary);
                }
            }
            else
            {
                world.HighlightBlocks(player, (int)EnumHighlightSlot.Brush, new List <BlockPos>(), new List <int>());
            }
        }
示例#3
0
        public void ResendBlockHighlights()
        {
            WorldEditWorkspace workspace = GetOrCreateWorkSpace(fromPlayer);

            HighlightSelectedArea(workspace, fromPlayer);

            if (workspace.ToolsEnabled)
            {
                EnumHighlightBlocksMode mode = EnumHighlightBlocksMode.CenteredToSelectedBlock;
                if (workspace.ToolOffsetMode == EnumToolOffsetMode.Attach)
                {
                    mode = EnumHighlightBlocksMode.AttachedToSelectedBlock;
                }
                if (workspace.ToolInstance != null)
                {
                    sapi.World.HighlightBlocks(fromPlayer, (int)EnumHighlightSlot.Brush, workspace.ToolInstance.GetBlockHighlights(this), workspace.ToolInstance.GetBlockHighlightColors(this), mode, EnumHighlightShape.Arbitrary);
                }
            }
            else
            {
                sapi.World.HighlightBlocks(fromPlayer, (int)EnumHighlightSlot.Brush, new List <BlockPos>(), new List <int>());
            }
        }