#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(non_camel_case_types, non_snake_case, unused_imports, clippy::all, clippy::pedantic, clippy::suspicious)]
use crate::*;
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyGameModeEnum")]
pub enum MyGameModeEnum {
#[default]
Creative,
Survival,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyOnlineModeEnum")]
pub enum MyOnlineModeEnum {
#[default]
OFFLINE,
PUBLIC,
FRIENDS,
PRIVATE,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyBlockLimitsEnabledEnum")]
pub enum MyBlockLimitsEnabledEnum {
#[default]
NONE,
GLOBALLY,
PER_FACTION,
PER_PLAYER,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyEnvironmentHostilityEnum")]
pub enum MyEnvironmentHostilityEnum {
#[default]
SAFE,
NORMAL,
CATACLYSM,
CATACLYSM_UNREAL,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "LimitBlocksByOption")]
pub enum MyObjectBuilder_SessionSettings_LimitBlocksByOption {
#[default]
BlockPairName,
Tag,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_SessionSettings")]
pub struct MyObjectBuilder_SessionSettings {
#[proto(tag = 1)]
#[serde(rename = "GameMode", default)]
pub game_mode: MyGameModeEnum,
#[proto(tag = 3)]
#[serde_inline_default(3f32)]
#[serde(rename = "InventorySizeMultiplier")]
pub inventory_size_multiplier: f32,
#[proto(tag = 5)]
#[serde_inline_default(1f32)]
#[serde(rename = "BlocksInventorySizeMultiplier")]
pub blocks_inventory_size_multiplier: f32,
#[proto(tag = 7)]
#[serde_inline_default(3f32)]
#[serde(rename = "AssemblerSpeedMultiplier")]
pub assembler_speed_multiplier: f32,
#[proto(tag = 9)]
#[serde_inline_default(3f32)]
#[serde(rename = "AssemblerEfficiencyMultiplier")]
pub assembler_efficiency_multiplier: f32,
#[proto(tag = 11)]
#[serde_inline_default(3f32)]
#[serde(rename = "RefinerySpeedMultiplier")]
pub refinery_speed_multiplier: f32,
#[proto(tag = 13)]
#[serde(rename = "OnlineMode", default)]
pub online_mode: MyOnlineModeEnum,
#[proto(tag = 15)]
#[serde_inline_default(4)]
#[serde(rename = "MaxPlayers")]
pub max_players: i32,
#[proto(tag = 17)]
#[serde_inline_default(100)]
#[serde(rename = "MaxFloatingObjects")]
pub max_floating_objects: i32,
#[proto(tag = 18)]
#[serde_inline_default(32)]
#[serde(rename = "TotalBotLimit")]
pub total_bot_limit: i32,
#[proto(tag = 19)]
#[serde_inline_default(5)]
#[serde(rename = "MaxBackupSaves")]
pub max_backup_saves: i32,
#[proto(tag = 21)]
#[serde_inline_default(50000)]
#[serde(rename = "MaxGridSize")]
pub max_grid_size: i32,
#[proto(tag = 23)]
#[serde_inline_default(100000)]
#[serde(rename = "MaxBlocksPerPlayer")]
pub max_blocks_per_player: i32,
#[proto(tag = 25)]
#[serde_inline_default(600000)]
#[serde(rename = "TotalPCU")]
pub total_pc_u: i32,
#[proto(tag = 27)]
#[serde_inline_default(25000)]
#[serde(rename = "PiratePCU")]
pub pirate_pc_u: i32,
#[proto(tag = 28)]
#[serde_inline_default(25000)]
#[serde(rename = "GlobalEncounterPCU")]
pub global_encounter_pc_u: i32,
#[proto(tag = 29)]
#[serde(rename = "MaxFactionsCount", default)]
pub max_factions_count: i32,
#[proto(tag = 31)]
#[serde(rename = "BlockLimitsEnabled", default)]
pub block_limits_enabled: MyBlockLimitsEnabledEnum,
#[proto(tag = 33)]
#[serde(rename = "EnableRemoteBlockRemoval", default)]
pub enable_remote_block_removal: bool,
#[proto(tag = 35)]
#[serde(rename = "EnvironmentHostility", default)]
pub environment_hostility: MyEnvironmentHostilityEnum,
#[proto(tag = 37)]
#[serde(rename = "AutoHealing", default)]
pub auto_healing: bool,
#[proto(tag = 39)]
#[serde(rename = "EnableCopyPaste", default)]
pub enable_copy_paste: bool,
#[proto(tag = 41)]
#[serde(rename = "WeaponsEnabled", default)]
pub weapons_enabled: bool,
#[proto(tag = 43)]
#[serde(rename = "ShowPlayerNamesOnHud", default)]
pub show_player_names_on_hud: bool,
#[proto(tag = 45)]
#[serde(rename = "ThrusterDamage", default)]
pub thruster_damage: bool,
#[proto(tag = 47)]
#[serde(rename = "CargoShipsEnabled", default)]
pub cargo_ships_enabled: bool,
#[proto(tag = 49)]
#[serde(rename = "EnableSpectator", default)]
pub enable_spectator: bool,
#[proto(tag = 51)]
#[serde(rename = "WorldSizeKm", default)]
pub world_size_km: i32,
#[proto(tag = 53)]
#[serde(rename = "RespawnShipDelete", default)]
pub respawn_ship_delete: bool,
#[proto(tag = 55)]
#[serde(rename = "ResetOwnership", default)]
pub reset_ownership: bool,
#[proto(tag = 57)]
#[serde_inline_default(2f32)]
#[serde(rename = "WelderSpeedMultiplier")]
pub welder_speed_multiplier: f32,
#[proto(tag = 59)]
#[serde_inline_default(2f32)]
#[serde(rename = "GrinderSpeedMultiplier")]
pub grinder_speed_multiplier: f32,
#[proto(tag = 61)]
#[serde(rename = "RealisticSound", default)]
pub realistic_sound: bool,
#[proto(tag = 63)]
#[serde_inline_default(0.33f32)]
#[serde(rename = "HackSpeedMultiplier")]
pub hack_speed_multiplier: f32,
#[proto(tag = 65)]
#[serde(rename = "PermanentDeath", default)]
pub permanent_death: crate::compat::Nullable<bool>,
#[proto(tag = 67)]
#[serde_inline_default(5)]
#[serde(rename = "AutoSaveInMinutes")]
pub auto_save_in_minutes: u32,
#[proto(tag = 69)]
#[serde(rename = "EnableSaving", default)]
pub enable_saving: bool,
#[proto(tag = 71)]
#[serde(rename = "InfiniteAmmo", default)]
pub infinite_ammo: bool,
#[proto(tag = 73)]
#[serde(rename = "EnableContainerDrops", default)]
pub enable_container_drops: bool,
#[proto(tag = 75)]
#[serde(rename = "SpawnShipTimeMultiplier", default)]
pub spawn_ship_time_multiplier: f32,
#[proto(tag = 77)]
#[serde(rename = "ProceduralDensity", default)]
pub procedural_density: f32,
#[proto(tag = 79)]
#[serde(rename = "ProceduralSeed", default)]
pub procedural_seed: i32,
#[proto(tag = 81)]
#[serde(rename = "DestructibleBlocks", default)]
pub destructible_blocks: bool,
#[proto(tag = 83)]
#[serde(rename = "EnableIngameScripts", default)]
pub enable_ingame_scripts: bool,
#[proto(tag = 85)]
#[serde_inline_default(15000)]
#[serde(rename = "ViewDistance")]
pub view_distance: i32,
#[proto(tag = 87)]
#[serde(rename = "EnableToolShake", default)]
pub enable_tool_shake: bool,
#[proto(tag = 89)]
#[serde_inline_default(4)]
#[serde(rename = "VoxelGeneratorVersion")]
pub voxel_generator_version: i32,
#[proto(tag = 91)]
#[serde(rename = "EnableOxygen", default)]
pub enable_oxygen: bool,
#[proto(tag = 93)]
#[serde(rename = "EnableOxygenPressurization", default)]
pub enable_oxygen_pressurization: bool,
#[proto(tag = 95)]
#[serde(rename = "Enable3rdPersonView", default)]
pub enable3rd_person_view: bool,
#[proto(tag = 97)]
#[serde(rename = "EnableEncounters", default)]
pub enable_encounters: bool,
#[proto(tag = 99)]
#[serde(rename = "EnableConvertToStation", default)]
pub enable_convert_to_station: bool,
#[proto(tag = 101)]
#[serde(rename = "StationVoxelSupport", default)]
pub station_voxel_support: bool,
#[proto(tag = 103)]
#[serde(rename = "EnableSunRotation", default)]
pub enable_sun_rotation: bool,
#[proto(tag = 105)]
#[serde(rename = "EnableRespawnShips", default)]
pub enable_respawn_ships: bool,
#[proto(tag = 107)]
#[serde(rename = "ScenarioEditMode", default)]
pub scenario_edit_mode: bool,
#[proto(tag = 109)]
#[serde(rename = "Scenario", default)]
pub scenario: bool,
#[proto(tag = 110)]
#[serde(rename = "UpdateRespawnDictionary", default)]
pub update_respawn_dictionary: bool,
#[proto(tag = 111)]
#[serde(rename = "CanJoinRunning", default)]
pub can_join_running: bool,
#[proto(tag = 113)]
#[serde_inline_default(8)]
#[serde(rename = "PhysicsIterations")]
pub physics_iterations: i32,
#[proto(tag = 115)]
#[serde_inline_default(120f32)]
#[serde(rename = "SunRotationIntervalMinutes")]
pub sun_rotation_interval_minutes: f32,
#[proto(tag = 117)]
#[serde(rename = "EnableJetpack", default)]
pub enable_jetpack: bool,
#[proto(tag = 119)]
#[serde(rename = "SpawnWithTools", default)]
pub spawn_with_tools: bool,
#[proto(tag = 120)]
#[serde_inline_default(30)]
#[serde(rename = "BlueprintShareTimeout")]
pub blueprint_share_timeout: i32,
#[proto(tag = 124)]
#[serde(rename = "BlueprintShare", default)]
pub blueprint_share: bool,
#[proto(tag = 121)]
#[serde(rename = "StartInRespawnScreen", default)]
pub start_in_respawn_screen: bool,
#[proto(tag = 123)]
#[serde(rename = "EnableVoxelDestruction", default)]
pub enable_voxel_destruction: bool,
#[proto(tag = 125)]
#[serde_inline_default(5)]
#[serde(rename = "MaxDrones")]
pub max_drones: i32,
#[proto(tag = 127)]
#[serde(rename = "EnableDrones", default)]
pub enable_drones: bool,
#[proto(tag = 129)]
#[serde(rename = "EnableWolfs", default)]
pub enable_wolfs: bool,
#[proto(tag = 131)]
#[serde(rename = "EnableSpiders", default)]
pub enable_spiders: bool,
#[proto(tag = 133)]
#[serde_inline_default(1f32)]
#[serde(rename = "FloraDensityMultiplier")]
pub flora_density_multiplier: f32,
#[proto(tag = 139)]
#[serde(rename = "BlockTypeLimits", default)]
pub block_type_limits: crate::compat::SerializableDictionary<String,i32>,
#[proto(tag = 141)]
#[serde(rename = "EnableScripterRole", default)]
pub enable_scripter_role: bool,
#[proto(tag = 143)]
#[serde_inline_default(5)]
#[serde(rename = "MinDropContainerRespawnTime")]
pub min_drop_container_respawn_time: i32,
#[proto(tag = 145)]
#[serde_inline_default(20)]
#[serde(rename = "MaxDropContainerRespawnTime")]
pub max_drop_container_respawn_time: i32,
#[proto(tag = 147)]
#[serde(rename = "EnableTurretsFriendlyFire", default)]
pub enable_turrets_friendly_fire: bool,
#[proto(tag = 149)]
#[serde(rename = "EnableSubgridDamage", default)]
pub enable_subgrid_damage: bool,
#[proto(tag = 151)]
#[serde_inline_default(3000)]
#[serde(rename = "SyncDistance")]
pub sync_distance: i32,
#[proto(tag = 153)]
#[serde(rename = "ExperimentalMode", default)]
pub experimental_mode: bool,
#[proto(tag = 155)]
#[serde(rename = "AdaptiveSimulationQuality", default)]
pub adaptive_simulation_quality: bool,
#[proto(tag = 157)]
#[serde(rename = "EnableVoxelHand", default)]
pub enable_voxel_hand: bool,
#[proto(tag = 158)]
#[serde(rename = "RemoveOldIdentitiesH", default)]
pub remove_old_identities_h: i32,
#[proto(tag = 159)]
#[serde(rename = "TrashRemovalEnabled", default)]
pub trash_removal_enabled: bool,
#[proto(tag = 160)]
#[serde_inline_default(15)]
#[serde(rename = "StopGridsPeriodMin")]
pub stop_grids_period_min: i32,
#[proto(tag = 161)]
#[serde_inline_default(7706)]
#[serde(rename = "TrashFlagsValue")]
pub trash_flags_value: i32,
#[proto(tag = 162)]
#[serde(rename = "AFKTimeountMin", default)]
pub afk_timeount_min: i32,
#[proto(tag = 163)]
#[serde_inline_default(20)]
#[serde(rename = "BlockCountThreshold")]
pub block_count_threshold: i32,
#[proto(tag = 165)]
#[serde_inline_default(500f32)]
#[serde(rename = "PlayerDistanceThreshold")]
pub player_distance_threshold: f32,
#[proto(tag = 167)]
#[serde(rename = "OptimalGridCount", default)]
pub optimal_grid_count: i32,
#[proto(tag = 169)]
#[serde(rename = "PlayerInactivityThreshold", default)]
pub player_inactivity_threshold: f32,
#[proto(tag = 171)]
#[serde_inline_default(15)]
#[serde(rename = "PlayerCharacterRemovalThreshold")]
pub player_character_removal_threshold: i32,
#[proto(tag = 173)]
#[serde(rename = "VoxelTrashRemovalEnabled", default)]
pub voxel_trash_removal_enabled: bool,
#[proto(tag = 175)]
#[serde_inline_default(5000f32)]
#[serde(rename = "VoxelPlayerDistanceThreshold")]
pub voxel_player_distance_threshold: f32,
#[proto(tag = 177)]
#[serde_inline_default(5000f32)]
#[serde(rename = "VoxelGridDistanceThreshold")]
pub voxel_grid_distance_threshold: f32,
#[proto(tag = 179)]
#[serde_inline_default(24)]
#[serde(rename = "VoxelAgeThreshold")]
pub voxel_age_threshold: i32,
#[proto(tag = 181)]
#[serde(rename = "EnableResearch", default)]
pub enable_research: bool,
#[proto(tag = 183)]
#[serde(rename = "EnableGoodBotHints", default)]
pub enable_good_bot_hints: bool,
#[proto(tag = 185)]
#[serde_inline_default(16000f32)]
#[serde(rename = "OptimalSpawnDistance")]
pub optimal_spawn_distance: f32,
#[proto(tag = 187)]
#[serde(rename = "EnableAutorespawn", default)]
pub enable_autorespawn: bool,
#[proto(tag = 188)]
#[serde(rename = "EnableBountyContracts", default)]
pub enable_bounty_contracts: bool,
#[proto(tag = 189)]
#[serde(rename = "EnableSupergridding", default)]
pub enable_supergridding: bool,
#[proto(tag = 191)]
#[serde(rename = "EnableEconomy", default)]
pub enable_economy: bool,
#[proto(tag = 194)]
#[serde_inline_default(2f32)]
#[serde(rename = "DepositsCountCoefficient")]
pub deposits_count_coefficient: f32,
#[proto(tag = 197)]
#[serde_inline_default(30f32)]
#[serde(rename = "DepositSizeDenominator")]
pub deposit_size_denominator: f32,
#[proto(tag = 198)]
#[serde(rename = "WeatherSystem", default)]
pub weather_system: bool,
#[proto(tag = 199)]
#[serde(rename = "WeatherLightingDamage", default)]
pub weather_lighting_damage: bool,
#[proto(tag = 200)]
#[serde_inline_default(1f32)]
#[serde(rename = "HarvestRatioMultiplier")]
pub harvest_ratio_multiplier: f32,
#[proto(tag = 203)]
#[serde_inline_default(10)]
#[serde(rename = "TradeFactionsCount")]
pub trade_factions_count: i32,
#[proto(tag = 206)]
#[serde_inline_default(5000000f64)]
#[serde(rename = "StationsDistanceInnerRadius")]
pub stations_distance_inner_radius: f64,
#[proto(tag = 209)]
#[serde_inline_default(5000000f64)]
#[serde(rename = "StationsDistanceOuterRadiusStart")]
pub stations_distance_outer_radius_start: f64,
#[proto(tag = 212)]
#[serde_inline_default(10000000f64)]
#[serde(rename = "StationsDistanceOuterRadiusEnd")]
pub stations_distance_outer_radius_end: f64,
#[proto(tag = 215)]
#[serde_inline_default(300)]
#[serde(rename = "EconomyTickInSeconds")]
pub economy_tick_in_seconds: i32,
#[proto(tag = 216)]
#[serde_inline_default(120)]
#[serde(rename = "NPCGridClaimTimeLimit")]
pub npc_grid_claim_time_limit: i32,
#[proto(tag = 217)]
#[serde(rename = "SimplifiedSimulation", default)]
pub simplified_simulation: bool,
#[proto(tag = 219)]
#[serde(rename = "SuppressedWarnings", default)]
#[serde(serialize_with = "xml_array_item::Warning::serialize",
deserialize_with = "xml_array_item::Warning::deserialize")]
pub suppressed_warnings: Vec<String>,
#[proto(tag = 222)]
#[serde(rename = "EnablePcuTrading", default)]
pub enable_pcu_trading: bool,
#[proto(tag = 220)]
#[serde(rename = "FamilySharing", default)]
pub family_sharing: bool,
#[proto(tag = 224)]
#[serde(rename = "EnableSelectivePhysicsUpdates", default)]
pub enable_selective_physics_updates: bool,
#[proto(tag = 228)]
#[serde(rename = "PredefinedAsteroids", default)]
pub predefined_asteroids: bool,
#[proto(tag = 232)]
#[serde(rename = "UseConsolePCU", default)]
pub use_console_pc_u: bool,
#[proto(tag = 236)]
#[serde_inline_default(99)]
#[serde(rename = "MaxPlanets")]
pub max_planets: i32,
#[proto(tag = 240)]
#[serde(rename = "OffensiveWordsFiltering", default)]
pub offensive_words_filtering: bool,
#[proto(tag = 245)]
#[serde(rename = "AdjustableMaxVehicleSpeed", default)]
pub adjustable_max_vehicle_speed: bool,
#[proto(tag = 246)]
#[serde(rename = "EnableMatchComponent", default)]
pub enable_match_component: bool,
#[proto(tag = 247)]
#[serde(rename = "PreMatchDuration", default)]
pub pre_match_duration: f32,
#[proto(tag = 248)]
#[serde(rename = "MatchDuration", default)]
pub match_duration: f32,
#[proto(tag = 249)]
#[serde(rename = "PostMatchDuration", default)]
pub post_match_duration: f32,
#[proto(tag = 250)]
#[serde(rename = "EnableFriendlyFire", default)]
pub enable_friendly_fire: bool,
#[proto(tag = 251)]
#[serde(rename = "EnableTeamBalancing", default)]
pub enable_team_balancing: bool,
#[proto(tag = 252)]
#[serde_inline_default(1f32)]
#[serde(rename = "CharacterSpeedMultiplier")]
pub character_speed_multiplier: f32,
#[proto(tag = 253)]
#[serde(rename = "EnableRecoil", default)]
pub enable_recoil: bool,
#[proto(tag = 254)]
#[serde_inline_default(1f32)]
#[serde(rename = "EnvironmentDamageMultiplier")]
pub environment_damage_multiplier: f32,
#[proto(tag = 255)]
#[serde(rename = "EnableGamepadAimAssist", default)]
pub enable_gamepad_aim_assist: bool,
#[proto(tag = 256)]
#[serde_inline_default(5f32)]
#[serde(rename = "BackpackDespawnTimer")]
pub backpack_despawn_timer: f32,
#[proto(tag = 257)]
#[serde(rename = "EnableFactionPlayerNames", default)]
pub enable_faction_player_names: bool,
#[proto(tag = 258)]
#[serde(rename = "EnableTeamScoreCounters", default)]
pub enable_team_score_counters: bool,
#[proto(tag = 259)]
#[serde(rename = "EnableSpaceSuitRespawn", default)]
pub enable_space_suit_respawn: bool,
#[proto(tag = 260)]
#[serde(rename = "MatchRestartWhenEmptyTime", default)]
pub match_restart_when_empty_time: i32,
#[proto(tag = 261)]
#[serde(rename = "EnableFactionVoiceChat", default)]
pub enable_faction_voice_chat: bool,
#[proto(tag = 262)]
#[serde(rename = "EnableOrca", default)]
pub enable_orca: bool,
#[proto(tag = 264)]
#[serde_inline_default(50)]
#[serde(rename = "MaxProductionQueueLength")]
pub max_production_queue_length: i32,
#[proto(tag = 266)]
#[serde_inline_default(15000)]
#[serde(rename = "PrefetchShapeRayLengthLimit")]
pub prefetch_shape_ray_length_limit: i64,
#[proto(tag = 268)]
#[serde_inline_default(20f32)]
#[serde(rename = "EnemyTargetIndicatorDistance")]
pub enemy_target_indicator_distance: f32,
#[proto(tag = 270)]
#[serde(rename = "EnableTrashSettingsPlatformOverride", default)]
pub enable_trash_settings_platform_override: bool,
#[proto(tag = 271)]
#[serde(rename = "MinimumWorldSize", default)]
pub minimum_world_size: i32,
#[proto(tag = 272)]
#[serde_inline_default(100)]
#[serde(rename = "MaxCargoBags")]
pub max_cargo_bags: i32,
#[proto(tag = 273)]
#[serde_inline_default(30)]
#[serde(rename = "TrashCleanerCargoBagsMaxLiveTime")]
pub trash_cleaner_cargo_bags_max_live_time: i32,
#[proto(tag = 274)]
#[serde(rename = "ScrapEnabled", default)]
pub scrap_enabled: bool,
#[proto(tag = 275)]
#[serde_inline_default(200)]
#[serde(rename = "BroadcastControllerMaxOfflineTransmitDistance")]
pub broadcast_controller_max_offline_transmit_distance: i32,
#[proto(tag = 276)]
#[serde(rename = "TemporaryContainers", default)]
pub temporary_containers: bool,
#[proto(tag = 278)]
#[serde_inline_default(15)]
#[serde(rename = "GlobalEncounterTimer")]
pub global_encounter_timer: i32,
#[proto(tag = 280)]
#[serde_inline_default(1)]
#[serde(rename = "GlobalEncounterCap")]
pub global_encounter_cap: i32,
#[proto(tag = 282)]
#[serde(rename = "GlobalEncounterEnableRemovalTimer", default)]
pub global_encounter_enable_removal_timer: bool,
#[proto(tag = 284)]
#[serde_inline_default(90)]
#[serde(rename = "GlobalEncounterMinRemovalTimer")]
pub global_encounter_min_removal_timer: i32,
#[proto(tag = 286)]
#[serde_inline_default(180)]
#[serde(rename = "GlobalEncounterMaxRemovalTimer")]
pub global_encounter_max_removal_timer: i32,
#[proto(tag = 288)]
#[serde_inline_default(30)]
#[serde(rename = "GlobalEncounterRemovalTimeClock")]
pub global_encounter_removal_time_clock: i32,
#[proto(tag = 290)]
#[serde_inline_default(0.35f32)]
#[serde(rename = "EncounterDensity")]
pub encounter_density: f32,
#[proto(tag = 292)]
#[serde_inline_default(6)]
#[serde(rename = "EncounterGeneratorVersion")]
pub encounter_generator_version: i32,
#[proto(tag = 296)]
#[serde(rename = "EnablePlanetaryEncounters", default)]
pub enable_planetary_encounters: bool,
#[proto(tag = 298)]
#[serde_inline_default(15f32)]
#[serde(rename = "PlanetaryEncounterTimerMin")]
pub planetary_encounter_timer_min: f32,
#[proto(tag = 300)]
#[serde_inline_default(30f32)]
#[serde(rename = "PlanetaryEncounterTimerMax")]
pub planetary_encounter_timer_max: f32,
#[proto(tag = 301)]
#[serde_inline_default(5f32)]
#[serde(rename = "PlanetaryEncounterTimerFirst")]
pub planetary_encounter_timer_first: f32,
#[proto(tag = 302)]
#[serde_inline_default(7000)]
#[serde(rename = "PlanetaryEncounterExistingStructuresRange")]
pub planetary_encounter_existing_structures_range: i32,
#[proto(tag = 304)]
#[serde_inline_default(10000)]
#[serde(rename = "PlanetaryEncounterAreaLockdownRange")]
pub planetary_encounter_area_lockdown_range: i32,
#[proto(tag = 306)]
#[serde_inline_default(6000)]
#[serde(rename = "PlanetaryEncounterDesiredSpawnRange")]
pub planetary_encounter_desired_spawn_range: i32,
#[proto(tag = 308)]
#[serde_inline_default(20000)]
#[serde(rename = "PlanetaryEncounterPresenceRange")]
pub planetary_encounter_presence_range: i32,
#[proto(tag = 310)]
#[serde_inline_default(120f32)]
#[serde(rename = "PlanetaryEncounterDespawnTimeout")]
pub planetary_encounter_despawn_timeout: f32,
#[proto(tag = 316)]
#[serde(rename = "LimitBlocksBy", default)]
pub limit_blocks_by: MyObjectBuilder_SessionSettings_LimitBlocksByOption,
#[proto(tag = 320)]
#[serde_inline_default(100)]
#[serde(rename = "MaxHudChatMessageCount")]
pub max_hud_chat_message_count: i32,
#[proto(tag = 325)]
#[serde(rename = "EnableShareInertiaTensor", default)]
pub enable_share_inertia_tensor: bool,
#[proto(tag = 330)]
#[serde(rename = "EnableUnsafePistonImpulses", default)]
pub enable_unsafe_piston_impulses: bool,
#[proto(tag = 335)]
#[serde(rename = "EnableUnsafeRotorTorques", default)]
pub enable_unsafe_rotor_torques: bool,
#[proto(tag = 340)]
#[serde(rename = "EnableRadiation", default)]
pub enable_radiation: bool,
#[proto(tag = 345)]
#[serde(rename = "SolarRadiationIntensity", default)]
pub solar_radiation_intensity: f32,
#[proto(tag = 350)]
#[serde(rename = "ResetForageableItems", default)]
pub reset_forageable_items: bool,
#[proto(tag = 351)]
#[serde_inline_default(30)]
#[serde(rename = "ResetForageableItemsTimeM")]
pub reset_forageable_items_time_m: i32,
#[proto(tag = 352)]
#[serde_inline_default(3000)]
#[serde(rename = "ResetForageableItemsDistance")]
pub reset_forageable_items_distance: i32,
#[proto(tag = 353)]
#[serde(rename = "FoodConsumptionRate", default)]
pub food_consumption_rate: f32,
#[proto(tag = 354)]
#[serde(rename = "EnableSurvivalBuffs", default)]
pub enable_survival_buffs: bool,
#[proto(tag = 355)]
#[serde(rename = "EnableReducedStatsOnRespawn", default)]
pub enable_reduced_stats_on_respawn: bool,
#[proto(tag = 360)]
#[serde(rename = "RandomizeSeed", default)]
pub randomize_seed: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "WorkshopId")]
pub struct WorkshopId {
#[proto(tag = 1)]
#[serde(rename = "Id", default)]
pub id: u64,
#[proto(tag = 4)]
#[serde(rename = "ServiceName", default)]
pub service_name: String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyServerData")]
pub struct MyCachedServerItem_MyServerData {
#[proto(tag = 1)]
#[serde(rename = "Settings", default)]
pub settings: MyObjectBuilder_SessionSettings,
#[proto(tag = 4)]
#[serde(rename = "ExperimentalMode", default)]
pub experimental_mode: bool,
#[proto(tag = 7)]
#[serde(rename = "Mods", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub mods: Vec<WorkshopId>,
#[proto(tag = 10)]
#[serde(rename = "Description", default)]
pub description: String,
#[proto(tag = 14)]
#[serde(rename = "UsedServices", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub used_services: Vec<String>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyPositionAndOrientation")]
pub struct MyPositionAndOrientation {
#[proto(tag = 1)]
#[serde(rename = "Position")]
pub position: crate::math::SerializableVector3D,
#[proto(skip)]
#[serde(rename = "Forward")]
pub forward: crate::math::SerializableVector3F,
#[proto(skip)]
#[serde(rename = "Up")]
pub up: crate::math::SerializableVector3F,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyCameraControllerEnum")]
pub enum MyCameraControllerEnum {
#[default]
Spectator,
Entity,
ThirdPersonSpectator,
SpectatorDelta,
SpectatorFixed,
SpectatorOrbit,
SpectatorFreeMouse,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyToolbarType")]
pub enum MyToolbarType {
#[default]
Character,
SmallCockpit,
LargeCockpit,
Ship,
Seat,
ButtonPanel,
Spectator,
None,
BuildCockpit,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ToolbarItem")]
pub struct MyObjectBuilder_ToolbarItem {}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Slot")]
pub struct MyObjectBuilder_Toolbar_Slot {
#[proto(tag = 1)]
#[serde(rename = "Index", default)]
pub index: i32,
#[proto(tag = 4)]
#[serde(rename = "Item", default)]
pub item: String,
#[proto(tag = 7)]
#[serde(rename = "Data", default)]
pub data: MyObjectBuilder_ToolbarItem,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Toolbar")]
pub struct MyObjectBuilder_Toolbar {
#[proto(tag = 10)]
#[serde(rename = "ToolbarType", default)]
pub toolbar_type: MyToolbarType,
#[proto(tag = 13)]
#[serde(rename = "SelectedSlot", default)]
pub selected_slot: crate::compat::Nullable<i32>,
#[proto(tag = 16)]
#[serde(rename = "Slots", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub slots: Vec<MyObjectBuilder_Toolbar_Slot>,
#[proto(tag = 17)]
#[serde(rename = "SlotsGamepad", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub slots_gamepad: Vec<MyObjectBuilder_Toolbar_Slot>,
#[proto(skip)]
#[serde(rename = "ColorMaskHSVList", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub color_mask_hsv_list: Vec<crate::math::Vector3F>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Eq, Hash, PartialOrd, Ord)]
#[serde(rename = "PlayerId")]
pub struct MyObjectBuilder_Checkpoint_PlayerId {
#[proto(tag = 183)]
#[serde(rename = "ClientId", default)]
pub client_id: u64,
#[proto(tag = 185)]
#[serde(rename = "SerialId", default)]
pub serial_id: i32,
#[proto(tag = 186)]
#[serde(rename = "HashedId", default)]
pub hashed_id: u64,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Object")]
pub struct Object {}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ScriptManager")]
pub struct MyObjectBuilder_ScriptManager {
#[proto(tag = 1)]
#[serde(rename = "variables", default)]
pub variables: crate::compat::SerializableDictionary<String,Vec<u8>>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_FactionMember")]
pub struct MyObjectBuilder_FactionMember {
#[proto(tag = 1)]
#[serde(rename = "PlayerId", default)]
pub player_id: i64,
#[proto(tag = 4)]
#[serde(rename = "IsLeader", default)]
pub is_leader: bool,
#[proto(tag = 7)]
#[serde(rename = "IsFounder", default)]
pub is_founder: bool,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyFactionTypes")]
pub enum MyFactionTypes {
#[default]
None,
PlayerMade,
Miner,
Trader,
Builder,
Pirate,
Military,
Custom,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStationTypeEnum")]
pub enum MyStationTypeEnum {
#[default]
MiningStation,
OrbitalStation,
Outpost,
SpaceStation,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "MyObjectBuilderType")]
pub struct MyObjectBuilderType {
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "SerializableDefinitionId")]
pub struct SerializableDefinitionId {
#[proto(skip)]
#[serde(skip)]
pub type_id: MyObjectBuilderType,
#[proto(skip)]
#[serde(skip)]
pub subtype_name: String,
#[proto(skip)]
#[serde(rename = "@TypeIdStringAttribute", default)]
pub type_id_string_attribute: String,
#[proto(skip)]
#[serde(rename = "TypeIdString", default)]
pub type_id_string: String,
#[proto(skip)]
#[serde(rename = "@SubtypeIdAttribute", default)]
pub subtype_id_attribute: String,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ItemTypes")]
pub enum ItemTypes {
#[default]
PhysicalItem,
Oxygen,
Hydrogen,
Grid,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "StoreItemTypes")]
pub enum StoreItemTypes {
#[default]
Offer,
Order,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_StoreItem")]
pub struct MyObjectBuilder_StoreItem {
#[proto(tag = 1)]
#[serde(rename = "Id", default)]
pub id: i64,
#[proto(tag = 3)]
#[serde(rename = "Item", default)]
pub item: crate::compat::Nullable<SerializableDefinitionId>,
#[proto(tag = 4)]
#[serde(rename = "ItemType", default)]
pub item_type: ItemTypes,
#[proto(tag = 5)]
#[serde(rename = "Amount", default)]
pub amount: i32,
#[proto(tag = 7)]
#[serde(rename = "RemovedAmount", default)]
pub removed_amount: i32,
#[proto(tag = 9)]
#[serde(rename = "PricePerUnit", default)]
pub price_per_unit: i32,
#[proto(tag = 11)]
#[serde(rename = "StoreItemType", default)]
pub store_item_type: StoreItemTypes,
#[proto(tag = 13)]
#[serde(rename = "UpdateCount", default)]
pub update_count: i32,
#[proto(tag = 15)]
#[serde(rename = "PrefabName", default)]
pub prefab_name: String,
#[proto(tag = 17)]
#[serde(rename = "PrefabTotalPcu", default)]
pub prefab_total_pcu: i32,
#[proto(tag = 19)]
#[serde(rename = "PricePerUnitDiscount", default)]
pub price_per_unit_discount: f32,
#[proto(tag = 21)]
#[serde(rename = "IsCustomStoreItem", default)]
pub is_custom_store_item: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Station")]
pub struct MyObjectBuilder_Station {
#[proto(tag = 1)]
#[serde(rename = "Id", default)]
pub id: i64,
#[proto(tag = 2)]
#[serde(rename = "Position")]
pub position: crate::math::SerializableVector3D,
#[proto(tag = 3)]
#[serde(rename = "Up")]
pub up: crate::math::SerializableVector3F,
#[proto(tag = 5)]
#[serde(rename = "Forward")]
pub forward: crate::math::SerializableVector3F,
#[proto(tag = 7)]
#[serde(rename = "StationType", default)]
pub station_type: MyStationTypeEnum,
#[proto(tag = 9)]
#[serde(rename = "IsDeepSpaceStation", default)]
pub is_deep_space_station: bool,
#[proto(tag = 11)]
#[serde(rename = "StationEntityId", default)]
pub station_entity_id: i64,
#[proto(tag = 13)]
#[serde(rename = "FactionId", default)]
pub faction_id: i64,
#[proto(tag = 15)]
#[serde(rename = "PrefabName", default)]
pub prefab_name: String,
#[proto(tag = 19)]
#[serde(rename = "SafeZoneEntityId", default)]
pub safe_zone_entity_id: i64,
#[proto(tag = 21)]
#[serde(rename = "StoreItems", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub store_items: Vec<MyObjectBuilder_StoreItem>,
#[proto(tag = 23)]
#[serde(rename = "IsOnPlanetWithAtmosphere", default)]
pub is_on_planet_with_atmosphere: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Faction")]
pub struct MyObjectBuilder_Faction {
#[proto(tag = 10)]
#[serde(rename = "FactionId", default)]
pub faction_id: i64,
#[proto(tag = 13)]
#[serde(rename = "Tag", default)]
pub tag: String,
#[proto(tag = 16)]
#[serde(rename = "Name", default)]
pub name: String,
#[proto(tag = 19)]
#[serde(rename = "Description", default)]
pub description: String,
#[proto(tag = 22)]
#[serde(rename = "PrivateInfo", default)]
pub private_info: String,
#[proto(tag = 25)]
#[serde(rename = "Members", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub members: Vec<MyObjectBuilder_FactionMember>,
#[proto(tag = 28)]
#[serde(rename = "JoinRequests", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub join_requests: Vec<MyObjectBuilder_FactionMember>,
#[proto(tag = 31)]
#[serde(rename = "AutoAcceptMember", default)]
pub auto_accept_member: bool,
#[proto(tag = 34)]
#[serde(rename = "AutoAcceptPeace", default)]
pub auto_accept_peace: bool,
#[proto(tag = 37)]
#[serde(rename = "AcceptHumans", default)]
pub accept_humans: bool,
#[proto(tag = 40)]
#[serde(rename = "EnableFriendlyFire", default)]
pub enable_friendly_fire: bool,
#[proto(tag = 43)]
#[serde(rename = "FactionType", default)]
pub faction_type: MyFactionTypes,
#[proto(tag = 44)]
#[serde(rename = "FactionTypeString", default)]
pub faction_type_string: String,
#[proto(tag = 46)]
#[serde(rename = "Stations", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub stations: Vec<MyObjectBuilder_Station>,
#[proto(tag = 49)]
#[serde(rename = "CustomColor")]
pub custom_color: crate::math::SerializableVector3F,
#[proto(tag = 51)]
#[serde(rename = "IconColor")]
pub icon_color: crate::math::SerializableVector3F,
#[proto(tag = 52)]
#[serde(rename = "FactionIcon", default)]
pub faction_icon: String,
#[proto(tag = 53)]
#[serde(rename = "TransferedPCUDelta", default)]
pub transfered_pcu_delta: i32,
#[proto(tag = 56)]
#[serde(rename = "Score", default)]
pub score: i32,
#[proto(tag = 59)]
#[serde(rename = "ObjectivePercentageCompleted", default)]
pub objective_percentage_completed: f32,
#[proto(tag = 61)]
#[serde(rename = "FactionIconWorkshopId", default)]
pub faction_icon_workshop_id: crate::compat::Nullable<WorkshopId>,
#[proto(tag = 64)]
#[serde(rename = "DamageInflicted", default)]
pub damage_inflicted: crate::compat::SerializableDictionary<i64,f32>,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyRelationsBetweenFactions")]
pub enum MyRelationsBetweenFactions {
#[default]
Neutral,
Enemies,
Allies,
Friends,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_FactionRelation")]
pub struct MyObjectBuilder_FactionRelation {
#[proto(tag = 1)]
#[serde(rename = "FactionId1", default)]
pub faction_id1: i64,
#[proto(tag = 4)]
#[serde(rename = "FactionId2", default)]
pub faction_id2: i64,
#[proto(tag = 7)]
#[serde(rename = "Relation", default)]
pub relation: MyRelationsBetweenFactions,
#[proto(tag = 10)]
#[serde(rename = "Reputation", default)]
pub reputation: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_PlayerFactionRelation")]
pub struct MyObjectBuilder_PlayerFactionRelation {
#[proto(tag = 1)]
#[serde(rename = "PlayerId", default)]
pub player_id: i64,
#[proto(tag = 4)]
#[serde(rename = "FactionId", default)]
pub faction_id: i64,
#[proto(tag = 7)]
#[serde(rename = "Relation", default)]
pub relation: MyRelationsBetweenFactions,
#[proto(tag = 10)]
#[serde(rename = "Reputation", default)]
pub reputation: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_FactionRequests")]
pub struct MyObjectBuilder_FactionRequests {
#[proto(tag = 10)]
#[serde(rename = "FactionId", default)]
pub faction_id: i64,
#[proto(tag = 13)]
#[serde(rename = "FactionRequests", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub faction_requests: Vec<i64>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_FactionsVisEntry")]
pub struct MyObjectBuilder_FactionsVisEntry {
#[proto(tag = 1)]
#[serde(rename = "PlayerId", default)]
pub player_id: u64,
#[proto(tag = 3)]
#[serde(rename = "SerialId", default)]
pub serial_id: i32,
#[proto(tag = 4)]
#[serde(rename = "IdentityId", default)]
pub identity_id: i64,
#[proto(tag = 5)]
#[serde(rename = "DiscoveredFactions", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub discovered_factions: Vec<i64>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_FactionCollection")]
pub struct MyObjectBuilder_FactionCollection {
#[proto(tag = 16)]
#[serde(rename = "Factions", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub factions: Vec<MyObjectBuilder_Faction>,
#[proto(tag = 19)]
#[serde(rename = "Players", default)]
pub players: crate::compat::SerializableDictionary<i64,i64>,
#[proto(tag = 22)]
#[serde(rename = "Relations", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub relations: Vec<MyObjectBuilder_FactionRelation>,
#[proto(tag = 25)]
#[serde(rename = "RelationsWithPlayers", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub relations_with_players: Vec<MyObjectBuilder_PlayerFactionRelation>,
#[proto(tag = 28)]
#[serde(rename = "Requests", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub requests: Vec<MyObjectBuilder_FactionRequests>,
#[proto(tag = 31)]
#[serde(rename = "PlayerToFactionsVis", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub player_to_factions_vis: Vec<MyObjectBuilder_FactionsVisEntry>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ModItem")]
pub struct MyObjectBuilder_Checkpoint_ModItem {
#[proto(tag = 70)]
#[serde(rename = "Name", default)]
pub name: String,
#[proto(tag = 73)]
#[serde(rename = "PublishedFileId", default)]
pub published_file_id: u64,
#[proto(tag = 74)]
#[serde(rename = "PublishedServiceName", default)]
pub published_service_name: String,
#[proto(tag = 76)]
#[serde(rename = "IsDependency", default)]
pub is_dependency: bool,
#[proto(tag = 79)]
#[serde(rename = "@FriendlyName", default)]
pub friendly_name: String,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyPromoteLevel")]
pub enum MyPromoteLevel {
#[default]
None,
Scripter,
Moderator,
SpaceMaster,
Admin,
Owner,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "RespawnCooldownItem")]
pub struct MyObjectBuilder_Checkpoint_RespawnCooldownItem {
#[proto(tag = 91)]
#[serde(rename = "PlayerSteamId", default)]
pub player_steam_id: u64,
#[proto(tag = 94)]
#[serde(rename = "PlayerSerialId", default)]
pub player_serial_id: i32,
#[proto(tag = 95)]
#[serde(rename = "IdentityId", default)]
pub identity_id: i64,
#[proto(tag = 97)]
#[serde(rename = "RespawnShipId", default)]
pub respawn_ship_id: String,
#[proto(tag = 100)]
#[serde(rename = "Cooldown", default)]
pub cooldown: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Identity")]
pub struct MyObjectBuilder_Identity {
#[proto(tag = 1)]
#[serde(rename = "IdentityId", default)]
pub identity_id: i64,
#[proto(tag = 4)]
#[serde(rename = "DisplayName", default)]
pub display_name: String,
#[proto(tag = 7)]
#[serde(rename = "CharacterEntityId", default)]
pub character_entity_id: i64,
#[proto(tag = 10)]
#[serde(rename = "Model", default)]
pub model: String,
#[proto(tag = 13)]
#[serde(rename = "ColorMask", default)]
pub color_mask: crate::compat::Nullable<crate::math::SerializableVector3F>,
#[proto(tag = 16)]
#[serde(rename = "BlockLimitModifier", default)]
pub block_limit_modifier: i32,
#[proto(tag = 19)]
#[serde(rename = "LastLoginTime", default)]
pub last_login_time: crate::compat::DateTime,
#[proto(tag = 22)]
#[serde(rename = "SavedCharacters", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub saved_characters: Vec<i64>,
#[proto(tag = 25)]
#[serde(rename = "LastLogoutTime", default)]
pub last_logout_time: crate::compat::DateTime,
#[proto(tag = 28)]
#[serde(rename = "RespawnShips", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub respawn_ships: Vec<i64>,
#[proto(skip)]
#[serde(rename = "LastDeathPosition", default)]
pub last_death_position: crate::compat::Nullable<crate::math::Vector3D>,
#[proto(tag = 33)]
#[serde(rename = "ActiveContracts", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub active_contracts: Vec<i64>,
#[proto(tag = 35)]
#[serde(rename = "TransferedPCUDelta", default)]
pub transfered_pcu_delta: i32,
#[proto(tag = 38)]
#[serde(rename = "IsGlobalEncounterSpawner", default)]
pub is_global_encounter_spawner: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Client")]
pub struct MyObjectBuilder_Client {
#[proto(tag = 1)]
#[serde(rename = "SteamId", default)]
pub steam_id: u64,
#[proto(tag = 4)]
#[serde(rename = "Name", default)]
pub name: String,
#[proto(tag = 7)]
#[serde(rename = "IsAdmin", default)]
pub is_admin: bool,
#[proto(tag = 10)]
#[serde(rename = "ClientService", default)]
pub client_service: String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "CameraControllerSettings")]
pub struct CameraControllerSettings {
#[proto(tag = 1)]
#[serde(rename = "IsFirstPerson", default)]
pub is_first_person: bool,
#[proto(tag = 4)]
#[serde(rename = "Distance", default)]
pub distance: f64,
#[proto(tag = 7)]
#[serde(rename = "HeadAngle", default)]
pub head_angle: crate::compat::Nullable<crate::math::SerializableVector2F>,
#[proto(skip)]
#[serde(rename = "@EntityId", default)]
pub entity_id: i64,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Player")]
pub struct MyObjectBuilder_Player {
#[proto(tag = 10)]
#[serde(rename = "DisplayName", default)]
pub display_name: String,
#[proto(tag = 13)]
#[serde(rename = "IdentityId", default)]
pub identity_id: i64,
#[proto(tag = 16)]
#[serde(rename = "Connected", default)]
pub connected: bool,
#[proto(tag = 19)]
#[serde(rename = "ForceRealPlayer", default)]
pub force_real_player: bool,
#[proto(tag = 22)]
#[serde(rename = "Toolbar", default)]
pub toolbar: MyObjectBuilder_Toolbar,
#[proto(tag = 25)]
#[serde(rename = "EntityCameraData", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub entity_camera_data: Vec<CameraControllerSettings>,
#[proto(tag = 28)]
#[serde(rename = "BuildColorSlots", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub build_color_slots: Vec<crate::math::Vector3F>,
#[proto(tag = 30)]
#[serde(rename = "CreativeToolsEnabled", default)]
pub creative_tools_enabled: bool,
#[proto(tag = 33)]
#[serde(rename = "RemoteAdminSettings", default)]
pub remote_admin_settings: i32,
#[proto(tag = 38)]
#[serde(rename = "PromoteLevel", default)]
pub promote_level: MyPromoteLevel,
#[proto(skip)]
#[serde(rename = "SteamID", default)]
pub steam_i_d: u64,
#[proto(skip)]
#[serde(rename = "PlayerEntity", default)]
pub player_entity: i64,
#[proto(skip)]
#[serde(rename = "PlayerModel", default)]
pub player_model: String,
#[proto(skip)]
#[serde(rename = "PlayerId", default)]
pub player_id: i64,
#[proto(skip)]
#[serde(rename = "LastActivity", default)]
pub last_activity: i64,
#[proto(tag = 31)]
#[serde(rename = "BuildArmorSkin", default)]
pub build_armor_skin: String,
#[proto(tag = 35)]
#[serde(rename = "BuildColorSlot", default)]
pub build_color_slot: i32,
#[proto(tag = 40)]
#[serde(rename = "IsWildlifeAgent", default)]
pub is_wildlife_agent: bool,
#[proto(tag = 45)]
#[serde(rename = "PlatformIcon", default)]
pub platform_icon: String,
#[proto(tag = 50)]
#[serde(rename = "GameAcronym", default)]
pub game_acronym: String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_PlayerChatItem")]
pub struct MyObjectBuilder_PlayerChatItem {
#[proto(tag = 25)]
#[serde(rename = "@Text", default)]
pub text: String,
#[proto(tag = 28)]
#[serde(rename = "IdentityIdUniqueNumber", default)]
pub identity_id_unique_number: i64,
#[proto(tag = 31)]
#[serde(rename = "TimestampMs", default)]
pub timestamp_ms: i64,
#[proto(tag = 34)]
#[serde(rename = "Sent", default)]
pub sent: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_PlayerChatHistory")]
pub struct MyObjectBuilder_PlayerChatHistory {
#[proto(tag = 10)]
#[serde(rename = "Chat", default)]
#[serde(serialize_with = "xml_array_item::PCI::serialize",
deserialize_with = "xml_array_item::PCI::deserialize")]
pub chat: Vec<MyObjectBuilder_PlayerChatItem>,
#[proto(tag = 13)]
#[serde(rename = "IdentityId", default)]
pub identity_id: i64,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_GlobalChatItem")]
pub struct MyObjectBuilder_GlobalChatItem {
#[proto(tag = 52)]
#[serde(rename = "@Text", default)]
pub text: String,
#[proto(tag = 55)]
#[serde(rename = "IdentityIdUniqueNumber", default)]
pub identity_id_unique_number: i64,
#[proto(tag = 58)]
#[serde(rename = "@Author", default)]
pub author: String,
#[proto(tag = 61)]
#[serde(rename = "@Font", default)]
pub font: String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_GlobalChatHistory")]
pub struct MyObjectBuilder_GlobalChatHistory {
#[proto(tag = 22)]
#[serde(rename = "Chat", default)]
#[serde(serialize_with = "xml_array_item::GCI::serialize",
deserialize_with = "xml_array_item::GCI::deserialize")]
pub chat: Vec<MyObjectBuilder_GlobalChatItem>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ChatHistory")]
pub struct MyObjectBuilder_ChatHistory {
#[proto(tag = 1)]
#[serde(rename = "IdentityId", default)]
pub identity_id: i64,
#[proto(tag = 4)]
#[serde(rename = "PlayerChatHistory", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub player_chat_history: Vec<MyObjectBuilder_PlayerChatHistory>,
#[proto(tag = 7)]
#[serde(rename = "GlobalChatHistory", default)]
pub global_chat_history: MyObjectBuilder_GlobalChatHistory,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_FactionChatItem")]
pub struct MyObjectBuilder_FactionChatItem {
#[proto(tag = 37)]
#[serde(rename = "@Text", default)]
pub text: String,
#[proto(tag = 40)]
#[serde(rename = "IdentityIdUniqueNumber", default)]
pub identity_id_unique_number: i64,
#[proto(tag = 43)]
#[serde(rename = "TimestampMs", default)]
pub timestamp_ms: i64,
#[proto(tag = 46)]
#[serde(rename = "PlayersToSendToUniqueNumber", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub players_to_send_to_unique_number: Vec<i64>,
#[proto(tag = 49)]
#[serde(rename = "IsAlreadySentTo", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub is_already_sent_to: Vec<bool>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_FactionChatHistory")]
pub struct MyObjectBuilder_FactionChatHistory {
#[proto(tag = 16)]
#[serde(rename = "Chat", default)]
#[serde(serialize_with = "xml_array_item::FCI::serialize",
deserialize_with = "xml_array_item::FCI::deserialize")]
pub chat: Vec<MyObjectBuilder_FactionChatItem>,
#[proto(tag = 19)]
#[serde(rename = "FactionId1", default)]
pub faction_id1: i64,
#[proto(skip)]
#[serde(rename = "FactionId2", default)]
pub faction_id2: i64,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Eq, Hash, PartialOrd, Ord)]
#[serde(rename = "Color")]
pub struct Color {
#[proto(tag = 1)]
#[serde(rename = "PackedValue", default)]
pub packed_value: u32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Entry")]
pub struct MyObjectBuilder_Gps_Entry {
#[proto(tag = 1)]
#[serde(rename = "name", default)]
pub name: String,
#[proto(tag = 4)]
#[serde(rename = "description", default)]
pub description: String,
#[proto(tag = 7)]
#[serde(rename = "coords")]
pub coords: crate::math::Vector3D,
#[proto(tag = 10)]
#[serde(rename = "isFinal", default)]
pub is_final: bool,
#[proto(tag = 13)]
#[serde(rename = "showOnHud", default)]
pub show_on_hud: bool,
#[proto(tag = 16)]
#[serde(rename = "alwaysVisible", default)]
pub always_visible: bool,
#[proto(tag = 19)]
#[serde(rename = "color")]
pub color: Color,
#[proto(tag = 22)]
#[serde(rename = "entityId", default)]
pub entity_id: i64,
#[proto(tag = 28)]
#[serde(rename = "isObjective", default)]
pub is_objective: bool,
#[proto(tag = 31)]
#[serde(rename = "contractId", default)]
pub contract_id: i64,
#[proto(tag = 33)]
#[serde(rename = "IsGlobalEncounterGPS", default)]
pub is_global_encounter_gp_s: bool,
#[proto(tag = 25)]
#[serde(rename = "DisplayName", default)]
pub display_name: String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Gps")]
pub struct MyObjectBuilder_Gps {
#[proto(tag = 35)]
#[serde(rename = "Entries", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub entries: Vec<MyObjectBuilder_Gps_Entry>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_SessionComponent")]
pub struct MyObjectBuilder_SessionComponent {
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "PlayerItem")]
pub struct MyObjectBuilder_Checkpoint_PlayerItem {
#[proto(tag = 55)]
#[serde(rename = "PlayerId", default)]
pub player_id: i64,
#[proto(tag = 58)]
#[serde(rename = "IsDead", default)]
pub is_dead: bool,
#[proto(tag = 61)]
#[serde(rename = "Name", default)]
pub name: String,
#[proto(tag = 64)]
#[serde(rename = "SteamId", default)]
pub steam_id: u64,
#[proto(tag = 67)]
#[serde(rename = "Model", default)]
pub model: String,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Checkpoint")]
pub struct MyObjectBuilder_Checkpoint {
#[proto(tag = 1)]
#[serde(rename = "CurrentSector")]
pub current_sector: crate::math::SerializableVector3I,
#[proto(tag = 4)]
#[serde(rename = "ElapsedGameTime", default)]
pub elapsed_game_time: i64,
#[proto(tag = 7)]
#[serde(rename = "SessionName", default)]
pub session_name: String,
#[proto(tag = 10)]
#[serde(rename = "SpectatorPosition")]
pub spectator_position: MyPositionAndOrientation,
#[proto(tag = 11)]
#[serde(rename = "SpectatorSpeed")]
pub spectator_speed: crate::math::SerializableVector2F,
#[proto(tag = 13)]
#[serde(rename = "SpectatorIsLightOn", default)]
pub spectator_is_light_on: bool,
#[proto(tag = 16)]
#[serde_inline_default(MyCameraControllerEnum::Spectator)]
#[serde(rename = "CameraController")]
pub camera_controller: MyCameraControllerEnum,
#[proto(tag = 19)]
#[serde(rename = "CameraEntity", default)]
pub camera_entity: i64,
#[proto(tag = 22)]
#[serde_inline_default(-1)]
#[serde(rename = "ControlledObject")]
pub controlled_object: i64,
#[proto(tag = 25)]
#[serde(rename = "Password", default)]
pub password: String,
#[proto(tag = 28)]
#[serde(rename = "Description", default)]
pub description: String,
#[proto(tag = 31)]
#[serde(rename = "LastSaveTime", default)]
pub last_save_time: crate::compat::DateTime,
#[proto(tag = 34)]
#[serde(rename = "SpectatorDistance", default)]
pub spectator_distance: f32,
#[proto(tag = 37)]
#[serde(rename = "WorkshopId", default)]
pub workshop_id: crate::compat::Nullable<u64>,
#[proto(tag = 38)]
#[serde(rename = "WorkshopServiceName", default)]
pub workshop_service_name: String,
#[proto(tag = 39)]
#[serde(rename = "WorkshopId1", default)]
pub workshop_id1: crate::compat::Nullable<u64>,
#[proto(tag = 41)]
#[serde(rename = "WorkshopServiceName1", default)]
pub workshop_service_name1: String,
#[proto(tag = 40)]
#[serde(rename = "CharacterToolbar", default)]
pub character_toolbar: MyObjectBuilder_Toolbar,
#[proto(tag = 43)]
#[serde(rename = "ControlledEntities", default)]
pub controlled_entities: crate::compat::SerializableDictionary<i64,MyObjectBuilder_Checkpoint_PlayerId>,
#[proto(tag = 46)]
#[serde(rename = "Settings", default)]
pub settings: MyObjectBuilder_SessionSettings,
#[proto(skip)]
#[serde(rename = "ScriptManagerData", default)]
pub script_manager_data: MyObjectBuilder_ScriptManager,
#[proto(tag = 49)]
#[serde(rename = "AppVersion", default)]
pub app_version: i32,
#[proto(tag = 52)]
#[serde(rename = "Factions", default)]
pub factions: MyObjectBuilder_FactionCollection,
#[proto(tag = 54)]
#[serde(rename = "PlayersDeadInCryopods", default)]
pub players_dead_in_cryopods: crate::compat::SerializableDictionary<u64,i64>,
#[proto(tag = 82)]
#[serde(rename = "Mods", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub mods: Vec<MyObjectBuilder_Checkpoint_ModItem>,
#[proto(tag = 85)]
#[serde(rename = "PromotedUsers", default)]
pub promoted_users: crate::compat::SerializableDictionary<u64,MyPromoteLevel>,
#[proto(skip)]
#[serde(rename = "CreativeTools", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub creative_tools: Vec<u64>,
#[proto(tag = 88)]
#[serde(rename = "Scenario")]
pub scenario: SerializableDefinitionId,
#[proto(tag = 103)]
#[serde(rename = "RespawnCooldowns", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub respawn_cooldowns: Vec<MyObjectBuilder_Checkpoint_RespawnCooldownItem>,
#[proto(tag = 106)]
#[serde(rename = "Identities", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub identities: Vec<MyObjectBuilder_Identity>,
#[proto(tag = 109)]
#[serde(rename = "Clients", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub clients: Vec<MyObjectBuilder_Client>,
#[proto(tag = 112)]
#[serde(rename = "PreviousEnvironmentHostility", default)]
pub previous_environment_hostility: crate::compat::Nullable<MyEnvironmentHostilityEnum>,
#[proto(tag = 113)]
#[serde(rename = "SharedToolbar", default)]
pub shared_toolbar: u64,
#[proto(tag = 115)]
#[serde(rename = "AllPlayersData", default)]
pub all_players_data: crate::compat::SerializableDictionary<MyObjectBuilder_Checkpoint_PlayerId,MyObjectBuilder_Player>,
#[proto(tag = 118)]
#[serde(rename = "AllPlayersColors", default)]
pub all_players_colors: crate::compat::SerializableDictionary<MyObjectBuilder_Checkpoint_PlayerId,Vec<crate::math::Vector3F>>,
#[proto(tag = 121)]
#[serde(rename = "ChatHistory", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub chat_history: Vec<MyObjectBuilder_ChatHistory>,
#[proto(tag = 124)]
#[serde(rename = "FactionChatHistory", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub faction_chat_history: Vec<MyObjectBuilder_FactionChatHistory>,
#[proto(tag = 127)]
#[serde(rename = "NonPlayerIdentities", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub non_player_identities: Vec<i64>,
#[proto(tag = 130)]
#[serde(rename = "Gps", default)]
pub gps: crate::compat::SerializableDictionary<i64,MyObjectBuilder_Gps>,
#[proto(tag = 132)]
#[serde(rename = "ContainerGridIds", default)]
pub container_grid_ids: crate::compat::SerializableDictionary<u64,Vec<i64>>,
#[proto(tag = 133)]
#[serde(rename = "WorldBoundaries", default)]
pub world_boundaries: crate::compat::Nullable<crate::math::SerializableBoundingBoxD>,
#[proto(tag = 136)]
#[serde(rename = "SessionComponents", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub session_components: Vec<MyObjectBuilder_SessionComponent>,
#[proto(tag = 139)]
#[serde(rename = "GameDefinition")]
pub game_definition: SerializableDefinitionId,
#[proto(tag = 142)]
#[serde(rename = "SessionComponentEnabled", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub session_component_enabled: Vec<String>,
#[proto(tag = 145)]
#[serde(rename = "SessionComponentDisabled", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub session_component_disabled: Vec<String>,
#[proto(tag = 148)]
#[serde(rename = "InGameTime", default)]
pub in_game_time: crate::compat::DateTime,
#[proto(skip)]
#[serde(rename = "CustomLoadingScreenImage", default)]
pub custom_loading_screen_image: String,
#[proto(skip)]
#[serde(rename = "CustomLoadingScreenText", default)]
pub custom_loading_screen_text: String,
#[proto(tag = 160)]
#[serde(rename = "CustomSkybox", default)]
pub custom_skybox: String,
#[proto(tag = 163)]
#[serde_inline_default(9)]
#[serde(rename = "RequiresDX")]
pub requires_d_x: i32,
#[proto(tag = 166)]
#[serde(rename = "VicinityModelsCache", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub vicinity_models_cache: Vec<String>,
#[proto(tag = 169)]
#[serde(rename = "VicinityArmorModelsCache", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub vicinity_armor_models_cache: Vec<String>,
#[proto(tag = 172)]
#[serde(rename = "VicinityVoxelCache", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub vicinity_voxel_cache: Vec<String>,
#[proto(tag = 179)]
#[serde(rename = "WorldId", default)]
pub world_id: crate::compat::Guid,
#[proto(tag = 175)]
#[serde(rename = "ConnectedPlayers", default)]
pub connected_players: crate::compat::SerializableDictionary<MyObjectBuilder_Checkpoint_PlayerId,MyObjectBuilder_Player>,
#[proto(tag = 178)]
#[serde(rename = "DisconnectedPlayers", default)]
pub disconnected_players: crate::compat::SerializableDictionary<MyObjectBuilder_Checkpoint_PlayerId,i64>,
#[proto(skip)]
#[serde(rename = "AllPlayers", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub all_players: Vec<MyObjectBuilder_Checkpoint_PlayerItem>,
#[proto(tag = 181)]
#[serde(rename = "RemoteAdminSettings", default)]
pub remote_admin_settings: crate::compat::SerializableDictionary<u64,i32>,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyGlobalEventTypeEnum")]
pub enum MyGlobalEventTypeEnum {
#[default]
InvalidEventType,
SpawnNeutralShip,
MeteorShower,
MeteorWave,
SpawnCargoShip,
April2014,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_GlobalEventBase")]
pub struct MyObjectBuilder_GlobalEventBase {
#[proto(tag = 1)]
#[serde(rename = "DefinitionId", default)]
pub definition_id: crate::compat::Nullable<SerializableDefinitionId>,
#[proto(tag = 4)]
#[serde(rename = "Enabled", default)]
pub enabled: bool,
#[proto(tag = 7)]
#[serde(rename = "ActivationTimeMs", default)]
pub activation_time_ms: i64,
#[proto(tag = 10)]
#[serde(rename = "EventType", default)]
pub event_type: MyGlobalEventTypeEnum,
#[proto(tag = 13)]
#[serde(rename = "TargetIdentity", default)]
pub target_identity: i64,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_GlobalEvents")]
pub struct MyObjectBuilder_GlobalEvents {
#[proto(tag = 1)]
#[serde(rename = "Events", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub events: Vec<MyObjectBuilder_GlobalEventBase>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyEncounterId")]
pub struct MyEncounterId {
#[proto(tag = 1)]
#[serde(rename = "BoundingBox")]
pub bounding_box: crate::math::BoundingBoxD,
#[proto(tag = 4)]
#[serde(rename = "Seed", default)]
pub seed: i32,
#[proto(tag = 7)]
#[serde(rename = "EncounterId", default)]
pub encounter_id: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Encounters")]
pub struct MyObjectBuilder_Encounters {
#[proto(tag = 10)]
#[serde(rename = "SavedEncounters", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub saved_encounters: Vec<MyEncounterId>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_EnvironmentSettings")]
pub struct MyObjectBuilder_EnvironmentSettings {
#[proto(tag = 1)]
#[serde(rename = "SunAzimuth", default)]
pub sun_azimuth: f32,
#[proto(tag = 4)]
#[serde(rename = "SunElevation", default)]
pub sun_elevation: f32,
#[proto(tag = 7)]
#[serde(rename = "SunIntensity", default)]
pub sun_intensity: f32,
#[proto(tag = 10)]
#[serde(rename = "FogMultiplier", default)]
pub fog_multiplier: f32,
#[proto(tag = 13)]
#[serde(rename = "FogDensity", default)]
pub fog_density: f32,
#[proto(tag = 16)]
#[serde(rename = "FogColor")]
pub fog_color: crate::math::SerializableVector3F,
#[proto(tag = 19)]
#[serde(rename = "EnvironmentDefinition")]
pub environment_definition: SerializableDefinitionId,
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyPersistentEntityFlags2")]
pub enum MyPersistentEntityFlags2 {
Enabled = 2,
CastShadows = 4,
InScene = 16,
}
impl MyPersistentEntityFlags2 {
pub const NONE: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::EMPTY;
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ComponentBase")]
pub struct MyObjectBuilder_ComponentBase {
#[proto(tag = 1)]
#[serde(rename = "RemoveExistingComponentOnNewInsert", default)]
pub remove_existing_component_on_new_insert: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ComponentData")]
pub struct MyObjectBuilder_ComponentContainer_ComponentData {
#[proto(tag = 1)]
#[serde(rename = "TypeId", default)]
pub type_id: String,
#[proto(tag = 4)]
#[serde(rename = "Component", default)]
pub component: MyObjectBuilder_ComponentBase,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ComponentContainer")]
pub struct MyObjectBuilder_ComponentContainer {
#[proto(tag = 7)]
#[serde(rename = "Components", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub components: Vec<MyObjectBuilder_ComponentContainer_ComponentData>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_EntityBase")]
pub struct MyObjectBuilder_EntityBase {
#[proto(tag = 1)]
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
#[proto(tag = 4)]
#[serde(rename = "PersistentFlags")]
pub persistent_flags: crate::compat::BitField<MyPersistentEntityFlags2>,
#[proto(tag = 7)]
#[serde(rename = "Name", default)]
pub name: String,
#[proto(tag = 10)]
#[serde(rename = "PositionAndOrientation", default)]
pub position_and_orientation: crate::compat::Nullable<MyPositionAndOrientation>,
#[proto(tag = 11)]
#[serde(rename = "LocalPositionAndOrientation", default)]
pub local_position_and_orientation: crate::compat::Nullable<MyPositionAndOrientation>,
#[proto(tag = 13)]
#[serde(rename = "ComponentContainer", default)]
pub component_container: MyObjectBuilder_ComponentContainer,
#[proto(skip)]
#[serde(rename = "EntityDefinitionId", default)]
pub entity_definition_id: crate::compat::Nullable<SerializableDefinitionId>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Sector")]
pub struct MyObjectBuilder_Sector {
#[proto(tag = 1)]
#[serde(rename = "Position")]
pub position: crate::math::Vector3I,
#[proto(tag = 7)]
#[serde(rename = "SectorEvents", default)]
pub sector_events: MyObjectBuilder_GlobalEvents,
#[proto(tag = 10)]
#[serde(rename = "AppVersion", default)]
pub app_version: i32,
#[proto(tag = 13)]
#[serde(rename = "Encounters", default)]
pub encounters: MyObjectBuilder_Encounters,
#[proto(tag = 16)]
#[serde(rename = "Environment", default)]
pub environment: MyObjectBuilder_EnvironmentSettings,
#[proto(tag = 19)]
#[serde(rename = "VoxelHandVolumeChanged", default)]
pub voxel_hand_volume_changed: u64,
#[proto(tag = 4)]
#[serde(rename = "SectorObjects", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub sector_objects: Vec<MyObjectBuilder_EntityBase>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "Vector3S")]
pub struct Vector3S {
#[proto(tag = 1)]
#[serde(rename = "X", default)]
pub X: i32,
#[proto(tag = 4)]
#[serde(rename = "Y", default)]
pub Y: i32,
#[proto(tag = 7)]
#[serde(rename = "Z", default)]
pub Z: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "Vector3B")]
pub struct Vector3B {
#[proto(tag = 1)]
#[serde(rename = "X", default)]
pub X: u32,
#[proto(tag = 4)]
#[serde(rename = "Y", default)]
pub Y: u32,
#[proto(tag = 7)]
#[serde(rename = "Z", default)]
pub Z: u32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "SavedSector")]
pub struct MyObjectBuilder_Planet_SavedSector {
#[proto(tag = 1)]
#[serde(rename = "IdPos")]
pub id_pos: Vector3S,
#[proto(tag = 4)]
#[serde(rename = "IdDir")]
pub id_dir: Vector3B,
#[proto(tag = 7)]
#[serde(rename = "RemovedItems", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub removed_items: Vec<i32>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyAtmosphereSettings")]
pub struct MyAtmosphereSettings {
#[proto(tag = 1)]
#[serde(rename = "RayleighScattering")]
pub rayleigh_scattering: crate::math::Vector3F,
#[proto(tag = 4)]
#[serde(rename = "MieScattering", default)]
pub mie_scattering: f32,
#[proto(tag = 7)]
#[serde(rename = "MieColorScattering")]
pub mie_color_scattering: crate::math::Vector3F,
#[proto(tag = 10)]
#[serde(rename = "RayleighHeight", default)]
pub rayleigh_height: f32,
#[proto(tag = 13)]
#[serde(rename = "RayleighHeightSpace", default)]
pub rayleigh_height_space: f32,
#[proto(tag = 16)]
#[serde(rename = "RayleighTransitionModifier", default)]
pub rayleigh_transition_modifier: f32,
#[proto(tag = 19)]
#[serde(rename = "MieHeight", default)]
pub mie_height: f32,
#[proto(tag = 22)]
#[serde(rename = "MieG", default)]
pub mie_g: f32,
#[proto(tag = 25)]
#[serde(rename = "Intensity", default)]
pub intensity: f32,
#[proto(tag = 28)]
#[serde(rename = "FogIntensity", default)]
pub fog_intensity: f32,
#[proto(tag = 31)]
#[serde(rename = "SeaLevelModifier", default)]
pub sea_level_modifier: f32,
#[proto(tag = 34)]
#[serde(rename = "AtmosphereTopModifier", default)]
pub atmosphere_top_modifier: f32,
#[proto(tag = 37)]
#[serde(rename = "Scale", default)]
pub scale: f32,
#[proto(skip)]
#[serde(skip)]
pub sun_color_linear: crate::compat::Nullable<crate::math::Vector3F>,
#[proto(skip)]
#[serde(skip)]
pub sun_specular_color_linear: crate::compat::Nullable<crate::math::Vector3F>,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Planet")]
pub struct MyObjectBuilder_Planet {
#[proto(tag = 10)]
#[serde(rename = "Radius", default)]
pub radius: f32,
#[proto(tag = 13)]
#[serde(rename = "HasAtmosphere", default)]
pub has_atmosphere: bool,
#[proto(tag = 16)]
#[serde(rename = "AtmosphereRadius", default)]
pub atmosphere_radius: f32,
#[proto(tag = 19)]
#[serde(rename = "MinimumSurfaceRadius", default)]
pub minimum_surface_radius: f32,
#[proto(tag = 22)]
#[serde(rename = "MaximumHillRadius", default)]
pub maximum_hill_radius: f32,
#[proto(tag = 25)]
#[serde(rename = "AtmosphereWavelengths")]
pub atmosphere_wavelengths: crate::math::Vector3F,
#[proto(tag = 28)]
#[serde(rename = "SavedEnviromentSectors", default)]
#[serde(serialize_with = "xml_array_item::Sector::serialize",
deserialize_with = "xml_array_item::Sector::deserialize")]
pub saved_enviroment_sectors: Vec<MyObjectBuilder_Planet_SavedSector>,
#[proto(tag = 31)]
#[serde(rename = "GravityFalloff", default)]
pub gravity_falloff: f32,
#[proto(tag = 34)]
#[serde(rename = "MarkAreaEmpty", default)]
pub mark_area_empty: bool,
#[proto(tag = 37)]
#[serde(rename = "AtmosphereSettings", default)]
pub atmosphere_settings: crate::compat::Nullable<MyAtmosphereSettings>,
#[proto(tag = 40)]
#[serde_inline_default(1f32)]
#[serde(rename = "SurfaceGravity")]
pub surface_gravity: f32,
#[proto(tag = 43)]
#[serde(rename = "SpawnsFlora", default)]
pub spawns_flora: bool,
#[proto(tag = 46)]
#[serde(rename = "ShowGPS", default)]
pub show_gp_s: bool,
#[proto(tag = 49)]
#[serde(rename = "SpherizeWithDistance", default)]
pub spherize_with_distance: bool,
#[proto(tag = 52)]
#[serde(rename = "PlanetGenerator", default)]
pub planet_generator: String,
#[proto(tag = 55)]
#[serde(rename = "Seed", default)]
pub seed: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_World")]
pub struct MyObjectBuilder_World {
#[proto(tag = 1)]
#[serde(rename = "Checkpoint", default)]
pub checkpoint: MyObjectBuilder_Checkpoint,
#[proto(tag = 4)]
#[serde(rename = "Sector", default)]
pub sector: MyObjectBuilder_Sector,
#[proto(tag = 7)]
#[serde(rename = "VoxelMaps", default)]
pub voxel_maps: crate::compat::SerializableDictionary<String,Vec<i32>>,
#[proto(skip)]
#[serde(rename = "Clusters", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub clusters: Vec<crate::math::BoundingBoxD>,
#[proto(skip)]
#[serde(rename = "Planets", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub planets: Vec<MyObjectBuilder_Planet>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "MyFixedPoint")]
pub struct MyFixedPoint {
#[proto(tag = 1)]
#[serde(rename = "RawValue", default)]
pub raw_value: i64,
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyItemFlags")]
pub enum MyItemFlags {
Damaged = 2,
}
impl MyItemFlags {
pub const NONE: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::EMPTY;
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Base")]
pub struct MyObjectBuilder_Base {
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "BitReaderWriter")]
pub struct BitReaderWriter {
#[serde(rename = "IsReading", default)]
pub is_reading: bool,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_AutopilotWaypoint")]
pub struct MyObjectBuilder_AutopilotWaypoint {
#[proto(tag = 1)]
#[serde(rename = "Coords")]
pub coords: crate::math::Vector3D,
#[proto(tag = 4)]
#[serde(rename = "Name", default)]
pub name: String,
#[proto(tag = 7)]
#[serde(rename = "Actions", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub actions: Vec<MyObjectBuilder_ToolbarItem>,
#[proto(tag = 10)]
#[serde(rename = "Indexes", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub indexes: Vec<i32>,
#[proto(tag = 14)]
#[serde(rename = "Draw", default)]
pub draw: bool,
#[proto(tag = 18)]
#[serde(rename = "ForceRotation", default)]
pub force_rotation: bool,
#[proto(tag = 25)]
#[serde(rename = "RelatedEntityId", default)]
pub related_entity_id: i64,
#[proto(tag = 29)]
#[serde(rename = "Matrix")]
pub matrix: MyPositionAndOrientation,
#[proto(tag = 30)]
#[serde(rename = "RelatedMatrixCurrent", default)]
pub related_matrix_current: crate::compat::Nullable<MyPositionAndOrientation>,
#[proto(tag = 31)]
#[serde(rename = "RelatedEntityMatrix")]
pub related_entity_matrix: MyPositionAndOrientation,
#[proto(tag = 34)]
#[serde(rename = "RelatedEntityWorldOffset")]
pub related_entity_world_offset: crate::math::Vector3D,
#[proto(tag = 37)]
#[serde_inline_default(1f32)]
#[serde(rename = "StoppingTimeMultiplier")]
pub stopping_time_multiplier: f32,
#[proto(tag = 40)]
#[serde(rename = "AdaptiveRotationSpeed", default)]
pub adaptive_rotation_speed: bool,
#[proto(tag = 43)]
#[serde(rename = "AreaUp")]
pub area_up: crate::math::Vector3D,
#[proto(tag = 46)]
#[serde(rename = "SerializeForCopy", default)]
pub serialize_for_copy: bool,
#[proto(tag = 49)]
#[serde_inline_default(1f32)]
#[serde(rename = "DistancePrecisionMultiplier")]
pub distance_precision_multiplier: f32,
#[proto(tag = 52)]
#[serde(rename = "IsCorrectRotationNeeded", default)]
pub is_correct_rotation_needed: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_AutopilotClipboard")]
pub struct MyObjectBuilder_AutopilotClipboard {
#[proto(tag = 1)]
#[serde(rename = "RemoteEntityId", default)]
pub remote_entity_id: i64,
#[proto(tag = 4)]
#[serde(rename = "FlightMode", default)]
pub flight_mode: i32,
#[proto(tag = 7)]
#[serde(rename = "indexes", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub indexes: Vec<i32>,
#[proto(tag = 10)]
#[serde(rename = "Waypoints", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub waypoints: Vec<MyObjectBuilder_AutopilotWaypoint>,
#[proto(tag = 13)]
#[serde(rename = "Direction", default)]
pub direction: i32,
#[proto(tag = 16)]
#[serde(rename = "DockingModeEnabled", default)]
pub docking_mode_enabled: bool,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "TypeCode")]
pub enum TypeCode {
#[default]
Empty,
Object,
DBNull,
Boolean,
Char,
SByte,
Byte,
Int16,
UInt16,
Int32,
UInt32,
Int64,
UInt64,
Single,
Double,
Decimal,
DateTime,
String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ToolbarItemActionParameter")]
pub struct MyObjectBuilder_ToolbarItemActionParameter {
#[proto(tag = 1)]
#[serde(rename = "TypeCode", default)]
pub type_code: TypeCode,
#[proto(tag = 4)]
#[serde(rename = "Value", default)]
pub value: String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ToolbarItem")]
pub struct ToolbarItem {
#[proto(tag = 1)]
#[serde(rename = "EntityID", default)]
pub entity_i_d: i64,
#[proto(tag = 4)]
#[serde(rename = "GroupName", default)]
pub group_name: String,
#[proto(tag = 7)]
#[serde(rename = "Action", default)]
pub action: String,
#[proto(tag = 10)]
#[serde(rename = "Parameters", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub parameters: Vec<MyObjectBuilder_ToolbarItemActionParameter>,
#[proto(tag = 13)]
#[serde(rename = "CustomIconTitle", default)]
pub custom_icon_title: String,
#[proto(skip)]
#[serde(rename = "GunId", default)]
pub gun_id: crate::compat::Nullable<SerializableDefinitionId>,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "SpriteType")]
pub enum SpriteType {
#[default]
TEXTURE,
TEXT,
CLIP_RECT,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "TextAlignment")]
pub enum TextAlignment {
#[default]
LEFT,
RIGHT,
CENTER,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MySerializableSprite")]
pub struct MySerializableSprite {
#[proto(tag = 1)]
#[serde_inline_default(SpriteType::TEXTURE)]
#[serde(rename = "Type")]
pub r#type: SpriteType,
#[proto(tag = 4)]
#[serde(rename = "Position", default)]
pub position: crate::compat::Nullable<crate::math::SerializableVector2F>,
#[proto(tag = 7)]
#[serde(rename = "Size", default)]
pub size: crate::compat::Nullable<crate::math::SerializableVector2F>,
#[proto(tag = 10)]
#[serde(rename = "Color", default)]
pub color: crate::compat::Nullable<u32>,
#[proto(tag = 13)]
#[serde(rename = "Data", default)]
pub data: String,
#[proto(tag = 16)]
#[serde(rename = "FontId", default)]
pub font_id: String,
#[proto(tag = 19)]
#[serde_inline_default(TextAlignment::CENTER)]
#[serde(rename = "Alignment")]
pub alignment: TextAlignment,
#[proto(tag = 22)]
#[serde(rename = "RotationOrScale", default)]
pub rotation_or_scale: f32,
#[proto(tag = 25)]
#[serde(rename = "Index", default)]
pub index: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MySerializableSpriteCollection")]
pub struct MySerializableSpriteCollection {
#[proto(tag = 1)]
#[serde(rename = "Sprites", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub sprites: Vec<MySerializableSprite>,
#[proto(tag = 4)]
#[serde(rename = "Length", default)]
pub length: i32,
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "UseActionEnum")]
pub enum UseActionEnum {
Manipulate = 1,
OpenTerminal = 2,
OpenInventory = 4,
UseFinished = 8,
Close = 16,
PickUp = 32,
BuildPlanner = 64,
Deposit = 128,
Harvest = 256,
Plant = 512,
}
impl UseActionEnum {
pub const NONE: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::EMPTY;
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "UseActionResult")]
pub enum UseActionResult {
#[default]
OK,
UsedBySomeoneElse,
AccessDenied,
Closed,
Unpowered,
CockpitDamaged,
MissingDLC,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Eq, Hash, PartialOrd, Ord)]
#[serde(rename = "MyStringHash")]
pub struct MyStringHash {
#[proto(tag = 1)]
#[serde(rename = "m_hash", default)]
pub m_hash: i32,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStatChangeInfo")]
pub struct MyStatSyncData_MyStatChangeInfo {
#[serde(rename = "DamageType")]
pub damage_type: MyStringHash,
#[serde(rename = "DamageSound", default)]
pub damage_sound: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStatSyncData")]
pub struct MyEntityStat_MyStatSyncData {
#[serde(rename = "StatId")]
pub stat_id: MyStringHash,
#[serde(rename = "Amount", default)]
pub amount: f32,
#[serde(rename = "RegenLeft", default)]
pub regen_left: f32,
#[serde(rename = "ChangeInfo")]
pub change_info: MyStatSyncData_MyStatChangeInfo,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStatAction")]
pub struct MyStatLogic_MyStatAction {
#[proto(tag = 1)]
#[serde(rename = "StatId")]
pub stat_id: MyStringHash,
#[proto(tag = 4)]
#[serde(rename = "Cost", default)]
pub cost: f32,
#[proto(tag = 7)]
#[serde(rename = "AmountToActivate", default)]
pub amount_to_activate: f32,
#[proto(tag = 10)]
#[serde(rename = "CanPerformWithout", default)]
pub can_perform_without: bool,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyShootActionEnum")]
pub enum MyShootActionEnum {
#[default]
PrimaryAction,
SecondaryAction,
TertiaryAction,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Missile")]
pub struct MyObjectBuilder_Missile {
#[proto(tag = 1)]
#[serde(rename = "WeaponDefinitionId")]
pub weapon_definition_id: SerializableDefinitionId,
#[proto(tag = 4)]
#[serde(rename = "AmmoMagazineId")]
pub ammo_magazine_id: SerializableDefinitionId,
#[proto(tag = 7)]
#[serde(rename = "LinearVelocity")]
pub linear_velocity: crate::math::Vector3F,
#[proto(tag = 10)]
#[serde(rename = "Owner", default)]
pub owner: i64,
#[proto(tag = 13)]
#[serde(rename = "OriginEntity", default)]
pub origin_entity: i64,
#[proto(tag = 16)]
#[serde(rename = "LauncherId", default)]
pub launcher_id: i64,
#[proto(tag = 19)]
#[serde(rename = "HealthPool", default)]
pub health_pool: f32,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "TargetFocusResult")]
pub enum TargetFocusResult {
#[default]
Ok,
IsNotInLoS,
IsOutOfRange,
Other,
Filter,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_AutopilotBase")]
pub struct MyObjectBuilder_AutopilotBase {}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Matrix")]
pub struct Matrix {
#[proto(tag = 1)]
#[serde(rename = "M11", default)]
pub M11: f32,
#[proto(tag = 4)]
#[serde(rename = "M12", default)]
pub M12: f32,
#[proto(tag = 7)]
#[serde(rename = "M13", default)]
pub M13: f32,
#[proto(tag = 10)]
#[serde(rename = "M14", default)]
pub M14: f32,
#[proto(tag = 13)]
#[serde(rename = "M21", default)]
pub M21: f32,
#[proto(tag = 16)]
#[serde(rename = "M22", default)]
pub M22: f32,
#[proto(tag = 19)]
#[serde(rename = "M23", default)]
pub M23: f32,
#[proto(tag = 22)]
#[serde(rename = "M24", default)]
pub M24: f32,
#[proto(tag = 25)]
#[serde(rename = "M31", default)]
pub M31: f32,
#[proto(tag = 28)]
#[serde(rename = "M32", default)]
pub M32: f32,
#[proto(tag = 31)]
#[serde(rename = "M33", default)]
pub M33: f32,
#[proto(tag = 34)]
#[serde(rename = "M34", default)]
pub M34: f32,
#[proto(tag = 37)]
#[serde(rename = "M41", default)]
pub M41: f32,
#[proto(tag = 40)]
#[serde(rename = "M42", default)]
pub M42: f32,
#[proto(tag = 43)]
#[serde(rename = "M43", default)]
pub M43: f32,
#[proto(tag = 46)]
#[serde(rename = "M44", default)]
pub M44: f32,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyConveyorSorterMode")]
pub enum MyConveyorSorterMode {
#[default]
Whitelist,
Blacklist,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Group")]
pub struct MyDisconnectHelper_Group {
#[serde(rename = "FirstBlockIndex", default)]
pub first_block_index: i32,
#[serde(rename = "BlockCount", default)]
pub block_count: i32,
#[serde(rename = "IsValid", default)]
pub is_valid: bool,
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "BlockPositionId")]
pub struct MyCubeGrid_BlockPositionId {
#[proto(tag = 22)]
#[serde(rename = "Position")]
pub position: crate::math::Vector3I,
#[proto(tag = 25)]
#[serde(rename = "CompoundId", default)]
pub compound_id: u32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyBlockVisuals")]
pub struct MyCubeGrid_MyBlockVisuals {
#[proto(tag = 28)]
#[serde(rename = "ColorMaskHSV", default)]
pub color_mask_hs_v: u32,
#[proto(tag = 31)]
#[serde(rename = "SkinId")]
pub skin_id: MyStringHash,
#[proto(tag = 33)]
#[serde(rename = "ApplyColor", default)]
pub apply_color: bool,
#[proto(tag = 35)]
#[serde(rename = "ApplySkin", default)]
pub apply_skin: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "MyBlockOrientation")]
pub struct MyBlockOrientation {
#[proto(tag = 1)]
#[serde(rename = "Forward", default)]
pub forward: crate::compat::direction::Direction,
#[proto(tag = 4)]
#[serde(rename = "Up", default)]
pub up: crate::compat::direction::Direction,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyRuntimeObjectBuilderId")]
pub struct MyRuntimeObjectBuilderId {
#[proto(tag = 1)]
#[serde(rename = "Value", default)]
pub value: u32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "DefinitionIdBlit")]
pub struct DefinitionIdBlit {
#[proto(skip)]
#[serde(rename = "TypeId")]
pub type_id: MyRuntimeObjectBuilderId,
#[proto(tag = 4)]
#[serde(rename = "SubtypeId")]
pub subtype_id: MyStringHash,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyBlockLocation")]
pub struct MyCubeGrid_MyBlockLocation {
#[proto(tag = 1)]
#[serde(rename = "Min")]
pub min: crate::math::Vector3I,
#[proto(tag = 4)]
#[serde(rename = "Max")]
pub max: crate::math::Vector3I,
#[proto(tag = 7)]
#[serde(rename = "CenterPos")]
pub center_pos: crate::math::Vector3I,
#[proto(tag = 10)]
#[serde(rename = "Orientation")]
pub orientation: MyBlockOrientation,
#[proto(tag = 13)]
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
#[proto(tag = 16)]
#[serde(rename = "BlockDefinition")]
pub block_definition: DefinitionIdBlit,
#[proto(tag = 19)]
#[serde(rename = "Owner", default)]
pub owner: i64,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "SerializableBlockOrientation")]
pub struct SerializableBlockOrientation {
#[proto(tag = 1)]
#[serde(rename = "@Forward", default)]
pub forward: crate::compat::direction::Direction,
#[proto(tag = 4)]
#[serde(rename = "@Up", default)]
pub up: crate::compat::direction::Direction,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_PhysicalObject")]
pub struct MyObjectBuilder_PhysicalObject {
#[proto(tag = 1)]
#[serde(rename = "Flags", default)]
pub flags: crate::compat::BitField<MyItemFlags>,
#[proto(tag = 4)]
#[serde(rename = "DurabilityHP", default)]
pub durability_h_p: crate::compat::Nullable<f32>,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_InventoryItem")]
pub struct MyObjectBuilder_InventoryItem {
#[proto(tag = 1)]
#[serde(rename = "Amount")]
pub amount: MyFixedPoint,
#[proto(tag = 4)]
#[serde_inline_default(1f32)]
#[serde(rename = "Scale")]
pub scale: f32,
#[proto(tag = 7)]
#[serde(rename = "Content", default)]
pub content: MyObjectBuilder_PhysicalObject,
#[proto(tag = 10)]
#[serde(rename = "PhysicalContent", default)]
pub physical_content: MyObjectBuilder_PhysicalObject,
#[proto(tag = 13)]
#[serde(rename = "ItemId", default)]
pub item_id: u32,
#[proto(skip)]
#[serde(rename = "Obsolete_AmountDecimal")]
pub obsolete_amount_decimal: crate::compat::Decimal,
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyInventoryFlags")]
pub enum MyInventoryFlags {
CanReceive = 1,
CanSend = 2,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Inventory")]
pub struct MyObjectBuilder_Inventory {
#[proto(tag = 1)]
#[serde(rename = "Items", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub items: Vec<MyObjectBuilder_InventoryItem>,
#[proto(tag = 4)]
#[serde(rename = "nextItemId", default)]
pub next_item_id: u32,
#[proto(tag = 7)]
#[serde(rename = "Volume", default)]
pub volume: crate::compat::Nullable<MyFixedPoint>,
#[proto(tag = 10)]
#[serde(rename = "Mass", default)]
pub mass: crate::compat::Nullable<MyFixedPoint>,
#[proto(tag = 13)]
#[serde(rename = "MaxItemCount", default)]
pub max_item_count: crate::compat::Nullable<i32>,
#[proto(tag = 16)]
#[serde(rename = "Size", default)]
pub size: crate::compat::Nullable<crate::math::SerializableVector3F>,
#[proto(tag = 19)]
#[serde(rename = "InventoryFlags", default)]
pub inventory_flags: crate::compat::Nullable<crate::compat::BitField<MyInventoryFlags>>,
#[proto(tag = 22)]
#[serde(rename = "RemoveEntityOnEmpty", default)]
pub remove_entity_on_empty: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_StockpileItem")]
pub struct MyObjectBuilder_StockpileItem {
#[proto(tag = 1)]
#[serde(rename = "Amount", default)]
pub amount: i32,
#[proto(tag = 4)]
#[serde(rename = "PhysicalContent", default)]
pub physical_content: MyObjectBuilder_PhysicalObject,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ConstructionStockpile")]
pub struct MyObjectBuilder_ConstructionStockpile {
#[proto(tag = 1)]
#[serde(rename = "Items", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub items: Vec<MyObjectBuilder_StockpileItem>,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyOwnershipShareModeEnum")]
pub enum MyOwnershipShareModeEnum {
#[default]
None,
Faction,
All,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MySubBlockId")]
pub struct MyObjectBuilder_CubeBlock_MySubBlockId {
#[proto(tag = 43)]
#[serde(rename = "SubGridId", default)]
pub sub_grid_id: i64,
#[proto(tag = 46)]
#[serde(rename = "SubGridName", default)]
pub sub_grid_name: String,
#[proto(tag = 49)]
#[serde(rename = "SubBlockPosition")]
pub sub_block_position: crate::math::SerializableVector3I,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_CubeBlock")]
pub struct MyObjectBuilder_CubeBlock {
#[proto(tag = 1)]
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
#[proto(tag = 4)]
#[serde(rename = "Name", default)]
pub name: String,
#[proto(tag = 7)]
#[serde(rename = "Min")]
pub min: crate::math::SerializableVector3I,
#[proto(tag = 10)]
#[serde_inline_default(1f32)]
#[serde(rename = "IntegrityPercent")]
pub integrity_percent: f32,
#[proto(tag = 13)]
#[serde_inline_default(1f32)]
#[serde(rename = "BuildPercent")]
pub build_percent: f32,
#[proto(tag = 16)]
#[serde(rename = "BlockOrientation")]
pub block_orientation: SerializableBlockOrientation,
#[proto(skip)]
#[serde(rename = "ConstructionInventory", default)]
pub construction_inventory: MyObjectBuilder_Inventory,
#[proto(tag = 22)]
#[serde(rename = "ColorMaskHSV")]
pub color_mask_hs_v: crate::math::SerializableVector3F,
#[proto(tag = 25)]
#[serde(rename = "SkinSubtypeId", default)]
pub skin_subtype_id: String,
#[proto(tag = 28)]
#[serde(rename = "ConstructionStockpile", default)]
pub construction_stockpile: MyObjectBuilder_ConstructionStockpile,
#[proto(tag = 31)]
#[serde(rename = "Owner", default)]
pub owner: i64,
#[proto(tag = 34)]
#[serde(rename = "BuiltBy", default)]
pub built_by: i64,
#[proto(tag = 37)]
#[serde_inline_default(MyOwnershipShareModeEnum::None)]
#[serde(rename = "ShareMode")]
pub share_mode: MyOwnershipShareModeEnum,
#[proto(skip)]
#[serde(rename = "DeformationRatio", default)]
pub deformation_ratio: f32,
#[proto(tag = 52)]
#[serde(rename = "SubBlocks", default)]
#[serde(serialize_with = "xml_array_item::SubBlock::serialize",
deserialize_with = "xml_array_item::SubBlock::deserialize")]
pub sub_blocks: Vec<MyObjectBuilder_CubeBlock_MySubBlockId>,
#[proto(tag = 55)]
#[serde(rename = "MultiBlockId", default)]
pub multi_block_id: i32,
#[proto(tag = 58)]
#[serde(rename = "MultiBlockDefinition", default)]
pub multi_block_definition: crate::compat::Nullable<SerializableDefinitionId>,
#[proto(tag = 61)]
#[serde_inline_default(-1)]
#[serde(rename = "MultiBlockIndex")]
pub multi_block_index: i32,
#[proto(tag = 64)]
#[serde_inline_default(1f32)]
#[serde(rename = "BlockGeneralDamageModifier")]
pub block_general_damage_modifier: f32,
#[proto(tag = 67)]
#[serde(rename = "ComponentContainer", default)]
pub component_container: MyObjectBuilder_ComponentContainer,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "Vector3UByte")]
pub struct Vector3UByte {
#[proto(tag = 1)]
#[serde(rename = "X", default)]
pub X: i32,
#[proto(tag = 4)]
#[serde(rename = "Y", default)]
pub Y: i32,
#[proto(tag = 7)]
#[serde(rename = "Z", default)]
pub Z: i32,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyBlockBuildArea")]
pub struct MyCubeGrid_MyBlockBuildArea {
#[serde(rename = "DefinitionId")]
pub definition_id: DefinitionIdBlit,
#[serde(rename = "ColorMaskHSV", default)]
pub color_mask_hs_v: u32,
#[serde(rename = "PosInGrid")]
pub pos_in_grid: crate::math::Vector3I,
#[serde(rename = "BlockMin")]
pub block_min: Vector3B,
#[serde(rename = "BlockMax")]
pub block_max: Vector3B,
#[serde(rename = "BuildAreaSize")]
pub build_area_size: Vector3UByte,
#[serde(rename = "StepDelta")]
pub step_delta: Vector3B,
#[serde(rename = "OrientationForward", default)]
pub orientation_forward: crate::compat::direction::Direction,
#[serde(rename = "OrientationUp", default)]
pub orientation_up: crate::compat::direction::Direction,
#[serde(rename = "SkinId")]
pub skin_id: MyStringHash,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyIntegrityChangeEnum")]
pub enum MyIntegrityChangeEnum {
#[default]
Damage,
ConstructionBegin,
ConstructionEnd,
ConstructionProcess,
DeconstructionBegin,
DeconstructionEnd,
DeconstructionProcess,
Repair,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStockpileItem")]
pub struct MyStockpileItem {
#[proto(tag = 1)]
#[serde(rename = "Amount", default)]
pub amount: i32,
#[proto(tag = 4)]
#[serde(rename = "Content", default)]
pub content: MyObjectBuilder_PhysicalObject,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyCubeSize")]
pub enum MyCubeSize {
#[default]
Large,
Small,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "SerializableVector3UByte")]
pub struct SerializableVector3UByte {
#[proto(skip)]
#[serde(rename = "X", default)]
pub X: i32,
#[proto(skip)]
#[serde(rename = "Y", default)]
pub Y: i32,
#[proto(skip)]
#[serde(rename = "Z", default)]
pub Z: i32,
#[proto(skip)]
#[serde(rename = "@x", default)]
pub x: i32,
#[proto(skip)]
#[serde(rename = "@y", default)]
pub y: i32,
#[proto(skip)]
#[serde(rename = "@z", default)]
pub z: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "BoneInfo")]
pub struct BoneInfo {
#[proto(tag = 1)]
#[serde(rename = "BonePosition")]
pub bone_position: crate::math::SerializableVector3I,
#[proto(tag = 2)]
#[serde(rename = "BoneOffset")]
pub bone_offset: SerializableVector3UByte,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ConveyorPacket")]
pub struct MyObjectBuilder_ConveyorPacket {
#[proto(tag = 1)]
#[serde(rename = "Item", default)]
pub item: MyObjectBuilder_InventoryItem,
#[proto(tag = 4)]
#[serde(rename = "LinePosition", default)]
pub line_position: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "SerializableLineSectionInformation")]
pub struct SerializableLineSectionInformation {
#[proto(tag = 1)]
#[serde(rename = "@Direction", default)]
pub direction: crate::compat::direction::Direction,
#[proto(tag = 4)]
#[serde(rename = "@Length", default)]
pub length: i32,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "LineType")]
pub enum MyObjectBuilder_ConveyorLine_LineType {
#[default]
DEFAULT_LINE,
SMALL_LINE,
LARGE_LINE,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "LineConductivity")]
pub enum MyObjectBuilder_ConveyorLine_LineConductivity {
#[default]
FULL,
FORWARD,
BACKWARD,
NONE,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ConveyorLine")]
pub struct MyObjectBuilder_ConveyorLine {
#[proto(tag = 1)]
#[serde(rename = "StartPosition")]
pub start_position: crate::math::SerializableVector3I,
#[proto(tag = 4)]
#[serde(rename = "StartDirection", default)]
pub start_direction: crate::compat::direction::Direction,
#[proto(tag = 7)]
#[serde(rename = "EndPosition")]
pub end_position: crate::math::SerializableVector3I,
#[proto(tag = 10)]
#[serde(rename = "EndDirection", default)]
pub end_direction: crate::compat::direction::Direction,
#[proto(tag = 13)]
#[serde(rename = "PacketsForward", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub packets_forward: Vec<MyObjectBuilder_ConveyorPacket>,
#[proto(tag = 16)]
#[serde(rename = "PacketsBackward", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub packets_backward: Vec<MyObjectBuilder_ConveyorPacket>,
#[proto(tag = 19)]
#[serde(rename = "Sections", default)]
#[serde(serialize_with = "xml_array_item::Section::serialize",
deserialize_with = "xml_array_item::Section::deserialize")]
pub sections: Vec<SerializableLineSectionInformation>,
#[proto(tag = 22)]
#[serde_inline_default(MyObjectBuilder_ConveyorLine_LineType::DEFAULT_LINE)]
#[serde(rename = "ConveyorLineType")]
pub conveyor_line_type: MyObjectBuilder_ConveyorLine_LineType,
#[proto(tag = 25)]
#[serde_inline_default(MyObjectBuilder_ConveyorLine_LineConductivity::FULL)]
#[serde(rename = "ConveyorLineConductivity")]
pub conveyor_line_conductivity: MyObjectBuilder_ConveyorLine_LineConductivity,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_BlockGroup")]
pub struct MyObjectBuilder_BlockGroup {
#[proto(tag = 1)]
#[serde(rename = "Name", default)]
pub name: String,
#[proto(tag = 4)]
#[serde(rename = "Blocks", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub blocks: Vec<crate::math::Vector3I>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "OxygenRoom")]
pub struct OxygenRoom {
#[proto(tag = 112)]
#[serde(rename = "StartingPosition")]
pub starting_position: crate::math::Vector3I,
#[proto(tag = 115)]
#[serde(rename = "@OxygenAmount", default)]
pub oxygen_amount: f32,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyUpdateTiersGridPresence")]
pub enum MyUpdateTiersGridPresence {
#[default]
Normal,
Tier1,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyUpdateTiersPlayerPresence")]
pub enum MyUpdateTiersPlayerPresence {
#[default]
Normal,
Tier1,
Tier2,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_CubeGrid")]
pub struct MyObjectBuilder_CubeGrid {
#[proto(tag = 1)]
#[serde(rename = "GridSizeEnum", default)]
pub grid_size_enum: MyCubeSize,
#[proto(tag = 4)]
#[serde(rename = "CubeBlocks", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub cube_blocks: Vec<MyObjectBuilder_CubeBlock>,
#[proto(tag = 7)]
#[serde(rename = "IsStatic", default)]
pub is_static: bool,
#[proto(tag = 10)]
#[serde(rename = "IsUnsupportedStation", default)]
pub is_unsupported_station: bool,
#[proto(tag = 13)]
#[serde(rename = "Skeleton", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub skeleton: Vec<BoneInfo>,
#[proto(tag = 16)]
#[serde(rename = "LinearVelocity")]
pub linear_velocity: crate::math::SerializableVector3F,
#[proto(tag = 19)]
#[serde(rename = "AngularVelocity")]
pub angular_velocity: crate::math::SerializableVector3F,
#[proto(tag = 22)]
#[serde(rename = "XMirroxPlane", default)]
pub x_mirrox_plane: crate::compat::Nullable<crate::math::SerializableVector3I>,
#[proto(tag = 25)]
#[serde(rename = "YMirroxPlane", default)]
pub y_mirrox_plane: crate::compat::Nullable<crate::math::SerializableVector3I>,
#[proto(tag = 28)]
#[serde(rename = "ZMirroxPlane", default)]
pub z_mirrox_plane: crate::compat::Nullable<crate::math::SerializableVector3I>,
#[proto(tag = 31)]
#[serde(rename = "XMirroxOdd", default)]
pub x_mirrox_odd: bool,
#[proto(tag = 34)]
#[serde(rename = "YMirroxOdd", default)]
pub y_mirrox_odd: bool,
#[proto(tag = 37)]
#[serde(rename = "ZMirroxOdd", default)]
pub z_mirrox_odd: bool,
#[proto(tag = 40)]
#[serde(rename = "DampenersEnabled", default)]
pub dampeners_enabled: bool,
#[proto(tag = 43)]
#[serde(rename = "UsePositionForSpawn", default)]
pub use_position_for_spawn: bool,
#[proto(tag = 46)]
#[serde_inline_default(0.3f32)]
#[serde(rename = "PlanetSpawnHeightRatio")]
pub planet_spawn_height_ratio: f32,
#[proto(tag = 49)]
#[serde_inline_default(500f32)]
#[serde(rename = "SpawnRangeMin")]
pub spawn_range_min: f32,
#[proto(tag = 52)]
#[serde_inline_default(650f32)]
#[serde(rename = "SpawnRangeMax")]
pub spawn_range_max: f32,
#[proto(tag = 55)]
#[serde(rename = "ConveyorLines", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub conveyor_lines: Vec<MyObjectBuilder_ConveyorLine>,
#[proto(tag = 58)]
#[serde(rename = "BlockGroups", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub block_groups: Vec<MyObjectBuilder_BlockGroup>,
#[proto(tag = 61)]
#[serde(rename = "Handbrake", default)]
pub handbrake: bool,
#[proto(tag = 64)]
#[serde(rename = "DisplayName", default)]
pub display_name: String,
#[proto(tag = 67)]
#[serde(rename = "OxygenAmount", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub oxygen_amount: Vec<f32>,
#[proto(tag = 70)]
#[serde(rename = "DestructibleBlocks", default)]
pub destructible_blocks: bool,
#[proto(tag = 73)]
#[serde(rename = "JumpDriveDirection", default)]
pub jump_drive_direction: crate::compat::Nullable<crate::math::Vector3D>,
#[proto(tag = 76)]
#[serde(rename = "JumpRemainingTime", default)]
pub jump_remaining_time: crate::compat::Nullable<f32>,
#[proto(tag = 79)]
#[serde(rename = "CreatePhysics", default)]
pub create_physics: bool,
#[proto(tag = 85)]
#[serde(rename = "IsRespawnGrid", default)]
pub is_respawn_grid: bool,
#[proto(tag = 88)]
#[serde_inline_default(-1)]
#[serde(rename = "playedTime")]
pub played_time: i32,
#[proto(tag = 91)]
#[serde_inline_default(1f32)]
#[serde(rename = "GridGeneralDamageModifier")]
pub grid_general_damage_modifier: f32,
#[proto(tag = 94)]
#[serde(rename = "LocalCoordSys", default)]
pub local_coord_sys: i64,
#[proto(tag = 97)]
#[serde(rename = "Editable", default)]
pub editable: bool,
#[proto(tag = 100)]
#[serde(rename = "TargetingTargets", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub targeting_targets: Vec<i64>,
#[proto(tag = 103)]
#[serde(rename = "TargetingWhitelist", default)]
pub targeting_whitelist: bool,
#[proto(tag = 106)]
#[serde(rename = "IsPowered", default)]
pub is_powered: bool,
#[proto(tag = 109)]
#[serde(rename = "OxygenRooms", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub oxygen_rooms: Vec<OxygenRoom>,
#[proto(tag = 120)]
#[serde(rename = "Immune", default)]
pub immune: bool,
#[proto(tag = 123)]
#[serde_inline_default(MyUpdateTiersGridPresence::Normal)]
#[serde(rename = "GridPresenceTier")]
pub grid_presence_tier: MyUpdateTiersGridPresence,
#[proto(tag = 126)]
#[serde_inline_default(MyUpdateTiersPlayerPresence::Normal)]
#[serde(rename = "PlayerPresenceTier")]
pub player_presence_tier: MyUpdateTiersPlayerPresence,
#[proto(tag = 129)]
#[serde(rename = "IsNpcSpawnedGrid", default)]
pub is_npc_spawned_grid: bool,
#[proto(tag = 132)]
#[serde(rename = "NPCGridClaimElapsed", default)]
pub npc_grid_claim_elapsed: crate::compat::Nullable<i32>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MatrixI")]
pub struct MatrixI {
#[serde(rename = "Right", default)]
pub right: crate::compat::direction::Direction,
#[serde(rename = "Up", default)]
pub up: crate::compat::direction::Direction,
#[serde(rename = "Backward", default)]
pub backward: crate::compat::direction::Direction,
#[serde(rename = "Translation")]
pub translation: crate::math::Vector3I,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyMultipleEnabledEnum")]
pub enum MyMultipleEnabledEnum {
#[default]
NoObjects,
AllDisabled,
Mixed,
AllEnabled,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyTestDynamicReason")]
pub enum MyCubeGrid_MyTestDynamicReason {
#[default]
NoReason,
GridCopied,
GridSplit,
GridSplitByBlock,
ConvertToShip,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "HandbrakeToggleResult")]
pub enum MyCubeGrid_HandbrakeToggleResult {
#[default]
RELEASED,
ENGAGED_SUCCESSFULLY,
FAILED_TO_ENGAGE,
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyHudIndicatorFlagsEnum")]
pub enum MyHudIndicatorFlagsEnum {
SHOW_TEXT = 1,
SHOW_BORDER_INDICATORS = 2,
SHOW_DISTANCE = 16,
ALPHA_CORRECTION_BY_DISTANCE = 32,
SHOW_ICON = 1024,
SHOW_FOCUS_MARK = 2048,
}
impl MyHudIndicatorFlagsEnum {
pub const NONE: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::EMPTY;
pub const SHOW_ALL: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::ALL;
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_HudEntityParams")]
pub struct MyObjectBuilder_HudEntityParams {
#[proto(tag = 1)]
#[serde(rename = "Position")]
pub position: crate::math::Vector3D,
#[proto(tag = 2)]
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
#[proto(tag = 3)]
#[serde(rename = "Text", default)]
pub text: String,
#[proto(tag = 4)]
#[serde(rename = "FlagsEnum")]
pub flags_enum: crate::compat::BitField<MyHudIndicatorFlagsEnum>,
#[proto(tag = 5)]
#[serde(rename = "Owner", default)]
pub owner: i64,
#[proto(tag = 6)]
#[serde(rename = "Share", default)]
pub share: MyOwnershipShareModeEnum,
#[proto(tag = 7)]
#[serde(rename = "BlinkingTime", default)]
pub blinking_time: f32,
#[proto(tag = 9)]
#[serde(rename = "Waypoints", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub waypoints: Vec<MyPositionAndOrientation>,
#[proto(tag = 11)]
#[serde(rename = "ForceShow", default)]
pub force_show: bool,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyCapsuleShapeParams")]
pub struct MyVoxelBase_MyCapsuleShapeParams {
#[serde(rename = "A")]
pub A: crate::math::Vector3D,
#[serde(rename = "B")]
pub B: crate::math::Vector3D,
#[serde(rename = "Radius", default)]
pub radius: f32,
#[serde(rename = "Transformation")]
pub transformation: crate::math::MatrixD,
#[serde(rename = "Material", default)]
pub material: i32,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "OperationType")]
pub enum MyVoxelBase_OperationType {
#[default]
Fill,
Paint,
Cut,
Revert,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyRampShapeParams")]
pub struct MyVoxelBase_MyRampShapeParams {
#[serde(rename = "Box")]
pub r#box: crate::math::BoundingBoxD,
#[serde(rename = "RampNormal")]
pub ramp_normal: crate::math::Vector3D,
#[serde(rename = "RampNormalW", default)]
pub ramp_normal_w: f64,
#[serde(rename = "Transformation")]
pub transformation: crate::math::MatrixD,
#[serde(rename = "Material", default)]
pub material: i32,
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStorageDataTypeFlags")]
pub enum MyStorageDataTypeFlags {
Content = 1,
Material = 2,
}
impl MyStorageDataTypeFlags {
pub const NONE: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::EMPTY;
pub const CONTENT_AND_MATERIAL: ::enumflags2::BitFlags<Self> = ::enumflags2::make_bitflags!(Self::{Content | Material});
pub const ALL: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::ALL;
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "BoundingBoxI")]
pub struct BoundingBoxI {
#[proto(tag = 1)]
#[serde(rename = "Min")]
pub min: crate::math::Vector3I,
#[proto(tag = 4)]
#[serde(rename = "Max")]
pub max: crate::math::Vector3I,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "BoundingSphere")]
pub struct BoundingSphere {
#[serde(rename = "Center")]
pub center: crate::math::Vector3F,
#[serde(rename = "Radius", default)]
pub radius: f32,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "CutOut")]
pub struct NetworkCutoutData_CutOut {
#[serde(rename = "Sphere")]
pub sphere: BoundingSphere,
#[serde(rename = "ApplyDamagedMaterial", default)]
pub apply_damaged_material: bool,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "NetworkCutoutData")]
pub struct MyShipMiningSystem_NetworkCutoutData {
#[serde(rename = "StorageOffset")]
pub storage_offset: crate::math::Vector3I,
#[serde(rename = "AffectedRange")]
pub affected_range: BoundingBoxI,
#[serde(rename = "CutOuts", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub cut_outs: Vec<NetworkCutoutData_CutOut>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "LadderInfo")]
pub struct MyObjectBuilder_Character_LadderInfo {
#[proto(tag = 200)]
#[serde(rename = "BaseMatrix")]
pub base_matrix: MyPositionAndOrientation,
#[proto(tag = 205)]
#[serde(rename = "IncrementToBase")]
pub increment_to_base: crate::math::SerializableVector3F,
#[proto(tag = 207)]
#[serde(rename = "EnableJetpackOnExit", default)]
pub enable_jetpack_on_exit: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ComponentItem")]
pub struct MyObjectBuilder_Character_ComponentItem {
#[proto(tag = 197)]
#[serde(rename = "ComponentId")]
pub component_id: SerializableDefinitionId,
#[proto(tag = 199)]
#[serde(rename = "Count", default)]
pub count: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "BuildPlanItem")]
pub struct MyObjectBuilder_Character_BuildPlanItem {
#[proto(tag = 185)]
#[serde(rename = "BlockId")]
pub block_id: SerializableDefinitionId,
#[proto(tag = 188)]
#[serde(rename = "IsInProgress", default)]
pub is_in_progress: bool,
#[proto(tag = 190)]
#[serde(rename = "Components", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub components: Vec<MyObjectBuilder_Character_ComponentItem>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "MyCueId")]
pub struct MyCueId {
#[proto(tag = 1)]
#[serde(rename = "Hash")]
pub hash: MyStringHash,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyDamageInformation")]
pub struct MyDamageInformation {
#[proto(tag = 1)]
#[serde(rename = "IsDeformation", default)]
pub is_deformation: bool,
#[proto(tag = 4)]
#[serde(rename = "Amount", default)]
pub amount: f32,
#[proto(tag = 7)]
#[serde(rename = "Type")]
pub r#type: MyStringHash,
#[proto(tag = 10)]
#[serde(rename = "AttackerId", default)]
pub attacker_id: i64,
#[proto(tag = 13)]
#[serde(rename = "ExtraInfo", default)]
pub extra_info: crate::compat::Nullable<MyStringHash>,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyPlaybackCommand")]
pub enum MyPlaybackCommand {
#[default]
Play,
Stop,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyBlendOption")]
pub enum MyBlendOption {
#[default]
Immediate,
WaitForPreviousEnd,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyFrameOption")]
pub enum MyFrameOption {
#[default]
Default,
PlayOnce,
JustFirstFrame,
StayOnLastFrame,
Loop,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyAnimationCommand")]
pub struct MyAnimationCommand {
#[serde(rename = "AnimationSubtypeName", default)]
pub animation_subtype_name: String,
#[serde(rename = "PlaybackCommand", default)]
pub playback_command: MyPlaybackCommand,
#[serde(rename = "BlendOption", default)]
pub blend_option: MyBlendOption,
#[serde(rename = "FrameOption", default)]
pub frame_option: MyFrameOption,
#[serde(rename = "Area", default)]
pub area: String,
#[serde(rename = "BlendTime", default)]
pub blend_time: f32,
#[serde(rename = "TimeScale", default)]
pub time_scale: f32,
#[serde(rename = "ExcludeLegsWhenMoving", default)]
pub exclude_legs_when_moving: bool,
#[serde(rename = "KeepContinuingAnimations", default)]
pub keep_continuing_animations: bool,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "StateEnum")]
pub enum MyLaserAntenna_StateEnum {
#[default]
idle,
rot_GPS,
search_GPS,
rot_Rec,
contact_Rec,
connected,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyTopBlockSize")]
pub enum MyMechanicalConnectionBlockBase_MyTopBlockSize {
#[default]
Normal,
Medium,
Small,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "LimitResult")]
pub enum MySession_LimitResult {
#[default]
Passed,
MaxGridSize,
NoFaction,
BlockTypeLimit,
MaxBlocksPerPlayer,
PCU,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyRotationDirection")]
pub enum MyRotationDirection {
#[default]
AUTO,
CW,
CCW,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyContractCreationDataWrapper_Deliver")]
pub struct MyContractBlock_MyContractCreationDataWrapper_Deliver {
#[serde(rename = "RewardMoney", default)]
pub reward_money: i32,
#[serde(rename = "StartingDeposit", default)]
pub starting_deposit: i32,
#[serde(rename = "DurationInMin", default)]
pub duration_in_min: i32,
#[serde(rename = "TargetBlockId", default)]
pub target_block_id: i64,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyContractCreationDataWrapper_ObtainAndDeliver")]
pub struct MyContractBlock_MyContractCreationDataWrapper_ObtainAndDeliver {
#[serde(rename = "RewardMoney", default)]
pub reward_money: i32,
#[serde(rename = "StartingDeposit", default)]
pub starting_deposit: i32,
#[serde(rename = "DurationInMin", default)]
pub duration_in_min: i32,
#[serde(rename = "TargetBlockId", default)]
pub target_block_id: i64,
#[serde(rename = "ItemTypeId")]
pub item_type_id: SerializableDefinitionId,
#[serde(rename = "ItemAmount", default)]
pub item_amount: i32,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyContractCreationDataWrapper_Repair")]
pub struct MyContractBlock_MyContractCreationDataWrapper_Repair {
#[serde(rename = "RewardMoney", default)]
pub reward_money: i32,
#[serde(rename = "StartingDeposit", default)]
pub starting_deposit: i32,
#[serde(rename = "DurationInMin", default)]
pub duration_in_min: i32,
#[serde(rename = "TargetGridId", default)]
pub target_grid_id: i64,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyContractCreationDataWrapper_Find")]
pub struct MyContractBlock_MyContractCreationDataWrapper_Find {
#[serde(rename = "RewardMoney", default)]
pub reward_money: i32,
#[serde(rename = "StartingDeposit", default)]
pub starting_deposit: i32,
#[serde(rename = "DurationInMin", default)]
pub duration_in_min: i32,
#[serde(rename = "TargetGridId", default)]
pub target_grid_id: i64,
#[serde(rename = "SearchRadius", default)]
pub search_radius: f64,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyContractStateEnum")]
pub enum MyContractStateEnum {
#[default]
Inactive,
Active,
Finished,
Failed,
ToBeDisposed,
Disposed,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_ContractCondition")]
pub struct MyObjectBuilder_ContractCondition {
#[proto(tag = 1)]
#[serde(rename = "Id", default)]
pub id: i64,
#[proto(tag = 2)]
#[serde(rename = "IsFinished", default)]
pub is_finished: bool,
#[proto(tag = 3)]
#[serde(rename = "ContractId", default)]
pub contract_id: i64,
#[proto(tag = 4)]
#[serde(rename = "SubId", default)]
pub sub_id: i32,
#[proto(tag = 5)]
#[serde(rename = "StationEndId", default)]
pub station_end_id: i64,
#[proto(tag = 9)]
#[serde(rename = "FactionEndId", default)]
pub faction_end_id: i64,
#[proto(tag = 11)]
#[serde(rename = "BlockEndId", default)]
pub block_end_id: i64,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_Contract")]
pub struct MyObjectBuilder_Contract {
#[proto(tag = 1)]
#[serde(rename = "Id", default)]
pub id: i64,
#[proto(tag = 2)]
#[serde(rename = "IsPlayerMade", default)]
pub is_player_made: bool,
#[proto(tag = 3)]
#[serde(rename = "State", default)]
pub state: MyContractStateEnum,
#[proto(tag = 5)]
#[serde(rename = "Owners")]
pub owners: Vec<i64>,
#[proto(tag = 7)]
#[serde(rename = "RewardMoney", default)]
pub reward_money: i64,
#[proto(tag = 9)]
#[serde(rename = "RewardReputation", default)]
pub reward_reputation: i32,
#[proto(tag = 11)]
#[serde(rename = "StartingDeposit", default)]
pub starting_deposit: i64,
#[proto(tag = 13)]
#[serde(rename = "FailReputationPrice", default)]
pub fail_reputation_price: i32,
#[proto(tag = 15)]
#[serde(rename = "StartFaction", default)]
pub start_faction: i64,
#[proto(tag = 17)]
#[serde(rename = "StartStation", default)]
pub start_station: i64,
#[proto(tag = 18)]
#[serde(rename = "StartBlock", default)]
pub start_block: i64,
#[proto(tag = 19)]
#[serde(rename = "Creation", default)]
pub creation: i64,
#[proto(tag = 21)]
#[serde(rename = "TicksToDiscard", default)]
pub ticks_to_discard: crate::compat::Nullable<i32>,
#[proto(tag = 23)]
#[serde(rename = "RemainingTimeInS", default)]
pub remaining_time_in_s: crate::compat::Nullable<f64>,
#[proto(tag = 25)]
#[serde(rename = "ContractCondition", default)]
pub contract_condition: MyObjectBuilder_ContractCondition,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyEntityInfoWrapper")]
pub struct MyContractBlock_MyEntityInfoWrapper {
#[serde(rename = "NamePrefix", default)]
pub name_prefix: String,
#[serde(rename = "NameSuffix", default)]
pub name_suffix: String,
#[serde(rename = "Id", default)]
pub id: i64,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyContractResults")]
pub enum MyContractResults {
#[default]
Success,
Error_Unknown,
Error_MissingKeyStructure,
Error_InvalidData,
Fail_CannotAccess,
Fail_NotPossible,
Fail_ActivationConditionsNotMet,
Fail_ActivationConditionsNotMet_InsufficientFunds,
Fail_ActivationConditionsNotMet_InsufficientSpace,
Fail_FinishConditionsNotMet,
Fail_FinishConditionsNotMet_MissingPackage,
Fail_FinishConditionsNotMet_IncorrectTargetEntity,
Fail_ContractNotFound_Activation,
Fail_ContractNotFound_Abandon,
Fail_ContractNotFound_Finish,
Fail_FinishConditionsNotMet_NotEnoughItems,
Fail_ActivationConditionsNotMet_ContractLimitReachedHard,
Fail_ActivationConditionsNotMet_TargetOffline,
Fail_FinishConditionsNotMet_NotEnoughSpace,
Fail_ActivationConditionsNotMet_YouAreTargetOfThisHunt,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyTargetEntityInfoWrapper")]
pub struct MyContractBlock_MyTargetEntityInfoWrapper {
#[serde(rename = "Id", default)]
pub id: i64,
#[serde(rename = "Name", default)]
pub name: String,
#[serde(rename = "DisplayName", default)]
pub display_name: String,
}
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyContractCreationResults")]
pub enum MyContractCreationResults {
#[default]
Success,
Fail_Common,
Fail_Impossible,
Fail_NoAccess,
Fail_GridNotFound,
Fail_BlockNotFound,
Error,
Error_MissingKeyStructure,
Fail_NotAnOwnerOfBlock,
Fail_NotAnOwnerOfGrid,
Fail_NotEnoughFunds,
Fail_CreationLimitHard,
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "UpdateType")]
pub enum UpdateType {
Terminal = 1,
Trigger = 2,
Mod = 8,
Script = 16,
Update1 = 32,
Update10 = 64,
Update100 = 128,
Once = 256,
IGC = 512,
}
impl UpdateType {
pub const NONE: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::EMPTY;
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStoreItem")]
pub struct MyStoreItem {}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStoreBuyItemResult")]
pub struct MyStoreBuyItemResult {}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStoreSellItemResult")]
pub struct MyStoreSellItemResult {}
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStoreCreationResult")]
pub enum MyStoreCreationResult {
#[default]
Success,
Fail_CreationLimitHard,
Fail_PricePerUnitIsLowerThanMinimum,
Error,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStoreBuyItemResults")]
pub enum MyStoreBuyItemResults {
#[default]
Success,
ItemNotFound,
WrongAmount,
NotEnoughMoney,
ItemsTimeout,
NotEnoughInventorySpace,
WrongInventory,
SpawnFailed,
FreePositionNotFound,
NotEnoughStoreBlockInventorySpace,
NotEnoughAmount,
NotEnoughPCU,
NotEnoughSpaceInTank,
StoreNotOwnedByFaction,
LimitsGridSize,
LimitsNoFaction,
LimitsPerBlockType,
LimitsPlayer,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyKeys")]
pub enum MyKeys {
#[default]
None,
LeftButton,
RightButton,
Cancel,
MiddleButton,
ExtraButton1,
ExtraButton2,
Back,
Tab,
Clear,
Enter,
Shift,
Control,
Alt,
Pause,
CapsLock,
Kana,
Hangeul,
Hangul,
Junja,
Final,
Hanja,
Kanji,
Ctrl_Y,
Ctrl_Z,
Escape,
Convert,
NonConvert,
Accept,
ModeChange,
Space,
PageUp,
PageDown,
End,
Home,
Left,
Up,
Right,
Down,
Select,
Print,
Execute,
Snapshot,
Insert,
Delete,
Help,
D0,
D1,
D2,
D3,
D4,
D5,
D6,
D7,
D8,
D9,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
LeftWindows,
RightWindows,
Apps,
Sleep,
NumPad0,
NumPad1,
NumPad2,
NumPad3,
NumPad4,
NumPad5,
NumPad6,
NumPad7,
NumPad8,
NumPad9,
Multiply,
Add,
Separator,
Subtract,
Decimal,
Divide,
F1,
F2,
F3,
F4,
F5,
F6,
F7,
F8,
F9,
F10,
F11,
F12,
F13,
F14,
F15,
F16,
F17,
F18,
F19,
F20,
F21,
F22,
F23,
F24,
NumLock,
ScrollLock,
NEC_Equal,
Fujitsu_Jisho,
Fujitsu_Masshou,
Fujitsu_Touroku,
Fujitsu_Loya,
Fujitsu_Roya,
LeftShift,
RightShift,
LeftControl,
RightControl,
LeftAlt,
RightAlt,
BrowserBack,
BrowserForward,
BrowserRefresh,
BrowserStop,
BrowserSearch,
BrowserFavorites,
BrowserHome,
VolumeMute,
VolumeDown,
VolumeUp,
MediaNextTrack,
MediaPrevTrack,
MediaStop,
MediaPlayPause,
LaunchMail,
LaunchMediaSelect,
LaunchApplication1,
LaunchApplication2,
OemSemicolon,
OemPlus,
OemComma,
OemMinus,
OemPeriod,
OemQuestion,
OemTilde,
ChatPadGreen,
ChatPadOrange,
OemOpenBrackets,
OemPipe,
OemCloseBrackets,
OemQuotes,
Oem8,
OEMAX,
OemBackslash,
ICOHelp,
ICO00,
ProcessKey,
ICOClear,
Packet,
OEMReset,
OEMJump,
OEMPA1,
OEMPA2,
OEMPA3,
OEMWSCtrl,
OEMCUSel,
OEMATTN,
OEMFinish,
OEMCopy,
OEMAuto,
OEMENLW,
OEMBackTab,
ATTN,
CRSel,
EXSel,
EREOF,
Play,
Zoom,
Noname,
PA1,
OEMClear,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "AllPlayerData")]
pub struct MyPlayerCollection_AllPlayerData {
#[proto(tag = 1)]
#[serde(rename = "SteamId", default)]
pub steam_id: u64,
#[proto(tag = 4)]
#[serde(rename = "SerialId", default)]
pub serial_id: i32,
#[proto(tag = 7)]
#[serde(rename = "Player", default)]
pub player: MyObjectBuilder_Player,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "AllMembersDataMsg")]
pub struct AllMembersDataMsg {
#[serde(rename = "Identities", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub identities: Vec<MyObjectBuilder_Identity>,
#[serde(rename = "Players", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub players: Vec<MyPlayerCollection_AllPlayerData>,
#[serde(rename = "Factions", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub factions: Vec<MyObjectBuilder_Faction>,
#[serde(rename = "Clients", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub clients: Vec<MyObjectBuilder_Client>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ChatMessageCustomData")]
pub struct ChatMessageCustomData {
#[serde(rename = "AuthorName", default)]
pub author_name: String,
#[serde(rename = "SenderId", default)]
pub sender_id: crate::compat::Nullable<u64>,
#[serde(rename = "TextColor", default)]
pub text_color: crate::compat::Nullable<Color>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ChatMsg")]
pub struct ChatMsg {
#[serde(rename = "Text", default)]
pub text: String,
#[serde(rename = "Author", default)]
pub author: u64,
#[serde(rename = "Channel", default)]
pub channel: i32,
#[serde(rename = "TargetId", default)]
pub target_id: i64,
#[serde(rename = "CrossChatEnabled", default)]
pub cross_chat_enabled: bool,
#[serde(rename = "CustomData", default)]
pub custom_data: crate::compat::Nullable<ChatMessageCustomData>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "BlockList")]
pub struct BlockList {
#[serde(rename = "BlockedUsers", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub blocked_users: Vec<u64>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ScriptedChatMsg")]
pub struct ScriptedChatMsg {
#[serde(rename = "Text", default)]
pub text: String,
#[serde(rename = "Author", default)]
pub author: String,
#[serde(rename = "Target", default)]
pub target: i64,
#[serde(rename = "Font", default)]
pub font: String,
#[serde(rename = "Color")]
pub color: Color,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyGuiSounds")]
pub enum MyGuiSounds {
#[default]
HudClick,
HudUse,
HudRotateBlock,
HudPlaceBlock,
HudDeleteBlock,
HudColorBlock,
HudMouseClick,
HudMouseOver,
HudUnable,
HudGPSNotification1,
HudGPSNotification2,
HudGPSNotification3,
PlayDropItem,
HudVocInventoryFull,
HudVocMeteorInbound,
HudVocHealthLow,
HudVocHealthCritical,
HudVocFuelLow,
HudVocFuelCrit,
None,
HudVocEnergyLow,
HudVocStationFuelLow,
HudVocShipFuelLow,
HudVocEnergyCrit,
HudVocStationFuelCrit,
HudVocShipFuelCrit,
HudVocEnergyNo,
HudVocStationFuelNo,
HudVocShipFuelNo,
HudCraftBarProgressLoop,
HudErrorMessage,
HudOpenCraftWin,
HudOpenInventory,
HudItem,
PlayTakeItem,
HudPlaceItem,
HudAntennaOn,
HudAntennaOff,
HudBrakeOff,
HudBrakeOn,
HudObjectiveComplete,
HudBleep,
HudQuestlogDetail,
HudLockingProgress,
HudLockingSuccess,
HudLockingLost,
MatchVictory,
MatchDraw,
MatchDefeat,
HudVocFoodLow,
HudVocRadiationImmunityLow,
HudVocRadiationCritical,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyGuiDrawAlignEnum")]
pub enum MyGuiDrawAlignEnum {
#[default]
HORISONTAL_LEFT_AND_VERTICAL_TOP,
HORISONTAL_LEFT_AND_VERTICAL_CENTER,
HORISONTAL_LEFT_AND_VERTICAL_BOTTOM,
HORISONTAL_CENTER_AND_VERTICAL_TOP,
HORISONTAL_CENTER_AND_VERTICAL_CENTER,
HORISONTAL_CENTER_AND_VERTICAL_BOTTOM,
HORISONTAL_RIGHT_AND_VERTICAL_TOP,
HORISONTAL_RIGHT_AND_VERTICAL_CENTER,
HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyUIString")]
pub struct MyUIString {
#[serde(rename = "Text", default)]
pub text: String,
#[serde(rename = "NormalizedCoord")]
pub normalized_coord: crate::math::Vector2F,
#[serde(rename = "Scale", default)]
pub scale: f32,
#[serde(rename = "Font", default)]
pub font: String,
#[serde(rename = "DrawAlign", default)]
pub draw_align: MyGuiDrawAlignEnum,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyColumn")]
pub struct MyGuiScreenBoard_MyColumn {
#[serde(rename = "HeaderText", default)]
pub header_text: String,
#[serde(rename = "HeaderDrawAlign", default)]
pub header_draw_align: MyGuiDrawAlignEnum,
#[serde(rename = "ColumnDrawAlign", default)]
pub column_draw_align: MyGuiDrawAlignEnum,
#[serde(rename = "Width", default)]
pub width: f32,
#[serde(rename = "Visible", default)]
pub visible: bool,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyExplosionTypeEnum")]
pub enum MyExplosionTypeEnum {
#[default]
MISSILE_EXPLOSION,
BOMB_EXPLOSION,
AMMO_EXPLOSION,
GRID_DEFORMATION,
GRID_DESTRUCTION,
WARHEAD_EXPLOSION_02,
WARHEAD_EXPLOSION_15,
WARHEAD_EXPLOSION_30,
WARHEAD_EXPLOSION_50,
CUSTOM,
ProjectileExplosion,
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyExplosionFlags")]
pub enum MyExplosionFlags {
CREATE_DEBRIS = 1,
AFFECT_VOXELS = 2,
APPLY_FORCE_AND_DAMAGE = 4,
CREATE_DECALS = 8,
FORCE_DEBRIS = 16,
CREATE_PARTICLE_EFFECT = 32,
CREATE_SHRAPNELS = 64,
APPLY_DEFORMATION = 128,
CREATE_PARTICLE_DEBRIS = 256,
FORCE_CUSTOM_END_OF_LIFE_EFFECT = 512,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyExplosionInfoSimplified")]
pub struct MyExplosionInfoSimplified {
#[serde(rename = "Damage", default)]
pub damage: f32,
#[serde(rename = "Center")]
pub center: crate::math::Vector3D,
#[serde(rename = "Radius", default)]
pub radius: f32,
#[serde(rename = "Type", default)]
pub r#type: MyExplosionTypeEnum,
#[serde(rename = "Flags")]
pub flags: crate::compat::BitField<MyExplosionFlags>,
#[serde(rename = "VoxelCenter")]
pub voxel_center: crate::math::Vector3D,
#[serde(rename = "ParticleScale", default)]
pub particle_scale: f32,
#[serde(rename = "Velocity")]
pub velocity: crate::math::Vector3F,
#[serde(rename = "IgnoreFriendlyFireSetting", default)]
pub ignore_friendly_fire_setting: bool,
#[serde(rename = "CustomEffect", default)]
pub custom_effect: String,
#[serde(rename = "CustomSound", default)]
pub custom_sound: String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyHighlightData")]
pub struct MyHighlightData {
#[proto(tag = 5)]
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
#[proto(tag = 10)]
#[serde(rename = "OutlineColor", default)]
pub outline_color: crate::compat::Nullable<Color>,
#[proto(tag = 15)]
#[serde(rename = "Thickness", default)]
pub thickness: i32,
#[proto(tag = 20)]
#[serde(rename = "PulseTimeInFrames", default)]
pub pulse_time_in_frames: u64,
#[proto(tag = 25)]
#[serde(rename = "PlayerId", default)]
pub player_id: i64,
#[proto(tag = 30)]
#[serde(rename = "IgnoreUseObjectData", default)]
pub ignore_use_object_data: bool,
#[proto(tag = 35)]
#[serde(rename = "SubPartNames", default)]
pub sub_part_names: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "HighlightMsg")]
pub struct MyHighlightSystem_HighlightMsg {
#[serde(rename = "Data")]
pub data: MyHighlightData,
#[serde(rename = "ExclusiveKey", default)]
pub exclusive_key: i32,
#[serde(rename = "IsExclusive", default)]
pub is_exclusive: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_WeatherEffect")]
pub struct MyObjectBuilder_WeatherEffect {
#[proto(tag = 5)]
#[serde(rename = "Position")]
pub position: crate::math::Vector3D,
#[proto(tag = 7)]
#[serde(rename = "Velocity")]
pub velocity: crate::math::Vector3D,
#[proto(tag = 10)]
#[serde(rename = "Weather", default)]
pub weather: String,
#[proto(tag = 15)]
#[serde(rename = "Radius", default)]
pub radius: f32,
#[proto(tag = 20)]
#[serde(rename = "Life", default)]
pub life: i32,
#[proto(tag = 21)]
#[serde(rename = "MaxLife", default)]
pub max_life: i32,
#[proto(tag = 25)]
#[serde(rename = "Intensity", default)]
pub intensity: f32,
#[proto(tag = 30)]
#[serde(rename = "StartPoint")]
pub start_point: crate::math::Vector3D,
#[proto(tag = 35)]
#[serde(rename = "NextLightning", default)]
pub next_lightning: i32,
#[proto(tag = 40)]
#[serde(rename = "NextLightningCharacter", default)]
pub next_lightning_character: i32,
#[proto(tag = 45)]
#[serde(rename = "NextLightningGrid", default)]
pub next_lightning_grid: i32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_WeatherPlanetData")]
pub struct MyObjectBuilder_WeatherPlanetData {
#[proto(tag = 5)]
#[serde(rename = "PlanetId", default)]
pub planet_id: i64,
#[proto(tag = 10)]
#[serde(rename = "NextWeather", default)]
pub next_weather: i32,
#[proto(tag = 30)]
#[serde(rename = "Weathers", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub weathers: Vec<MyObjectBuilder_WeatherEffect>,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Vector4")]
pub struct Vector4 {
#[proto(tag = 1)]
#[serde(rename = "X", default)]
pub X: f32,
#[proto(tag = 4)]
#[serde(rename = "Y", default)]
pub Y: f32,
#[proto(tag = 7)]
#[serde(rename = "Z", default)]
pub Z: f32,
#[proto(tag = 10)]
#[serde(rename = "W", default)]
pub W: f32,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_WeatherLightning")]
pub struct MyObjectBuilder_WeatherLightning {
#[proto(tag = 5)]
#[serde(rename = "Position")]
pub position: crate::math::Vector3D,
#[proto(tag = 10)]
#[serde(rename = "Life", default)]
pub life: i32,
#[proto(tag = 15)]
#[serde_inline_default(7)]
#[serde(rename = "MaxLife")]
pub max_life: i32,
#[proto(tag = 20)]
#[serde_inline_default(5000f32)]
#[serde(rename = "BoltLength")]
pub bolt_length: f32,
#[proto(tag = 25)]
#[serde_inline_default(50)]
#[serde(rename = "BoltParts")]
pub bolt_parts: i32,
#[proto(tag = 30)]
#[serde_inline_default(100)]
#[serde(rename = "BoltVariation")]
pub bolt_variation: i32,
#[proto(tag = 35)]
#[serde_inline_default(30f32)]
#[serde(rename = "BoltRadius")]
pub bolt_radius: f32,
#[proto(tag = 40)]
#[serde(rename = "Damage", default)]
pub damage: i32,
#[proto(tag = 45)]
#[serde(rename = "Sound", default)]
pub sound: String,
#[proto(tag = 50)]
#[serde(rename = "Color")]
pub color: Vector4,
#[proto(tag = 55)]
#[serde_inline_default(1f32)]
#[serde(rename = "BoltImpulseMultiplier")]
pub bolt_impulse_multiplier: f32,
#[proto(tag = 65)]
#[serde_inline_default(1f32)]
#[serde(rename = "ExplosionRadius")]
pub explosion_radius: f32,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyContractNotificationTypes")]
pub enum MyContractNotificationTypes {
#[default]
ContractSuccessful,
ContractFailed,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyMatchState")]
pub enum MyMatchState {
#[default]
PreMatch,
Match,
PostMatch,
Finished,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyEntityListInfoItem")]
pub struct MyEntityList_MyEntityListInfoItem {}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ForageableItemInfo")]
pub struct MySessionComponentTrash_ForageableItemInfo {
#[serde(rename = "ItemID", default)]
pub item_i_d: i32,
#[serde(rename = "SectorID", default)]
pub sector_i_d: i64,
#[serde(rename = "PlanetID", default)]
pub planet_i_d: i64,
#[serde(rename = "WorldAABB")]
pub world_aab_b: crate::math::BoundingBoxD,
#[serde(rename = "WorldPosition")]
pub world_position: crate::math::Vector3D,
#[serde(rename = "RemovedAt", default)]
pub removed_at: crate::compat::TimeSpan,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Category")]
pub enum MySessionComponentWarningSystem_Category {
#[default]
Graphics,
Blocks,
Other,
UnsafeGrids,
BlockLimits,
Server,
Performance,
General,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "WarningData")]
pub struct MySessionComponentWarningSystem_WarningData {
#[serde(rename = "LastOccurence", default)]
pub last_occurence: crate::compat::Nullable<crate::compat::DateTime>,
#[serde(rename = "Category", default)]
pub category: MySessionComponentWarningSystem_Category,
#[serde(rename = "TitleIdKey", default)]
pub title_id_key: String,
#[serde(rename = "TitleString", default)]
pub title_string: String,
#[serde(rename = "DescriptionIdKey", default)]
pub description_id_key: String,
#[serde(rename = "DescriptionString", default)]
pub description_string: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyReputationChangeWrapper")]
pub struct MyFactionCollection_MyReputationChangeWrapper {
#[serde(rename = "FactionId", default)]
pub faction_id: i64,
#[serde(rename = "RepTotal", default)]
pub rep_total: i32,
#[serde(rename = "Change", default)]
pub change: i32,
#[serde(rename = "ShowNotification", default)]
pub show_notification: bool,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ReputationChangeReason")]
pub enum ReputationChangeReason {
#[default]
None,
Hostility,
Contract,
Admin,
Mod,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyFactionStateChange")]
pub enum MyFactionStateChange {
#[default]
RemoveFaction,
SendPeaceRequest,
CancelPeaceRequest,
AcceptPeace,
DeclareWar,
SendFriendRequest,
CancelFriendRequest,
AcceptFriendRequest,
FactionMemberSendJoin,
FactionMemberCancelJoin,
FactionMemberAcceptJoin,
FactionMemberKick,
FactionMemberPromote,
FactionMemberDemote,
FactionMemberLeave,
FactionMemberNotPossibleJoin,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "AddFactionMsg")]
pub struct MyFactionCollection_AddFactionMsg {
#[proto(tag = 1)]
#[serde(rename = "FounderId", default)]
pub founder_id: i64,
#[proto(tag = 4)]
#[serde(rename = "FactionId", default)]
pub faction_id: i64,
#[proto(tag = 7)]
#[serde(rename = "FactionTag", default)]
pub faction_tag: String,
#[proto(tag = 10)]
#[serde(rename = "FactionName", default)]
pub faction_name: String,
#[proto(tag = 13)]
#[serde(rename = "FactionDescription", default)]
pub faction_description: String,
#[proto(tag = 16)]
#[serde(rename = "FactionPrivateInfo", default)]
pub faction_private_info: String,
#[proto(tag = 19)]
#[serde(rename = "CreateFromDefinition", default)]
pub create_from_definition: bool,
#[proto(tag = 25)]
#[serde(rename = "FactionColor")]
pub faction_color: crate::math::SerializableVector3F,
#[proto(tag = 26)]
#[serde(rename = "FactionIconColor")]
pub faction_icon_color: crate::math::SerializableVector3F,
#[proto(tag = 28)]
#[serde(rename = "FactionIconGroupId", default)]
pub faction_icon_group_id: crate::compat::Nullable<SerializableDefinitionId>,
#[proto(tag = 31)]
#[serde(rename = "FactionIconId", default)]
pub faction_icon_id: i32,
#[proto(tag = 35)]
#[serde(rename = "FactionScore", default)]
pub faction_score: i32,
#[proto(tag = 38)]
#[serde(rename = "FactionObjectivePercentageCompleted", default)]
pub faction_objective_percentage_completed: f32,
#[proto(tag = 41)]
#[serde(rename = "isNPCFaction", default)]
pub is_npc_faction: bool,
#[proto(tag = 44)]
#[serde(rename = "Type", default)]
pub r#type: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "PlayerId")]
pub struct MyPlayer_PlayerId {
#[serde(rename = "SteamId", default)]
pub steam_id: u64,
#[serde(rename = "SerialId", default)]
pub serial_id: i32,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "AddMsg")]
pub struct MyGpsCollection_AddMsg {
#[serde(rename = "IdentityId", default)]
pub identity_id: i64,
#[serde(rename = "Name", default)]
pub name: String,
#[serde(rename = "DisplayName", default)]
pub display_name: String,
#[serde(rename = "Description", default)]
pub description: String,
#[serde(rename = "Coords")]
pub coords: crate::math::Vector3D,
#[serde(rename = "ShowOnHud", default)]
pub show_on_hud: bool,
#[serde(rename = "IsFinal", default)]
pub is_final: bool,
#[serde(rename = "AlwaysVisible", default)]
pub always_visible: bool,
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
#[serde(rename = "ContractId", default)]
pub contract_id: i64,
#[serde(rename = "GPSColor")]
pub gps_color: Color,
#[serde(rename = "IsContainerGPS", default)]
pub is_container_gp_s: bool,
#[serde(rename = "PlaySoundOnCreation", default)]
pub play_sound_on_creation: bool,
#[serde(rename = "IsObjective", default)]
pub is_objective: bool,
#[serde(rename = "IsGlobalEncounterGPS", default)]
pub is_global_encounter_gp_s: bool,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ModifyMsg")]
pub struct MyGpsCollection_ModifyMsg {
#[serde(rename = "IdentityId", default)]
pub identity_id: i64,
#[serde(rename = "Hash", default)]
pub hash: i32,
#[serde(rename = "Name", default)]
pub name: String,
#[serde(rename = "Description", default)]
pub description: String,
#[serde(rename = "Coords")]
pub coords: crate::math::Vector3D,
#[serde(rename = "GPSColor")]
pub gps_color: Color,
#[serde(rename = "ContractId", default)]
pub contract_id: i64,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "NewPlayerRequestParameters")]
pub struct MyPlayerCollection_NewPlayerRequestParameters {
#[proto(skip)]
#[serde(rename = "ClientSteamId", default)]
pub client_steam_id: u64,
#[proto(skip)]
#[serde(rename = "PlayerSerialId", default)]
pub player_serial_id: i32,
#[proto(skip)]
#[serde(rename = "DisplayName", default)]
pub display_name: String,
#[proto(skip)]
#[serde(rename = "PlatformIcon", default)]
pub platform_icon: String,
#[proto(skip)]
#[serde(rename = "GameAcronym", default)]
pub game_acronym: String,
#[proto(skip)]
#[serde(rename = "CharacterModel", default)]
pub character_model: String,
#[proto(skip)]
#[serde(rename = "RealPlayer", default)]
pub real_player: bool,
#[proto(skip)]
#[serde(rename = "InitialPlayer", default)]
pub initial_player: bool,
#[proto(skip)]
#[serde(rename = "IsWildlifeEntity", default)]
pub is_wildlife_entity: bool,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyTypeLimitData")]
pub struct MyBlockLimits_MyTypeLimitData {}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyGridLimitData")]
pub struct MyBlockLimits_MyGridLimitData {}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "RespawnMsg")]
pub struct MyPlayerCollection_RespawnMsg {
#[serde(rename = "JoinGame", default)]
pub join_game: bool,
#[serde(rename = "NewIdentity", default)]
pub new_identity: bool,
#[serde(rename = "RespawnEntityId", default)]
pub respawn_entity_id: i64,
#[serde(rename = "RespawnShipId", default)]
pub respawn_ship_id: String,
#[serde(rename = "PlayerSerialId", default)]
pub player_serial_id: i32,
#[serde(rename = "ModelName", default)]
pub model_name: String,
#[serde(rename = "Color")]
pub color: Color,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyStationDebugDrawStructure")]
pub struct MyGuiScreenDebugEconomy_MyStationDebugDrawStructure {
#[serde(rename = "Start")]
pub start: crate::math::SerializableVector3D,
#[serde(rename = "End")]
pub end: crate::math::SerializableVector3D,
#[serde(rename = "TypeId", default)]
pub type_id: i32,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "SpawnAsteroidInfo")]
pub struct MyGuiScreenDebugSpawnMenu_SpawnAsteroidInfo {
#[serde(rename = "Asteroid", default)]
pub asteroid: String,
#[serde(rename = "RandomSeed", default)]
pub random_seed: i32,
#[serde(rename = "WorldMatrix")]
pub world_matrix: crate::math::MatrixD,
#[serde(rename = "IsProcedural", default)]
pub is_procedural: bool,
#[serde(rename = "ProceduralRadius", default)]
pub procedural_radius: f32,
#[serde(rename = "VoxelMaterial", default)]
pub voxel_material: String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "BoundingBox")]
pub struct BoundingBox {
#[proto(tag = 1)]
#[serde(rename = "Min")]
pub min: crate::math::Vector3F,
#[proto(tag = 4)]
#[serde(rename = "Max")]
pub max: crate::math::Vector3F,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Entity")]
pub struct Layer_Entity {
#[serde(rename = "Id", default)]
pub id: i64,
#[serde(rename = "Bounds", default)]
pub bounds: crate::compat::Nullable<crate::math::BoundingBoxD>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Layer")]
pub struct MyGuiScreenDebugNetwork_Layer {
#[serde(rename = "Bounds")]
pub bounds: BoundingBox,
#[serde(rename = "Entities", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub entities: Vec<Layer_Entity>,
#[serde(rename = "PCU", default)]
pub PCU: i32,
#[serde(rename = "Enabled", default)]
pub enabled: bool,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ValidationFailedRecord")]
pub struct ValidationFailedRecord {
#[proto(tag = 1)]
#[serde(rename = "PlayerId", default)]
pub player_id: u64,
#[proto(tag = 4)]
#[serde(rename = "TimeAgo", default)]
pub time_ago: u32,
#[proto(tag = 7)]
#[serde(rename = "Explanation", default)]
pub explanation: String,
#[proto(tag = 11)]
#[serde(rename = "Id", default)]
pub id: u32,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyEntityTypeEnum")]
pub enum MyEntityList_MyEntityTypeEnum {
#[default]
Grids,
SmallGrids,
LargeGrids,
Characters,
FloatingObjects,
Planets,
Asteroids,
Replicated,
NotReplicated,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyEntityCyclingOrder")]
pub enum MyEntityCyclingOrder {
#[default]
Characters,
BiggestGrids,
Fastest,
BiggestDistanceFromPlayers,
MostActiveDrills,
MostActiveReactors,
MostActiveProductionBuildings,
MostActiveSensors,
MostActiveThrusters,
MostWheels,
StaticObjects,
FloatingObjects,
Gps,
Planets,
OwnerLoginTime,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "CyclingOptions")]
pub struct CyclingOptions {
#[serde(rename = "Enabled", default)]
pub enabled: bool,
#[serde(rename = "OnlySmallGrids", default)]
pub only_small_grids: bool,
#[serde(rename = "OnlyLargeGrids", default)]
pub only_large_grids: bool,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "EntityListAction")]
pub enum MyEntityList_EntityListAction {
#[default]
Remove,
Stop,
Depower,
Power,
}
#[::enumflags2::bitflags(default = Stationary | Linear | Accelerating | WithBlockCount | DistanceFromPlayer | RevertMaterials | RevertAsteroids)]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyTrashRemovalFlags")]
pub enum MyTrashRemovalFlags {
Fixed = 1,
Stationary = 2,
Linear = 8,
Accelerating = 16,
Powered = 32,
Controlled = 64,
WithProduction = 128,
WithMedBay = 256,
WithBlockCount = 512,
DistanceFromPlayer = 1024,
RevertMaterials = 2048,
RevertAsteroids = 4096,
RevertWithFloatingsPresent = 8192,
Indestructible = 16384,
RevertBoulders = 32768,
RevertCloseToNPCGrids = 65536,
}
impl MyTrashRemovalFlags {
pub const NONE: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::EMPTY;
pub const DEFAULT: ::enumflags2::BitFlags<Self> = ::enumflags2::make_bitflags!(Self::{Stationary | Linear | Accelerating | WithBlockCount | DistanceFromPlayer | RevertMaterials | RevertAsteroids});
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "AdminSettingsEnum")]
pub enum AdminSettingsEnum {
Invulnerable = 1,
ShowPlayers = 2,
UseTerminals = 4,
Untargetable = 8,
KeepOriginalOwnershipOnPaste = 16,
IgnoreSafeZones = 32,
IgnorePcu = 64,
}
impl AdminSettingsEnum {
pub const NONE: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::EMPTY;
pub const MODERATOR_ACCESS: ::enumflags2::BitFlags<Self> = ::enumflags2::make_bitflags!(Self::{ShowPlayers | KeepOriginalOwnershipOnPaste});
pub const SPACE_MASTER_ACCESS: ::enumflags2::BitFlags<Self> = ::enumflags2::make_bitflags!(Self::{UseTerminals});
pub const ADMIN_ONLY: ::enumflags2::BitFlags<Self> = ::enumflags2::make_bitflags!(Self::{Invulnerable | Untargetable | IgnoreSafeZones | IgnorePcu});
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "AdminSettings")]
pub struct MyGuiScreenAdminMenu_AdminSettings {
#[serde(rename = "Flags")]
pub flags: crate::compat::BitField<MyTrashRemovalFlags>,
#[serde(rename = "Enable", default)]
pub enable: bool,
#[serde(rename = "BlockCount", default)]
pub block_count: i32,
#[serde(rename = "PlayerDistance", default)]
pub player_distance: f32,
#[serde(rename = "GridCount", default)]
pub grid_count: i32,
#[serde(rename = "PlayerInactivity", default)]
pub player_inactivity: f32,
#[serde(rename = "CharacterRemovalThreshold", default)]
pub character_removal_threshold: i32,
#[serde(rename = "AfkTimeout", default)]
pub afk_timeout: i32,
#[serde(rename = "StopGridsPeriod", default)]
pub stop_grids_period: i32,
#[serde(rename = "RemoveOldIdentities", default)]
pub remove_old_identities: i32,
#[serde(rename = "VoxelEnable", default)]
pub voxel_enable: bool,
#[serde(rename = "VoxelDistanceFromPlayer", default)]
pub voxel_distance_from_player: f32,
#[serde(rename = "VoxelDistanceFromGrid", default)]
pub voxel_distance_from_grid: f32,
#[serde(rename = "VoxelAge", default)]
pub voxel_age: i32,
#[serde(rename = "TrashCleanerCargoBagsMaxLiveTime", default)]
pub trash_cleaner_cargo_bags_max_live_time: i32,
#[serde(rename = "MaxCargoBags", default)]
pub max_cargo_bags: i32,
#[serde(rename = "ResetForageableItems", default)]
pub reset_forageable_items: bool,
#[serde(rename = "ResetForageableItemsTimeM", default)]
pub reset_forageable_items_time_m: i32,
#[serde(rename = "ResetForageableItemsDistance", default)]
pub reset_forageable_items_distance: i32,
#[serde(rename = "AdminSettingsFlags")]
pub admin_settings_flags: crate::compat::BitField<AdminSettingsEnum>,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyEntityListShortInfoItem")]
pub struct MyEntityList_MyEntityListShortInfoItem {}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "GridBuiltByIdInfo")]
pub struct MyTerminalInfoController_GridBuiltByIdInfo {
#[serde(rename = "GridName", default)]
pub grid_name: String,
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
#[serde(rename = "PCUBuilt", default)]
pub pcu_built: i32,
#[serde(rename = "BlockCount", default)]
pub block_count: i32,
#[serde(rename = "UnsafeBlocks", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub unsafe_blocks: Vec<String>,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyTradeResponseReason")]
pub enum MyTradeResponseReason {
#[default]
AlreadyTrading,
Offline,
Dead,
Ok,
Cancel,
Abort,
Complete,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_SubmitOffer")]
pub struct MyObjectBuilder_SubmitOffer {
#[proto(skip)]
#[serde(rename = "InventoryItems", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub inventory_items: Vec<MyObjectBuilder_InventoryItem>,
#[proto(skip)]
#[serde(rename = "CurrencyAmount", default)]
pub currency_amount: i64,
#[proto(skip)]
#[serde(rename = "PCUAmount", default)]
pub pcu_amount: i32,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyCreateCoordSysBuffer")]
pub struct MyCoordinateSystem_MyCreateCoordSysBuffer {
#[serde(rename = "Id", default)]
pub id: i64,
#[serde(rename = "Position")]
pub position: crate::math::Vector3D,
#[serde(rename = "Rotation")]
pub rotation: crate::math::Quaternion,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyUnifiedChatItem")]
pub struct MyUnifiedChatItem {}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyGameInventoryItemSlot")]
pub enum MyGameInventoryItemSlot {
#[default]
None,
Face,
Helmet,
Gloves,
Boots,
Suit,
Rifle,
Welder,
Grinder,
Drill,
Emote,
Armor,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "TransferMessageData")]
pub struct MyBlockLimits_TransferMessageData {
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
#[serde(rename = "GridName", default)]
pub grid_name: String,
#[serde(rename = "BlocksBuilt", default)]
pub blocks_built: i32,
#[serde(rename = "PCUBuilt", default)]
pub pcu_built: i32,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyHitIndicatorTarget")]
pub enum MySession_MyHitIndicatorTarget {
#[default]
Character,
Headshot,
Kill,
Grid,
Other,
Friend,
None,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "ProfilingBlockType")]
pub enum MySimpleProfiler_ProfilingBlockType {
#[default]
GPU,
MOD,
BLOCK,
RENDER,
OTHER,
INTERNAL,
INTERNALGPU,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectSeedType")]
pub enum MyObjectSeedType {
#[default]
Empty,
Asteroid,
AsteroidCluster,
EncounterAlone,
EncounterSingle,
Planet,
Moon,
Station,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize, Hash, Eq, PartialOrd, Ord)]
#[serde(rename = "MyObjectSeedParams")]
pub struct MyObjectSeedParams {
#[proto(tag = 1)]
#[serde(rename = "Index", default)]
pub index: i32,
#[proto(tag = 4)]
#[serde(rename = "Seed", default)]
pub seed: i32,
#[proto(tag = 7)]
#[serde(rename = "Type", default)]
pub r#type: MyObjectSeedType,
#[proto(tag = 10)]
#[serde(rename = "Generated", default)]
pub generated: bool,
#[proto(tag = 13)]
#[serde_inline_default(-1)]
#[serde(rename = "m_proxyId")]
pub m_proxy_id: i32,
#[proto(tag = 16)]
#[serde(rename = "GeneratorSeed", default)]
pub generator_seed: i32,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "Author")]
pub struct MyCubeBuilder_Author {
#[serde(rename = "EntityId", default)]
pub entity_id: i64,
#[serde(rename = "IdentityId", default)]
pub identity_id: i64,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "BuildData")]
pub struct MyCubeBuilder_BuildData {
#[serde(rename = "Position")]
pub position: crate::math::Vector3D,
#[serde(rename = "Forward")]
pub forward: crate::math::Vector3F,
#[serde(rename = "Up")]
pub up: crate::math::Vector3F,
#[serde(rename = "AbsolutePosition", default)]
pub absolute_position: bool,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "GridSpawnRequestData")]
pub struct MyCubeBuilder_GridSpawnRequestData {
#[serde(rename = "Author")]
pub author: MyCubeBuilder_Author,
#[serde(rename = "Definition")]
pub definition: DefinitionIdBlit,
#[serde(rename = "Position")]
pub position: MyCubeBuilder_BuildData,
#[serde(rename = "InstantBuild", default)]
pub instant_build: bool,
#[serde(rename = "ForceStatic", default)]
pub force_static: bool,
#[serde(rename = "Visuals")]
pub visuals: MyCubeGrid_MyBlockVisuals,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "RelativeOffset")]
pub struct MyCubeGrid_RelativeOffset {
#[serde(rename = "Use", default)]
pub r#use: bool,
#[serde(rename = "RelativeToEntity", default)]
pub relative_to_entity: bool,
#[serde(rename = "SpawnerId", default)]
pub spawner_id: i64,
#[serde(rename = "OriginalSpawnPoint")]
pub original_spawn_point: crate::math::Vector3D,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyPasteGridParameters")]
pub struct MyCubeGrid_MyPasteGridParameters {
#[serde(rename = "Entities", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub entities: Vec<MyObjectBuilder_CubeGrid>,
#[serde(rename = "ClientsideDLCs", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub clientside_dl_cs: Vec<u64>,
#[serde(rename = "DetectDisconnects", default)]
pub detect_disconnects: bool,
#[serde(rename = "InstantBuild", default)]
pub instant_build: bool,
#[serde(rename = "ObjectVelocity")]
pub object_velocity: crate::math::Vector3F,
#[serde(rename = "Offset")]
pub offset: MyCubeGrid_RelativeOffset,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MySingleOwnershipRequest")]
pub struct MyCubeGrid_MySingleOwnershipRequest {
#[proto(tag = 28)]
#[serde(rename = "BlockId", default)]
pub block_id: i64,
#[proto(tag = 31)]
#[serde(rename = "Owner", default)]
pub owner: i64,
#[proto(tag = 50)]
#[serde(rename = "Sender", default)]
pub sender: u64,
#[proto(tag = 55)]
#[serde(rename = "BatchGuid", default)]
pub batch_guid: crate::compat::Guid,
#[proto(tag = 60)]
#[serde(rename = "GridId", default)]
pub grid_id: i64,
#[proto(tag = 65)]
#[serde(rename = "ShareMode", default)]
pub share_mode: MyOwnershipShareModeEnum,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_FloatingObject")]
pub struct MyObjectBuilder_FloatingObject {
#[proto(tag = 1)]
#[serde(rename = "Item", default)]
pub item: MyObjectBuilder_InventoryItem,
#[proto(tag = 4)]
#[serde(rename = "ModelVariant", default)]
pub model_variant: i32,
#[proto(tag = 7)]
#[serde(rename = "OreSubtypeId", default)]
pub ore_subtype_id: String,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MySafeZoneAccess")]
pub enum MySafeZoneAccess {
#[default]
Whitelist,
Blacklist,
}
#[::enumflags2::bitflags]
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MySafeZoneAction")]
pub enum MySafeZoneAction {
Damage = 1,
Shooting = 2,
Drilling = 4,
Welding = 8,
Grinding = 16,
VoxelHand = 32,
Building = 64,
LandingGearLock = 128,
ConvertToStation = 256,
BuildingProjections = 512,
}
impl MySafeZoneAction {
pub const ALL: ::enumflags2::BitFlags<Self> = ::enumflags2::BitFlags::<Self>::ALL;
pub const ADMIN_IGNORE: ::enumflags2::BitFlags<Self> = ::enumflags2::make_bitflags!(Self::{Shooting | Drilling | Welding | Grinding | VoxelHand | Building | ConvertToStation | BuildingProjections});
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MySafeZoneShape")]
pub enum MySafeZoneShape {
#[default]
Sphere,
Box,
}
#[::serde_inline_default::serde_inline_default]
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyObjectBuilder_SafeZone")]
pub struct MyObjectBuilder_SafeZone {
#[proto(tag = 1)]
#[serde_inline_default(50f32)]
#[serde(rename = "Radius")]
pub radius: f32,
#[proto(tag = 4)]
#[serde(rename = "Enabled", default)]
pub enabled: bool,
#[proto(tag = 5)]
#[serde(rename = "SafeZoneBlockId", default)]
pub safe_zone_block_id: i64,
#[proto(tag = 7)]
#[serde(rename = "AccessTypePlayers", default)]
pub access_type_players: MySafeZoneAccess,
#[proto(tag = 10)]
#[serde(rename = "AccessTypeFactions", default)]
pub access_type_factions: MySafeZoneAccess,
#[proto(tag = 13)]
#[serde(rename = "AccessTypeGrids", default)]
pub access_type_grids: MySafeZoneAccess,
#[proto(tag = 16)]
#[serde(rename = "AccessTypeFloatingObjects", default)]
pub access_type_floating_objects: MySafeZoneAccess,
#[proto(tag = 19)]
#[serde(rename = "AllowedActions")]
pub allowed_actions: crate::compat::BitField<MySafeZoneAction>,
#[proto(tag = 22)]
#[serde(rename = "Factions", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub factions: Vec<i64>,
#[proto(tag = 25)]
#[serde(rename = "Players", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub players: Vec<i64>,
#[proto(tag = 28)]
#[serde(rename = "Entities", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub entities: Vec<i64>,
#[proto(tag = 31)]
#[serde(rename = "Size")]
pub size: crate::math::Vector3F,
#[proto(tag = 34)]
#[serde(rename = "Shape", default)]
pub shape: MySafeZoneShape,
#[proto(tag = 37)]
#[serde(rename = "DisplayName", default)]
pub display_name: String,
#[proto(tag = 40)]
#[serde(rename = "ContainedEntities", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub contained_entities: Vec<i64>,
#[proto(tag = 41)]
#[serde(rename = "ContainedGrids", default, deserialize_with = "crate::compat::xml_vec::deserialize")]
pub contained_grids: Vec<i64>,
#[proto(tag = 43)]
#[serde(rename = "IsVisible", default)]
pub is_visible: bool,
#[proto(tag = 46)]
#[serde(rename = "ModelColor")]
pub model_color: crate::math::SerializableVector3F,
#[proto(tag = 49)]
#[serde(rename = "Texture", default)]
pub texture: String,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyHitInfo")]
pub struct MyHitInfo {
#[proto(tag = 1)]
#[serde(rename = "Position")]
pub position: crate::math::Vector3D,
#[proto(tag = 4)]
#[serde(rename = "Normal")]
pub normal: crate::math::Vector3F,
#[proto(tag = 7)]
#[serde(rename = "Velocity")]
pub velocity: crate::math::Vector3D,
#[proto(tag = 10)]
#[serde(rename = "ShapeKey", default)]
pub shape_key: u32,
}
#[::proto_rs::proto_message]
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "DoDamageSlimBlockMsg")]
pub struct MySlimBlock_DoDamageSlimBlockMsg {
#[proto(tag = 1)]
#[serde(rename = "GridEntityId", default)]
pub grid_entity_id: i64,
#[proto(tag = 4)]
#[serde(rename = "Position")]
pub position: crate::math::Vector3I,
#[proto(tag = 7)]
#[serde(rename = "Damage", default)]
pub damage: f32,
#[proto(tag = 10)]
#[serde(rename = "Type")]
pub r#type: MyStringHash,
#[proto(tag = 13)]
#[serde(rename = "HitInfo", default)]
pub hit_info: crate::compat::Nullable<MyHitInfo>,
#[proto(tag = 16)]
#[serde(rename = "AttackerEntityId", default)]
pub attacker_entity_id: i64,
#[proto(tag = 22)]
#[serde(rename = "ExtraInfo")]
pub extra_info: MyStringHash,
}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "RenderProfilerCommand")]
pub enum RenderProfilerCommand {
#[default]
Enable,
ToggleEnabled,
JumpToLevel,
JumpToRoot,
Pause,
NextFrame,
PreviousFrame,
DisableFrameSelection,
NextThread,
PreviousThread,
IncreaseLevel,
DecreaseLevel,
IncreaseLocalArea,
DecreaseLocalArea,
IncreaseRange,
DecreaseRange,
Reset,
SetLevel,
ChangeSortingOrder,
CopyPathToClipboard,
TryGoToPathInClipboard,
GetFomServer,
GetFromClient,
SaveToFile,
LoadFromFile,
SwapBlockOptimized,
ToggleOptimizationsEnabled,
ResetAllOptimizations,
SwitchBlockRender,
SwitchGraphContent,
SwitchShallowProfile,
ToggleAutoScale,
SwitchAverageTimes,
SubtractFromFile,
EnableAutoScale,
EnableShallowProfile,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "RespawnCooldownEntry")]
pub struct MySpaceRespawnComponent_RespawnCooldownEntry {
#[serde(rename = "ControllerId", default)]
pub controller_id: i32,
#[serde(rename = "ShipId", default)]
pub ship_id: String,
#[serde(rename = "RelativeRespawnTime", default)]
pub relative_respawn_time: i32,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MOTDData")]
pub struct MySpaceRespawnComponent_MOTDData {
#[serde(rename = "Url", default)]
pub url: String,
#[serde(rename = "Message", default)]
pub message: String,
}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyRespawnPointInfo")]
pub struct MySpaceRespawnComponent_MyRespawnPointInfo {}
#[derive(Debug, Default, Clone, PartialEq, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "MyPlanetInfo")]
pub struct MyGuiScreenMedicals_MyPlanetInfo {}
#[::proto_rs::proto_message]
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, ::serde::Serialize, ::serde::Deserialize)]
#[serde(rename = "StatType")]
pub enum MyGuiScreenDebugCharacterStats_StatType {
#[default]
Health,
Radiation,
RadiationImmunity,
Oxygen,
Hydrogen,
Energy,
Food,
}
pub mod xml_array_item {
crate::compat::define_xml_array_item!(Warning);
crate::compat::define_xml_array_item!(PCI);
crate::compat::define_xml_array_item!(GCI);
crate::compat::define_xml_array_item!(FCI);
crate::compat::define_xml_array_item!(Sector);
crate::compat::define_xml_array_item!(SubBlock);
crate::compat::define_xml_array_item!(Section);
}