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); }
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)); }
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); }