def _Build_Engine_Objects(): ''' Returns a list of Edit_Objects for 'assets/props/Engines'. Meant for calling from the Live_Editor. ''' File_System.Load_Files('*assets/props/Engines/*.xml') game_files = File_System.Get_Asset_Files_By_Class('macros', 'engine') return Create_Objects_From_Asset_Files(game_files, engine_item_macros)
def _Build_Storage_Objects(): # These are a bit scattered, some in the units folder and # some in storagemodules. Use a name pattern match for this. File_System.Get_All_Indexed_Files('macros', 'storage_*') #File_System.Load_Files('*assets/props/StorageModules/*.xml') # Followup with class check for safety. game_files = File_System.Get_Asset_Files_By_Class('macros', 'storage') return Create_Objects_From_Asset_Files(game_files, storage_item_macros)
def _Build_Weapon_Objects(): ''' Returns a list of Edit_Objects for all found weapons. Meant for calling from the Live_Editor. ''' # Make sure the bullets are created, so they can be referenced. Live_Editor.Get_Category_Objects('bullets') game_files = File_System.Get_Asset_Files_By_Class('macros', 'weapon', 'missilelauncher', 'turret', 'missileturret', 'bomblauncher') return Create_Objects_From_Asset_Files(game_files, weapon_item_macros)
def _Build_Bullet_Objects(): ''' Returns a list of Edit_Objects for all found bullets. Meant for calling from the Live_Editor. ''' # Make sure engines are loaded for the missiles. Live_Editor.Get_Category_Objects('engines') # Look up bullet files. # These can be in two locations. File_System.Load_Files('*assets/props/WeaponSystems/*.xml') File_System.Load_Files('*assets/fx/weaponFx/*.xml') # Split out proper bullets from missiles and similar. bullet_game_files = File_System.Get_Asset_Files_By_Class( 'macros', 'bullet') missile_game_files = File_System.Get_Asset_Files_By_Class( 'macros', 'missile', 'bomb', 'mine', 'countermeasure') objects = [] objects += Create_Objects_From_Asset_Files(bullet_game_files, bullet_item_macros) objects += Create_Objects_From_Asset_Files(missile_game_files, missile_item_macros) return objects
def Get_Ship_Macro_Files(): ''' Finds and returns all ship macro game files. ''' # Note: normally ship macros start with "ship_". # However, this doesn't find the XR shippack, since they all start # with "units_" instead; also over-includes on XR shippack since it calls # some docking bay macros "ship_storage_". File_System.Get_All_Indexed_Files('macros', 'ship_*') File_System.Get_All_Indexed_Files('macros', 'units_*') # Search out loaded assets, which already have checked the # class tags. Do this for each ship class. ret_list = [] for suffix in ['xs', 's', 'm', 'l', 'xl']: ret_list += File_System.Get_Asset_Files_By_Class( 'macros', f'ship_{suffix}') return ret_list
def _Build_DockingBay_Objects(): File_System.Load_Files('*assets/props/SurfaceElements/*.xml') game_files = File_System.Get_Asset_Files_By_Class('macros', 'dockingbay') return Create_Objects_From_Asset_Files(game_files, dockingbay_item_macros)
def _Build_Scanner_Objects(): File_System.Load_Files('*assets/props/SurfaceElements/*.xml') game_files = File_System.Get_Asset_Files_By_Class('macros', 'scanner') return Create_Objects_From_Asset_Files(game_files, scanner_item_macros)