예제 #1
0
        protected override DrawOp GetDrawOp(DrawArgs dArgs)
        {
            if (dArgs.Message.Length == 0)
            {
                dArgs.Player.Message("Block name is required."); return(null);
            }

            BlockID target;

            string[] parts = dArgs.Message.SplitSpaces(2);
            if (!CommandParser.GetBlockIfAllowed(dArgs.Player, parts[0], out target))
            {
                return(null);
            }

            OutlineDrawOp op = new OutlineDrawOp();

            // e.g. testing air 'above' grass - therefore op.Above needs to be false for 'up mode'
            if (dArgs.Mode == DrawMode.up)
            {
                op.Layer = false; op.Above = false;
            }
            if (dArgs.Mode == DrawMode.down)
            {
                op.Layer = false; op.Below = false;
            }
            if (dArgs.Mode == DrawMode.layer)
            {
                op.Above = false; op.Below = false;
            }
            op.Target = target;
            return(op);
        }
예제 #2
0
        bool DoOutline(Player p, Vec3S32[] marks, object state, byte type, byte extType)
        {
            DrawArgs      dArgs = (DrawArgs)state;
            OutlineDrawOp op    = new OutlineDrawOp();

            op.Block    = dArgs.block; op.ExtBlock = dArgs.extBlock;
            op.NewBlock = dArgs.newBlock; op.NewExtBlock = dArgs.newExtBlock;
            return(DrawOp.DoDrawOp(op, null, p, marks));
        }
예제 #3
0
        protected override DrawOp GetDrawOp(DrawArgs dArgs)
        {
            Player p = dArgs.Player;

            if (dArgs.Message.Length == 0)
            {
                p.Message("Block name is required."); return(null);
            }

            BlockID target;

            string[] parts = dArgs.Message.SplitSpaces(2);
            // NOTE: Don't need to check if allowed to use block here
            // (OutlineDrawOp skips all blocks that are equal to target)
            if (!CommandParser.GetBlock(p, parts[0], out target))
            {
                return(null);
            }

            OutlineDrawOp op = new OutlineDrawOp();

            // e.g. testing air 'above' grass - therefore op.Above needs to be false for 'up mode'
            if (dArgs.Mode == DrawMode.up)
            {
                op.Layer = false; op.Above = false;
            }
            if (dArgs.Mode == DrawMode.down)
            {
                op.Layer = false; op.Below = false;
            }
            if (dArgs.Mode == DrawMode.layer)
            {
                op.Above = false; op.Below = false;
            }
            op.Target = target;
            return(op);
        }