public void Handle(JsonData data) { var players = Object.FindObjectsOfType <PlayerControls>().ToList(); var switches = (int)Math.Ceiling(players.Count / 2d); Main.Logger.Log($"Host: {AccessUtils.IsHost()}"); Action <PlayerControls> action = controls => { if (players.Count > switches) { var first = players.First(c => c != controls); players.Remove(controls); if (switches >= 2) { players.Remove(first); } var playerTransform = controls.transform; var switchTransform = first.transform; var tmp = playerTransform.position; playerTransform.position = switchTransform.position; switchTransform.position = tmp; } }; Utils.ForEachPlayer(action, action); }
public State CheckState() { var buttons = Object.FindObjectsOfType <Button>(); _targetButton = buttons.Shuffle().FirstOrDefault(x => ApeUtil.CheckButtonClickable(x, _condition)); return(_targetButton != null ? State.Execute : State.DontExecute); }
public void HandleMessage(IServerMessageBase msg) { if (!(msg.Data is FacilityBaseMsgData msgData)) { return; } var destructibleFacility = Object.FindObjectsOfType <DestructibleBuilding>().FirstOrDefault(o => o.id == msgData.ObjectId); if (destructibleFacility != null) { switch (msgData.FacilityMessageType) { case FacilityMessageType.Repair: System.DestroyedFacilities.Remove(destructibleFacility.id); System.RepairFacilityWithoutSendingMessage(destructibleFacility); break; case FacilityMessageType.Collapse: System.DestroyedFacilities.Add(destructibleFacility.id); System.CollapseFacilityWithoutSendingMessage(destructibleFacility); break; } } }
public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response) { bool canrun = CommandManager.CanRun(sender, PlayerPermissions.FacilityManagement, out response); if (!canrun) { return(canrun); } isLightsout = !isLightsout; foreach (FlickerableLightController lightController in Object.FindObjectsOfType <FlickerableLightController>()) { Scp079Interactable interactable = lightController.GetComponent <Scp079Interactable>(); if (interactable == null || interactable.type != Scp079Interactable.InteractableType.LightController) { continue; } lightController.ServerFlickerLights(isLightsout ? 100000f : 0f); } if (isLightsout) { foreach (var player in ReferenceHub.GetAllHubs()) { player.Value.inventory.AddNewItem(ItemType.Flashlight); } } response = $"Facility lights have been {(isLightsout ? "disabled" : "enabled")}!"; return(canrun); }
void ResetGame() { while (m_ResourcePacketQueue.Count != 0) { m_ResourcePacketQueue.Dequeue().Dispose(); } EntityManager.DestroyEntity(EntityManager.UniversalQuery); //@TODO: Once we have build settings & loading of game object scenes we can remove this hack. var scenes = Object.FindObjectsOfType <SubScene>(); foreach (var scene in scenes) { scene.enabled = false; scene.enabled = true; } LiveLinkPlayerAssetRefreshSystem.Reset(); LiveLinkMsg.LogSend("ConnectLiveLink"); PlayerConnection.instance.Send(LiveLinkMsg.ConnectLiveLink, World.GetExistingSystem <SceneSystem>().BuildSettingsGUID); m_LiveLinkSceneChange.Reset(); SendSetLoadedScenes(); }
public State CheckState() { var scrollRects = Object.FindObjectsOfType <ScrollRect>(); _targetScroll = scrollRects.Shuffle().FirstOrDefault(x => ApeUtil.CheckScrollRectClickable(x, _condition)); return(_targetScroll != null ? State.Execute : State.DontExecute); }
public override void Execute() { const BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; Object[] objects = Object.FindObjectsOfType <Object>(); Object obj = objects.FirstOrDefault(o => o.GetInstanceID() == InstanceId); if (obj == null) { return; } Type type = obj.GetType(); MemberInfo[] members = type.GetMember(MemberName, bindingFlags); MemberInfo member = members.Single(); PropertyInfo property = member as PropertyInfo; if (property != null) { property.SetValue(obj, Value.Object, null); return; } FieldInfo field = member as FieldInfo; if (field != null) { field.SetValue(obj, Value.Object); return; } throw new NotSupportedException(member.GetType().FullName); }
public static void SetGameCanvasInputsEnabled(bool mouseInputEnabled) { foreach (var c in Object.FindObjectsOfType <GraphicRaycaster>()) { c.enabled = mouseInputEnabled; } }
public ListInteractiveObject() { var interactiveObjects = Object.FindObjectsOfType <InteractiveObject>(); for (var i = 0; i < interactiveObjects.Length; i++) { AddInteractiveObject(interactiveObjects[i]); } }
public static void SaveAll(Type serializedObjectType) { UnityObject[] objects = UnityObject.FindObjectsOfType(serializedObjectType); for (int i = 0; i < objects.Length; ++i) { var obj = (ISerializedObject)objects[i]; obj.SaveState(); } }
/// <summary> /// Attempt to locate the NetTool and create a NetToolProxy object if successful. /// </summary> /// <returns>A <c>NetToolProxy</c> object if successful, otherwise null.</returns> public static NetToolProxy Locate() { var toolType = typeof(NetTool); // Hack to include FineRoadHeights. If more mods start replacing the NetTool // it might be wise to implement an interface system like in Road Protractor if (AppDomain.CurrentDomain.GetAssemblies().Any(q => q.FullName.Contains("FineRoadHeights"))) { toolType = Type.GetType("NetToolFine, FineRoadHeights") ?? toolType; } Debug.Log($"Looking for NetTool of type `{toolType}`"); var tools = Object.FindObjectsOfType(toolType).Cast <ToolBase>().ToList(); if (tools.Count == 0 && toolType != typeof(NetTool)) { Debug.Log($"Falling back to default NetTool"); toolType = typeof(NetTool); tools = Object.FindObjectsOfType(toolType).Cast <ToolBase>().ToList(); } Debug.Log($"Found Tools ({tools.Count}): " + string.Join(", ", tools.Select(q => q.name + $" ({q.GetInstanceID()})").ToArray())); if (tools.Count == 0) { Debug.LogError("Could not find NetTool"); return(null); } if (tools.Count > 1) { // The "First" NetTool created is the one we want, since it's the one Unity seems to use. Debug.Log($"Multiple NetTool instances found, using cache to filter to an already known one."); tools = tools.Where(p => Cache.Contains(p.GetInstanceID())).ToList(); } if (tools.Count > 1) { Debug.LogWarning("Still more than 1 NetTool instance found. Using the last one in the hopes it's the right one..."); } var tool = tools.LastOrDefault(); if (tool == null) { Debug.LogError("Failed to find NetTool"); return(null); } if (!Cache.Contains(tool.GetInstanceID())) { Cache.Add(tool.GetInstanceID()); } return(NetToolProxy.Create(tool)); }
private void FindActiveGameObjectsOnStart() { _playerObjects = new List <IGOUIModule>(); var _allObjects = new List <IGOUIModule>(Object.FindObjectsOfType <GOUIModule>().ToList()); foreach (var playerObject in _allObjects.Where(playerObject => playerObject.GOUIModuleCanBeUsed)) { _playerObjects.Add(playerObject); } }
private void AffectCompanyByColor(Colors color) { var gameObjects = Object.FindObjectsOfType <CompanyCard>(); foreach (var gameObject in gameObjects) { if (gameObject.GetComponent <CompanyCard>().color == color) { gameObject.GetComponent <CompanyCardData>().deltaModifiers.Add(new DeltaModifier(amount)); } } }
public ListExecuteObject() { var interactiveObjects = Object.FindObjectsOfType <InteractiveObject>(); for (var i = 0; i < interactiveObjects.Length; i++) { if (interactiveObjects[i] is IExecute interactiveObject) { AddExecuteObject(interactiveObject); } } }
private void AffectCompanyByName(string name) { var gameObjects = Object.FindObjectsOfType <CompanyCard>(); foreach (var gameObject in gameObjects) { if (gameObject.GetComponent <CompanyCard>().companyName.FullName() == name) { gameObject.GetComponent <CompanyCardData>().deltaModifiers.Add(new DeltaModifier(amount)); } } }
public static List <Player> GetAllPlayers() { Player[] players = Object.FindObjectsOfType <Player>(); if (players == null || players.Length == 0) { return(null); } else { return(players.ToList()); } }
public ListExecuteObject() { var interactiveObjects = Object.FindObjectsOfType <InteractiveObject>(); for (var i = 0; i < interactiveObjects.Length; i++) { interactiveObjects[i].gameObject.AddComponent <RadarObj>(); if (interactiveObjects[i] is IExecute interactiveObject) { AddExecuteObject(interactiveObject); } } }
public ListOfExecutables() { //Ищем все интерактивные объекты и, если они реализуют интерфейс IExecute, добавляем их в массив var interactiveObjects = Object.FindObjectsOfType <InteractiveObject>(); for (var i = 0; i < interactiveObjects.Length; i++) { if (interactiveObjects[i] is IExecutable executableObject) { AddExecutableObject(executableObject); } } }
public void Reload() { Array.Clear(_interactiveObjects, 0, _interactiveObjects.Length); Array.Resize(ref _interactiveObjects, 0); var interactiveObjects = Object.FindObjectsOfType <InteractiveObject>(); for (int i = 0; i < interactiveObjects.Length; i++) { if (interactiveObjects[i] is IExecute interactiveObject) { AddExecuteObject(interactiveObject); } } }
public override void Execute(ICommandContext context) { var respawnedCount = 0; var animals = Object.FindObjectsOfType <Animal>(); animals.Where(z => z.isDead).ForEach(animal => { AnimalManager.sendAnimalAlive(animal, animal.transform.position, 0); respawnedCount++; }); context.User.SendLocalizedMessage(Translations, "RESPAWNED_ANIMALS", respawnedCount); }
public static void RestoreAll() { foreach (Type serializedObjectType in fiRuntimeReflectionUtility.AllSimpleTypesDerivingFrom(typeof(ISerializedObject))) { if (typeof(UnityObject).IsAssignableFrom(serializedObjectType) == false) { continue; } UnityObject[] objects = UnityObject.FindObjectsOfType(serializedObjectType); for (int i = 0; i < objects.Length; ++i) { var obj = (ISerializedObject)objects[i]; obj.RestoreState(); } } }
public void OnProcessScene(Scene scene, BuildReport report) { if (report == null || !AlembicBuildPostProcess.TargetIsSupported(report.summary.platform)) { return; } var activeScene = SceneManager.GetActiveScene(); SceneManager.SetActiveScene(scene); var players = Object.FindObjectsOfType <AlembicStreamPlayer>(); var pathToStreamingAssets = GetStreamingAssetsPath(report.summary); foreach (var p in players) { ProcessAlembicStreamPlayerAssets(p, pathToStreamingAssets); } SceneManager.SetActiveScene(activeScene); }
public static void Postfix(VersionShower __instance) { foreach (Transform name in Object.FindObjectsOfType <Transform>()) { if (name.parent != null) { continue; } if (name.gameObject.name.Contains("ReactorVersion")) { name.gameObject.SetActive(false); } } var text = __instance.text; //text.text += "\nloaded <color=#FFBFCCFF>T[FF80D5FF]o[FFCC00FF]w[704FA8FF]n[FF0000FF] of[CC4D00FF] Us [FFFFFFFF]by [00FF00FF]slushiegoose[FFFFFFFF] </color>; text.text += " - <color=#00FF00FF>ProxyOfUs v1.0.4</color>"; }
public static void ForEachPlayer(Action <PlayerControls> host, Action <PlayerControls> remote) { var controls = Object.FindObjectsOfType <PlayerControls>(); if (controls != null && controls.Length > 0) { foreach (var control in controls) { if (AccessUtils.IsHost()) { host?.Invoke(control); } else { remote?.Invoke(control); } } } }
public override void Execute(ICommandContext context) { if (context.Parameters.Length == 0) { if (!(context.User is UnturnedUser)) { throw new CommandWrongUsageException(); } var currentVeh = ((UnturnedUser)context.User).Player.CurrentVehicle; if (currentVeh != null) { RepairVehicle(currentVeh); context.User.SendLocalizedMessage(Translations, "VEHICLE_REPAIRED"); } else { throw new CommandWrongUsageException(Translations.Get("NOT_IN_VEHICLE")); } return; } if (context.Parameters[0].Equals("all")) { if (context.User.CheckPermission($"RepairVehicle.all") != PermissionResult.Grant) { throw new NotEnoughPermissionsException(context.User, "RepairVehicle.all"); } var vehicles = Object.FindObjectsOfType <InteractableVehicle>(); lock (vehicles) { vehicles .Where(veh => !veh.isExploded && !veh.isUnderwater) .ForEach(RepairVehicle); context.User.SendLocalizedMessage(Translations, "VEHICLE_REPAIRED_ALL"); } } }
void ReallyCheck() { WalkKB(KnowledgeBase.Global); foreach (var component in Object.FindObjectsOfType <KB>()) { WalkKB(component.KnowledgeBase); } foreach (var pair in checkerInfoTable) { var checkerInfo = pair.Value; if (!checkerInfo.Referenced) { KnowledgeBaseRule rule = checkerInfo.DefiningRule; PredicateInfo global = KnowledgeBase.Global.CheckForPredicateInfo(new PredicateIndicator(rule.HeadFunctor, rule.HeadArity)); if (global == null || !global.External) { rule.PrintWarning("{0}/{1} is never used.", rule.HeadFunctor, rule.HeadArity); } } } }
public void HandleMessage(IServerMessageBase msg) { if (!(msg.Data is FacilityBaseMsgData msgData)) { return; } switch (msgData.FacilityMessageType) { case FacilityMessageType.Upgrade: var upgradeMsg = (FacilityUpgradeMsgData)msgData; var upgrFacility = Object.FindObjectsOfType <UpgradeableFacility>().FirstOrDefault(o => o.id == upgradeMsg.ObjectId); if (upgrFacility != null) { System.UpgradeFacilityWithoutSendingMessage(upgrFacility, upgradeMsg.Level); } break; case FacilityMessageType.Repair: case FacilityMessageType.Collapse: var destructibleFacility = Object.FindObjectsOfType <DestructibleBuilding>().FirstOrDefault(o => o.id == msgData.ObjectId); if (destructibleFacility != null) { switch (msgData.FacilityMessageType) { case FacilityMessageType.Repair: System.RepairFacilityWithoutSendingMessage(destructibleFacility); break; case FacilityMessageType.Collapse: System.CollapseFacilityWithoutSendingMessage(destructibleFacility); break; } } break; default: throw new ArgumentOutOfRangeException(); } }
public override TrackedReference[] Track(Type type) { var enumValues = Enum.GetValues(type).Cast <Enum>().ToArray(); var referencers = Object.FindObjectsOfType <EnumReferencer>().ToDictionary(referencer => referencer.Address); var trackedReferences = new TrackedReference[enumValues.Length]; for (var i = 0; i < enumValues.Length; i++) { var address = enumValues[i].GetNiceName(); if (referencers.TryGetValue(enumValues[i].GetNiceName(), out var referencer)) { trackedReferences[i] = new TrackedReference(address, true, referencer); } else { trackedReferences[i] = new TrackedReference(address, false, null); } } return(trackedReferences); }
public static void RemoveAllSerializedData() { foreach (Type serializedObjectType in fiRuntimeReflectionUtility.AllSimpleTypesDerivingFrom(typeof(ISerializedObject))) { if (typeof(UnityObject).IsAssignableFrom(serializedObjectType) == false) { continue; } UnityObject[] objects = UnityObject.FindObjectsOfType(serializedObjectType); for (int i = 0; i < objects.Length; ++i) { var obj = (ISerializedObject)objects[i]; obj.SerializedStateKeys = new List <string>(); obj.SerializedStateValues = new List <string>(); obj.SerializedObjectReferences = new List <UnityObject>(); obj.SaveState(); } } RemoveMetadata(); }
/// <summary> /// 创建服务管理器对象。构建服务查询表并自启动所有未被禁用的服务。 /// </summary> /// /// <author>Nianchen Deng</author> public _ServiceManager() { // 获取所有服务实例并根据executeOrder从小到大排序 _allServices = Object.FindObjectsOfType <_Service> ().ToList(); if (_allServices.Any(service => service.executeOrder < 0)) { ULogger.Error("Some services have missing dependencies!"); _allServices.Clear(); Framework.Quit(); return; } _allServices.Sort((s1, s2) => s1.executeOrder - s2.executeOrder); // 构建映射表 foreach (var service in _allServices) { if (!_serviceList.TryGetValue(service.GetType(), out var subList)) { _serviceList.Add(service.GetType(), subList = new Dictionary <string, _Service> ()); } subList.Add(service.name, service); } }