ModernUO/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicHuePicker.cs
2018-09-14 08:41:38 -07:00

80 lines
2.1 KiB
C#

using Server.Gumps;
using Server.Network;
namespace Server.Items
{
public class MetallicHuePicker : Gump
{
public delegate void MetallicHuePickerCallback( Mobile from, object state, int hue );
private Mobile m_From;
private MetallicHuePickerCallback m_Callback;
private object m_State;
public void Render()
{
AddPage( 0 );
AddBackground( 0, 0, 450, 450, 0x13BE );
AddBackground( 10, 10, 430, 430, 0xBB8 );
AddHtmlLocalized( 55, 400, 200, 25, 1011036, false, false ); // OKAY
AddButton( 20, 400, 4005, 4007, 1, GumpButtonType.Reply, 0 );
AddButton( 200, 400, 4005, 4007, 2, GumpButtonType.Reply, 0 );
AddLabel( 235, 400, 0, "DEFAULT" );
AddHtmlLocalized( 55, 25, 200, 25, 1150063, false, false ); // Base/Shadow Color
AddHtmlLocalized( 260, 25, 200, 25, 1150064, false, false ); // Highlight Color
for( int row = 0; row < 13; row++ )
{
AddButton( 30, ( 65 + ( row * 25 ) ), 0x1467, 0x1468, row + 1, GumpButtonType.Page, row + 1 );
AddItem( 50, ( 65 + ( row * 25 ) ), 0x1412, 2501 + ( row * 12 ) + ( ( row == 12 ) ? 6 : 0 ) );
}
for( int page = 1; page < 14; page++ )
{
AddPage( page );
for( int row = 0; row < 12; row++ )
{
int hue = ( 2501 + ( ( page == 13 ) ? 6 : 0 ) + ( row + ( 12 * ( page - 1 ) ) ) ); /* OSI just had to skip 6 unused hues, didnt they */
AddRadio( 260, ( 65 + ( row * 25 ) ), 0xd2, 0xd3, false, hue );
AddItem( 280, ( 65 + ( row * 25 ) ), 0x1412, hue );
}
}
}
public MetallicHuePicker( Mobile from, MetallicHuePickerCallback callback, object state )
: base( 450, 450 )
{
m_From = from;
m_Callback = callback;
m_State = state;
Render();
}
public override void OnResponse( NetState sender, RelayInfo info )
{
switch( info.ButtonID )
{
case 1: // Okay
{
if ( info.Switches.Length > 0 )
{
m_Callback( m_From, m_State, info.Switches[ 0 ] );
}
break;
}
case 2: // Default
{
m_Callback( m_From, m_State, 0 );
break;
}
}
}
}
}