public InternalGump(InteriorDecorator decorator) : base(150, 50) { m_Decorator = decorator; AddBackground(0, 0, 200, 200, 2600); AddButton(50, 45, (decorator.Command == DecorateCommand.Turn ? 2154 : 2152), 2154, 1, GumpButtonType.Reply, 0); AddHtmlLocalized(90, 50, 70, 40, 1018323, false, false); // Turn AddButton(50, 95, (decorator.Command == DecorateCommand.Up ? 2154 : 2152), 2154, 2, GumpButtonType.Reply, 0); AddHtmlLocalized(90, 100, 70, 40, 1018324, false, false); // Up AddButton(50, 145, (decorator.Command == DecorateCommand.Down ? 2154 : 2152), 2154, 3, GumpButtonType.Reply, 0); AddHtmlLocalized(90, 150, 70, 40, 1018325, false, false); // Down }
public static bool CheckUse(InteriorDecorator tool, Mobile from) { /*if ( tool.Deleted || !tool.IsChildOf( from.Backpack ) ) * from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it. * else*/ if (!InHouse(from)) { from.SendLocalizedMessage(502092); // You must be in your house to do this. } else { return(true); } return(false); }
protected override void OnTarget(Mobile from, object targeted) { if (targeted is Item && InteriorDecorator.CheckUse(m_Decorator, from)) { BaseHouse house = BaseHouse.FindHouseAt(from); Item item = (Item)targeted; bool isDecorableComponent = false; if (item is AddonComponent || item is AddonContainerComponent || item is BaseAddonContainer) { object addon = null; int count = 0; if (item is AddonComponent) { AddonComponent component = (AddonComponent)item; count = component.Addon.Components.Count; addon = component.Addon; } else if (item is AddonContainerComponent) { AddonContainerComponent component = (AddonContainerComponent)item; count = component.Addon.Components.Count; addon = component.Addon; } else if (item is BaseAddonContainer) { BaseAddonContainer container = (BaseAddonContainer)item; count = container.Components.Count; addon = container; } if (count == 1 && Core.SE) { isDecorableComponent = true; } if (m_Decorator.Command == DecorateCommand.Turn) { FlipableAddonAttribute[] attributes = (FlipableAddonAttribute[])addon.GetType().GetCustomAttributes(typeof(FlipableAddonAttribute), false); if (attributes.Length > 0) { isDecorableComponent = true; } } } if (house == null || !house.IsCoOwner(from)) { from.SendLocalizedMessage(502092); // You must be in your house to do this. } else if (item.Parent != null || !house.IsInside(item)) { from.SendLocalizedMessage(1042270); // That is not in your house. } else if (!house.IsLockedDown(item) && !house.IsSecure(item) && !isDecorableComponent) { if (item is AddonComponent && m_Decorator.Command == DecorateCommand.Up) { from.SendLocalizedMessage(1042274); // You cannot raise it up any higher. } else if (item is AddonComponent && m_Decorator.Command == DecorateCommand.Down) { from.SendLocalizedMessage(1042275); // You cannot lower it down any further. } else { from.SendLocalizedMessage(1042271); // That is not locked down. } } else if (item is VendorRentalContract) { from.SendLocalizedMessage(1062491); // You cannot use the house decorator on that object. } else if (item.TotalWeight + item.PileWeight > 100) { from.SendLocalizedMessage(1042272); // That is too heavy. } else { switch (m_Decorator.Command) { case DecorateCommand.Up: Up(item, from); break; case DecorateCommand.Down: Down(item, from); break; case DecorateCommand.Turn: Turn(item, from); break; } } } from.Target = new InternalTarget(m_Decorator); }
public InternalTarget(InteriorDecorator decorator) : base(-1, false, TargetFlags.None) { CheckLOS = false; m_Decorator = decorator; }