Decompiled source of RealisticDensity v0.14.1
RealisticDensity.dll
Decompiled 9 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using System.Threading.Tasks; using BepInEx; using Colossal.Logging; using Colossal.Serialization.Entities; using FindStuff.Configuration; using Game; using Game.Common; using Game.Companies; using Game.Economy; using Game.Modding; using Game.Prefabs; using Game.SceneFlow; using Game.Simulation; using Game.Tools; using Game.UI; using Gooee.Plugins; using Gooee.Plugins.Attributes; using HarmonyLib; using Microsoft.CodeAnalysis; using Newtonsoft.Json; using RealisticDensity.Common; using RealisticDensity.Configuration; using RealisticDensity.Helper; using RealisticDensity.Jobs; using RealisticDensity.Prefabs; using RealisticDensity.Settings; using RealisticDensity.Systems; using RealisticDensity.UI; using Unity.Burst.Intrinsics; using Unity.Collections; using Unity.Entities; using Unity.Mathematics; using UnityEngine; using UnityEngine.Scripting; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("RealisticDensity")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("0.14.1")] [assembly: AssemblyInformationalVersion("0.14.1+fb16a9cfe69817cc465ffb53f7e1cedf05138dde")] [assembly: AssemblyProduct("RealisticDensity")] [assembly: AssemblyTitle("RealisticDensity")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.14.1.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace FindStuff.UI { [ControllerTypes(new Type[] { typeof(RealisticDensityController) })] public class RealisticDensityPlugin : IGooeePluginWithControllers, IGooeePlugin { public string Name => "RealisticDensity"; public string Version => "0.14.1"; public string ScriptResource => "RealisticDensity.Resources.ui.js"; public IController[] Controllers { get; set; } } } namespace FindStuff.Configuration { public class RealisticDensityConfig : ConfigBase { protected override string ConfigFileName => "config.json"; public bool IsEnabled { get; set; } } } namespace RealisticDensity { public class Mod : IMod { public const string Name = "RealisticDensity"; public const string Version = "0.14.1"; public static Mod Instance { get; set; } internal ILog Log { get; private set; } public void OnLoad() { Instance = this; Log = LogManager.GetLogger("RealisticDensity"); Log.Info((object)"Loading."); } public void OnDispose() { Log.Info((object)"Mod disposed."); Instance = null; } public static void DebugLog(string message) { Debug.Log((object)("[RealisticDensity | v0.14.1] " + message)); } public void OnCreateWorld(UpdateSystem updateSystem) { } public void OnLoad(UpdateSystem updateSystem) { throw new NotImplementedException(); } } [BepInPlugin("RealisticDensity", "RealisticDensity", "0.14.1")] public class Plugin : BaseUnityPlugin { private Mod Mod; private void Awake() { Mod = new Mod(); Mod.OnLoad(); Mod.Log.Info((object)"Loading Harmony patches."); MethodBase[] array = Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "RealisticDensity_Cities2Harmony").GetPatchedMethods().ToArray(); Mod.Log.Info((object)("Plugin RealisticDensity is loaded! Patched methods " + array.Length)); MethodBase[] array2 = array; foreach (MethodBase methodBase in array2) { Mod.Log.Info((object)("Patched method: " + methodBase.Module.Name + ":" + methodBase.Name)); } } } public static class MyPluginInfo { public const string PLUGIN_GUID = "RealisticDensity"; public const string PLUGIN_NAME = "RealisticDensity"; public const string PLUGIN_VERSION = "0.14.1"; } } namespace RealisticDensity.UI { public class RealisticDensityController : Controller<RealisticDensityViewModel> { public static readonly RealisticDensityConfig _config = ConfigBase.Load<RealisticDensityConfig>(); public override RealisticDensityViewModel Configure() { return new RealisticDensityViewModel { IsVisible = false, IsEnabled = false }; } protected override void OnDestroy() { ((UISystemBase)this).OnDestroy(); } protected override void OnModelUpdated() { } [OnTrigger] private void OnToggleVisible() { base.Model.IsVisible = !base.Model.IsVisible; base.TriggerUpdate(); } [OnTrigger] private void OpenURL(string url) { if (string.IsNullOrEmpty(url)) { return; } try { Process.Start(url); } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } } public class RealisticDensityViewModel : Model { public bool IsVisible { get; set; } public bool IsEnabled { get; set; } public float CommercialFactor { get; set; } = WorkforceFactors.Commercial.Medium; } } namespace RealisticDensity.Systems { public class RealisticDensitySystem : GameSystemBase { public static readonly int kComponentVersion = 1; public static readonly int kProductionFactor = 3; private ModificationEndBarrier Barrier; public LocalSettings m_LocalSettings; public static RealisticDensitySettings Settings; public bool m_LocalSettingsLoaded; private UpdateCommercialBuildingsTypeHandle m_UpdateCommercialBuildingsTypeHandle; private EntityQuery m_UpdateCommercialBuildingsQuery; private UpdateIndustryBuildingsTypeHandle m_UpdateIndustryBuildingsTypeHandle; private EntityQuery m_UpdateIndustryBuildingsQuery; private UpdateCityServicesTypeHandle m_UpdateCityServicesJobTypeHandle; private EntityQuery m_UpdateCityServicesJobQuery; private UpdateHighOfficesTypeHandle m_UpdateHighOfficesJobTypeHandle; private EntityQuery m_UpdateHighOfficesJobQuery; private EntityQuery m_EconomyParameterQuery; private ResourcePrefabs m_ResourcePrefabs; [Preserve] protected override void OnCreate() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) ((GameSystemBase)this).OnCreate(); LoadSettings(); Settings = m_LocalSettings.Settings; Barrier = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<ModificationEndBarrier>(); m_ResourcePrefabs = ((ComponentSystemBase)this).World.GetOrCreateSystemManaged<ResourceSystem>().GetPrefabs(); m_UpdateCityServicesJobQuery = ((ComponentSystemBase)this).GetEntityQuery(new UpdateCityServicesQuery().Query); m_UpdateCommercialBuildingsQuery = ((ComponentSystemBase)this).GetEntityQuery(new UpdateCommercialBuildingsQuery().Query); m_UpdateIndustryBuildingsQuery = ((ComponentSystemBase)this).GetEntityQuery(new UpdateIndustryBuildingsQuery().Query); m_UpdateHighOfficesJobQuery = ((ComponentSystemBase)this).GetEntityQuery(new UpdateHighOfficesQuery().Query); m_EconomyParameterQuery = ((ComponentSystemBase)this).GetEntityQuery((ComponentType[])(object)new ComponentType[1] { ComponentType.ReadOnly<EconomyParameterData>() }); ((ComponentSystemBase)this).RequireAnyForUpdate((EntityQuery[])(object)new EntityQuery[5] { m_UpdateCommercialBuildingsQuery, m_UpdateIndustryBuildingsQuery, m_UpdateCityServicesJobQuery, m_UpdateHighOfficesJobQuery, m_EconomyParameterQuery }); Mod.DebugLog("System created."); } protected override void OnGameLoadingComplete(Purpose purpose, GameMode mode) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Invalid comparison between Unknown and I4 ((GameSystemBase)this).OnGameLoadingComplete(purpose, mode); ((ComponentSystemBase)this).Enabled = false; if ((int)mode == 2) { ((ComponentSystemBase)this).Enabled = true; } } [Preserve] protected override void OnUpdate() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) if (!Settings.DisableMod && !((Object)(object)GameManager.instance == (Object)null) && GameModeExtensions.IsGameOrEditor(GameManager.instance.gameMode)) { if (m_LocalSettings.Settings.CityServicesEnabled && !((EntityQuery)(ref m_UpdateCityServicesJobQuery)).IsEmptyIgnoreFilter) { UpdateCityBuildings(); } if (m_LocalSettings.Settings.SpawnablesEnabled && m_LocalSettings.Settings.CommercialsEnabled && !((EntityQuery)(ref m_UpdateCommercialBuildingsQuery)).IsEmptyIgnoreFilter) { UpdateCommercialBuildings(); } if (m_LocalSettings.Settings.SpawnablesEnabled && m_LocalSettings.Settings.IndustriesEnabled && !((EntityQuery)(ref m_UpdateIndustryBuildingsQuery)).IsEmptyIgnoreFilter) { UpdateIndustryBuildings(); } if (m_LocalSettings.Settings.OfficesEnabled && !((EntityQuery)(ref m_UpdateHighOfficesJobQuery)).IsEmptyIgnoreFilter) { UpdateHighOffices(); } } } protected override void OnDestroy() { ((GameSystemBase)this).OnDestroy(); Debug.Log((object)"[RealisticDensity] System destroyed."); } private void UpdateCityBuildings() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) Mod.DebugLog("Run UpdateCityServicesJob"); m_UpdateCityServicesJobTypeHandle.AssignHandles(ref ((SystemBase)this).CheckedStateRef); UpdateCityServicesJob updateCityServicesJob = default(UpdateCityServicesJob); EntityCommandBuffer val = ((SafeCommandBufferSystem)Barrier).CreateCommandBuffer(); updateCityServicesJob.Ecb = ((EntityCommandBuffer)(ref val)).AsParallelWriter(); updateCityServicesJob.EntityTypeHandle = m_UpdateCityServicesJobTypeHandle.EntityTypeHandle; updateCityServicesJob.BuildingDataLookup = m_UpdateCityServicesJobTypeHandle.BuildingDataLookup; updateCityServicesJob.WorkplaceDataLookup = m_UpdateCityServicesJobTypeHandle.WorkplaceDataLookup; updateCityServicesJob.PowerPlantDataLookup = m_UpdateCityServicesJobTypeHandle.PowerPlantDataLookup; updateCityServicesJob.SchoolDataLookup = m_UpdateCityServicesJobTypeHandle.SchoolDataLookup; updateCityServicesJob.HospitalDataLookup = m_UpdateCityServicesJobTypeHandle.HospitalDataLookup; updateCityServicesJob.PoliceStationDataLookup = m_UpdateCityServicesJobTypeHandle.PoliceStationDataLookup; updateCityServicesJob.PrisonDataLookup = m_UpdateCityServicesJobTypeHandle.PrisonDataLookup; updateCityServicesJob.FireStationDataLookup = m_UpdateCityServicesJobTypeHandle.FireStationDataLookup; updateCityServicesJob.CargoTransportStationDataLookup = m_UpdateCityServicesJobTypeHandle.CargoTransportStationDataLookup; updateCityServicesJob.TransportDepotDataLookup = m_UpdateCityServicesJobTypeHandle.TransportDepotDataLookup; updateCityServicesJob.GarbageFacilityDataLookup = m_UpdateCityServicesJobTypeHandle.GarbageFacilityDataLookup; updateCityServicesJob.DeathcareFacilityDataLookup = m_UpdateCityServicesJobTypeHandle.DeathcareFacilityDataLookup; updateCityServicesJob.PublicTransportStationDataLookup = m_UpdateCityServicesJobTypeHandle.PublicTransportStationDataLookup; updateCityServicesJob.MaintenanceDepotDataLookup = m_UpdateCityServicesJobTypeHandle.MaintenanceDepotDataLookup; updateCityServicesJob.PostFacilityDataLookup = m_UpdateCityServicesJobTypeHandle.PostFacilityDataLookup; updateCityServicesJob.AdminBuildingDataLookup = m_UpdateCityServicesJobTypeHandle.AdminBuildingDataLookup; updateCityServicesJob.WelfareOfficeDataLookup = m_UpdateCityServicesJobTypeHandle.WelfareOfficeDataLookup; updateCityServicesJob.ResearchFacilityDataLookup = m_UpdateCityServicesJobTypeHandle.ResearchFacilityDataLookup; updateCityServicesJob.TelecomFacilityDataLookup = m_UpdateCityServicesJobTypeHandle.TelecomFacilityDataLookup; updateCityServicesJob.ParkDataLookup = m_UpdateCityServicesJobTypeHandle.ParkDataLookup; UpdateCityServicesJob updateCityServicesJob2 = updateCityServicesJob; ((SystemBase)this).Dependency = JobChunkExtensions.Schedule<UpdateCityServicesJob>(updateCityServicesJob2, m_UpdateCityServicesJobQuery, ((SystemBase)this).Dependency); ((EntityCommandBufferSystem)Barrier).AddJobHandleForProducer(((SystemBase)this).Dependency); } private void UpdateCommercialBuildings() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) Mod.DebugLog("Run UpdateCommercialBuildingsJob"); BuildingData val = default(BuildingData); val.m_LotSize = new int2(100, 10); BuildingData buildingData = val; SpawnableBuildingData val2 = default(SpawnableBuildingData); val2.m_Level = 1; SpawnableBuildingData spawnableBuildingData = val2; m_UpdateCommercialBuildingsTypeHandle.AssignHandles(ref ((SystemBase)this).CheckedStateRef); UpdateCommercialBuildingsJob updateCommercialBuildingsJob = default(UpdateCommercialBuildingsJob); EntityCommandBuffer val3 = ((SafeCommandBufferSystem)Barrier).CreateCommandBuffer(); updateCommercialBuildingsJob.Ecb = ((EntityCommandBuffer)(ref val3)).AsParallelWriter(); updateCommercialBuildingsJob.EntityHandle = m_UpdateCommercialBuildingsTypeHandle.EntityTypeHandle; updateCommercialBuildingsJob.WorkplaceDataLookup = m_UpdateCommercialBuildingsTypeHandle.WorkplaceDataLookup; updateCommercialBuildingsJob.ServiceCompanyDataLookup = m_UpdateCommercialBuildingsTypeHandle.ServiceCompanyDataLookup; updateCommercialBuildingsJob.IndustrialProcessDataLookup = m_UpdateCommercialBuildingsTypeHandle.IndustrialProcessDataLookup; updateCommercialBuildingsJob.ResourceDataLookup = m_UpdateCommercialBuildingsTypeHandle.ResourceDataLookup; updateCommercialBuildingsJob.EconomyParameterData = ((EntityQuery)(ref m_EconomyParameterQuery)).GetSingleton<EconomyParameterData>(); updateCommercialBuildingsJob.ResourcePrefabs = m_ResourcePrefabs; updateCommercialBuildingsJob.BuildingData = buildingData; updateCommercialBuildingsJob.SpawnableBuildingData = spawnableBuildingData; UpdateCommercialBuildingsJob updateCommercialBuildingsJob2 = updateCommercialBuildingsJob; ((SystemBase)this).Dependency = JobChunkExtensions.Schedule<UpdateCommercialBuildingsJob>(updateCommercialBuildingsJob2, m_UpdateCommercialBuildingsQuery, ((SystemBase)this).Dependency); ((EntityCommandBufferSystem)Barrier).AddJobHandleForProducer(((SystemBase)this).Dependency); } private void UpdateIndustryBuildings() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) Mod.DebugLog("Run UpdateIndustryBuildingsJob"); BuildingData val = default(BuildingData); val.m_LotSize = new int2(100, 10); BuildingData buildingData = val; SpawnableBuildingData val2 = default(SpawnableBuildingData); val2.m_Level = 1; SpawnableBuildingData spawnableBuildingData = val2; m_UpdateIndustryBuildingsTypeHandle.AssignHandles(ref ((SystemBase)this).CheckedStateRef); UpdateIndustryBuildingsJob updateIndustryBuildingsJob = default(UpdateIndustryBuildingsJob); EntityCommandBuffer val3 = ((SafeCommandBufferSystem)Barrier).CreateCommandBuffer(); updateIndustryBuildingsJob.Ecb = ((EntityCommandBuffer)(ref val3)).AsParallelWriter(); updateIndustryBuildingsJob.EntityHandle = m_UpdateIndustryBuildingsTypeHandle.EntityTypeHandle; updateIndustryBuildingsJob.WorkplaceDataLookup = m_UpdateIndustryBuildingsTypeHandle.WorkplaceDataLookup; updateIndustryBuildingsJob.IndustrialProcessDataLookup = m_UpdateIndustryBuildingsTypeHandle.IndustrialProcessDataLookup; updateIndustryBuildingsJob.ExtractorCompanyDataLookup = m_UpdateIndustryBuildingsTypeHandle.ExtractorCompanyDataLookup; updateIndustryBuildingsJob.StorageLimitDataLookup = m_UpdateIndustryBuildingsTypeHandle.StorageLimitDataLookup; updateIndustryBuildingsJob.TransportCompanyDataLookup = m_UpdateIndustryBuildingsTypeHandle.TransportCompanyDataLookup; updateIndustryBuildingsJob.ResourceDataLookup = m_UpdateIndustryBuildingsTypeHandle.ResourceDataLookup; updateIndustryBuildingsJob.EconomyParameterData = ((EntityQuery)(ref m_EconomyParameterQuery)).GetSingleton<EconomyParameterData>(); updateIndustryBuildingsJob.ResourcePrefabs = m_ResourcePrefabs; updateIndustryBuildingsJob.BuildingData = buildingData; updateIndustryBuildingsJob.SpawnableBuildingData = spawnableBuildingData; UpdateIndustryBuildingsJob updateIndustryBuildingsJob2 = updateIndustryBuildingsJob; ((SystemBase)this).Dependency = JobChunkExtensions.Schedule<UpdateIndustryBuildingsJob>(updateIndustryBuildingsJob2, m_UpdateIndustryBuildingsQuery, ((SystemBase)this).Dependency); ((EntityCommandBufferSystem)Barrier).AddJobHandleForProducer(((SystemBase)this).Dependency); } private void UpdateHighOffices() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) Mod.DebugLog("Run UpdateHighOfficesJob"); m_UpdateHighOfficesJobTypeHandle.AssignHandles(ref ((SystemBase)this).CheckedStateRef); UpdateHighOfficesJob updateHighOfficesJob = default(UpdateHighOfficesJob); EntityCommandBuffer val = ((SafeCommandBufferSystem)Barrier).CreateCommandBuffer(); updateHighOfficesJob.Ecb = ((EntityCommandBuffer)(ref val)).AsParallelWriter(); updateHighOfficesJob.EntityHandle = m_UpdateHighOfficesJobTypeHandle.EntityTypeHandle; updateHighOfficesJob.BuildingPropertyDataLookup = m_UpdateHighOfficesJobTypeHandle.BuildingPropertyDataLookup; UpdateHighOfficesJob updateHighOfficesJob2 = updateHighOfficesJob; ((SystemBase)this).Dependency = JobChunkExtensions.Schedule<UpdateHighOfficesJob>(updateHighOfficesJob2, m_UpdateHighOfficesJobQuery, ((SystemBase)this).Dependency); ((EntityCommandBufferSystem)Barrier).AddJobHandleForProducer(((SystemBase)this).Dependency); } private void LoadSettings() { try { m_LocalSettings = new LocalSettings(); m_LocalSettings.Init(); m_LocalSettingsLoaded = true; } catch (Exception ex) { Debug.Log((object)("[RealisticDensity] Error loading settings: " + ex.Message)); } } } public static class WorkforceFactors { public static Factor4 Commercial = new Factor4(1f, 1.5f, 2f, 3f); public static Factor4 Office = new Factor4(1f, 1.7f, 2.2f, 3f); public static Factor4 IndustryExtractor = new Factor4(1f, 1.5f, 2f, 3f); public static Factor4 IndustrySelling = new Factor4(1f, 1.4f, 2f, 3f); public static Factor4 IndustryProcessing = new Factor4(1f, 1.5f, 2f, 3f); public static Factor4 PowerPlant = new Factor4(1f, 4f, 8f, 10f); public static Factor4 School = new Factor4(1f, 3f, 5f, 7f); public static Factor4 Hospital = new Factor4(1f, 2f, 4f, 6f); public static Factor4 PoliceStation = new Factor4(1f, 1.5f, 2f, 4f); public static Factor4 Prison = new Factor4(1f, 2f, 3f, 4f); public static Factor4 FireStation = new Factor4(1f, 1.5f, 2f, 4f); public static Factor4 CargoTransportStation = new Factor4(1f, 2f, 3f, 4f); public static Factor4 TransportDepot = new Factor4(1f, 2f, 3f, 4f); public static Factor4 MaintenanceDepot = new Factor4(1f, 2f, 3f, 4f); public static Factor4 GarbageFacility = new Factor4(1f, 2f, 3f, 4f); public static Factor4 DeathcareFacility = new Factor4(1f, 1.5f, 2f, 3f); public static Factor4 PublicTransportStation = new Factor4(1f, 2f, 3f, 4f); public static Factor4 PostFacility = new Factor4(1f, 2f, 3f, 4f); public static Factor4 AdminBuilding = new Factor4(1f, 2f, 3f, 4f); public static Factor4 WelfareOffice = new Factor4(1f, 2f, 3f, 4f); public static Factor4 ResearchFacility = new Factor4(1f, 2f, 3f, 4f); public static Factor4 TelecomFacility = new Factor4(1f, 1.5f, 2f, 3f); public static Factor4 ParkData = new Factor4(1f, 1.5f, 2f, 3f); } } namespace RealisticDensity.Settings { public class LocalSettings { private RealisticDensitySettings m_Settings; public RealisticDensitySettings Settings => m_Settings; public void Init() { Load(); } public void Reload() { Load(); } public async Task Save() { string? directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string path = "UserSettings.json"; string path2 = Path.Combine(directoryName, path); try { string value = JsonConvert.SerializeObject((object)m_Settings); using StreamWriter writer = new StreamWriter(path2, append: false, Encoding.UTF8); await writer.WriteAsync(value); } catch (Exception ex) { Debug.Log((object)("Error saving settings: " + ex.Message)); } } private void Load() { string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string path = "UserSettings.json"; string text = Path.Combine(directoryName, path); if (!File.Exists(text)) { Debug.Log((object)"No user settings found. Use default settings."); text = Path.Combine(directoryName, "DefaultSettings.json"); if (!File.Exists(text)) { Debug.Log((object)("Error loading settings: " + text + " does not exist.")); return; } } else { Debug.Log((object)"User settings successfully loaded."); } try { RealisticDensitySettings realisticDensitySettings = JsonConvert.DeserializeObject<RealisticDensitySettings>(File.ReadAllText(text)); if (realisticDensitySettings != null) { m_Settings = realisticDensitySettings; } } catch (Exception ex) { Debug.Log((object)("Error loading settings: " + ex.Message)); } } } public class RealisticDensitySettings { public string Version { get; } = "0.14.1"; public bool DisableMod { get; set; } public bool SpawnablesEnabled { get; set; } = true; public bool CommercialsEnabled { get; set; } = true; public float CommercialsFactor { get; set; } = WorkforceFactors.Commercial.Medium; public bool OfficesEnabled { get; set; } = true; public float OfficesFactor { get; set; } = WorkforceFactors.Office.Medium; public bool IndustriesEnabled { get; set; } = true; public float IndustryExtractorFactor { get; set; } = WorkforceFactors.IndustryExtractor.Medium; public float IndustryProcessingFactor { get; set; } = WorkforceFactors.IndustryProcessing.Medium; public float IndustrySellingFactor { get; set; } = WorkforceFactors.IndustrySelling.Medium; public bool IndustryIncreaseStorageCapacity { get; set; } public bool IndustryIncreaseMaxTransports { get; set; } = true; public bool CityServicesEnabled { get; set; } = true; } } namespace RealisticDensity.Prefabs { public struct DefaultData : IComponentData, IQueryTypeParameter, ISerializable { public int version; public int workplaceData_MaxWorkers; public float industrialProcessData_MaxWorkersPerCell; public int industrialProcessData_WorkPerUnit; public int industrialProcessData_Output_Amount; public float buildingPropertyData_SpaceMultiplier; public int storageLimitData_limit; public int transportCompanyData_MaxTransports; public float serviceCompanyData_MaxWorkersPerCell; public int serviceCompanyData_WorkPerUnit; public DefaultData() { workplaceData_MaxWorkers = 0; industrialProcessData_MaxWorkersPerCell = 0f; industrialProcessData_WorkPerUnit = 0; industrialProcessData_Output_Amount = 0; buildingPropertyData_SpaceMultiplier = 0f; storageLimitData_limit = 0; transportCompanyData_MaxTransports = 0; serviceCompanyData_MaxWorkersPerCell = 0f; serviceCompanyData_WorkPerUnit = 0; version = RealisticDensitySystem.kComponentVersion; } public void Serialize<TWriter>(TWriter writer) where TWriter : IWriter { ((IWriter)writer).Write(version); ((IWriter)writer).Write(workplaceData_MaxWorkers); ((IWriter)writer).Write(industrialProcessData_MaxWorkersPerCell); ((IWriter)writer).Write(industrialProcessData_WorkPerUnit); ((IWriter)writer).Write(industrialProcessData_Output_Amount); ((IWriter)writer).Write(buildingPropertyData_SpaceMultiplier); ((IWriter)writer).Write(storageLimitData_limit); ((IWriter)writer).Write(transportCompanyData_MaxTransports); ((IWriter)writer).Write(serviceCompanyData_MaxWorkersPerCell); ((IWriter)writer).Write(serviceCompanyData_WorkPerUnit); } public void Deserialize<TReader>(TReader reader) where TReader : IReader { ((IReader)reader).Read(ref version); ((IReader)reader).Read(ref workplaceData_MaxWorkers); ((IReader)reader).Read(ref industrialProcessData_MaxWorkersPerCell); ((IReader)reader).Read(ref industrialProcessData_WorkPerUnit); ((IReader)reader).Read(ref industrialProcessData_Output_Amount); ((IReader)reader).Read(ref buildingPropertyData_SpaceMultiplier); ((IReader)reader).Read(ref storageLimitData_limit); ((IReader)reader).Read(ref transportCompanyData_MaxTransports); ((IReader)reader).Read(ref serviceCompanyData_MaxWorkersPerCell); ((IReader)reader).Read(ref serviceCompanyData_WorkPerUnit); } } } namespace RealisticDensity.Patches { [HarmonyPatch(typeof(SystemOrder))] internal class SystemOrderPatches { [HarmonyPostfix] [HarmonyPatch(typeof(SystemOrder), "Initialize")] public static void GetSystemOrder(UpdateSystem updateSystem) { if (updateSystem != null) { updateSystem.UpdateAt<RealisticDensitySystem>((SystemUpdatePhase)9); } } } } namespace RealisticDensity.Jobs { public struct UpdateCityServicesQuery { public EntityQueryDesc[] Query; public UpdateCityServicesQuery() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Expected O, but got Unknown //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) EntityQueryDesc[] array = new EntityQueryDesc[1]; EntityQueryDesc val = new EntityQueryDesc(); val.All = (ComponentType[])(object)new ComponentType[3] { ComponentType.ReadOnly<WorkplaceData>(), ComponentType.ReadOnly<BuildingData>(), ComponentType.ReadOnly<ServiceObjectData>() }; val.Any = (ComponentType[])(object)new ComponentType[18] { ComponentType.ReadOnly<PowerPlantData>(), ComponentType.ReadOnly<SchoolData>(), ComponentType.ReadOnly<HospitalData>(), ComponentType.ReadOnly<PoliceStationData>(), ComponentType.ReadOnly<PrisonData>(), ComponentType.ReadOnly<FireStationData>(), ComponentType.ReadOnly<CargoTransportStationData>(), ComponentType.ReadOnly<TransportDepotData>(), ComponentType.ReadOnly<GarbageFacilityData>(), ComponentType.ReadOnly<DeathcareFacilityData>(), ComponentType.ReadOnly<PublicTransportStationData>(), ComponentType.ReadOnly<MaintenanceDepotData>(), ComponentType.ReadOnly<PostFacilityData>(), ComponentType.ReadOnly<AdminBuildingData>(), ComponentType.ReadOnly<WelfareOfficeData>(), ComponentType.ReadOnly<ResearchFacilityData>(), ComponentType.ReadOnly<TelecomFacilityData>(), ComponentType.ReadOnly<ParkData>() }; val.None = (ComponentType[])(object)new ComponentType[3] { ComponentType.Exclude<DefaultData>(), ComponentType.Exclude<Deleted>(), ComponentType.Exclude<Temp>() }; array[0] = val; Query = (EntityQueryDesc[])(object)array; } } public struct UpdateCityServicesTypeHandle { [ReadOnly] public EntityTypeHandle EntityTypeHandle; public ComponentLookup<BuildingData> BuildingDataLookup; public ComponentLookup<WorkplaceData> WorkplaceDataLookup; public ComponentLookup<PowerPlantData> PowerPlantDataLookup; public ComponentLookup<SchoolData> SchoolDataLookup; public ComponentLookup<HospitalData> HospitalDataLookup; public ComponentLookup<PoliceStationData> PoliceStationDataLookup; public ComponentLookup<PrisonData> PrisonDataLookup; public ComponentLookup<FireStationData> FireStationDataLookup; public ComponentLookup<CargoTransportStationData> CargoTransportStationDataLookup; public ComponentLookup<TransportDepotData> TransportDepotDataLookup; public ComponentLookup<GarbageFacilityData> GarbageFacilityDataLookup; public ComponentLookup<DeathcareFacilityData> DeathcareFacilityDataLookup; public ComponentLookup<PublicTransportStationData> PublicTransportStationDataLookup; public ComponentLookup<MaintenanceDepotData> MaintenanceDepotDataLookup; public ComponentLookup<PostFacilityData> PostFacilityDataLookup; public ComponentLookup<AdminBuildingData> AdminBuildingDataLookup; public ComponentLookup<WelfareOfficeData> WelfareOfficeDataLookup; public ComponentLookup<ResearchFacilityData> ResearchFacilityDataLookup; public ComponentLookup<TelecomFacilityData> TelecomFacilityDataLookup; public ComponentLookup<ParkData> ParkDataLookup; [MethodImpl(MethodImplOptions.AggressiveInlining)] public void AssignHandles(ref SystemState state) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) EntityTypeHandle = ((SystemState)(ref state)).GetEntityTypeHandle(); BuildingDataLookup = ((SystemState)(ref state)).GetComponentLookup<BuildingData>(false); WorkplaceDataLookup = ((SystemState)(ref state)).GetComponentLookup<WorkplaceData>(false); PowerPlantDataLookup = ((SystemState)(ref state)).GetComponentLookup<PowerPlantData>(false); SchoolDataLookup = ((SystemState)(ref state)).GetComponentLookup<SchoolData>(false); HospitalDataLookup = ((SystemState)(ref state)).GetComponentLookup<HospitalData>(false); PoliceStationDataLookup = ((SystemState)(ref state)).GetComponentLookup<PoliceStationData>(false); PrisonDataLookup = ((SystemState)(ref state)).GetComponentLookup<PrisonData>(false); FireStationDataLookup = ((SystemState)(ref state)).GetComponentLookup<FireStationData>(false); CargoTransportStationDataLookup = ((SystemState)(ref state)).GetComponentLookup<CargoTransportStationData>(false); TransportDepotDataLookup = ((SystemState)(ref state)).GetComponentLookup<TransportDepotData>(false); GarbageFacilityDataLookup = ((SystemState)(ref state)).GetComponentLookup<GarbageFacilityData>(false); DeathcareFacilityDataLookup = ((SystemState)(ref state)).GetComponentLookup<DeathcareFacilityData>(false); PublicTransportStationDataLookup = ((SystemState)(ref state)).GetComponentLookup<PublicTransportStationData>(false); MaintenanceDepotDataLookup = ((SystemState)(ref state)).GetComponentLookup<MaintenanceDepotData>(false); PostFacilityDataLookup = ((SystemState)(ref state)).GetComponentLookup<PostFacilityData>(false); AdminBuildingDataLookup = ((SystemState)(ref state)).GetComponentLookup<AdminBuildingData>(false); WelfareOfficeDataLookup = ((SystemState)(ref state)).GetComponentLookup<WelfareOfficeData>(false); ResearchFacilityDataLookup = ((SystemState)(ref state)).GetComponentLookup<ResearchFacilityData>(false); TelecomFacilityDataLookup = ((SystemState)(ref state)).GetComponentLookup<TelecomFacilityData>(false); ParkDataLookup = ((SystemState)(ref state)).GetComponentLookup<ParkData>(false); } } public struct UpdateCityServicesJob : IJobChunk { public ParallelWriter Ecb; public EntityTypeHandle EntityTypeHandle; public ComponentLookup<BuildingData> BuildingDataLookup; public ComponentLookup<WorkplaceData> WorkplaceDataLookup; public ComponentLookup<PowerPlantData> PowerPlantDataLookup; public ComponentLookup<SchoolData> SchoolDataLookup; public ComponentLookup<HospitalData> HospitalDataLookup; public ComponentLookup<PoliceStationData> PoliceStationDataLookup; public ComponentLookup<PrisonData> PrisonDataLookup; public ComponentLookup<FireStationData> FireStationDataLookup; public ComponentLookup<CargoTransportStationData> CargoTransportStationDataLookup; public ComponentLookup<TransportDepotData> TransportDepotDataLookup; public ComponentLookup<GarbageFacilityData> GarbageFacilityDataLookup; public ComponentLookup<DeathcareFacilityData> DeathcareFacilityDataLookup; public ComponentLookup<PublicTransportStationData> PublicTransportStationDataLookup; public ComponentLookup<MaintenanceDepotData> MaintenanceDepotDataLookup; public ComponentLookup<PostFacilityData> PostFacilityDataLookup; public ComponentLookup<AdminBuildingData> AdminBuildingDataLookup; public ComponentLookup<WelfareOfficeData> WelfareOfficeDataLookup; public ComponentLookup<ResearchFacilityData> ResearchFacilityDataLookup; public ComponentLookup<TelecomFacilityData> TelecomFacilityDataLookup; public ComponentLookup<ParkData> ParkDataLookup; public void Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) NativeArray<Entity> nativeArray = ((ArchetypeChunk)(ref chunk)).GetNativeArray(EntityTypeHandle); ChunkEntityEnumerator val = default(ChunkEntityEnumerator); ((ChunkEntityEnumerator)(ref val))..ctor(useEnabledMask, chunkEnabledMask, ((ArchetypeChunk)(ref chunk)).Count); int num = default(int); WorkplaceData workplaceData = default(WorkplaceData); while (((ChunkEntityEnumerator)(ref val)).NextEntityIndex(ref num)) { Entity val2 = nativeArray[num]; if (WorkplaceDataLookup.TryGetComponent(val2, ref workplaceData)) { UpdateWorkplaceData(val2, workplaceData, num); } } } private void UpdateWorkplaceData(Entity entity, WorkplaceData workplaceData, int entityIndex) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_040f: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0221: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_02df: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0390: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) DefaultData defaultData = new DefaultData(); if (PowerPlantDataLookup.HasComponent(entity)) { WorkplaceData val = DensityHelper.UpdateWorkplaceData(WorkforceFactors.PowerPlant.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val); } else if (SchoolDataLookup.HasComponent(entity)) { WorkplaceData val2 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.School.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val2); } else if (HospitalDataLookup.HasComponent(entity)) { WorkplaceData val3 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.Hospital.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val3); } else if (PoliceStationDataLookup.HasComponent(entity)) { WorkplaceData val4 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.PoliceStation.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val4); } else if (PrisonDataLookup.HasComponent(entity)) { WorkplaceData val5 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.Prison.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val5); } else if (FireStationDataLookup.HasComponent(entity)) { WorkplaceData val6 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.FireStation.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val6); } else if (CargoTransportStationDataLookup.HasComponent(entity)) { WorkplaceData val7 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.CargoTransportStation.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val7); } else if (TransportDepotDataLookup.HasComponent(entity)) { WorkplaceData val8 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.TransportDepot.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val8); } else if (GarbageFacilityDataLookup.HasComponent(entity)) { WorkplaceData val9 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.GarbageFacility.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val9); } else if (DeathcareFacilityDataLookup.HasComponent(entity)) { WorkplaceData val10 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.DeathcareFacility.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val10); } else if (PublicTransportStationDataLookup.HasComponent(entity)) { WorkplaceData val11 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.PublicTransportStation.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val11); } else if (MaintenanceDepotDataLookup.HasComponent(entity)) { WorkplaceData val12 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.MaintenanceDepot.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val12); } else if (PostFacilityDataLookup.HasComponent(entity)) { WorkplaceData val13 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.PostFacility.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val13); } else if (AdminBuildingDataLookup.HasComponent(entity)) { WorkplaceData val14 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.AdminBuilding.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val14); } else if (WelfareOfficeDataLookup.HasComponent(entity)) { WorkplaceData val15 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.WelfareOffice.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val15); } else if (ResearchFacilityDataLookup.HasComponent(entity)) { WorkplaceData val16 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.ResearchFacility.Medium, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val16); } else if (TelecomFacilityDataLookup.HasComponent(entity)) { BuildingData val17 = BuildingDataLookup[entity]; float num = math.max(1, val17.m_LotSize.y * val17.m_LotSize.x / 100); WorkplaceData val18 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.TelecomFacility.Medium * num, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val18); } else if (ParkDataLookup.HasComponent(entity)) { BuildingData val19 = BuildingDataLookup[entity]; float num2 = math.max(1, val19.m_LotSize.y * val19.m_LotSize.x / 100); WorkplaceData val20 = DensityHelper.UpdateWorkplaceData(WorkforceFactors.ParkData.Medium * num2, workplaceData); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(entityIndex, entity, val20); } defaultData.workplaceData_MaxWorkers = workplaceData.m_MaxWorkers; ((ParallelWriter)(ref Ecb)).AddComponent<DefaultData>(entityIndex, entity, defaultData); } void IJobChunk.Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask) { Execute(in chunk, unfilteredChunkIndex, useEnabledMask, in chunkEnabledMask); } } internal struct UpdateCommercialBuildingsQuery { public EntityQueryDesc[] Query; public UpdateCommercialBuildingsQuery() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Expected O, but got Unknown //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) EntityQueryDesc[] array = new EntityQueryDesc[1]; EntityQueryDesc val = new EntityQueryDesc(); val.All = (ComponentType[])(object)new ComponentType[4] { ComponentType.ReadOnly<PrefabData>(), ComponentType.ReadOnly<WorkplaceData>(), ComponentType.ReadOnly<ServiceCompanyData>(), ComponentType.ReadOnly<CommercialCompanyData>() }; val.None = (ComponentType[])(object)new ComponentType[3] { ComponentType.Exclude<DefaultData>(), ComponentType.Exclude<Deleted>(), ComponentType.Exclude<Temp>() }; array[0] = val; Query = (EntityQueryDesc[])(object)array; } } public struct UpdateCommercialBuildingsTypeHandle { [ReadOnly] public EntityTypeHandle EntityTypeHandle; public ComponentLookup<WorkplaceData> WorkplaceDataLookup; public ComponentLookup<ServiceCompanyData> ServiceCompanyDataLookup; public ComponentLookup<IndustrialProcessData> IndustrialProcessDataLookup; public ComponentLookup<ResourceData> ResourceDataLookup; [MethodImpl(MethodImplOptions.AggressiveInlining)] public void AssignHandles(ref SystemState state) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) EntityTypeHandle = ((SystemState)(ref state)).GetEntityTypeHandle(); WorkplaceDataLookup = ((SystemState)(ref state)).GetComponentLookup<WorkplaceData>(false); ServiceCompanyDataLookup = ((SystemState)(ref state)).GetComponentLookup<ServiceCompanyData>(false); IndustrialProcessDataLookup = ((SystemState)(ref state)).GetComponentLookup<IndustrialProcessData>(false); ResourceDataLookup = ((SystemState)(ref state)).GetComponentLookup<ResourceData>(false); } } public struct UpdateCommercialBuildingsJob : IJobChunk { public ParallelWriter Ecb; public EntityTypeHandle EntityHandle; public ComponentLookup<WorkplaceData> WorkplaceDataLookup; public ComponentLookup<ServiceCompanyData> ServiceCompanyDataLookup; public ComponentLookup<IndustrialProcessData> IndustrialProcessDataLookup; public ComponentLookup<ResourceData> ResourceDataLookup; public EconomyParameterData EconomyParameterData; public ResourcePrefabs ResourcePrefabs; public BuildingData BuildingData; public SpawnableBuildingData SpawnableBuildingData; public void Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) NativeArray<Entity> nativeArray = ((ArchetypeChunk)(ref chunk)).GetNativeArray(EntityHandle); ChunkEntityEnumerator val = default(ChunkEntityEnumerator); ((ChunkEntityEnumerator)(ref val))..ctor(useEnabledMask, chunkEnabledMask, ((ArchetypeChunk)(ref chunk)).Count); World defaultGameObjectInjectionWorld = World.DefaultGameObjectInjectionWorld; PrefabSystem val2 = ((defaultGameObjectInjectionWorld != null) ? defaultGameObjectInjectionWorld.GetOrCreateSystemManaged<PrefabSystem>() : null); int num = default(int); while (((ChunkEntityEnumerator)(ref val)).NextEntityIndex(ref num)) { Entity val3 = nativeArray[num]; DefaultData defaultData = new DefaultData(); CompanyPrefab prefab = val2.GetPrefab<CompanyPrefab>(val3); WorkplaceData val4 = WorkplaceDataLookup[val3]; ServiceCompanyData val5 = ServiceCompanyDataLookup[val3]; float medium = WorkforceFactors.Commercial.Medium; WorkplaceData val6 = DensityHelper.UpdateWorkplaceData(medium, val4); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(num, val3, val6); ServiceCompanyData val7 = val5; defaultData.serviceCompanyData_MaxWorkersPerCell = val5.m_MaxWorkersPerCell; val7.m_MaxWorkersPerCell += DensityHelper.MaxWorkersPerCellIncrease(medium, val5.m_MaxWorkersPerCell); defaultData.serviceCompanyData_WorkPerUnit = val5.m_WorkPerUnit; val7.m_WorkPerUnit = DensityHelper.WorkPerUnitForCommercial(prefab, IndustrialProcessDataLookup[val3], val7, val6, ResourcePrefabs, ResourceDataLookup, EconomyParameterData, BuildingData, SpawnableBuildingData); ((ParallelWriter)(ref Ecb)).SetComponent<ServiceCompanyData>(num, val3, val7); defaultData.workplaceData_MaxWorkers = val4.m_MaxWorkers; ((ParallelWriter)(ref Ecb)).AddComponent<DefaultData>(num, val3, defaultData); } } void IJobChunk.Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask) { Execute(in chunk, unfilteredChunkIndex, useEnabledMask, in chunkEnabledMask); } } internal struct UpdateHighOfficesQuery { public EntityQueryDesc[] Query; public UpdateHighOfficesQuery() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Expected O, but got Unknown //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) EntityQueryDesc[] array = new EntityQueryDesc[1]; EntityQueryDesc val = new EntityQueryDesc(); val.All = (ComponentType[])(object)new ComponentType[5] { ComponentType.ReadOnly<SpawnableBuildingData>(), ComponentType.ReadOnly<BuildingData>(), ComponentType.ReadOnly<PrefabData>(), ComponentType.ReadOnly<BuildingPropertyData>(), ComponentType.ReadOnly<OfficeBuilding>() }; val.None = (ComponentType[])(object)new ComponentType[3] { ComponentType.Exclude<DefaultData>(), ComponentType.Exclude<Deleted>(), ComponentType.Exclude<Temp>() }; array[0] = val; Query = (EntityQueryDesc[])(object)array; } } public struct UpdateHighOfficesTypeHandle { [ReadOnly] public EntityTypeHandle EntityTypeHandle; public ComponentLookup<BuildingPropertyData> BuildingPropertyDataLookup; [MethodImpl(MethodImplOptions.AggressiveInlining)] public void AssignHandles(ref SystemState state) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) EntityTypeHandle = ((SystemState)(ref state)).GetEntityTypeHandle(); BuildingPropertyDataLookup = ((SystemState)(ref state)).GetComponentLookup<BuildingPropertyData>(false); } } public struct UpdateHighOfficesJob : IJobChunk { public ParallelWriter Ecb; public EntityTypeHandle EntityHandle; public ComponentLookup<BuildingPropertyData> BuildingPropertyDataLookup; public void Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) RealisticDensitySettings settings = RealisticDensitySystem.Settings; NativeArray<Entity> nativeArray = ((ArchetypeChunk)(ref chunk)).GetNativeArray(EntityHandle); ChunkEntityEnumerator val = default(ChunkEntityEnumerator); ((ChunkEntityEnumerator)(ref val))..ctor(useEnabledMask, chunkEnabledMask, ((ArchetypeChunk)(ref chunk)).Count); int num = default(int); while (((ChunkEntityEnumerator)(ref val)).NextEntityIndex(ref num)) { Entity val2 = nativeArray[num]; DefaultData defaultData = new DefaultData(); BuildingPropertyData val3 = BuildingPropertyDataLookup[val2]; float officesFactor = settings.OfficesFactor; BuildingPropertyData val4 = val3; defaultData.buildingPropertyData_SpaceMultiplier = val3.m_SpaceMultiplier; val4.m_SpaceMultiplier *= officesFactor; ((ParallelWriter)(ref Ecb)).SetComponent<BuildingPropertyData>(num, val2, val4); ((ParallelWriter)(ref Ecb)).AddComponent<DefaultData>(num, val2, defaultData); } } void IJobChunk.Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask) { Execute(in chunk, unfilteredChunkIndex, useEnabledMask, in chunkEnabledMask); } } internal struct UpdateIndustryBuildingsQuery { public EntityQueryDesc[] Query; public UpdateIndustryBuildingsQuery() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Expected O, but got Unknown //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) EntityQueryDesc[] array = new EntityQueryDesc[1]; EntityQueryDesc val = new EntityQueryDesc(); val.All = (ComponentType[])(object)new ComponentType[2] { ComponentType.ReadOnly<WorkplaceData>(), ComponentType.ReadOnly<PrefabData>() }; val.Any = (ComponentType[])(object)new ComponentType[2] { ComponentType.ReadOnly<IndustrialProcessData>(), ComponentType.ReadOnly<IndustrialCompanyData>() }; val.None = (ComponentType[])(object)new ComponentType[3] { ComponentType.Exclude<DefaultData>(), ComponentType.Exclude<Deleted>(), ComponentType.Exclude<Temp>() }; array[0] = val; Query = (EntityQueryDesc[])(object)array; } } public struct UpdateIndustryBuildingsTypeHandle { [ReadOnly] public EntityTypeHandle EntityTypeHandle; public ComponentLookup<WorkplaceData> WorkplaceDataLookup; public ComponentLookup<IndustrialProcessData> IndustrialProcessDataLookup; public ComponentLookup<ExtractorCompanyData> ExtractorCompanyDataLookup; public ComponentLookup<StorageLimitData> StorageLimitDataLookup; public ComponentLookup<TransportCompanyData> TransportCompanyDataLookup; public ComponentLookup<ResourceData> ResourceDataLookup; [MethodImpl(MethodImplOptions.AggressiveInlining)] public void AssignHandles(ref SystemState state) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) EntityTypeHandle = ((SystemState)(ref state)).GetEntityTypeHandle(); WorkplaceDataLookup = ((SystemState)(ref state)).GetComponentLookup<WorkplaceData>(false); IndustrialProcessDataLookup = ((SystemState)(ref state)).GetComponentLookup<IndustrialProcessData>(false); ExtractorCompanyDataLookup = ((SystemState)(ref state)).GetComponentLookup<ExtractorCompanyData>(false); StorageLimitDataLookup = ((SystemState)(ref state)).GetComponentLookup<StorageLimitData>(false); TransportCompanyDataLookup = ((SystemState)(ref state)).GetComponentLookup<TransportCompanyData>(false); ResourceDataLookup = ((SystemState)(ref state)).GetComponentLookup<ResourceData>(false); } } public struct UpdateIndustryBuildingsJob : IJobChunk { public ParallelWriter Ecb; public EntityTypeHandle EntityHandle; public ComponentLookup<WorkplaceData> WorkplaceDataLookup; public ComponentLookup<IndustrialProcessData> IndustrialProcessDataLookup; public ComponentLookup<ExtractorCompanyData> ExtractorCompanyDataLookup; public ComponentLookup<StorageLimitData> StorageLimitDataLookup; public ComponentLookup<TransportCompanyData> TransportCompanyDataLookup; public ComponentLookup<ResourceData> ResourceDataLookup; public EconomyParameterData EconomyParameterData; public ResourcePrefabs ResourcePrefabs; public BuildingData BuildingData; public SpawnableBuildingData SpawnableBuildingData; public void Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) RealisticDensitySettings settings = RealisticDensitySystem.Settings; NativeArray<Entity> nativeArray = ((ArchetypeChunk)(ref chunk)).GetNativeArray(EntityHandle); ChunkEntityEnumerator val = default(ChunkEntityEnumerator); ((ChunkEntityEnumerator)(ref val))..ctor(useEnabledMask, chunkEnabledMask, ((ArchetypeChunk)(ref chunk)).Count); World defaultGameObjectInjectionWorld = World.DefaultGameObjectInjectionWorld; PrefabSystem val2 = ((defaultGameObjectInjectionWorld != null) ? defaultGameObjectInjectionWorld.GetOrCreateSystemManaged<PrefabSystem>() : null); int num = default(int); StorageLimitData val8 = default(StorageLimitData); TransportCompanyData val10 = default(TransportCompanyData); while (((ChunkEntityEnumerator)(ref val)).NextEntityIndex(ref num)) { Entity val3 = nativeArray[num]; CompanyPrefab prefab = val2.GetPrefab<CompanyPrefab>(val3); DefaultData defaultData = new DefaultData(); WorkplaceData val4 = WorkplaceDataLookup[val3]; IndustrialProcessData val5 = IndustrialProcessDataLookup[val3]; bool flag = IsOffice(val5); bool flag2 = ExtractorCompanyDataLookup.HasComponent(val3); if (!flag || settings.OfficesEnabled) { float num2 = (flag ? settings.OfficesFactor : (flag2 ? settings.IndustryExtractorFactor : settings.IndustryProcessingFactor)); WorkplaceData val6 = DensityHelper.UpdateWorkplaceData(num2, val4); ((ParallelWriter)(ref Ecb)).SetComponent<WorkplaceData>(num, val3, val6); IndustrialProcessData val7 = val5; defaultData.industrialProcessData_MaxWorkersPerCell = val5.m_MaxWorkersPerCell; val7.m_MaxWorkersPerCell += DensityHelper.MaxWorkersPerCellIncrease(num2, val5.m_MaxWorkersPerCell); defaultData.industrialProcessData_WorkPerUnit = val5.m_WorkPerUnit; if (flag2) { val7.m_WorkPerUnit = DensityHelper.WorkPerUnitForExtractorIndustry(prefab, val7, val6, ResourcePrefabs, ResourceDataLookup, EconomyParameterData, SpawnableBuildingData); } else { val7.m_WorkPerUnit = DensityHelper.WorkPerUnitForProcessingIndustry(prefab, val7, val6, ResourcePrefabs, ResourceDataLookup, EconomyParameterData, BuildingData, SpawnableBuildingData); } ((ParallelWriter)(ref Ecb)).SetComponent<IndustrialProcessData>(num, val3, val7); if (settings.IndustryIncreaseStorageCapacity && StorageLimitDataLookup.TryGetComponent(val3, ref val8)) { StorageLimitData val9 = val8; defaultData.storageLimitData_limit = val8.m_Limit; float num3 = DensityHelper.CalculateProductionFactor(num2, val8.m_Limit); val9.m_Limit += Mathf.CeilToInt(num3); ((ParallelWriter)(ref Ecb)).SetComponent<StorageLimitData>(num, val3, val9); } if (settings.IndustryIncreaseMaxTransports && TransportCompanyDataLookup.TryGetComponent(val3, ref val10)) { TransportCompanyData val11 = val10; defaultData.transportCompanyData_MaxTransports = val10.m_MaxTransports; float num4 = DensityHelper.CalculateProductionFactor(num2, val10.m_MaxTransports); val11.m_MaxTransports += Mathf.CeilToInt(num4); ((ParallelWriter)(ref Ecb)).SetComponent<TransportCompanyData>(num, val3, val11); } defaultData.workplaceData_MaxWorkers = val4.m_MaxWorkers; ((ParallelWriter)(ref Ecb)).AddComponent<DefaultData>(num, val3, defaultData); } } nativeArray.Dispose(); } private readonly bool IsOffice(IndustrialProcessData industrialProcessData) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Invalid comparison between Unknown and I8 //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Invalid comparison between Unknown and I8 //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Invalid comparison between Unknown and I8 Resource resource = industrialProcessData.m_Output.m_Resource; if ((long)resource == 2097152 || (long)resource == 34359738368L || (long)resource == 68719476736L) { return true; } return false; } void IJobChunk.Execute(in ArchetypeChunk chunk, int unfilteredChunkIndex, bool useEnabledMask, in v128 chunkEnabledMask) { Execute(in chunk, unfilteredChunkIndex, useEnabledMask, in chunkEnabledMask); } } } namespace RealisticDensity.Helper { internal static class DensityHelper { public static float CalculateProductionFactor(float factor, float of) { return of * (factor - 1f) / (float)RealisticDensitySystem.kProductionFactor; } public static WorkplaceData UpdateWorkplaceData(float factor, WorkplaceData workplaceData) { //IL_0000: Unknown result type (might be due to invalid IL or mis