protected override void OnTarget(Mobile m, object o) { IPoint3D point = (IPoint3D)o; switch (c_Type) { case TargetType.BanLoc: c_Sign.BanLoc = new Point3D(point.X, point.Y, point.Z); c_Gump.NewGump(); break; case TargetType.SignLoc: c_Sign.SignLoc = new Point3D(point.X, point.Y, point.Z); c_Sign.MoveToWorld(c_Sign.SignLoc, c_Sign.Map); c_Sign.Z -= 5; c_Sign.ShowSignPreview(); c_Gump.NewGump(); break; case TargetType.MinZ: c_Sign.MinZ = point.Z; if (c_Sign.MaxZ < c_Sign.MinZ + 19) { c_Sign.MaxZ = point.Z + 19; } if (c_Sign.MaxZ == short.MaxValue) { c_Sign.MaxZ = point.Z + 19; } c_Gump.NewGump(); break; case TargetType.MaxZ: c_Sign.MaxZ = point.Z + 19; if (c_Sign.MinZ > c_Sign.MaxZ) { c_Sign.MinZ = point.Z; } c_Gump.NewGump(); break; case TargetType.BlockOne: m.SendMessage("Now target the south eastern corner."); m.Target = new InternalTarget(c_Gump, c_Sign, TargetType.BlockTwo, new Point3D(point.X, point.Y, point.Z)); break; case TargetType.BlockTwo: c_Sign.Blocks.Add(FixRect(new Rectangle2D(c_BoundOne, new Point3D(point.X + 1, point.Y + 1, point.Z)))); c_Sign.UpdateBlocks(); c_Sign.ShowAreaPreview(m); c_Gump.NewGump(); break; } }