From 6e10b22bbb24ec9d3c69de5811deef05ff2accf0 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Wed, 31 Aug 2016 09:13:09 +1000 Subject: [PATCH] Make /splace use held block (Thanks FabTheZen), also add some more aliases for /imageprint. --- Commands/building/CmdImageprint.cs | 4 ++++ Commands/building/CmdSPlace.cs | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Commands/building/CmdImageprint.cs b/Commands/building/CmdImageprint.cs index c71a212ba..3aa056dd3 100644 --- a/Commands/building/CmdImageprint.cs +++ b/Commands/building/CmdImageprint.cs @@ -31,6 +31,10 @@ namespace MCGalaxy.Commands.Building { public override string type { get { return CommandTypes.Building; } } public override bool museumUsable { get { return false; } } public override LevelPermission defaultRank { get { return LevelPermission.Admin; } } + public override CommandAlias[] Aliases { + get { return new[] { new CommandAlias("imgprint"), new CommandAlias("printimg"), + new CommandAlias("imgdraw"), new CommandAlias("drawimg") }; } + } public CmdImageprint() { } public override void Use(Player p, string message) { diff --git a/Commands/building/CmdSPlace.cs b/Commands/building/CmdSPlace.cs index e4e0811e4..377f8a486 100644 --- a/Commands/building/CmdSPlace.cs +++ b/Commands/building/CmdSPlace.cs @@ -69,18 +69,21 @@ namespace MCGalaxy.Commands.Building { ushort endX = (ushort)(m[0].X + dirX * distance); ushort endY = (ushort)(m[0].Y + dirY * distance); ushort endZ = (ushort)(m[0].Z + dirZ * distance); - p.level.UpdateBlock(p, endX, endY, endZ, Block.rock, 0, true); + + byte heldExt = 0; + byte heldBlock = p.GetActualHeldBlock(out heldExt); + p.level.UpdateBlock(p, endX, endY, endZ, heldBlock, heldExt, true); if (interval > 0) { int x = m[0].X, y = m[0].Y, z = m[0].Z; int delta = 0; while (x >= 0 && y >= 0 && z >= 0 && x < p.level.Width && y < p.level.Height && z < p.level.Length && delta < distance) { - p.level.UpdateBlock(p, (ushort)x, (ushort)y, (ushort)z, Block.rock, 0); + p.level.UpdateBlock(p, (ushort)x, (ushort)y, (ushort)z, heldBlock, heldExt, true); x += dirX * interval; y += dirY * interval; z += dirZ * interval; delta = Math.Abs(x - m[0].X) + Math.Abs(y - m[0].Y) + Math.Abs(z - m[0].Z); } } else { - p.level.UpdateBlock(p, (ushort)m[0].X, (ushort)m[0].Y, (ushort)m[0].Z, Block.rock, 0, true); + p.level.UpdateBlock(p, (ushort)m[0].X, (ushort)m[0].Y, (ushort)m[0].Z, heldBlock, heldExt, true); } Player.Message(p, "Placed stone blocks {0} apart.", interval > 0 ? interval : distance); @@ -91,7 +94,7 @@ namespace MCGalaxy.Commands.Building { public override void Help(Player p) { Player.Message(p, "%T/splace [distance] [interval]"); - Player.Message(p, "%HMeasures a set [distance] and places a stone block at each end."); + Player.Message(p, "%HMeasures a set [distance] and places your held block at each end."); Player.Message(p, "%HOptionally place a block at set [interval] between them."); } }