mirror of
https://git.stillkill.net/MinecraftLeak/MinecraftLegends.git
synced 2026-10-22 13:22:20 +01:00
1129 lines
34 KiB
JSON
1129 lines
34 KiB
JSON
/********************************************************
|
|
+* (c) Mojang. All rights reserved *
|
|
+* (c) Microsoft. All rights reserved. *
|
|
+*********************************************************/
|
|
|
|
{
|
|
"namespace": "npc_interact",
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Common
|
|
//---------------------------------------------------------------------------
|
|
"multiline_text_edit_control@common.multiline_text_edit_box": {
|
|
"anchor_from": "center",
|
|
"anchor_to": "center",
|
|
"$place_holder_text": "npcscreen.addtext",
|
|
"$cancel_button_mapping|default": "button.menu_exit",
|
|
"property_bag": {
|
|
"#property_field": "#item_name"
|
|
},
|
|
// Same as in ui_common, but reroute menu_cancel to close so we can make it go back/save/close appropriately
|
|
"button_mappings": [
|
|
{
|
|
"from_button_id": "button.menu_select",
|
|
"to_button_id": "button.menu_select",
|
|
"handle_select": true,
|
|
"handle_deselect": true,
|
|
"mapping_type": "pressed"
|
|
},
|
|
{
|
|
"from_button_id": "button.menu_ok",
|
|
"to_button_id": "button.menu_select",
|
|
"handle_select": true,
|
|
"handle_deselect": false,
|
|
"mapping_type": "pressed"
|
|
},
|
|
{
|
|
"from_button_id": "button.menu_cancel",
|
|
"to_button_id": "$cancel_button_mapping",
|
|
"handle_select": false,
|
|
"handle_deselect": true,
|
|
"mapping_type": "global"
|
|
}
|
|
]
|
|
},
|
|
|
|
"text_edit_control@common.text_edit_box": {
|
|
"anchor_from": "top_left",
|
|
"anchor_to": "top_left",
|
|
"property_bag": {
|
|
"#property_field": "#item_name"
|
|
}
|
|
},
|
|
|
|
"label_padding@common.empty_panel": {
|
|
"size": [ "100%", 1 ]
|
|
},
|
|
|
|
// Stack panel under title bar that fills the frame
|
|
"main_stack_panel": {
|
|
"type": "stack_panel",
|
|
"orientation": "vertical",
|
|
"layer": 1,
|
|
"anchor_from": "top_middle",
|
|
"anchor_to": "top_middle",
|
|
"size": [ "100% - 8px", "100%c" ]
|
|
},
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Skin picker
|
|
//---------------------------------------------------------------------------
|
|
"skin_button": {
|
|
"type": "button",
|
|
|
|
"$focus_id|default": "",
|
|
"$focus_override_down|default": "",
|
|
"$focus_override_up|default": "",
|
|
"$focus_override_left|default": "",
|
|
"$focus_override_right|default": "",
|
|
"focus_identifier": "$focus_id",
|
|
"focus_change_down": "$focus_override_down",
|
|
"focus_change_up": "$focus_override_up",
|
|
"focus_change_left": "$focus_override_left",
|
|
"focus_change_right": "$focus_override_right",
|
|
"focus_enabled": true,
|
|
|
|
"bindings": [
|
|
{
|
|
"binding_type": "collection_details",
|
|
"binding_collection_name": "skins_collection",
|
|
"binding_collection_prefix": "skins"
|
|
}
|
|
],
|
|
"button_mappings": [
|
|
{
|
|
"from_button_id": "button.menu_select",
|
|
"to_button_id": "button.view_skin",
|
|
"mapping_type": "pressed"
|
|
},
|
|
{
|
|
"from_button_id": "button.menu_ok",
|
|
"to_button_id": "button.view_skin",
|
|
"mapping_type": "focused"
|
|
},
|
|
{
|
|
"to_button_id": "button.skin_unhovered",
|
|
"mapping_type": "pressed"
|
|
},
|
|
{
|
|
"to_button_id": "button.skin_hovered",
|
|
"mapping_type": "pressed"
|
|
}
|
|
]
|
|
},
|
|
|
|
"skin_model": {
|
|
"type": "custom",
|
|
"renderer": "paper_doll_renderer",
|
|
"layer": 5,
|
|
"anchor_from": "bottom_middle",
|
|
"anchor_to": "bottom_middle",
|
|
"size": [ "100%", "100%" ],
|
|
"offset": [ 0, -10 ],
|
|
"use_selected_skin": false,
|
|
"enable_scissor_test": true,
|
|
|
|
"property_bag": {
|
|
"entity_type": "npc"
|
|
},
|
|
"bindings": [
|
|
{
|
|
"binding_type": "collection",
|
|
"binding_collection_name": "skins_collection",
|
|
"binding_name": "#skin_index"
|
|
}
|
|
]
|
|
},
|
|
|
|
"skin_model_clipper": {
|
|
"type": "panel",
|
|
"anchor_from": "top_left",
|
|
"anchor_to": "top_left",
|
|
"size": [ "100%", "100% - 2px" ],
|
|
"offset": [ 0, 2 ],
|
|
"clips_children": true
|
|
},
|
|
|
|
"skins_grid_item": {
|
|
"type": "panel",
|
|
"anchor_from": "bottom_left",
|
|
"anchor_to": "bottom_left",
|
|
"size": [ "default", "100%" ],
|
|
"controls": [
|
|
{
|
|
"clip@npc_interact.skin_model_clipper": {
|
|
"controls": [
|
|
{
|
|
"model@npc_interact.skin_model": {}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{ "button@npc_interact.skin_button": {} },
|
|
{
|
|
// Frame that appears around this item if it is the selected one
|
|
"selectFrame@common.focus_border_white": {
|
|
"size": [ "100% - 1px", "100% - 2px" ],
|
|
"bindings": [
|
|
{
|
|
"binding_type": "collection",
|
|
"binding_name": "#skin_visible",
|
|
"binding_name_override": "#visible",
|
|
"binding_collection_name": "skins_collection"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
"skins_grid": {
|
|
"type": "grid",
|
|
"anchor_from": "bottom_middle",
|
|
"anchor_to": "bottom_middle",
|
|
"offset": [ 0, 0 ],
|
|
"size": [ 160, 65 ],
|
|
"grid_item_template": "npc_interact.skins_grid_item",
|
|
"grid_dimension_binding": "#skins_grid_dimensions",
|
|
"collection_name": "skins_collection",
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#skins_grid_dimensions"
|
|
}
|
|
]
|
|
},
|
|
|
|
"cycle_pack_button@common_buttons.light_glyph_button": {
|
|
"$button_content": "skin_picker.chevron_image"
|
|
},
|
|
|
|
"cycle_pack_left_button@npc_interact.cycle_pack_button": {
|
|
"anchor_from": "bottom_left",
|
|
"anchor_to": "bottom_left",
|
|
"$chevron_image_name": "textures/ui/chevron_left",
|
|
"$pressed_button_name": "button.cycle_pack_left"
|
|
},
|
|
|
|
"cycle_pack_right_button@npc_interact.cycle_pack_button": {
|
|
"anchor_from": "bottom_right",
|
|
"anchor_to": "bottom_right",
|
|
"$chevron_image_name": "textures/ui/chevron_right",
|
|
"$pressed_button_name": "button.cycle_pack_right"
|
|
},
|
|
|
|
"banner_fill": {
|
|
"type": "image",
|
|
"texture": "textures/ui/Banners"
|
|
},
|
|
|
|
"skin_picker@npc_interact.banner_fill": {
|
|
"anchor_from": "bottom_middle",
|
|
"anchor_to": "bottom_middle",
|
|
"size": [ "100%", 65 ],
|
|
"offset": [ -1, -10 ],
|
|
"layer": 5,
|
|
"controls": [
|
|
{
|
|
"left@npc_interact.cycle_pack_left_button": {
|
|
"size": [ 30, "100%" ],
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#cycle_pack_left_button_visible",
|
|
"binding_name_override": "#visible"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"sg@npc_interact.skins_grid": {
|
|
}
|
|
},
|
|
{
|
|
"right@npc_interact.cycle_pack_right_button": {
|
|
"size": [ 30, "100%" ],
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#cycle_pack_left_button_visible",
|
|
"binding_name_override": "#visible"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Basic Panel
|
|
//---------------------------------------------------------------------------
|
|
"name_edit@npc_interact.text_edit_control": {
|
|
"max_length": 32,
|
|
"size": [ "100%", 14 ],
|
|
"$wrap": false,
|
|
"$text_edit_box_content_binding_name": "#name_text",
|
|
"$text_box_name": "#name_text_box",
|
|
"$text_edit_box_binding_condition": "once"
|
|
},
|
|
|
|
"dialog_edit@npc_interact.multiline_text_edit_control": {
|
|
"max_length": 0,
|
|
"size": [ "100%", 75 ],
|
|
"$text_edit_box_content_binding_name": "#interact_text",
|
|
"$text_box_name": "#interact_text_box",
|
|
"$text_edit_box_binding_condition": "once",
|
|
"$cancel_button_mapping": "button.exit_basic",
|
|
"constrain_to_rect": true
|
|
},
|
|
|
|
"advanced_button": {
|
|
// This button is small, and we want it to be centered, so wrap in in a panel and center relative to that
|
|
"type": "panel",
|
|
"size": [ "100%", "100%c" ],
|
|
"controls": [
|
|
{
|
|
"button@common_buttons.light_text_form_fitting_button": {
|
|
"$pressed_button_name": "button.advanced_settings",
|
|
"$button_text": "npcscreen.advancedsettings",
|
|
"layer": 2,
|
|
"anchor_from": "top_middle",
|
|
"anchor_to": "top_middle",
|
|
"offset": [ 0, 2 ]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
"basic_stack_panel@npc_interact.main_stack_panel": {
|
|
"controls": [
|
|
{ "top_pad@common.empty_panel": { "size": [ "100%", 4 ] } },
|
|
{
|
|
"name_label@edu_common.light_label": {
|
|
"text": "npcscreen.name"
|
|
}
|
|
},
|
|
{ "name_padding@npc_interact.label_padding": {} },
|
|
{ "name_edit@npc_interact.name_edit": {} },
|
|
{ "dialog_pre_padding@npc_interact.label_padding": {} },
|
|
{
|
|
"dialog_label@edu_common.light_label": {
|
|
"text": "npcscreen.dialog"
|
|
}
|
|
},
|
|
{ "dialog_post_padding@npc_interact.label_padding": {} },
|
|
{ "dialog_edit@npc_interact.dialog_edit": {} },
|
|
{ "appearance_pre_padding@npc_interact.label_padding": {} },
|
|
{
|
|
"appearance_label@edu_common.light_label": {
|
|
"text": "npcscreen.appearance"
|
|
}
|
|
},
|
|
{ "appearance_post_padding@npc_interact.label_padding": {} },
|
|
{ "skins@npc_interact.skin_picker": {} },
|
|
{ "advanced_button@npc_interact.advanced_button": {} }
|
|
]
|
|
},
|
|
|
|
"basic_content": {
|
|
// Arbitrary type, just want to group all basic controls together
|
|
"type": "panel",
|
|
"controls": [
|
|
{ "basic@npc_interact.basic_stack_panel": {} }
|
|
],
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#basic_visible",
|
|
"binding_name_override": "#visible",
|
|
"binding_type": "global"
|
|
}
|
|
]
|
|
},
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Advanced Panel
|
|
//---------------------------------------------------------------------------
|
|
"advanced_stack_panel@npc_interact.main_stack_panel": {
|
|
"controls": [
|
|
{ "top_pad@common.empty_panel": { "size": [ "100%", 4 ] } },
|
|
{ "add_help_p1@npc_interact.add_help_p1": {} },
|
|
{ "add_help_p2@npc_interact.add_help_p2": {} },
|
|
{ "actions@npc_interact.action_panel": {} },
|
|
{ "add_buttons@npc_interact.add_buttons": {} }
|
|
]
|
|
},
|
|
|
|
"action_title@edu_common.dark_label": {
|
|
"anchor_from": "top_left",
|
|
"anchor_to": "top_left"
|
|
},
|
|
|
|
"plus_icon": {
|
|
"type": "image",
|
|
"size": [ 15, 15 ],
|
|
"layer": 2,
|
|
"texture": "textures/ui/plus"
|
|
},
|
|
|
|
"plus_button@common_buttons.light_glyph_button": {
|
|
"size": [ 30, 30 ],
|
|
"layer": 1,
|
|
"$button_content": "npc_interact.plus_icon",
|
|
"$pressed_button_name": "button.expand_action_edit",
|
|
"bindings": [
|
|
{
|
|
"binding_type": "collection_details",
|
|
"binding_collection_name": "actions_collection",
|
|
"binding_collection_prefix": "actions"
|
|
}
|
|
]
|
|
},
|
|
|
|
"action_text_edit@npc_interact.multiline_text_edit_control": {
|
|
"size": [ 252, 50 ],
|
|
"max_length": 1024,
|
|
"anchor_from": "top_left",
|
|
"anchor_to": "top_left",
|
|
"$text_edit_box_content_binding_type": "collection",
|
|
"$text_edit_box_grid_collection_name": "actions_collection",
|
|
"$text_edit_box_content_binding_name": "#action_text",
|
|
"$text_box_name": "action_text_box",
|
|
"$text_edit_box_binding_condition": "visible",
|
|
"$cancel_button_mapping": "button.exit_advanced",
|
|
"enabled_newline": true
|
|
},
|
|
|
|
"maximized_action_edit@npc_interact.multiline_text_edit_control": {
|
|
"size": [ "100%", "100%" ],
|
|
"$text_edit_box_content_binding_name": "#maximized_action_text",
|
|
"$text_box_name": "maximized_action_edit_box",
|
|
"$text_edit_box_binding_condition": "visible",
|
|
"$place_holder_text": "#maximized_placeholder_text",
|
|
"$cancel_button_mapping": "button.exit_maximized",
|
|
"max_length": 1024,
|
|
"enabled_newline": true,
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#maximized_edit_visible",
|
|
"binding_name_override": "#visible"
|
|
},
|
|
{
|
|
"binding_name": "#maximized_placeholder_text"
|
|
}
|
|
]
|
|
},
|
|
|
|
"action_edit": {
|
|
"type": "stack_panel",
|
|
"orientation": "horizontal",
|
|
"size": [ "100%", "50px" ],
|
|
"controls": [
|
|
{
|
|
"text_edit@npc_interact.action_text_edit": {
|
|
"$place_holder_text": "$action_edit_placeholder"
|
|
}
|
|
},
|
|
{
|
|
"expand@npc_interact.plus_button": {
|
|
"size": [ 30, 50 ]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
"button_name_edit@npc_interact.text_edit_control": {
|
|
"max_length": 16,
|
|
"size": [ "100%", 14 ],
|
|
"$wrap": false,
|
|
"$text_edit_box_content_binding_type": "collection",
|
|
"$text_edit_box_grid_collection_name": "actions_collection",
|
|
"$text_edit_box_content_binding_name": "#button_name_text",
|
|
"$text_box_name": "button_name_edit",
|
|
"$text_edit_box_binding_condition": "once",
|
|
// Shouldn't be needed, but for some reason this control doesn't pad the label properly
|
|
"$text_edit_box_label_anchor_point": "left_middle",
|
|
"bindings": [
|
|
{
|
|
"binding_type": "collection",
|
|
"binding_name": "#button_name_edit_visible",
|
|
"binding_name_override": "#visible",
|
|
"binding_collection_name": "actions_collection"
|
|
}
|
|
]
|
|
},
|
|
|
|
"button_mode_toggle@edu_common.slider_toggle": {
|
|
"$toggle_name": "button_mode_toggle",
|
|
"$toggle_state_binding_name": "#button_mode_enabled",
|
|
"$toggle_grid_collection_name": "actions_collection",
|
|
"$toggle_binding_type": "collection",
|
|
"bindings": [
|
|
{
|
|
"binding_type": "collection_details",
|
|
"binding_collection_name": "actions_collection",
|
|
"binding_collection_prefix": "actions"
|
|
},
|
|
{
|
|
"binding_type": "$toggle_binding_type",
|
|
"binding_condition": "$toggle_binding_condition",
|
|
"binding_collection_name": "$toggle_grid_collection_name",
|
|
"binding_name": "$toggle_state_binding_name",
|
|
"binding_name_override": "#toggle_state"
|
|
},
|
|
{
|
|
"binding_type": "$toggle_enabled_binding_type",
|
|
"binding_condition": "$toggle_enabled_binding_condition",
|
|
"binding_collection_name": "$toggle_grid_collection_name",
|
|
"binding_name": "$toggle_enabled_binding_name",
|
|
"binding_name_override": "#enabled"
|
|
}
|
|
]
|
|
},
|
|
|
|
"button_mode": {
|
|
"type": "stack_panel",
|
|
"orientation": "horizontal",
|
|
"size": [ "100%", 16 ],
|
|
"controls": [
|
|
{ "toggle@npc_interact.button_mode_toggle": {} },
|
|
// Can't use $option_label because the text has to be dark
|
|
{
|
|
"offset_wrap@common.empty_panel": {
|
|
"size": [ "100%c", "100%c" ],
|
|
"controls": [
|
|
{
|
|
"label@edu_common.dark_label": {
|
|
"text": "npcscreen.action.buttonmode",
|
|
"offset": [ 2, 3 ]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"bindings": [
|
|
{
|
|
// Actions on close are not allowed for url actions, so hide this toggle in that case
|
|
"binding_type": "collection",
|
|
"binding_name": "(not #is_url_action)",
|
|
"binding_name_override": "#visible",
|
|
"binding_collection_name": "actions_collection"
|
|
}
|
|
]
|
|
},
|
|
|
|
"button_name_label@edu_common.dark_label": {
|
|
"text": "npcscreen.action.buttonname",
|
|
"bindings": [
|
|
{
|
|
// Actions on close are not allowed for url actions, so show this label instead
|
|
"binding_type": "collection",
|
|
"binding_name": "#is_url_action",
|
|
"binding_name_override": "#visible",
|
|
"binding_collection_name": "actions_collection"
|
|
}
|
|
]
|
|
},
|
|
|
|
"action_template@npc_interact.main_stack_panel": {
|
|
"size": [ "100% - 12px", "100%c" ],
|
|
"offset": [ 0, 5 ],
|
|
"controls": [
|
|
{
|
|
"title@npc_interact.action_title": {
|
|
"text": "$action_title"
|
|
}
|
|
},
|
|
{ "label_pad@common.empty_panel": { "size": [ "100%", 2 ] } },
|
|
{ "edit@npc_interact.action_edit": {} },
|
|
{ "edit_pad@common.empty_panel": { "size": [ "100%", 3 ] } },
|
|
{ "button_mode@npc_interact.button_mode": {} },
|
|
{ "mode_pad@common.empty_panel": { "size": [ "100%", 3 ] } },
|
|
{ "button_name_label@npc_interact.button_name_label": {} },
|
|
{ "button_name@npc_interact.button_name_edit": {} }
|
|
]
|
|
},
|
|
|
|
"action_command@npc_interact.action_template": {
|
|
"$action_title": "npcscreen.action.command.title",
|
|
"$action_edit_placeholder": "npcscreen.action.command.placeholder",
|
|
"bindings": [
|
|
{
|
|
// All action types are in the control, but only one is visible through bindings
|
|
"binding_type": "collection",
|
|
"binding_name": "#is_command_action",
|
|
"binding_name_override": "#visible",
|
|
"binding_collection_name": "actions_collection"
|
|
},
|
|
{
|
|
"binding_name": "#commands_enabled",
|
|
"binding_name_override": "#enabled"
|
|
}
|
|
]
|
|
},
|
|
|
|
"action_url@npc_interact.action_template": {
|
|
"$action_title": "npcscreen.action.url.title",
|
|
"$action_edit_placeholder": "npcscreen.action.url.placeholder",
|
|
"bindings": [
|
|
{
|
|
// All action types are in the control, but only one is visible through bindings
|
|
"binding_type": "collection",
|
|
"binding_name": "#is_url_action",
|
|
"binding_name_override": "#visible",
|
|
"binding_collection_name": "actions_collection"
|
|
}
|
|
]
|
|
},
|
|
|
|
"padded_action": {
|
|
"type": "stack_panel",
|
|
"size": [ "100%", "100%c" ],
|
|
"orientation": "vertical",
|
|
"controls": [
|
|
{ "action@npc_interact.action": {} },
|
|
{
|
|
"padding": {
|
|
"type": "panel",
|
|
"size": [ "100%", 10 ]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
"action": {
|
|
"type": "image",
|
|
"texture": "textures/ui/dialog_background_opaque",
|
|
"size": [ "100%", "100%c" ],
|
|
"controls": [
|
|
{
|
|
"trash@edu_common.photo_trash_button": {
|
|
"anchor_from": "top_right",
|
|
"anchor_to": "top_right",
|
|
"offset": [ -4, 4 ],
|
|
"button_mappings": [
|
|
{
|
|
"from_button_id": "button.menu_select",
|
|
"to_button_id": "button.delete_action",
|
|
"mapping_type": "pressed"
|
|
}
|
|
],
|
|
"bindings": [
|
|
{
|
|
"binding_type": "collection_details",
|
|
"binding_collection_name": "actions_collection",
|
|
"binding_collection_prefix": "actions"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{ "command@npc_interact.action_command": {} },
|
|
{ "url@npc_interact.action_url": {} }
|
|
]
|
|
},
|
|
|
|
// Collection of "actions", meaning url or command buttons
|
|
"action_panel": {
|
|
"type": "stack_panel",
|
|
"anchor_from": "top_left",
|
|
"anchor_to": "top_left",
|
|
"size": [ "100%", "100%c" ],
|
|
"factory": {
|
|
"name": "action_item_factory",
|
|
"control_name": "npc_interact.padded_action"
|
|
},
|
|
"collection_name": "actions_collection",
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#action_count",
|
|
"binding_name_override": "#collection_length"
|
|
}
|
|
]
|
|
},
|
|
|
|
"add_button@common_buttons.light_text_button": {
|
|
"$pressed_button_name": "button.add_url",
|
|
"$button_text": "npcscreen.addurl",
|
|
"size": [ 135, 20 ]
|
|
},
|
|
|
|
"help_label@edu_common.light_label": {
|
|
"size": [ 135, "default" ]
|
|
},
|
|
|
|
// Help text that is visible when no actions have been added
|
|
"add_help_section": {
|
|
"type": "stack_panel",
|
|
"orientation": "horizontal",
|
|
"size": [ "100%", "100%c" ],
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#help_visible",
|
|
"binding_name_override": "#visible"
|
|
}
|
|
],
|
|
"controls": [
|
|
{
|
|
"url@npc_interact.help_label": {
|
|
"text": "$url_text"
|
|
}
|
|
},
|
|
{ "padding@common.empty_panel": { "size": [ 23, 0 ] } },
|
|
{
|
|
"command@npc_interact.help_label": {
|
|
"text": "$command_text"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
"add_help_p1@npc_interact.add_help_section": {
|
|
"$url_text": "npcscreen.help.url.a",
|
|
"$command_text": "npcscreen.help.command.a"
|
|
},
|
|
|
|
"add_help_p2@npc_interact.add_help_section": {
|
|
"$url_text": "npcscreen.help.url.b",
|
|
"$command_text": "npcscreen.help.command.b"
|
|
},
|
|
|
|
"add_buttons": {
|
|
"type": "stack_panel",
|
|
"orientation": "horizontal",
|
|
"size": [ "100%", "100%c" ],
|
|
"controls": [
|
|
{
|
|
"add_url@npc_interact.add_button": {
|
|
"$pressed_button_name": "button.add_url",
|
|
"$button_text": "npcscreen.addurl"
|
|
}
|
|
},
|
|
{ "padding@common.empty_panel": { "size": [ 23, 0 ] } },
|
|
{
|
|
"add_command@npc_interact.add_button": {
|
|
"$pressed_button_name": "button.add_command",
|
|
"$button_text": "#add_command_text",
|
|
"$button_text_binding_type": "global",
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#commands_enabled",
|
|
"binding_name_override": "#enabled"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#add_buttons_enabled",
|
|
"binding_name_override": "#enabled"
|
|
}
|
|
]
|
|
},
|
|
|
|
"advanced_scrolling_panel@common.scrolling_panel": {
|
|
"$show_background": false,
|
|
"size": [ "100%", "100%" ],
|
|
"$scrolling_content": "npc_interact.advanced_scrolling_content"
|
|
},
|
|
|
|
"advanced_scrolling_content": {
|
|
// Arbitrary type, just want to group all advanced controls together
|
|
"type": "panel",
|
|
"size": [ "100%", "100%c" ],
|
|
"controls": [
|
|
{ "advanced@npc_interact.advanced_stack_panel": {} }
|
|
],
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#advanced_visible",
|
|
"binding_name_override": "#visible",
|
|
"binding_type": "global"
|
|
}
|
|
]
|
|
},
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Student Panel
|
|
//---------------------------------------------------------------------------
|
|
"message_model@npc_interact.skin_model": {
|
|
// This window has a zoomed in top portion of the paper doll, so offset down and oversize a bit to zoom in
|
|
"offset": [ 0, 18 ],
|
|
"size": [ "100%", "150%" ],
|
|
"rotation": "custom_y",
|
|
"bindings": [
|
|
{
|
|
"binding_type": "global",
|
|
// Binding itself doesn't do anything, but the callback is used to fill the property bag
|
|
"binding_name": "#student_model_update"
|
|
}
|
|
]
|
|
},
|
|
|
|
"clipped_message_model@npc_interact.skin_model_clipper": {
|
|
"controls": [
|
|
{ "model@npc_interact.message_model": {} }
|
|
]
|
|
},
|
|
|
|
"message_model_window@npc_interact.banner_fill": {
|
|
"anchor_from": "top_left",
|
|
"anchor_to": "top_left",
|
|
"size": [ 109, "100%" ],
|
|
"controls": [
|
|
{ "model@npc_interact.clipped_message_model": {} }
|
|
]
|
|
},
|
|
|
|
"student_message_bubble": {
|
|
"type": "image",
|
|
"texture": "textures/ui/dialog_bubble",
|
|
"anchor_from": "top_right",
|
|
"anchor_to": "top_right",
|
|
"size": [ 222, "100%" ],
|
|
"controls": [
|
|
{
|
|
"message@edu_common.dark_label": {
|
|
"offset": [ 8, 4 ],
|
|
"size": [ "100% - 14px", "100% - 4px" ],
|
|
"text": "#text",
|
|
// Same binding as for the editable view
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#interact_text",
|
|
"binding_type": "global",
|
|
"binding_name_override": "#text"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
// Point on the speach bubble, positioned right at the edge of the bubble pointing into the paper doll window
|
|
"bubble_point": {
|
|
"type": "image",
|
|
"texture": "textures/ui/dialog_bubble_point",
|
|
"anchor_from": "right_middle",
|
|
"anchor_to": "right_middle",
|
|
"size": [ 16, 18 ],
|
|
// Minus the size of the dialog bubble
|
|
"offset": [ "-222px + 2px", "-10%" ],
|
|
"layer": 4
|
|
},
|
|
|
|
"student_message_section@common.empty_panel": {
|
|
"size": [ "100%", 100 ],
|
|
"anchor_from": "top_left",
|
|
"anchor_to": "top_left",
|
|
"controls": [
|
|
{ "model@npc_interact.message_model_window": {} },
|
|
{ "point@npc_interact.bubble_point": {} },
|
|
{ "message@npc_interact.student_message_bubble": {} }
|
|
]
|
|
},
|
|
|
|
// Wrap in panel so we can make the buttons a bit smaller for padding
|
|
"student_button@common.empty_panel": {
|
|
// Grid has 3 columns, so 1/3 size
|
|
"size": [ "33.3333%", 20 ],
|
|
"controls": [
|
|
{
|
|
"button@common_buttons.light_text_button": {
|
|
"$pressed_button_name": "button.student_button",
|
|
"layer": 4,
|
|
"size": [ "100% - 2px", "100% - 2px" ],
|
|
"bindings": [
|
|
{
|
|
"binding_type": "collection_details",
|
|
"binding_collection_name": "student_buttons_collection",
|
|
"binding_collection_prefix": "student_buttons"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
// Need to use my own label instead of button text so I can change the color
|
|
"url_label@edu_common.dark_label": {
|
|
"anchor_from": "center",
|
|
"anchor_to": "center",
|
|
"text": "#text",
|
|
"color": [ 0, 0, 1 ],
|
|
"layer": 50,
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#student_button_text",
|
|
"binding_type": "collection",
|
|
"binding_name_override": "#text",
|
|
"binding_collection_name": "student_buttons_collection"
|
|
},
|
|
{
|
|
"binding_name": "#is_url_button",
|
|
"binding_type": "collection",
|
|
"binding_name_override": "#visible",
|
|
"binding_collection_name": "student_buttons_collection"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"command_label@edu_common.dark_label": {
|
|
"anchor_from": "center",
|
|
"anchor_to": "center",
|
|
"text": "#text",
|
|
"layer": 50,
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#student_button_text",
|
|
"binding_type": "collection",
|
|
"binding_name_override": "#text",
|
|
"binding_collection_name": "student_buttons_collection"
|
|
},
|
|
{
|
|
"binding_name": "#is_command_button",
|
|
"binding_type": "collection",
|
|
"binding_name_override": "#visible",
|
|
"binding_collection_name": "student_buttons_collection"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#student_button_visible",
|
|
"binding_type": "collection",
|
|
"binding_name_override": "#visible",
|
|
"binding_collection_name": "student_buttons_collection"
|
|
}
|
|
]
|
|
},
|
|
|
|
"student_buttons@common.empty_panel": {
|
|
"size": [ "100%", "100%c" ],
|
|
"controls": [
|
|
{
|
|
"buttons": {
|
|
"type": "grid",
|
|
// A bit bigger than 100% so edges line up with other ui, as the buttons are -2px smaller for padding
|
|
"size": [ "100% + 2px", "default" ],
|
|
"anchor_from": "top_middle",
|
|
"anchor_to": "top_middle",
|
|
"grid_item_template": "npc_interact.student_button",
|
|
"grid_dimension_binding": "#student_button_grid_dimensions",
|
|
"collection_name": "student_buttons_collection",
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#student_button_grid_dimensions"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
"student_stack_panel@npc_interact.main_stack_panel": {
|
|
"size": [ "100%", "100%c" ],
|
|
"controls": [
|
|
{ "top_pad@common.empty_panel": { "size": [ "100%", 4 ] } },
|
|
{ "message@npc_interact.student_message_section": {} },
|
|
{ "message_pad@common.empty_panel": { "size": [ "100%", 4 ] } },
|
|
{ "buttons@npc_interact.student_buttons": {} }
|
|
]
|
|
},
|
|
|
|
"student_view_content": {
|
|
// Arbitrary type, just want to group all advanced controls together
|
|
"type": "panel",
|
|
"size": [ "100%", "100%c" ],
|
|
"controls": [
|
|
{ "student@npc_interact.student_stack_panel": {} }
|
|
],
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#student_view_visible",
|
|
"binding_name_override": "#visible",
|
|
"binding_type": "global"
|
|
}
|
|
]
|
|
},
|
|
|
|
// -----------------------------------------------
|
|
// Base window
|
|
// -----------------------------------------------
|
|
"close_button_base": {
|
|
"type": "button",
|
|
"size": [ 21, 21 ],
|
|
"layer": 10,
|
|
"offset": [ -2, 2 ],
|
|
"locked_control": "",
|
|
"default_control": "default",
|
|
"hover_control": "hover",
|
|
"pressed_control": "pressed",
|
|
"focus_enabled": false,
|
|
"$close_button_panel_size": [ 15, 15 ],
|
|
"$close_button_to_button_id": "button.menu_exit",
|
|
|
|
"button_mappings": [
|
|
{
|
|
"from_button_id": "button.menu_select",
|
|
"to_button_id": "$close_button_to_button_id",
|
|
"mapping_type": "pressed"
|
|
},
|
|
{
|
|
"from_button_id": "button.menu_ok",
|
|
"to_button_id": "$close_button_to_button_id",
|
|
"mapping_type": "focused"
|
|
},
|
|
{
|
|
// Catch ESC here too
|
|
"from_button_id": "button.menu_cancel",
|
|
"to_button_id": "$close_button_to_button_id",
|
|
"mapping_type": "global"
|
|
}
|
|
],
|
|
"controls": [
|
|
{
|
|
"default@common.close_button_panel": {
|
|
"$close_button_texture": "$default_texture"
|
|
}
|
|
},
|
|
{
|
|
"hover@common.close_button_panel": {
|
|
"$close_button_texture": "$hover_texture"
|
|
}
|
|
},
|
|
{
|
|
"pressed@common.close_button_panel": {
|
|
"$close_button_texture": "$pressed_texture"
|
|
}
|
|
}
|
|
],
|
|
"bindings": [
|
|
{
|
|
"binding_name": "$visibility_binding_name",
|
|
"binding_name_override": "#visible"
|
|
}
|
|
]
|
|
},
|
|
|
|
"close_button_holder": {
|
|
"type": "panel",
|
|
"size": [ "100%c", "100%c" ],
|
|
// Weird anchoring since this needs to be above the top right corner, outside the panel indent
|
|
"anchor_from": "top_right",
|
|
"anchor_to": "bottom_right",
|
|
"offset": [ 8, -2 ],
|
|
"controls": [
|
|
{
|
|
"close@common.close_button": {
|
|
"$close_button_to_button_id": "button.exit_basic",
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#basic_visible",
|
|
"binding_name_override": "#visible"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"minimize@npc_interact.close_button_base": {
|
|
"$close_button_to_button_id": "button.exit_maximized",
|
|
"$default_texture": "textures/ui/minimize",
|
|
"$hover_texture": "textures/ui/minimizeHover",
|
|
"$pressed_texture": "textures/ui/minimizePress",
|
|
"$visibility_binding_name": "#maximized_edit_visible"
|
|
}
|
|
},
|
|
{
|
|
"back@npc_interact.close_button_base": {
|
|
"$close_button_to_button_id": "button.exit_advanced",
|
|
"$default_texture": "textures/ui/back_button_default",
|
|
"$hover_texture": "textures/ui/back_button_hover",
|
|
"$pressed_texture": "textures/ui/back_button_pressed",
|
|
"$visibility_binding_name": "#advanced_visible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
"main_content@common.empty_panel": {
|
|
"controls": [
|
|
{ "basic@npc_interact.basic_content": {} },
|
|
{ "advanced@npc_interact.advanced_scrolling_panel": {} },
|
|
{ "maximized_action_edit@npc_interact.maximized_action_edit": {} },
|
|
{ "close@npc_interact.close_button_holder": {} }
|
|
]
|
|
},
|
|
|
|
"root_panel@common_dialogs.main_panel_no_buttons": {
|
|
"size": [ 325, 250 ],
|
|
"layer": 1,
|
|
"anchor_from": "center",
|
|
"anchor_to": "center",
|
|
"$title_panel": "common_dialogs.standard_title_label",
|
|
"$text_name": "#title_text",
|
|
"$title_text_binding_type": "global",
|
|
// Can't use default button because we need to change the icon to indicate if it's going to go back or close the window
|
|
"$show_close_button": false
|
|
},
|
|
|
|
"npc_screen@common.base_screen": {
|
|
"type": "screen",
|
|
"controls": [
|
|
{
|
|
// Teacher window containing basic and advanced editing screens
|
|
"teacher@npc_interact.root_panel": {
|
|
"$child_control": "npc_interact.main_content",
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#teacher_view_visible",
|
|
"binding_name_override": "#visible",
|
|
"binding_type": "global"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
// Student view is form fitting because there could be any amount of student buttons and we don't want dead space
|
|
"student@common_dialogs.form_fitting_main_panel_no_buttons": {
|
|
"size": [ 350, "100%c" ],
|
|
"$child_control": "npc_interact.student_view_content",
|
|
"$title_panel": "common_dialogs.standard_title_label",
|
|
"$text_name": "#title_text",
|
|
"$title_text_binding_type": "global",
|
|
"$close_button_to_button_id": "button.exit_student",
|
|
"$custom_background": "common_dialogs.dialog_background_opaque_with_child",
|
|
"bindings": [
|
|
{
|
|
"binding_name": "#student_view_visible",
|
|
"binding_name_override": "#visible",
|
|
"binding_type": "global"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"button_mappings": [
|
|
{
|
|
"from_button_id": "button.menu_cancel",
|
|
// The multiline text edit boxes catch exiting from all screens except student because it doesn't have any, so catch that here.
|
|
"to_button_id": "button.exit_student",
|
|
"mapping_type": "global"
|
|
},
|
|
{
|
|
"from_button_id": "button.menu_cancel",
|
|
"to_button_id": "button.menu_continue",
|
|
"mapping_type": "global"
|
|
},
|
|
{
|
|
"from_button_id": "button.menu_exit",
|
|
"to_button_id": "button.menu_continue",
|
|
"mapping_type": "global"
|
|
},
|
|
{
|
|
"from_button_id": "button.menu_vr_realign",
|
|
"to_button_id": "button.menu_vr_realign",
|
|
"mapping_type": "global",
|
|
"scope": "controller"
|
|
}
|
|
]
|
|
}
|
|
} |