private static List <MyDefinitionId> GetItemDefinitionList(MyObjectBuilder_CubeBlock block) { Func <MyObjectBuilder_CubeBlock, List <MyDefinitionId> > getItemDefFunc; Definitions.RestockDefinitions.TryGetValue(block.GetType(), out getItemDefFunc); return(getItemDefFunc?.Invoke(block)); }
/* Rules: * x and y must be the same, z can be any size up to max of original block * mount points must be on the same side * * MyObjectBuilder_WeaponBlockDefinition * MyObjectBuilder_LargeTurretBaseDefinition */ //public static List<Definitions.WeaponInformation> LargeGridWeaponTurretBases = new List<Definitions.WeaponInformation>(); //public static List<Definitions.WeaponInformation> LargeGridWeaponBlocks = new List<Definitions.WeaponInformation>(); //public static List<Definitions.WeaponInformation> SmallGridWeaponTurretBases = new List<Definitions.WeaponInformation>(); //public static List<Definitions.WeaponInformation> SmallGridWeaponBlocks = new List<Definitions.WeaponInformation>(); internal static void ProcessPrefab(MyPrefabDefinition prefab, Options options) { try { foreach (MyObjectBuilder_CubeGrid gridBuilder in prefab.CubeGrids) { for (int index = 0; index < gridBuilder.CubeBlocks.Count; index++) { MyObjectBuilder_CubeBlock block = gridBuilder.CubeBlocks[index]; Func <MyObjectBuilder_CubeBlock, Options, MyCubeSize, MyObjectBuilder_CubeBlock> func; ProcessWeapons.TryGetValue(block.GetType(), out func); if (func != null) { gridBuilder.CubeBlocks[index] = func.Invoke(block, options, gridBuilder.GridSizeEnum); } } } } catch (Exception e) { Core.GeneralLog.WriteToLog("WeaponSwapper-ProcessPrefab", $"Exception!\t{e}"); } }