include library.hue; include library.sui; include library.utils; const string_id PCOLOR = new string_id("sui", "set_primary_color"); const string_id SCOLOR = new string_id("sui", "set_secondary_color"); trigger OnObjectMenuRequest(obj_id player, menu_info mi) { obj_id droid = self; if ( !utils.isNestedWithin(droid, player) ) return SCRIPT_CONTINUE; int mnuPrimaryColor = mi.addRootMenu(menu_info_types.SERVER_MENU1, PCOLOR); int mnuSecondaryColor = mi.addRootMenu(menu_info_types.SERVER_MENU2, SCOLOR); return SCRIPT_CONTINUE; } trigger OnObjectMenuSelect(obj_id player, int item) { obj_id droid = self; if ( !utils.isNestedWithin(droid, player) ) return SCRIPT_CONTINUE; if ( item == menu_info_types.SERVER_MENU1 ) { sui.colorize(droid, player, droid, hue.INDEX_1, "handlePrimaryColorize"); } if ( item == menu_info_types.SERVER_MENU2 ) { sui.colorize(droid, player, droid, hue.INDEX_2, "handleSecondaryColorize"); } return SCRIPT_CONTINUE; } messageHandler handlePrimaryColorize() { obj_id droid = self; int idx = sui.getColorPickerIndex(params); int bp = sui.getIntButtonPressed(params); obj_id player = sui.getPlayerId(params); if ( bp == sui.BP_CANCEL ) { return SCRIPT_CONTINUE; } if ( idx > -1 ) { custom_var myVar = getCustomVarByName(droid, hue.INDEX_1); if (myVar != null && myVar.isPalColor()) { palcolor_custom_var pcVar = (palcolor_custom_var)myVar; pcVar.setValue(idx); } } return SCRIPT_CONTINUE; } messageHandler handleSecondaryColorize() { obj_id droid = self; int idx = sui.getColorPickerIndex(params); int bp = sui.getIntButtonPressed(params); obj_id player = sui.getPlayerId(params); if ( bp == sui.BP_CANCEL ) { return SCRIPT_CONTINUE; } if ( idx > -1 ) { custom_var myVar = getCustomVarByName(droid, hue.INDEX_2); if (myVar != null && myVar.isPalColor()) { palcolor_custom_var pcVar = (palcolor_custom_var)myVar; pcVar.setValue(idx); } } return SCRIPT_CONTINUE; }