// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActionOpenUi {
    #[prost(string, tag = "1")]
    pub ui: ::prost::alloc::string::String,
    #[prost(int32, tag = "2")]
    pub args: i32,
    #[prost(int32, tag = "4")]
    pub store_template_id: i32,
    #[prost(int32, tag = "5")]
    pub npc_id: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActionSwitchSection {
    #[prost(uint32, tag = "1")]
    pub section: u32,
    #[prost(string, tag = "2")]
    pub transform_id: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub camera_x: u32,
    #[prost(uint32, tag = "4")]
    pub camera_y: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActionPerform {
    #[prost(uint32, tag = "1")]
    pub perform_id: u32,
    #[prost(uint32, tag = "2")]
    pub perform_id_2: u32,
    #[prost(uint32, tag = "3")]
    pub perform_id_3: u32,
    #[prost(bool, tag = "4")]
    pub black_mask: bool,
    #[prost(bool, tag = "5")]
    pub black_mask_fade_out: bool,
    #[prost(bool, tag = "6")]
    pub black_mask_fade_out_2: bool,
    #[prost(int32, tag = "7")]
    pub perform_type: i32,
    #[prost(bool, tag = "8")]
    pub special_finish: bool,
    #[prost(int32, repeated, tag = "9")]
    pub perform_list: ::prost::alloc::vec::Vec<i32>,
    #[prost(string, repeated, tag = "10")]
    pub return_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(bool, tag = "11")]
    pub chat_black_mask: bool,
    #[prost(bool, tag = "12")]
    pub change_position: bool,
    #[prost(uint32, tag = "13")]
    pub section: u32,
    #[prost(string, tag = "14")]
    pub transform: ::prost::alloc::string::String,
    #[prost(uint32, tag = "16")]
    pub avatar_id: u32,
    #[prost(uint32, tag = "17")]
    pub npc_id: u32,
    #[prost(message, optional, tag = "23")]
    pub unk_perform_field: ::core::option::Option<action_perform::UnkPerform>,
    #[prost(map = "uint32, string", tag = "25")]
    pub participators: ::std::collections::HashMap<u32, ::prost::alloc::string::String>,
}
/// Nested message and enum types in `ActionPerform`.
pub mod action_perform {
    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    pub struct UnkPerform {}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ActionShowTip {
    #[prost(uint32, tag = "1")]
    pub tip_id: u32,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ConfigShowTip {
    #[prost(uint32, tag = "1")]
    pub tip_id: u32,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ActionTriggerInteract {
    #[prost(uint32, tag = "1")]
    pub tag_id: u32,
    #[prost(uint32, tag = "2")]
    pub interact_id: u32,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ActionDownloadFullResource {}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ActionShowTeleportUi {
    #[prost(bool, tag = "1")]
    pub black_mask: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigOpenDialog {
    #[prost(bool, tag = "1")]
    pub open_event: bool,
    #[prost(bool, tag = "2")]
    pub camera_move: bool,
    #[prost(bool, tag = "3")]
    pub unk_open_dialog: bool,
    #[prost(message, optional, tag = "4")]
    pub open_param: ::core::option::Option<OpenDialogParam>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpenDialogParam {
    #[prost(bool, tag = "1")]
    pub unk_open_dialog_flag_1: bool,
    #[prost(string, tag = "2")]
    pub start_texture_sheet: ::prost::alloc::string::String,
    #[prost(bool, tag = "3")]
    pub unk_open_dialog_flag_2: bool,
    #[prost(string, tag = "4")]
    pub loop_texture_sheet: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub end_texture_sheet: ::prost::alloc::string::String,
    #[prost(bool, tag = "6")]
    pub unk_open_dialog_flag_3: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigLogText {
    #[prost(string, repeated, tag = "1")]
    pub messages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, tag = "2")]
    pub log_title: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "4")]
    pub voicelines: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ConfigCloseDialog {
    #[prost(bool, tag = "1")]
    pub camera_move: bool,
    #[prost(bool, tag = "2")]
    pub need_reset_center: bool,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ConfigVector2Int {
    #[prost(int32, tag = "1")]
    pub x: i32,
    #[prost(int32, tag = "2")]
    pub y: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigCameraMoveV2 {
    #[prost(enumeration = "CameraMove", tag = "2")]
    pub r#type: i32,
    #[prost(string, tag = "7")]
    pub radius_x: ::prost::alloc::string::String,
    #[prost(string, tag = "6")]
    pub position_offset_y: ::prost::alloc::string::String,
    #[prost(enumeration = "HollowPositionOffsetType", tag = "4")]
    pub position_offset_type: i32,
    #[prost(message, optional, tag = "9")]
    pub bound_index_x: ::core::option::Option<ConfigVector2Int>,
    #[prost(string, tag = "5")]
    pub position_offset_x: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "10")]
    pub bound_index_y: ::core::option::Option<ConfigVector2Int>,
    #[prost(bool, tag = "13")]
    pub parallel: bool,
    #[prost(string, tag = "1")]
    pub stretch_key: ::prost::alloc::string::String,
    #[prost(string, tag = "8")]
    pub radius_y: ::prost::alloc::string::String,
    #[prost(bool, tag = "12")]
    pub freeze_z: bool,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ConfigWaitSeconds {
    #[prost(float, tag = "1")]
    pub wait_time: f32,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ConfigShowPopWindow {
    #[prost(int32, tag = "1")]
    pub pop_id: i32,
    #[prost(bool, tag = "3")]
    pub show_directly: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigCameraStretch {
    #[prost(string, tag = "1")]
    pub stretch_key: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub shake_key: ::prost::alloc::string::String,
    #[prost(enumeration = "CameraMove", tag = "3")]
    pub r#type: i32,
    #[prost(bool, tag = "4")]
    pub parallel: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigPlayAnim {
    #[prost(uint32, tag = "1")]
    pub anim_id: u32,
    #[prost(message, repeated, tag = "2")]
    pub indexes: ::prost::alloc::vec::Vec<ConfigVector2Int>,
    #[prost(bool, tag = "3")]
    pub looping: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigStopAnim {
    #[prost(message, repeated, tag = "1")]
    pub indexes: ::prost::alloc::vec::Vec<ConfigVector2Int>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigWaitTipsEnd {
    #[prost(uint32, repeated, tag = "1")]
    pub tips_id: ::prost::alloc::vec::Vec<u32>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ConfigBreakDialogAnim {}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigDialogChoiceDetail {
    #[prost(string, tag = "1")]
    pub option_text: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub option_id: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub option_text_2: ::prost::alloc::string::String,
    #[prost(uint32, tag = "8")]
    pub choice_id: u32,
    #[prost(uint32, tag = "9")]
    pub uid: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigMakeDialogChoice {
    #[prost(string, tag = "1")]
    pub title: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub description: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub question_description: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "4")]
    pub choices: ::prost::alloc::vec::Vec<ConfigDialogChoiceDetail>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MakeChoiceOfEvent {
    #[prost(uint32, tag = "1")]
    pub uid: u32,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ActionEnterHollowQuest {
    #[prost(int32, tag = "1")]
    pub hollow_id: i32,
    #[prost(int32, tag = "2")]
    pub r#type: i32,
    #[prost(bool, tag = "3")]
    pub close_black_mask: bool,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum HollowPositionOffsetType {
    Relative = 0,
    EventPos = 2,
    Absolute = 1,
    HollowNpcPos = 3,
}
impl HollowPositionOffsetType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Relative => "HOLLOW_POSITION_OFFSET_TYPE_RELATIVE",
            Self::EventPos => "HOLLOW_POSITION_OFFSET_TYPE_EVENT_POS",
            Self::Absolute => "HOLLOW_POSITION_OFFSET_TYPE_ABSOLUTE",
            Self::HollowNpcPos => "HOLLOW_POSITION_OFFSET_TYPE_HOLLOW_NPC_POS",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "HOLLOW_POSITION_OFFSET_TYPE_RELATIVE" => Some(Self::Relative),
            "HOLLOW_POSITION_OFFSET_TYPE_EVENT_POS" => Some(Self::EventPos),
            "HOLLOW_POSITION_OFFSET_TYPE_ABSOLUTE" => Some(Self::Absolute),
            "HOLLOW_POSITION_OFFSET_TYPE_HOLLOW_NPC_POS" => Some(Self::HollowNpcPos),
            _ => None,
        }
    }
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CameraMove {
    TriggerPosition = 0,
    Center = 2,
    Back = 4,
    Player = 1,
    CustomBound = 3,
}
impl CameraMove {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::TriggerPosition => "CAMERA_MOVE_TRIGGER_POSITION",
            Self::Center => "CAMERA_MOVE_CENTER",
            Self::Back => "CAMERA_MOVE_BACK",
            Self::Player => "CAMERA_MOVE_PLAYER",
            Self::CustomBound => "CAMERA_MOVE_CUSTOM_BOUND",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "CAMERA_MOVE_TRIGGER_POSITION" => Some(Self::TriggerPosition),
            "CAMERA_MOVE_CENTER" => Some(Self::Center),
            "CAMERA_MOVE_BACK" => Some(Self::Back),
            "CAMERA_MOVE_PLAYER" => Some(Self::Player),
            "CAMERA_MOVE_CUSTOM_BOUND" => Some(Self::CustomBound),
            _ => None,
        }
    }
}
