本文整理汇总了C#中CommandReader.NextBlock方法的典型用法代码示例。如果您正苦于以下问题:C# CommandReader.NextBlock方法的具体用法?C# CommandReader.NextBlock怎么用?C# CommandReader.NextBlock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CommandReader
的用法示例。
在下文中一共展示了CommandReader.NextBlock方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MakeBrush
public IBrush MakeBrush( Player player, CommandReader cmd ) {
if( player == null ) throw new ArgumentNullException( "player" );
if( cmd == null ) throw new ArgumentNullException( "cmd" );
Block block, altBlock;
cmd.NextBlock( player, true, out block );
cmd.NextBlock( player, true, out altBlock );
return new CheckeredBrush( block, altBlock );
}
示例2: MakeBrush
public IBrush MakeBrush( Player player, CommandReader cmd ) {
if( player == null ) throw new ArgumentNullException( "player" );
if( cmd == null ) throw new ArgumentNullException( "cmd" );
if( !cmd.HasNext ) {
player.Message( "ReplaceBrush usage: &H/Brush rb <Block> <BrushName>" );
return null;
}
Block block;
if( !cmd.NextBlock( player, false, out block ) ) return null;
string brushName = cmd.Next();
if( brushName == null || !CommandManager.IsValidCommandName( brushName ) ) {
player.Message( "ReplaceBrush usage: &H/Brush rb <Block> <BrushName>" );
return null;
}
IBrushFactory brushFactory = BrushManager.GetBrushFactory( brushName );
if( brushFactory == null ) {
player.Message( "Unrecognized brush \"{0}\"", brushName );
return null;
}
IBrush newBrush = brushFactory.MakeBrush( player, cmd );
if( newBrush == null ) {
return null;
}
return new ReplaceBrushBrush( block, newBrush );
}
示例3: MakeBrush
public IBrush MakeBrush(Player player, CommandReader cmd) {
if (player == null) throw new ArgumentNullException("player");
if (cmd == null) throw new ArgumentNullException("cmd");
// read the block filter list
HashSet<Block> blocks = new HashSet<Block>();
while (cmd.HasNext) {
Block block;
if (!cmd.NextBlock(player, false, out block)) {
return null;
}
if (!blocks.Add(block)) {
// just a warning -- don't abort
player.Message("{0}: {1} was specified twice!", Name, block);
}
}
// create a brush
if (blocks.Count > 0) {
return new PasteBrush(blocks.ToArray(), Not);
} else if (Not) {
player.Message("PasteNot brush requires at least 1 block.");
return null;
} else {
return new PasteBrush();
}
}
示例4: MakeBrush
public IBrush MakeBrush(Player player, CommandReader cmd) {
if (player == null)
throw new ArgumentNullException("player");
if (cmd == null)
throw new ArgumentNullException("cmd");
Stack<Block> blocks = new Stack<Block>();
while (cmd.HasNext) {
Block block;
if (!cmd.NextBlock(player, false, out block))
return null;
blocks.Push(block);
}
switch (blocks.Count) {
case 0:
player.Message("{0} brush: Please specify the replacement block type.", Name);
return null;
case 1:
return new ReplaceNotBrush(blocks.ToArray(), Block.None);
default: {
Block replacement = blocks.Pop();
return new ReplaceNotBrush(blocks.ToArray(), replacement);
}
}
}
示例5: ReadParams
public override bool ReadParams( CommandReader cmd ) {
if( cmd.HasNext ) {
Block replacement;
if( cmd.NextBlock( Player, false, out replacement ) ) {
ReplacementBlock = replacement;
} else {
return false;
}
}
Brush = this;
return true;
}
示例6: MakeBrush
public IBrush MakeBrush(Player player, CommandReader cmd) {
if (player == null) throw new ArgumentNullException("player");
if (cmd == null) throw new ArgumentNullException("cmd");
Block block, altBlock;
// first block type is required
if (!cmd.NextBlock(player, true, out block)) {
player.Message("{0}: Please specify at least one block type.", Name);
return null;
}
// second block type is optional
if (cmd.HasNext) {
if (!cmd.NextBlock(player, true, out altBlock)) return null;
} else {
altBlock = Block.None;
}
return new CheckeredBrush(block, altBlock);
}
示例7: MakeInstance
public IBrushInstance MakeInstance( Player player, CommandReader cmd, DrawOperation op ) {
if( player == null ) throw new ArgumentNullException( "player" );
if( cmd == null ) throw new ArgumentNullException( "cmd" );
if( op == null ) throw new ArgumentNullException( "op" );
if( cmd.HasNext ) {
Block block, altBlock;
if( !cmd.NextBlock( player, true, out block ) ) return null;
if( cmd.HasNext ) {
if( !cmd.NextBlock( player, true, out altBlock ) ) return null;
} else {
altBlock = Block.None;
}
Block1 = block;
Block2 = altBlock;
} else if( Block1 == Block.None ) {
player.Message( "{0}: Please specify one or two blocks.", Factory.Name );
return null;
}
return new CheckeredBrush( this );
}
示例8: MakeBrush
public IBrush MakeBrush(Player player, CommandReader cmd) {
if (player == null) throw new ArgumentNullException("player");
if (cmd == null) throw new ArgumentNullException("cmd");
List<Block> blocks = new List<Block>();
while (cmd.HasNext) {
Block block;
if (!cmd.NextBlock(player, true, out block)) {
return null;
}
blocks.Add(block);
}
return new NormalBrush(blocks.ToArray());
}
示例9: MakeBrush
public IBrush MakeBrush( Player player, CommandReader cmd ) {
if( player == null ) throw new ArgumentNullException( "player" );
if( cmd == null ) throw new ArgumentNullException( "cmd" );
Stack<Block> blocks = new Stack<Block>();
while( cmd.HasNext ) {
Block block;
if( !cmd.NextBlock( player, false, out block ) ) return null;
blocks.Push( block );
}
if( blocks.Count == 0 ) {
return new ReplaceNotBrush();
} else if( blocks.Count == 1 ) {
return new ReplaceNotBrush( blocks.ToArray(), Block.None );
} else {
Block replacement = blocks.Pop();
return new ReplaceNotBrush( blocks.ToArray(), replacement );
}
}
示例10: ReadParams
public override bool ReadParams(CommandReader cmd) {
if (Player.GetCopyState() == null) {
Player.Message("Nothing to paste! Copy something first.");
return false;
}
List<Block> blocks = new List<Block>();
while (cmd.HasNext) {
Block block;
if (!cmd.NextBlock(Player, false, out block)) return false;
blocks.Add(block);
}
if (blocks.Count > 0) {
Blocks = blocks.ToArray();
} else if (Not) {
Player.Message("PasteNot requires at least 1 block.");
return false;
}
Brush = this;
return true;
}
示例11: MakeInstance
public IBrushInstance MakeInstance( Player player, CommandReader cmd, DrawOperation op ) {
if( player == null ) throw new ArgumentNullException( "player" );
if( cmd == null ) throw new ArgumentNullException( "cmd" );
if( op == null ) throw new ArgumentNullException( "op" );
Stack<Block> blocks = new Stack<Block>();
while( cmd.HasNext ) {
Block block;
if( !cmd.NextBlock( player, false, out block ) ) return null;
blocks.Push( block );
}
if( blocks.Count == 0 && Blocks == null ) {
player.Message( "ReplaceNot brush requires at least 1 block." );
return null;
}
if( blocks.Count > 0 ) {
if( blocks.Count > 1 ) Replacement = blocks.Pop();
Blocks = blocks.ToArray();
}
return new ReplaceNotBrush( this );
}
示例12: MakeInstance
public IBrushInstance MakeInstance( Player player, CommandReader cmd, DrawOperation op ) {
if( player == null ) throw new ArgumentNullException( "player" );
if( cmd == null ) throw new ArgumentNullException( "cmd" );
if( op == null ) throw new ArgumentNullException( "op" );
if( cmd.HasNext ) {
Block block;
if( !cmd.NextBlock( player, false, out block ) ) return null;
string brushName = cmd.Next();
if( brushName == null || !CommandManager.IsValidCommandName( brushName ) ) {
player.Message( "ReplaceBrush usage: &H/Brush rb <Block> <BrushName>" );
return null;
}
IBrushFactory brushFactory = BrushManager.GetBrushFactory( brushName );
if( brushFactory == null ) {
player.Message( "Unrecognized brush \"{0}\"", brushName );
return null;
}
IBrush replacement = brushFactory.MakeBrush( player, cmd );
if( replacement == null ) {
return null;
}
Block = block;
Replacement = replacement;
}
ReplacementInstance = Replacement.MakeInstance( player, cmd, op );
if( ReplacementInstance == null ) return null;
return new ReplaceBrushBrush( this );
}