shared

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	SteamcmdDir = os.Getenv("APPDATA") + "\\SpaceEngineers\\.steamcmd"
)

SteamcmdDir is the path where SteamCMD is installed.

Functions

func CleanXML

func CleanXML(content string) string

CleanXML removes empty elements from the XML content and normalizes line endings.

func FileExists

func FileExists(path string) bool

FileExists checks whether a file exists at the specified path.

func GetWorkshopID

func GetWorkshopID(path string) string

GetWorkshopID retrieves the workshop ID from the specified path. The path can be a VDF file, modinfo file (.sbmi), or a blueprint file (.sbc). Returns "0" if no valid workshop ID is found.

func PWD

func PWD() string

PWD returns the current working directory. If there is an error, it logs the error and returns an empty string.

func PrintHelp

func PrintHelp(msg string)

PrintHelp prints the help message for the CLI commands. If msg is not empty, it will be printed before the usage instructions.

func SetWorkshopID

func SetWorkshopID(path string, workshopID string)

SetWorkshopID sets the workshop ID in the specified file. The path can be a modinfo file (.sbmi) or a blueprint file (.sbc).

func SetupSteamcmd

func SetupSteamcmd() error

SetupSteamcmd ensures that SteamCMD is available on the system. If SteamCMD is not present, it downloads and extracts the SteamCMD installer.

func StartSteamClient

func StartSteamClient() error

StartSteamClient launches the Steam client using a command-line call. It opens the Steam client if installed on the system.

func Steamcmd

func Steamcmd(args ...string) (bytes.Buffer, error)

Steamcmd runs SteamCMD with the provided arguments and handles authentication. It returns a buffer containing the command's output.

func StopSteamClient

func StopSteamClient() error

StopSteamClient terminates the Steam client process using taskkill. It forcibly closes Steam if running.

func UploadWorkshop

func UploadWorkshop(path string, workshopID string) error

UploadWorkshop uploads a mod or blueprint to the Steam Workshop using SteamCMD. It takes a path to the mod/blueprint and a workshop ID as parameters.

Types

type Color

type Color struct {
	Vector3             // Embeds Vector3 for RGB channels.
	PackedValue *string `xml:"PackedValue,omitempty"` // Packed value for the color (e.g., hexadecimal).
	R           *string `xml:"R,omitempty"`           // Red channel.
	G           *string `xml:"G,omitempty"`           // Green channel.
	B           *string `xml:"B,omitempty"`           // Blue channel.
	A           *string `xml:"A,omitempty"`           // Alpha (transparency) channel.
}

Color represents a color in RGB or RGBA format, extending Vector3 for RGB channels.

type ColorRGBA

type ColorRGBA struct {
	Header         // Embeds Header for XML metadata.
	R      *string `xml:"R,attr,omitempty"` // Red channel.
	G      *string `xml:"G,attr,omitempty"` // Green channel.
	B      *string `xml:"B,attr,omitempty"` // Blue channel.
	A      *string `xml:"A,attr,omitempty"` // Alpha (transparency) channel.
}

ColorRGBA represents a color using separate RGBA values.

type ConstantsType

type ConstantsType struct {
	Appdata string
	Dir     struct {
		BP     string
		Mod    string
		Saves  string
		Script string
	}
}
var Constants ConstantsType
type Header struct {
	Text *string `xml:",chardata"`          // The text contained within the header.
	Nil  *string `xml:"nil,attr,omitempty"` // A flag indicating if the header is nil.
}

Header represents the XML header. It is used in other structs to manage XML metadata. This should NOT be used in the Metadata struct as it's not yet implemented for Entries using Header.

type Metadata

type Metadata struct {
	XMLName        xml.Name `xml:"Definitions,omitempty"`
	Text           *string  `xml:",chardata"`
	Xsd            *string  `xml:"xsd,attr,omitempty"`
	Xsi            *string  `xml:"xsi,attr,omitempty"`
	ShipBlueprints struct {
		Text          *string `xml:",chardata"`
		ShipBlueprint struct {
			Text *string `xml:",chardata"`
			Type *string `xml:"type,attr,omitempty"`
			ID   struct {
				Text    *string `xml:",chardata"`
				Type    *string `xml:"Type,attr,omitempty"`
				Subtype *string `xml:"Subtype,attr,omitempty"`
			} `xml:"Id,omitempty"`
			DisplayName *string  `xml:"DisplayName,omitempty"`
			DLC         []string `xml:"DLC,omitempty"`
			CubeGrids   struct {
				Text     *string `xml:",chardata"`
				CubeGrid struct {
					Text                        *string                 `xml:",chardata"`
					SubtypeName                 *string                 `xml:"SubtypeName,omitempty"`
					EntityId                    *string                 `xml:"EntityId,omitempty"`
					PersistentFlags             *string                 `xml:"PersistentFlags,omitempty"`
					Name                        *string                 `xml:"Name,omitempty"`
					PositionAndOrientation      *PositionAndOrientation `xml:"PositionAndOrientation,omitempty"`
					LocalPositionAndOrientation *PositionAndOrientation `xml:"LocalPositionAndOrientation,omitempty"`
					GridSizeEnum                *string                 `xml:"GridSizeEnum,omitempty"`
					CubeBlocks                  struct {
						Text                     *string `xml:",chardata"`
						MyObjectBuilderCubeBlock []struct {
							Text             *string  `xml:",chardata"`
							Type             *string  `xml:"type,attr,omitempty"`
							SubtypeName      *string  `xml:"SubtypeName,omitempty"`
							ColorMaskHSV     *Vector3 `xml:"ColorMaskHSV,omitempty"`
							SkinSubtypeId    *string  `xml:"SkinSubtypeId,omitempty"`
							Min              *Vector3 `xml:"Min,omitempty"`
							BlockOrientation struct {
								Text    *string `xml:",chardata"`
								Forward *string `xml:"Forward,attr,omitempty"`
								Up      *string `xml:"Up,attr,omitempty"`
							} `xml:"BlockOrientation,omitempty"`
							EntityId             *string `xml:"EntityId,omitempty"`
							ShowOnHUD            *string `xml:"ShowOnHUD,omitempty"`
							ShowInTerminal       *string `xml:"ShowInTerminal,omitempty"`
							ShowInToolbarConfig  *string `xml:"ShowInToolbarConfig,omitempty"`
							ShowInInventory      *string `xml:"ShowInInventory,omitempty"`
							NumberInGrid         *string `xml:"NumberInGrid,omitempty"`
							Enabled              *string `xml:"Enabled,omitempty"`
							Radius               *string `xml:"Radius,omitempty"`
							ReflectorRadius      *string `xml:"ReflectorRadius,omitempty"`
							Falloff              *string `xml:"Falloff,omitempty"`
							Intensity            *string `xml:"Intensity,omitempty"`
							BlinkIntervalSeconds *string `xml:"BlinkIntervalSeconds,omitempty"`
							BlinkLenght          *string `xml:"BlinkLenght,omitempty"`
							BlinkOffset          *string `xml:"BlinkOffset,omitempty"`
							Offset               *string `xml:"Offset,omitempty"`
							Owner                *string `xml:"Owner,omitempty"`
							ShareMode            *string `xml:"ShareMode,omitempty"`
							ComponentContainer   struct {
								Text       *string `xml:",chardata"`
								Components struct {
									Text          *string `xml:",chardata"`
									ComponentData []struct {
										Text      *string `xml:",chardata"`
										TypeId    *string `xml:"TypeId,omitempty"`
										Component struct {
											Text        *string `xml:",chardata"`
											Type        *string `xml:"type,attr,omitempty"`
											CanPutItems *string `xml:"CanPutItems,omitempty"`
											Items       struct {
												Text                         *string `xml:",chardata"`
												MyObjectBuilderInventoryItem struct {
													Text            *string `xml:",chardata"`
													Amount          *string `xml:"Amount,omitempty"`
													PhysicalContent struct {
														Text        *string `xml:",chardata"`
														Type        *string `xml:"type,attr,omitempty"`
														SubtypeName *string `xml:"SubtypeName,omitempty"`
													} `xml:"PhysicalContent,omitempty"`
													ItemId *string `xml:"ItemId,omitempty"`
												} `xml:"MyObjectBuilder_InventoryItem,omitempty"`
											} `xml:"Items,omitempty"`
											NextItemId          *string `xml:"nextItemId,omitempty"`
											Volume              *string `xml:"Volume,omitempty"`
											Mass                *string `xml:"Mass,omitempty"`
											MaxItemCount        *string `xml:"MaxItemCount,omitempty"`
											Size                Header  `xml:"Size,omitempty"`
											InventoryFlags      *string `xml:"InventoryFlags,omitempty"`
											RemoveEntityOnEmpty *string `xml:"RemoveEntityOnEmpty,omitempty"`
											SubtypeName         *string `xml:"SubtypeName,omitempty"`
											Open                *string `xml:"Open,omitempty"`
											TextPanelsContents  struct {
												Text                      *string `xml:",chardata"`
												MySerializedTextPanelData []struct {
													Chardata       *string `xml:",chardata"`
													ChangeInterval *string `xml:"ChangeInterval,omitempty"`
													Font           struct {
														Text    *string `xml:",chardata"`
														Type    *string `xml:"Type,attr,omitempty"`
														Subtype *string `xml:"Subtype,attr,omitempty"`
													} `xml:"Font,omitempty"`
													FontSize              *string `xml:"FontSize,omitempty"`
													ShowText              *string `xml:"ShowText,omitempty"`
													FontColor             Color   `xml:"FontColor,omitempty"`
													BackgroundColor       Color   `xml:"BackgroundColor,omitempty"`
													CurrentShownTexture   *string `xml:"CurrentShownTexture,omitempty"`
													SelectedScript        *string `xml:"SelectedScript,omitempty"`
													TextPadding           *string `xml:"TextPadding,omitempty"`
													ScriptBackgroundColor Color   `xml:"ScriptBackgroundColor,omitempty"`
													ScriptForegroundColor Color   `xml:"ScriptForegroundColor,omitempty"`
													Sprites               struct {
														Text   *string `xml:",chardata"`
														Length *string `xml:"Length,omitempty"`
													} `xml:"Sprites,omitempty"`
													Text             *string `xml:"Text,omitempty"`
													ContentType      *string `xml:"ContentType,omitempty"`
													CustomizeScripts *string `xml:"CustomizeScripts,omitempty"`
													SelectedImages   struct {
														Text   *string `xml:",chardata"`
														String *string `xml:"string,omitempty"`
													} `xml:"SelectedImages,omitempty"`
												} `xml:"MySerializedTextPanelData,omitempty"`
											} `xml:"TextPanelsContents,omitempty"`
											RemoveExistingComponentOnNewInsert *string  `xml:"RemoveExistingComponentOnNewInsert,omitempty"`
											AutoPilotEnabled                   *string  `xml:"AutoPilotEnabled,omitempty"`
											FlightMode                         *string  `xml:"FlightMode,omitempty"`
											CurrentWaypointIndex               *string  `xml:"CurrentWaypointIndex,omitempty"`
											Waypoints                          *string  `xml:"Waypoints,omitempty"`
											DockingModeEnabled                 *string  `xml:"DockingModeEnabled,omitempty"`
											CollisionAvoidance                 *string  `xml:"CollisionAvoidance,omitempty"`
											Direction                          *string  `xml:"Direction,omitempty"`
											AutopilotSpeedLimit                *string  `xml:"AutopilotSpeedLimit,omitempty"`
											WaitForFreeWay                     *string  `xml:"WaitForFreeWay,omitempty"`
											WaypointThresholdDistance          *string  `xml:"WaypointThresholdDistance,omitempty"`
											Coords                             *string  `xml:"Coords,omitempty"`
											Names                              *string  `xml:"Names,omitempty"`
											LookAtPosition                     Header   `xml:"LookAtPosition,omitempty"`
											FacingDirection                    *string  `xml:"FacingDirection,omitempty"`
											AlignToGravity                     *string  `xml:"AlignToGravity,omitempty"`
											MinHeightAboveTerrain              *string  `xml:"MinHeightAboveTerrain,omitempty"`
											IsWorkAreaReturningToStart         *string  `xml:"IsWorkAreaReturningToStart,omitempty"`
											WorkAreaStartForward               *Vector3 `xml:"WorkAreaStartForward,omitempty"`
											PitchAngle                         *string  `xml:"PitchAngle,omitempty"`
											RollAngle                          *string  `xml:"RollAngle,omitempty"`
											IsActivated                        *string  `xml:"IsActivated,omitempty"`
											TargetingLockOptions               *string  `xml:"TargetingLockOptions,omitempty"`
											SubsystemsToDestroy                *string  `xml:"SubsystemsToDestroy,omitempty"`
											TargetEntityId                     *string  `xml:"TargetEntityId,omitempty"`
											CircleDistance                     *string  `xml:"CircleDistance,omitempty"`
											CircleInPGravity                   *string  `xml:"CircleInPGravity,omitempty"`
											FacingPriority                     *string  `xml:"FacingPriority,omitempty"`
											WasActive                          *string  `xml:"WasActive,omitempty"`
											SelectedWeapons                    *string  `xml:"SelectedWeapons,omitempty"`
											FacingMode                         *string  `xml:"FacingMode,omitempty"`
											MinimalDistance                    *string  `xml:"MinimalDistance,omitempty"`
											MaximalDistance                    *string  `xml:"MaximalDistance,omitempty"`
											EvasiveManeuvers                   *string  `xml:"EvasiveManeuvers,omitempty"`
											BreakOffDistance                   *string  `xml:"BreakOffDistance,omitempty"`
											RetreatDistance                    *string  `xml:"RetreatDistance,omitempty"`
											RetreatTimeout                     *string  `xml:"RetreatTimeout,omitempty"`
											RetreatAngle                       *string  `xml:"RetreatAngle,omitempty"`
											HitAndRunState                     struct {
												Text                *string  `xml:",chardata"`
												CurrentState        *string  `xml:"CurrentState,omitempty"`
												RunAwayDirection    *Vector3 `xml:"RunAwayDirection,omitempty"`
												LastPosition        Header   `xml:"LastPosition,omitempty"`
												RunAwayStartedFrame *string  `xml:"RunAwayStartedFrame,omitempty"`
											} `xml:"HitAndRunState,omitempty"`
											Guidance                   *string  `xml:"Guidance,omitempty"`
											OverrideCollisionAvoidance *string  `xml:"OverrideCollisionAvoidance,omitempty"`
											MinRange                   *string  `xml:"MinRange,omitempty"`
											MaxRange                   *string  `xml:"MaxRange,omitempty"`
											IsWanderEnabled            *string  `xml:"IsWanderEnabled,omitempty"`
											SelectedGpsHash            Header   `xml:"SelectedGpsHash,omitempty"`
											SelectedBeaconEntityId     *string  `xml:"SelectedBeaconEntityId,omitempty"`
											HomePosition               *Vector3 `xml:"HomePosition,omitempty"`
											SelectedGpsHashNew         Header   `xml:"SelectedGpsHashNew,omitempty"`
											IsFollowing                *string  `xml:"IsFollowing,omitempty"`
											FollowDistance             *string  `xml:"FollowDistance,omitempty"`
											FollowedPlayerIdentityId   *string  `xml:"FollowedPlayerIdentityId,omitempty"`
											Mode                       *string  `xml:"Mode,omitempty"`
											Repeat                     *string  `xml:"Repeat,omitempty"`
											RecordInterval             *string  `xml:"RecordInterval,omitempty"`
											ShowPath                   *string  `xml:"ShowPath,omitempty"`
											ShowSelectedPoints         *string  `xml:"ShowSelectedPoints,omitempty"`
											Play                       *string  `xml:"Play,omitempty"`
											BeaconEntityId             *string  `xml:"BeaconEntityId,omitempty"`
											TimeToEvent                *string  `xml:"TimeToEvent,omitempty"`
											SetTimeMinutes             *string  `xml:"SetTimeMinutes,omitempty"`
											TimerEnabled               *string  `xml:"TimerEnabled,omitempty"`
											RemoveEntityOnTimer        *string  `xml:"RemoveEntityOnTimer,omitempty"`
											TimerType                  *string  `xml:"TimerType,omitempty"`
											FramesFromLastTrigger      *string  `xml:"FramesFromLastTrigger,omitempty"`
											TimerTickInFrames          *string  `xml:"TimerTickInFrames,omitempty"`
											IsSessionUpdateEnabled     *string  `xml:"IsSessionUpdateEnabled,omitempty"`
											InventoryId                *string  `xml:"InventoryId,omitempty"`
											Inventories                struct {
												Text                         *string `xml:",chardata"`
												MyObjectBuilderInventoryBase []struct {
													Text                *string `xml:",chardata"`
													Type                *string `xml:"type,attr,omitempty"`
													CanPutItems         *string `xml:"CanPutItems,omitempty"`
													Items               *string `xml:"Items,omitempty"`
													NextItemId          *string `xml:"nextItemId,omitempty"`
													Volume              *string `xml:"Volume,omitempty"`
													Mass                *string `xml:"Mass,omitempty"`
													MaxItemCount        *string `xml:"MaxItemCount,omitempty"`
													Size                Header  `xml:"Size,omitempty"`
													InventoryFlags      *string `xml:"InventoryFlags,omitempty"`
													RemoveEntityOnEmpty *string `xml:"RemoveEntityOnEmpty,omitempty"`
												} `xml:"MyObjectBuilder_InventoryBase,omitempty"`
											} `xml:"Inventories,omitempty"`
											BroadcastTarget *string `xml:"BroadcastTarget,omitempty"`
											UseAntenna      *string `xml:"UseAntenna,omitempty"`
											CustomName      *string `xml:"CustomName,omitempty"`
											Messages        struct {
												Text   *string  `xml:",chardata"`
												String []string `xml:"string,omitempty"`
											} `xml:"Messages,omitempty"`
											StoredPower *string `xml:"StoredPower,omitempty"`
											Storage     struct {
												Text       *string `xml:",chardata"`
												Dictionary struct {
													Text *string `xml:",chardata"`
													Item struct {
														Text  *string `xml:",chardata"`
														Key   *string `xml:"Key,omitempty"`
														Value *string `xml:"Value,omitempty"`
													} `xml:"item,omitempty"`
												} `xml:"dictionary,omitempty"`
											} `xml:"Storage,omitempty"`
											SunTrackingEnabled     *string `xml:"SunTrackingEnabled,omitempty"`
											Angle                  *string `xml:"Angle,omitempty"`
											Height                 *string `xml:"Height,omitempty"`
											Speed                  *string `xml:"Speed,omitempty"`
											Gravity                *string `xml:"Gravity,omitempty"`
											DistanceToLockedTarget *string `xml:"DistanceToLockedTarget,omitempty"`
											Toolbar                struct {
												Text         *string `xml:",chardata"`
												ToolbarType  *string `xml:"ToolbarType,omitempty"`
												SelectedSlot Header  `xml:"SelectedSlot,omitempty"`
												Slots        []Slot  `xml:"Slots,omitempty"`
												SlotsGamepad []Slot  `xml:"SlotsGamepad,omitempty"`
											} `xml:"Toolbar,omitempty"`
											SelectedRotationIndex *string `xml:"SelectedRotationIndex,omitempty"`
											TextPanelContent      struct {
												Text           *string `xml:",chardata"`
												ChangeInterval *string `xml:"ChangeInterval,omitempty"`
												Font           struct {
													Text    *string `xml:",chardata"`
													Type    *string `xml:"Type,attr,omitempty"`
													Subtype *string `xml:"Subtype,attr,omitempty"`
												} `xml:"Font,omitempty"`
												FontSize              *string `xml:"FontSize,omitempty"`
												ShowText              *string `xml:"ShowText,omitempty"`
												FontColor             Color   `xml:"FontColor,omitempty"`
												BackgroundColor       Color   `xml:"BackgroundColor,omitempty"`
												CurrentShownTexture   *string `xml:"CurrentShownTexture,omitempty"`
												SelectedScript        *string `xml:"SelectedScript,omitempty"`
												TextPadding           *string `xml:"TextPadding,omitempty"`
												ScriptBackgroundColor Color   `xml:"ScriptBackgroundColor,omitempty"`
												ScriptForegroundColor Color   `xml:"ScriptForegroundColor,omitempty"`
												Sprites               struct {
													Text   *string `xml:",chardata"`
													Length *string `xml:"Length,omitempty"`
												} `xml:"Sprites,omitempty"`
											} `xml:"TextPanelContent,omitempty"`
											SelectedLCDsIds struct {
												Text *string `xml:",chardata"`
												Long *string `xml:"long,omitempty"`
											} `xml:"SelectedLCDsIds,omitempty"`
											SelectedEmotionSubtype *string `xml:"SelectedEmotionSubtype,omitempty"`
											UpkeepTime             *string `xml:"UpkeepTime,omitempty"`
											Activating             *string `xml:"Activating,omitempty"`
											ActivationTime         *string `xml:"ActivationTime,omitempty"`
											SafeZoneOb             struct {
												Text                      *string `xml:",chardata"`
												Type                      *string `xml:"type,attr,omitempty"`
												SubtypeName               *string `xml:"SubtypeName,omitempty"`
												EntityId                  *string `xml:"EntityId,omitempty"`
												PersistentFlags           *string `xml:"PersistentFlags,omitempty"`
												Name                      *string `xml:"Name,omitempty"`
												Radius                    *string `xml:"Radius,omitempty"`
												Enabled                   *string `xml:"Enabled,omitempty"`
												SafeZoneBlockId           *string `xml:"SafeZoneBlockId,omitempty"`
												AccessTypePlayers         *string `xml:"AccessTypePlayers,omitempty"`
												AccessTypeFactions        *string `xml:"AccessTypeFactions,omitempty"`
												AccessTypeGrids           *string `xml:"AccessTypeGrids,omitempty"`
												AccessTypeFloatingObjects *string `xml:"AccessTypeFloatingObjects,omitempty"`
												AllowedActions            *string `xml:"AllowedActions,omitempty"`
												Factions                  *string `xml:"Factions,omitempty"`
												Players                   struct {
													Text *string `xml:",chardata"`
													Long *string `xml:"long,omitempty"`
												} `xml:"Players,omitempty"`
												Entities       *string  `xml:"Entities,omitempty"`
												Size           *Vector3 `xml:"Size,omitempty"`
												Shape          *string  `xml:"Shape,omitempty"`
												ContainedGrids struct {
													Text *string  `xml:",chardata"`
													Long []string `xml:"long,omitempty"`
												} `xml:"ContainedGrids,omitempty"`
												IsVisible  *string  `xml:"IsVisible,omitempty"`
												ModelColor *Vector3 `xml:"ModelColor,omitempty"`
												Texture    *string  `xml:"Texture,omitempty"`
											} `xml:"SafeZoneOb,omitempty"`
										} `xml:"Component,omitempty"`
									} `xml:"ComponentData,omitempty"`
								} `xml:"Components,omitempty"`
							} `xml:"ComponentContainer,omitempty"`
							UseSingleWeaponMode *string `xml:"UseSingleWeaponMode,omitempty"`
							Toolbar             struct {
								Text         *string `xml:",chardata"`
								ToolbarType  *string `xml:"ToolbarType,omitempty"`
								SelectedSlot Header  `xml:"SelectedSlot,omitempty"`
								Slots        []Slot  `xml:"Slots,omitempty"`
								SlotsGamepad []Slot  `xml:"SlotsGamepad,omitempty"`
							} `xml:"Toolbar,omitempty"`
							SelectedGunId           Header  `xml:"SelectedGunId,omitempty"`
							HorizonIndicatorEnabled *string `xml:"HorizonIndicatorEnabled,omitempty"`
							BuildToolbar            struct {
								Text         *string `xml:",chardata"`
								ToolbarType  *string `xml:"ToolbarType,omitempty"`
								SelectedSlot Header  `xml:"SelectedSlot,omitempty"`
								Slots        []Slot  `xml:"Slots,omitempty"`
								SlotsGamepad []Slot  `xml:"SlotsGamepad,omitempty"`
							} `xml:"BuildToolbar,omitempty"`
							OnLockedToolbar struct {
								Text         *string `xml:",chardata"`
								ToolbarType  *string `xml:"ToolbarType,omitempty"`
								SelectedSlot Header  `xml:"SelectedSlot,omitempty"`
								Slots        *string `xml:"Slots,omitempty"`
								SlotsGamepad *string `xml:"SlotsGamepad,omitempty"`
							} `xml:"OnLockedToolbar,omitempty"`
							IsTargetLockingEnabled *string                `xml:"IsTargetLockingEnabled,omitempty"`
							PilotRelativeWorld     PositionAndOrientation `xml:"PilotRelativeWorld,omitempty"`
							PilotGunDefinition     Header                 `xml:"PilotGunDefinition,omitempty"`
							IsInFirstPersonView    *string                `xml:"IsInFirstPersonView,omitempty"`
							OxygenLevel            *string                `xml:"OxygenLevel,omitempty"`
							PilotJetpackEnabled    Header                 `xml:"PilotJetpackEnabled,omitempty"`
							TargetData             struct {
								Text            *string `xml:",chardata"`
								TargetId        *string `xml:"TargetId,omitempty"`
								IsTargetLocked  *string `xml:"IsTargetLocked,omitempty"`
								LockingProgress *string `xml:"LockingProgress,omitempty"`
							} `xml:"TargetData,omitempty"`
							SitAnimation      *string `xml:"SitAnimation,omitempty"`
							SteamId           Header  `xml:"SteamId,omitempty"`
							SerialId          Header  `xml:"SerialId,omitempty"`
							AnyoneCanUse      *string `xml:"AnyoneCanUse,omitempty"`
							CustomButtonNames struct {
								Text       *string `xml:",chardata"`
								Dictionary *string `xml:"dictionary,omitempty"`
							} `xml:"CustomButtonNames,omitempty"`
							Opening                *string `xml:"Opening,omitempty"`
							OpenSound              *string `xml:"OpenSound,omitempty"`
							CloseSound             *string `xml:"CloseSound,omitempty"`
							Open                   *string `xml:"Open,omitempty"`
							CurrOpening            *string `xml:"CurrOpening,omitempty"`
							ImmediateEffectivities struct {
								Text  *string  `xml:",chardata"`
								Float []string `xml:"float,omitempty"`
							} `xml:"ImmediateEffectivities,omitempty"`
							PreviousControlledEntityId   Header   `xml:"PreviousControlledEntityId,omitempty"`
							AutoPilotEnabled             *string  `xml:"AutoPilotEnabled,omitempty"`
							FlightMode                   *string  `xml:"FlightMode,omitempty"`
							BindedCamera                 *string  `xml:"BindedCamera,omitempty"`
							CurrentWaypointIndex         *string  `xml:"CurrentWaypointIndex,omitempty"`
							Waypoints                    *string  `xml:"Waypoints,omitempty"`
							Direction                    *string  `xml:"Direction,omitempty"`
							DockingModeEnabled           *string  `xml:"DockingModeEnabled,omitempty"`
							CollisionAvoidance           *string  `xml:"CollisionAvoidance,omitempty"`
							Coords                       *string  `xml:"Coords,omitempty"`
							Names                        *string  `xml:"Names,omitempty"`
							WaypointThresholdDistance    *string  `xml:"WaypointThresholdDistance,omitempty"`
							IsMainRemoteControl          *string  `xml:"IsMainRemoteControl,omitempty"`
							WaitForFreeWay               *string  `xml:"WaitForFreeWay,omitempty"`
							IsUpdatedSave                *string  `xml:"IsUpdatedSave,omitempty"`
							FleeTrigger                  *string  `xml:"FleeTrigger,omitempty"`
							SelectedBeaconEntityId       *string  `xml:"SelectedBeaconEntityId,omitempty"`
							SelectedGpsHash              Header   `xml:"SelectedGpsHash,omitempty"`
							WaypointZoneSize             *string  `xml:"WaypointZoneSize,omitempty"`
							LockTarget                   *string  `xml:"LockTarget,omitempty"`
							CustomFleeCoordinates        *Vector3 `xml:"CustomFleeCoordinates,omitempty"`
							UseCustomFleeCoordinates     *string  `xml:"UseCustomFleeCoordinates,omitempty"`
							CanTargetCharacters          *string  `xml:"CanTargetCharacters,omitempty"`
							SelectedGpsHashNew           Header   `xml:"SelectedGpsHashNew,omitempty"`
							FleeDistance                 *string  `xml:"FleeDistance,omitempty"`
							EvasiveManeuvers             *string  `xml:"EvasiveManeuvers,omitempty"`
							EvasiveManeuverAngle         *string  `xml:"EvasiveManeuverAngle,omitempty"`
							EvasiveManeuverIntervalRange *string  `xml:"EvasiveManeuverIntervalRange,omitempty"`
							FleeMode                     *string  `xml:"FleeMode,omitempty"`
							LastKnownEnemyPosition       Header   `xml:"LastKnownEnemyPosition,omitempty"`
							FleeMinHeightOnPlanets       *string  `xml:"FleeMinHeightOnPlanets,omitempty"`
							PrevToolbarState             Header   `xml:"PrevToolbarState,omitempty"`
							TargetPriority               *string  `xml:"TargetPriority,omitempty"`
							UpdateTargetInterval         *string  `xml:"UpdateTargetInterval,omitempty"`
							SelectedAttackPattern        *string  `xml:"SelectedAttackPattern,omitempty"`
							SelectedMission              *string  `xml:"SelectedMission,omitempty"`
							CurrentStoredPower           *string  `xml:"CurrentStoredPower,omitempty"`
							ProducerEnabled              *string  `xml:"ProducerEnabled,omitempty"`
							MaxStoredPower               *string  `xml:"MaxStoredPower,omitempty"`
							SemiautoEnabled              *string  `xml:"SemiautoEnabled,omitempty"`
							OnlyDischargeEnabled         *string  `xml:"OnlyDischargeEnabled,omitempty"`
							ChargeMode                   *string  `xml:"ChargeMode,omitempty"`
							Capacity                     *string  `xml:"Capacity,omitempty"`
							ThrustOverride               *string  `xml:"ThrustOverride,omitempty"`
							YieldLastComponent           *string  `xml:"YieldLastComponent,omitempty"`
							TopBlockId                   Header   `xml:"TopBlockId,omitempty"`
							ShareInertiaTensor           *string  `xml:"ShareInertiaTensor,omitempty"`
							SafetyDetach                 *string  `xml:"SafetyDetach,omitempty"`
							RotorEntityId                Header   `xml:"RotorEntityId,omitempty"`
							WeldedEntityId               Header   `xml:"WeldedEntityId,omitempty"`
							SteerAngle                   *string  `xml:"SteerAngle,omitempty"`
							Damping                      *string  `xml:"Damping,omitempty"`
							Strength                     *string  `xml:"Strength,omitempty"`
							Propulsion                   *string  `xml:"Propulsion,omitempty"`
							Friction                     *string  `xml:"Friction,omitempty"`
							Power                        *string  `xml:"Power,omitempty"`
							Height                       *string  `xml:"Height,omitempty"`
							MaxSteerAngle                *string  `xml:"MaxSteerAngle,omitempty"`
							InvertSteer                  *string  `xml:"InvertSteer,omitempty"`
							InvertPropulsion             *string  `xml:"InvertPropulsion,omitempty"`
							SpeedLimit                   *string  `xml:"SpeedLimit,omitempty"`
							PowerNew                     *string  `xml:"PowerNew,omitempty"`
							StrengthNew                  *string  `xml:"StrengthNew,omitempty"`
							FrictionNew                  *string  `xml:"FrictionNew,omitempty"`
							AirShockEnabled              *string  `xml:"AirShockEnabled,omitempty"`
							BrakingEnabled               *string  `xml:"BrakingEnabled,omitempty"`
							SteeringOverride             *string  `xml:"SteeringOverride,omitempty"`
							PropulsionOverride           *string  `xml:"PropulsionOverride,omitempty"`
							IsParkingEnabled             *string  `xml:"IsParkingEnabled,omitempty"`
							CurrentProgress              *string  `xml:"CurrentProgress,omitempty"`
							DisassembleEnabled           *string  `xml:"DisassembleEnabled,omitempty"`
							RepeatAssembleEnabled        *string  `xml:"RepeatAssembleEnabled,omitempty"`
							RepeatDisassembleEnabled     *string  `xml:"RepeatDisassembleEnabled,omitempty"`
							SlaveEnabled                 *string  `xml:"SlaveEnabled,omitempty"`
							SpawnName                    *string  `xml:"SpawnName,omitempty"`
							SteamUserId                  *string  `xml:"SteamUserId,omitempty"`
							IdleSound                    *string  `xml:"IdleSound,omitempty"`
							ProgressSound                *string  `xml:"ProgressSound,omitempty"`
							TakeOwnership                *string  `xml:"TakeOwnership,omitempty"`
							SetFaction                   *string  `xml:"SetFaction,omitempty"`
							WardrobeUserId               *string  `xml:"WardrobeUserId,omitempty"`
							DeformationRatio             *string  `xml:"DeformationRatio,omitempty"`
							CheckEnvironmentSector       *string  `xml:"CheckEnvironmentSector,omitempty"`
							ProjectionOffset             *Vector3 `xml:"ProjectionOffset,omitempty"`
							ProjectionRotation           *Vector3 `xml:"ProjectionRotation,omitempty"`
							KeepProjection               *string  `xml:"KeepProjection,omitempty"`
							ShowOnlyBuildable            *string  `xml:"ShowOnlyBuildable,omitempty"`
							InstantBuildingEnabled       *string  `xml:"InstantBuildingEnabled,omitempty"`
							MaxNumberOfProjections       *string  `xml:"MaxNumberOfProjections,omitempty"`
							MaxNumberOfBlocks            *string  `xml:"MaxNumberOfBlocks,omitempty"`
							ProjectionsRemaining         *string  `xml:"ProjectionsRemaining,omitempty"`
							GetOwnershipFromProjector    *string  `xml:"GetOwnershipFromProjector,omitempty"`
							Scale                        *string  `xml:"Scale,omitempty"`
							RotationSpeed                *string  `xml:"RotationSpeed,omitempty"`
							Rotation                     *string  `xml:"Rotation,omitempty"`
							Elevation                    *string  `xml:"Elevation,omitempty"`
							TargetCharacters             *string  `xml:"TargetCharacters,omitempty"`
							Flags                        struct {
								Text             *string `xml:",chardata"`
								TargetCharacters *string `xml:"TargetCharacters,omitempty"`
								TargetMeteors    *string `xml:"TargetMeteors,omitempty"`
								TargetSmallGrids *string `xml:"TargetSmallGrids,omitempty"`
							} `xml:"Flags,omitempty"`
							Range                     *string   `xml:"Range,omitempty"`
							TargetingGroup            *string   `xml:"TargetingGroup,omitempty"`
							Target                    *string   `xml:"Target,omitempty"`
							IsPotentialTarget         *string   `xml:"IsPotentialTarget,omitempty"`
							EnableIdleRotation        *string   `xml:"EnableIdleRotation,omitempty"`
							PreviousIdleRotationState *string   `xml:"PreviousIdleRotationState,omitempty"`
							IsActive                  *string   `xml:"IsActive,omitempty"`
							Fov                       *string   `xml:"Fov,omitempty"`
							Volume                    *string   `xml:"Volume,omitempty"`
							CueName                   *string   `xml:"CueName,omitempty"`
							LoopPeriod                *string   `xml:"LoopPeriod,omitempty"`
							IsPlaying                 *string   `xml:"IsPlaying,omitempty"`
							ElapsedSoundSeconds       *string   `xml:"ElapsedSoundSeconds,omitempty"`
							IsLoopableSound           *string   `xml:"IsLoopableSound,omitempty"`
							SelectedSounds            *string   `xml:"SelectedSounds,omitempty"`
							IsJukeboxPlaying          *string   `xml:"IsJukeboxPlaying,omitempty"`
							CurrentSound              *string   `xml:"CurrentSound,omitempty"`
							PowerDependency           *string   `xml:"PowerDependency,omitempty"`
							ColorMinimalPower         ColorRGBA `xml:"ColorMinimalPower,omitempty"`
							ColorMaximalPower         ColorRGBA `xml:"ColorMaximalPower,omitempty"`
							RequiredPowerInput        *string   `xml:"RequiredPowerInput,omitempty"`
							SubpartRotations          struct {
								Text            *string `xml:",chardata"`
								SubpartRotation []struct {
									Text                         *string `xml:",chardata"`
									SubpartName                  *string `xml:"SubpartName,attr,omitempty"`
									ReveseRotationDirection      *string `xml:"ReveseRotationDirection,attr,omitempty"`
									MinimalPositionAdjustDegrees *string `xml:"MinimalPositionAdjustDegrees,attr,omitempty"`
									MaximalPositionAdjustDegrees *string `xml:"MaximalPositionAdjustDegrees,attr,omitempty"`
								} `xml:"SubpartRotation,omitempty"`
							} `xml:"SubpartRotations,omitempty"`
							ExhaustEffect                  *string  `xml:"ExhaustEffect,omitempty"`
							DetectionRadius                *string  `xml:"DetectionRadius,omitempty"`
							BroadcastUsingAntennas         *string  `xml:"BroadcastUsingAntennas,omitempty"`
							BroadcastRadius                *string  `xml:"BroadcastRadius,omitempty"`
							HudText                        *string  `xml:"HudText,omitempty"`
							ShowShipName                   *string  `xml:"ShowShipName,omitempty"`
							EnableBroadcasting             *string  `xml:"EnableBroadcasting,omitempty"`
							AttachedPB                     *string  `xml:"AttachedPB,omitempty"`
							IgnoreAllied                   *string  `xml:"IgnoreAllied,omitempty"`
							IgnoreOther                    *string  `xml:"IgnoreOther,omitempty"`
							State                          *string  `xml:"State,omitempty"`
							TargetEntityId                 Header   `xml:"targetEntityId,omitempty"`
							GpsTarget                      Header   `xml:"gpsTarget,omitempty"`
							GpsTargetName                  *string  `xml:"gpsTargetName,omitempty"`
							LastTargetPosition             *Vector3 `xml:"LastTargetPosition,omitempty"`
							HeadRotation                   Vector2  `xml:"HeadRotation,omitempty"`
							LastKnownTargetName            *string  `xml:"LastKnownTargetName,omitempty"`
							IsWhiteList                    *string  `xml:"IsWhiteList,omitempty"`
							DefinitionIds                  *string  `xml:"DefinitionIds,omitempty"`
							DefinitionTypes                *string  `xml:"DefinitionTypes,omitempty"`
							DrainAll                       *string  `xml:"DrainAll,omitempty"`
							MasterToSlaveTransform         Header   `xml:"MasterToSlaveTransform,omitempty"`
							MasterToSlaveGrid              Header   `xml:"MasterToSlaveGrid,omitempty"`
							IsMaster                       *string  `xml:"IsMaster,omitempty"`
							TradingEnabled                 *string  `xml:"TradingEnabled,omitempty"`
							AutoUnlockTime                 *string  `xml:"AutoUnlockTime,omitempty"`
							TimeOfConnection               *string  `xml:"TimeOfConnection,omitempty"`
							IsPowerTransferOverrideEnabled *string  `xml:"IsPowerTransferOverrideEnabled,omitempty"`
							IsApproaching                  *string  `xml:"IsApproaching,omitempty"`
							IsConnecting                   *string  `xml:"IsConnecting,omitempty"`
							IsStockpiling                  *string  `xml:"IsStockpiling,omitempty"`
							FilledRatio                    *string  `xml:"FilledRatio,omitempty"`
							AutoRefill                     *string  `xml:"AutoRefill,omitempty"`
							IsShooting                     *string  `xml:"IsShooting,omitempty"`
							IsShootingFromTerminal         *string  `xml:"IsShootingFromTerminal,omitempty"`
							IsLargeTurret                  *string  `xml:"IsLargeTurret,omitempty"`
							MinFov                         *string  `xml:"MinFov,omitempty"`
							MaxFov                         *string  `xml:"MaxFov,omitempty"`
							UseConveyorSystem              *string  `xml:"UseConveyorSystem,omitempty"`
							GunBase                        struct {
								Text                    *string `xml:",chardata"`
								CurrentAmmoMagazineName *string `xml:"CurrentAmmoMagazineName,omitempty"`
								RemainingAmmosList      *string `xml:"RemainingAmmosList,omitempty"`
								LastShootTime           *string `xml:"LastShootTime,omitempty"`
							} `xml:"GunBase,omitempty"`
							RemainingAmmo               *string  `xml:"RemainingAmmo,omitempty"`
							CountdownMs                 *string  `xml:"CountdownMs,omitempty"`
							IsArmed                     *string  `xml:"IsArmed,omitempty"`
							IsCountingDown              *string  `xml:"IsCountingDown,omitempty"`
							AzimuthId                   *string  `xml:"AzimuthId,omitempty"`
							ElevationId                 *string  `xml:"ElevationId,omitempty"`
							CameraId                    *string  `xml:"CameraId,omitempty"`
							ToolIds                     *string  `xml:"ToolIds,omitempty"`
							VelocityMultiplierAzimuth   *string  `xml:"VelocityMultiplierAzimuth,omitempty"`
							VelocityMultiplierElevation *string  `xml:"VelocityMultiplierElevation,omitempty"`
							IsCorrect                   *string  `xml:"IsCorrect,omitempty"`
							AngleDeviation              *string  `xml:"AngleDeviation,omitempty"`
							DirectionBlockId            *string  `xml:"DirectionBlockId,omitempty"`
							AreWeaponsMismatched        *string  `xml:"AreWeaponsMismatched,omitempty"`
							AllowAI                     *string  `xml:"AllowAI,omitempty"`
							Delay                       *string  `xml:"Delay,omitempty"`
							CurrentTime                 *string  `xml:"CurrentTime,omitempty"`
							Silent                      *string  `xml:"Silent,omitempty"`
							Threshold                   *string  `xml:"Threshold,omitempty"`
							ANDGate                     *string  `xml:"ANDGate,omitempty"`
							SelectedEvent               *string  `xml:"SelectedEvent,omitempty"`
							SelectedBlocks              *string  `xml:"SelectedBlocks,omitempty"`
							ConditionInvert             *string  `xml:"ConditionInvert,omitempty"`
							Storage                     *string  `xml:"Storage,omitempty"`
							FieldMin                    *Vector3 `xml:"FieldMin,omitempty"`
							FieldMax                    *Vector3 `xml:"FieldMax,omitempty"`
							PlaySound                   *string  `xml:"PlaySound,omitempty"`
							DetectPlayers               *string  `xml:"DetectPlayers,omitempty"`
							DetectFloatingObjects       *string  `xml:"DetectFloatingObjects,omitempty"`
							DetectSmallShips            *string  `xml:"DetectSmallShips,omitempty"`
							DetectLargeShips            *string  `xml:"DetectLargeShips,omitempty"`
							DetectStations              *string  `xml:"DetectStations,omitempty"`
							DetectSubgrids              *string  `xml:"DetectSubgrids,omitempty"`
							DetectAsteroids             *string  `xml:"DetectAsteroids,omitempty"`
							DetectOwner                 *string  `xml:"DetectOwner,omitempty"`
							DetectFriendly              *string  `xml:"DetectFriendly,omitempty"`
							DetectNeutral               *string  `xml:"DetectNeutral,omitempty"`
							DetectEnemy                 *string  `xml:"DetectEnemy,omitempty"`
							IsLocked                    *string  `xml:"IsLocked,omitempty"`
							BrakeForce                  *string  `xml:"BrakeForce,omitempty"`
							AutoLock                    *string  `xml:"AutoLock,omitempty"`
							FirstLockAttempt            *string  `xml:"FirstLockAttempt,omitempty"`
							LockSound                   *string  `xml:"LockSound,omitempty"`
							UnlockSound                 *string  `xml:"UnlockSound,omitempty"`
							FailedAttachSound           *string  `xml:"FailedAttachSound,omitempty"`
							AttachedEntityId            Header   `xml:"AttachedEntityId,omitempty"`
							MasterToSlave               Header   `xml:"MasterToSlave,omitempty"`
							GearPivotPosition           Header   `xml:"GearPivotPosition,omitempty"`
							OtherPivot                  Header   `xml:"OtherPivot,omitempty"`
							LockMode                    *string  `xml:"LockMode,omitempty"`
							Velocity                    *string  `xml:"Velocity,omitempty"`
							MaxLimit                    *string  `xml:"MaxLimit,omitempty"`
							MinLimit                    *string  `xml:"MinLimit,omitempty"`
							Reverse                     *string  `xml:"Reverse,omitempty"`
							CurrentPosition             *string  `xml:"CurrentPosition,omitempty"`
							MaxImpulseAxis              *string  `xml:"MaxImpulseAxis,omitempty"`
							MaxImpulseNonAxis           *string  `xml:"MaxImpulseNonAxis,omitempty"`
							TargetVelocity              *string  `xml:"TargetVelocity,omitempty"`
							MinAngle                    Header   `xml:"MinAngle,omitempty"`
							MaxAngle                    Header   `xml:"MaxAngle,omitempty"`
							CurrentAngle                *string  `xml:"CurrentAngle,omitempty"`
							LimitsActive                *string  `xml:"LimitsActive,omitempty"`
							RotorLock                   *string  `xml:"RotorLock,omitempty"`
							Torque                      *string  `xml:"Torque,omitempty"`
							BrakingTorque               *string  `xml:"BrakingTorque,omitempty"`
							ParentEntityId              *string  `xml:"ParentEntityId,omitempty"`
							Description                 *string  `xml:"Description,omitempty"`
							Title                       *string  `xml:"Title,omitempty"`
							AccessFlag                  *string  `xml:"AccessFlag,omitempty"`
							ChangeInterval              *string  `xml:"ChangeInterval,omitempty"`
							Font                        struct {
								Text    *string `xml:",chardata"`
								Type    *string `xml:"Type,attr,omitempty"`
								Subtype *string `xml:"Subtype,attr,omitempty"`
							} `xml:"Font,omitempty"`
							FontSize              *string `xml:"FontSize,omitempty"`
							PublicDescription     *string `xml:"PublicDescription,omitempty"`
							PublicTitle           *string `xml:"PublicTitle,omitempty"`
							ShowText              *string `xml:"ShowText,omitempty"`
							FontColor             Header  `xml:"FontColor,omitempty"`
							BackgroundColor       Header  `xml:"BackgroundColor,omitempty"`
							CurrentShownTexture   *string `xml:"CurrentShownTexture,omitempty"`
							TextPadding           *string `xml:"TextPadding,omitempty"`
							Version               *string `xml:"Version,omitempty"`
							ScriptBackgroundColor Header  `xml:"ScriptBackgroundColor,omitempty"`
							ScriptForegroundColor Header  `xml:"ScriptForegroundColor,omitempty"`
							Sprites               struct {
								Text   *string `xml:",chardata"`
								Length *string `xml:"Length,omitempty"`
							} `xml:"Sprites,omitempty"`
							SelectedRotationIndex Header   `xml:"SelectedRotationIndex,omitempty"`
							StoredPower           *string  `xml:"StoredPower,omitempty"`
							JumpTarget            Header   `xml:"JumpTarget,omitempty"`
							JumpRatio             *string  `xml:"JumpRatio,omitempty"`
							Recharging            *string  `xml:"Recharging,omitempty"`
							SelectedBeaconName    *string  `xml:"SelectedBeaconName,omitempty"`
							SelectedBeaconId      *string  `xml:"SelectedBeaconId,omitempty"`
							FieldSize             *Vector3 `xml:"FieldSize,omitempty"`
							VirtualMass           *string  `xml:"VirtualMass,omitempty"`
							Restitution           *string  `xml:"Restitution,omitempty"`
							EnableBroadcast       *string  `xml:"EnableBroadcast,omitempty"`
							SafeZoneId            *string  `xml:"SafeZoneId,omitempty"`
							PlayerItems           *string  `xml:"PlayerItems,omitempty"`
							RestorationDelay      *string  `xml:"RestorationDelay,omitempty"`
							EnableRestoration     *string  `xml:"EnableRestoration,omitempty"`
							IsDestroyed           *string  `xml:"IsDestroyed,omitempty"`
							TimeToRestore         *string  `xml:"TimeToRestore,omitempty"`
						} `xml:"MyObjectBuilder_CubeBlock,omitempty"`
					} `xml:"CubeBlocks,omitempty"`
					IsStatic      *string `xml:"IsStatic,omitempty"`
					ConveyorLines struct {
						Text                        *string `xml:",chardata"`
						MyObjectBuilderConveyorLine []struct {
							Text           *string  `xml:",chardata"`
							StartPosition  *Vector3 `xml:"StartPosition,omitempty"`
							StartDirection *string  `xml:"StartDirection,omitempty"`
							EndPosition    *Vector3 `xml:"EndPosition,omitempty"`
							EndDirection   *string  `xml:"EndDirection,omitempty"`
							Sections       struct {
								Text    *string `xml:",chardata"`
								Section []struct {
									Text      *string `xml:",chardata"`
									Direction *string `xml:"Direction,attr,omitempty"`
									Length    *string `xml:"Length,attr,omitempty"`
								} `xml:"Section,omitempty"`
							} `xml:"Sections,omitempty"`
							ConveyorLineType *string `xml:"ConveyorLineType,omitempty"`
						} `xml:"MyObjectBuilder_ConveyorLine,omitempty"`
					} `xml:"ConveyorLines,omitempty"`
					DisplayName                   *string `xml:"DisplayName,omitempty"`
					DestructibleBlocks            *string `xml:"DestructibleBlocks,omitempty"`
					CreatePhysics                 *string `xml:"CreatePhysics,omitempty"`
					EnableSmallToLargeConnections *string `xml:"EnableSmallToLargeConnections,omitempty"`
					IsRespawnGrid                 *string `xml:"IsRespawnGrid,omitempty"`
					LocalCoordSys                 *string `xml:"LocalCoordSys,omitempty"`
					TargetingTargets              *string `xml:"TargetingTargets,omitempty"`
					NPCGridClaimElapsed           Header  `xml:"NPCGridClaimElapsed,omitempty"`
				} `xml:"CubeGrid,omitempty"`
			} `xml:"CubeGrids,omitempty"`
			EnvironmentType *string      `xml:"EnvironmentType,omitempty"`
			WorkshopId      *string      `xml:"WorkshopId,omitempty"`
			WorkshopIds     []WorkshopId `xml:"WorkshopIds,omitempty"`
			OwnerSteamId    *string      `xml:"OwnerSteamId,omitempty"`
			Points          *string      `xml:"Points,omitempty"`
		} `xml:"ShipBlueprint,omitempty"`
	} `xml:"ShipBlueprints,omitempty"`
}

Definitions was generated 2024-10-23 17:07:01 by https://xml-to-go.github.io/ in Ukraine.

type MetadataMod

type MetadataMod struct {
	XMLName      xml.Name     `xml:"MyObjectBuilder_ModInfo"` // The XML name of the root element.
	SteamIDOwner string       `xml:"SteamIDOwner"`            // The Steam ID of the mod's owner.
	WorkshopId   string       `xml:"WorkshopId"`              // The primary Workshop ID for the mod.
	WorkshopIds  []WorkshopId `xml:"WorkshopIds>WorkshopId"`  // A list of additional Workshop IDs, handling nested WorkshopId entries correctly.
}

MetadataMod represents the structure of the modinfo.sbmi file. It contains details about a mod, including the owner and associated Workshop IDs.

type PositionAndOrientation

type PositionAndOrientation struct {
	Header               // Embeds Header for XML metadata.
	Position    *Vector3 `xml:"Position,omitempty"`    // The position in 3D space.
	Forward     *Vector3 `xml:"Forward,omitempty"`     // The forward direction vector.
	Up          *Vector3 `xml:"Up,omitempty"`          // The up direction vector.
	Orientation *Vector4 `xml:"Orientation,omitempty"` // The orientation in 4D space (quaternion).
}

PositionAndOrientation represents an object's position and orientation in 3D space.

type Slot

type Slot struct {
	Header         // Embeds Header for XML metadata.
	Index  *string `xml:"Index,omitempty"` // The index of the slot.
	Item   *string `xml:"Item,omitempty"`  // The item contained in the slot.
	Data   struct {
		Text          *string `xml:",chardata"`               // Text data associated with the slot.
		Type          *string `xml:"type,attr,omitempty"`     // Type of the slot (e.g., item type).
		Action        *string `xml:"Action,omitempty"`        // Action associated with the slot.
		BlockEntityId *string `xml:"BlockEntityId,omitempty"` // ID of the block entity, if applicable.
	} `xml:"Data,omitempty"` // Additional data associated with the slot.
}

Slot represents an inventory slot, containing an item and metadata.

type Vector2

type Vector2 struct {
	Header          // Embeds the Header struct for metadata.
	X      *float64 `xml:"x,attr,omitempty"` // X coordinate.
	Y      *float64 `xml:"y,attr,omitempty"` // Y coordinate.
}

Vector2 represents a 2D vector with X and Y coordinates.

type Vector3

type Vector3 struct {
	Vector2          // Embeds Vector2 for X and Y coordinates.
	Z       *float64 `xml:"z,attr,omitempty"` // Z coordinate.
}

Vector3 represents a 3D vector, extending Vector2 with a Z coordinate.

type Vector4

type Vector4 struct {
	Vector3          // Embeds Vector3 for X, Y, and Z coordinates.
	W       *float64 `xml:"w,attr,omitempty"` // W coordinate.
}

Vector4 represents a 4D vector, extending Vector3 with a W coordinate.

type WorkshopId

type WorkshopId struct {
	Id          int64   `xml:"Id,omitempty"`          // The ID of the workshop item.
	ServiceName *string `xml:"ServiceName,omitempty"` // The name of the service (e.g., Steam).
}

WorkshopId represents a single WorkshopId with an ID and service name.

type WorkshopIds

type WorkshopIds struct {
	WorkshopId WorkshopId `xml:"WorkshopId,omitempty"` // A single WorkshopId element.
}

WorkshopIds represents a collection of WorkshopId elements.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL