public static bool Prefix(ref Il2CppSystem.Collections.Generic.List <TowerDetailsModel> allTowersInTheGame) { for (int i = 0; i < Constants.powers.Length; i++) { ShopTowerDetailsModel powerDetails = new ShopTowerDetailsModel(Constants.powers[i], allTowersInTheGame.ToArray().FirstOrDefault(tower => tower.name.Contains("EngineerMonkey")).towerIndex, 0, 0, 0, -1, -1, null); Utils.RegisterTowerInInventory(powerDetails, "EngineerMonkey", allTowersInTheGame); } for (int i = 0; i < Constants.otherTowers.Length; i++) { ShopTowerDetailsModel otherTowerDetails = new ShopTowerDetailsModel(Constants.otherTowers[i], -1, 0, 0, 0, -1, -1, null); string insertBefore = "EngineerMonkey"; // support had the most occurrences, so have it default to mortar to eliminate the conditional for military if (Constants.otherTowerTowersets[i] == "Military") { insertBefore = "MortarMonkey"; // military towers } if (Constants.otherTowerTowersets[i] == "Magic") { insertBefore = "Druid"; // magic towers } otherTowerDetails.towerIndex = allTowersInTheGame.ToArray().FirstOrDefault(tower => tower.name.Contains(insertBefore)).towerIndex; Utils.RegisterTowerInInventory(otherTowerDetails, insertBefore, allTowersInTheGame); } return(true); }
public override GameObject[] GetRootGameObjects(Scene scene) { if (!scene.isLoaded) { return(new GameObject[0]); } int handle = scene.handle; if (handle == -1) { return(new GameObject[0]); } int count = GetRootCount(handle); if (count < 1) { return(new GameObject[0]); } var list = new Il2CppSystem.Collections.Generic.List <GameObject>(count); var iCall = ICallManager.GetICall <d_GetRootGameObjects>("UnityEngine.SceneManagement.Scene::GetRootGameObjectsInternal"); iCall.Invoke(handle, list.Pointer); return(list.ToArray()); }
public static void RegisterTowerInInventory(ShopTowerDetailsModel details, string insertBefore, Il2CppSystem.Collections.Generic.List <TowerDetailsModel> allTowersInTheGame) { // get the tower details for the tower insertBefore and insert the new tower into the index towerBefore is at, shifting everything after it by 1 TowerDetailsModel towerAfter = allTowersInTheGame.ToArray().FirstOrDefault(tower => tower.towerId == insertBefore); allTowersInTheGame.Insert(allTowersInTheGame.IndexOf(towerAfter), details); }
public override void Update() { try { if (Target == null) { ExplorerCore.Log("Target is null!"); DestroyWindow(); return; } if (!TargetGO && !GetObjectAsGameObject()) { ExplorerCore.Log("Target was destroyed!"); DestroyWindow(); return; } if (m_freeze) { if (m_localContext) { TargetGO.transform.localPosition = m_frozenPosition; TargetGO.transform.localRotation = m_frozenRotation; } else { TargetGO.transform.position = m_frozenPosition; TargetGO.transform.rotation = m_frozenRotation; } TargetGO.transform.localScale = m_frozenScale; } // update child objects var childList = new List <Transform>(); for (int i = 0; i < TargetGO.transform.childCount; i++) { childList.Add(TargetGO.transform.GetChild(i)); } childList.Sort((a, b) => b.childCount.CompareTo(a.childCount)); m_children = childList.ToArray(); ChildPages.ItemCount = m_children.Length; // update components #if CPP var compList = new Il2CppSystem.Collections.Generic.List <Component>(); TargetGO.GetComponentsInternal(ReflectionHelpers.ComponentType, true, false, true, false, compList); m_components = compList.ToArray(); #else m_components = TargetGO.GetComponents <Component>(); #endif CompPages.ItemCount = m_components.Length; } catch (Exception e) { DestroyOnException(e); } }
//Scene.GetRootGameObjects(); public static GameObject[] GetRootGameObjects(Scene scene) { var list = new Il2CppSystem.Collections.Generic.List <GameObject>(GetRootCount_Internal(scene)); GetRootGameObjectsInternal_iCall(scene.handle, list.Pointer); return(list.ToArray()); }
public static GameObject[] GetRootGameObjects(Scene scene) { var list = new Il2CppSystem.Collections.Generic.List <GameObject>(GetRootCount(scene)); var iCall = ICallHelper.GetICall <d_GetRootGameObjects>("UnityEngine.SceneManagement.Scene::GetRootGameObjectsInternal"); iCall.Invoke(scene.handle, list.Pointer); return(list.ToArray()); }
public override void GraphicRaycast(GraphicRaycaster raycaster, PointerEventData data, List <RaycastResult> list) { var il2cppList = new Il2CppSystem.Collections.Generic.List <RaycastResult>(); raycaster.Raycast(data, il2cppList); if (il2cppList.Count > 0) { list.AddRange(il2cppList.ToArray()); } }
public static GameObject[] GetRootGameObjects(int handle) { if (handle == -1) { return(new GameObject[0]); } Il2CppSystem.Collections.Generic.List <GameObject> list = new Il2CppSystem.Collections.Generic.List <GameObject>(GetRootCount(handle)); d_GetRootGameObjects iCall = ICallHelper.GetICall <d_GetRootGameObjects>("UnityEngine.SceneManagement.Scene::GetRootGameObjectsInternal"); iCall.Invoke(handle, list.Pointer); return(list.ToArray()); }
public static List <byte> generateTasks(int numCommon, int numShort, int numLong) { if (numCommon + numShort + numLong <= 0) { numShort = 1; } var tasks = new Il2CppSystem.Collections.Generic.List <byte>(); var hashSet = new Il2CppSystem.Collections.Generic.HashSet <TaskTypes>(); var commonTasks = new Il2CppSystem.Collections.Generic.List <NormalPlayerTask>(); foreach (var task in ShipStatus.Instance.CommonTasks.OrderBy(x => rnd.Next())) { commonTasks.Add(task); } var shortTasks = new Il2CppSystem.Collections.Generic.List <NormalPlayerTask>(); foreach (var task in ShipStatus.Instance.NormalTasks.OrderBy(x => rnd.Next())) { shortTasks.Add(task); } var longTasks = new Il2CppSystem.Collections.Generic.List <NormalPlayerTask>(); foreach (var task in ShipStatus.Instance.LongTasks.OrderBy(x => rnd.Next())) { longTasks.Add(task); } int start = 0; ShipStatus.Instance.AddTasksFromList(ref start, numCommon, tasks, hashSet, commonTasks); start = 0; ShipStatus.Instance.AddTasksFromList(ref start, numShort, tasks, hashSet, shortTasks); start = 0; ShipStatus.Instance.AddTasksFromList(ref start, numLong, tasks, hashSet, longTasks); return(tasks.ToArray().ToList()); }
internal static void AddBreakDownComponent(GameObject gameObject, BreakDownDefinition objDef) { BreakDown breakDown = gameObject.AddComponent <BreakDown>(); BreakDown.m_BreakDownObjects.Add(breakDown); RCUtils.SetLayer(gameObject, vp_Layer.InteractiveProp); //Object yields if (objDef.yield != null && objDef.yield.Length > 0 && Settings.options.objectYields) { List <GameObject> itemYields = new List <GameObject>(); List <int> numYield = new List <int>(); foreach (BreakDownYield yield in objDef.yield) { if (yield.item.Trim() != "") { //GameObject yieldItem = Resources.Load("GEAR_" + yield.item).Cast<GameObject>(); GameObject yieldItem = null; UnityEngine.Object yieldItemObj = Resources.Load("GEAR_" + yield.item); if (yieldItemObj != null) { yieldItem = yieldItemObj.Cast <GameObject>(); itemYields.Add(yieldItem); numYield.Add(yield.num); } else { Debug.Log("[remove-clutter] Yield GEAR_" + yield.item + " couldn't be loaded."); } } } breakDown.m_YieldObject = itemYields.ToArray(); breakDown.m_YieldObjectUnits = numYield.ToArray(); } else { breakDown.m_YieldObject = new GameObject[0]; breakDown.m_YieldObjectUnits = new int[0]; } //Time to harvest if (objDef.minutesToHarvest > 0 && !Settings.options.fastBreakDown) { breakDown.m_TimeCostHours = objDef.minutesToHarvest / 60; } else { breakDown.m_TimeCostHours = 1f / 60; } //Harvest sound /*MetalSaw * WoodSaw * Outerwear * MeatlSmall * Generic * Metal * MeatlMed * Cardboard * WoodCedar * NylonCloth * Plants * Paper * Wood * Wool * Leather * WoodReclaimedNoAxe * WoodReclaimed * Cloth * MeatLarge * WoodSmall * WoodFir * WoodAxe */ if (objDef.sound.Trim() != "" && objDef.sound != null) { breakDown.m_BreakDownAudio = "Play_Harvesting" + objDef.sound; } else { breakDown.m_BreakDownAudio = "Play_HarvestingGeneric"; } //Display name if (Settings.options.showObjectNames) { String rawName = objDef.filter.Replace("_", string.Empty); String[] objWords = Regex.Split(rawName, @"(?<!^)(?=[A-Z])"); String objName = String.Join(" ", objWords); breakDown.m_LocalizedDisplayName = new LocalizedString() { m_LocalizationID = objName }; } else { breakDown.m_LocalizedDisplayName = new LocalizedString() { m_LocalizationID = "GAMEPLAY_BreakDown" }; } //Required Tools if (objDef.requireTool == true && Settings.options.toolsNeeded) { breakDown.m_RequiresTool = true; } if (objDef.tools != null && objDef.tools.Length > 0 && Settings.options.toolsNeeded) { Il2CppSystem.Collections.Generic.List <GameObject> itemTools = new Il2CppSystem.Collections.Generic.List <GameObject>(); foreach (String tool in objDef.tools) { GameObject selectedTool = null; if (tool.ToLower() == "knife") { selectedTool = Resources.Load("GEAR_Knife").Cast <GameObject>(); } else if (tool.ToLower() == "hacksaw") { selectedTool = Resources.Load("GEAR_Hacksaw").Cast <GameObject>(); } else if (tool.ToLower() == "hatchet") { selectedTool = Resources.Load("GEAR_Hatchet").Cast <GameObject>(); } else if (tool.ToLower() == "hammer") { selectedTool = Resources.Load("GEAR_Hammer").Cast <GameObject>(); } if (selectedTool != null) { itemTools.Add(selectedTool); } else { Debug.Log("[remove-clutter] Tool " + tool + " couldn't be loaded or doesn't exist."); } } UnhollowerBaseLib.Il2CppReferenceArray <GameObject> toolsArray = new UnhollowerBaseLib.Il2CppReferenceArray <GameObject>(itemTools.ToArray()); if (toolsArray.Length > 0) { breakDown.m_UsableTools = toolsArray; } else { Debug.Log("[remove-clutter] Tools array is empty."); breakDown.m_RequiresTool = false; breakDown.m_UsableTools = new GameObject[0]; } } else { breakDown.m_UsableTools = new GameObject[0]; } }
public static GearItem[] GetAllGearItems(string gearName) { Il2CppSystem.Collections.Generic.List <GearItem> result = new Il2CppSystem.Collections.Generic.List <GearItem>(); GameManager.GetInventoryComponent().GetItems(gearName, result); return(result.ToArray()); }