public static void OnManualServingContentChange_Postfix(UIEjectorWindow __instance) { //Notify about manual bullet inserting / withdrawing change StorageComponent storage = (StorageComponent)AccessTools.Field(typeof(UIEjectorWindow), "servingStorage").GetValue(__instance); LocalPlayer.SendPacketToLocalPlanet(new EjectorStorageUpdatePacket(__instance.ejectorId, storage.grids[0].count)); }
public static void OnSetOrbit_Postfix(UIEjectorWindow __instance, int orbitId) { //Notify about target orbit change if (SimulatedWorld.Initialized) { LocalPlayer.SendPacketToLocalStar(new EjectorOrbitUpdatePacket(__instance.ejectorId, orbitId, GameMain.localPlanet?.id ?? -1)); } }
public static void OnSetOrbit_Postfix(UIEjectorWindow __instance, int orbitId) { //Notify about target orbit change if (Multiplayer.IsActive) { Multiplayer.Session.Network.SendPacketToLocalStar(new EjectorOrbitUpdatePacket(__instance.ejectorId, orbitId, GameMain.localPlanet?.id ?? -1)); } }
public static void OnManualServingContentChange_Postfix(UIEjectorWindow __instance) { //Notify about manual bullet inserting / withdrawing change if (SimulatedWorld.Initialized) { StorageComponent storage = (StorageComponent)AccessTools.Field(typeof(UIEjectorWindow), "servingStorage").GetValue(__instance); LocalPlayer.SendPacketToLocalStar(new EjectorStorageUpdatePacket(__instance.ejectorId, storage.grids[0].count, GameMain.localPlanet?.id ?? -1)); } }
public static void OnManualServingContentChange_Postfix(UIEjectorWindow __instance) { //Notify about manual bullet inserting / withdrawing change if (Multiplayer.IsActive) { StorageComponent storage = __instance.servingStorage; Multiplayer.Session.Network.SendPacketToLocalStar(new EjectorStorageUpdatePacket(__instance.ejectorId, storage.grids[0].count, storage.grids[0].inc, GameMain.localPlanet?.id ?? -1)); } }
public static void OnSetOrbit_Postfix(UIEjectorWindow __instance, int orbitId) { //Notify about target orbit change LocalPlayer.SendPacketToLocalPlanet(new EjectorOrbitUpdatePacket(__instance.ejectorId, orbitId)); }
public static void UIEjectorWindow__OnUpdate_Postfix(ref UIEjectorWindow __instance, ref UIOrbitPicker ___orbitPicker) { if (__instance.ejectorId != 0 && __instance.factory != null) { if (autoRetargetingGO == null) { var stateText = GameObject.Find("UI Root/Overlay Canvas/In Game/Windows/Ejector Window/state/state-text"); autoRetargetingGO = Instantiate(stateText, stateText.transform.position, Quaternion.identity); autoRetargetingGO.name = "auto-retargeting"; autoRetargetingGO.transform.SetParent(stateText.transform.parent); autoRetargetingGO.transform.localScale = new Vector3(1f, 1f, 1f); autoRetargetingGO.transform.localPosition = stateText.transform.localPosition + new Vector3(0f, -24f, 0f); } EjectorComponent ejector = __instance.factorySystem.ejectorPool[__instance.ejectorId]; var ejectorUID = GetEjectorUID(ejector); var text = "Retargeting - Original Orbit"; var color = TEXT_WHITE; ManagedEjector managedEjector = GetOrCreateManagedEjector(ejectorUID, ejector.orbitId); bool isAlternativeOrbit = ejector.orbitId != managedEjector.originalOrbitId; if (ejector.targetState == EjectorComponent.ETargetState.AngleLimit) { text = "Retargeting - No valid alternative"; color = TEXT_ORANGE; } if (isAlternativeOrbit) { ___orbitPicker.orbitId = managedEjector.originalOrbitId; text = $"Retargeting - Alternative Orbit [ {ejector.orbitId} ]"; color = TEXT_CYAN; } for (var i = 0; i < ___orbitPicker.orbitButtons.Length; i++) { var orbitButton = ___orbitPicker.orbitButtons[i]; var transition = orbitButton.transitions[0]; if (orbitButton.highlighted || orbitButton.updating || orbitButton.isPointerEnter || orbitButton.isPointerDown || !orbitButton.button.interactable) { continue; } if (isAlternativeOrbit && i == ejector.orbitId) { transition.target.color = BUTTON_CYAN; } else if (transition.target.color != transition.normalColor) { transition.target.color = transition.normalColor; } } var autoRetargetingText = autoRetargetingGO.GetComponent <Text>(); autoRetargetingText.text = text; autoRetargetingText.color = color; } }