Esempio n. 1
0
 public static void OnIncSwitchClick_Prefix(UILabWindow __instance)
 {
     //Notify about production mode switch
     if (Multiplayer.IsActive)
     {
         Multiplayer.Session.Network.SendPacketToLocalStar(new LaboratoryUpdateEventPacket(-4, __instance.labId, GameMain.localPlanet?.id ?? -1));
     }
 }
Esempio n. 2
0
 public static void OnBackButtonClick_Prefix(UILabWindow __instance)
 {
     //Notify about recipe reset
     if (SimulatedWorld.Initialized)
     {
         LocalPlayer.SendPacketToLocalStar(new LaboratoryUpdateEventPacket(-2, __instance.labId, GameMain.localPlanet?.id ?? -1));
     }
 }
Esempio n. 3
0
 public static void OnBackButtonClick_Prefix(UILabWindow __instance)
 {
     //Notify about recipe reset
     if (Multiplayer.IsActive)
     {
         Multiplayer.Session.Network.SendPacketToLocalStar(new LaboratoryUpdateEventPacket(-2, __instance.labId, GameMain.localPlanet?.id ?? -1));
     }
 }
Esempio n. 4
0
        public static void OnUIUpdate(UILabWindow __instance)
        {
            if (__instance.labId == 0 || __instance.factory == null)
            {
                return;
            }
            LabComponent labComponent = __instance.factorySystem.labPool[__instance.labId];

            if (!labComponent.recipeIsLocked)
            {
                __instance.stateText.text  = "recipeLockedWarn".Translate();
                __instance.stateText.color = __instance.workStoppedColor;
            }
        }
Esempio n. 5
0
        public static void OnItemButtonClick_Prefix(UILabWindow __instance)
        {
            LabComponent labComponent = GameMain.localPlanet.factory.factorySystem.labPool[__instance.labId];

            if (labComponent.matrixMode)
            {
                //Notify about withdrawing produced cubes
                LocalPlayer.SendPacketToLocalStar(new LaboratoryUpdateEventPacket(-3, __instance.labId, GameMain.localPlanet?.factoryIndex ?? -1));
            }
            else if (!labComponent.researchMode)
            {
                //Notify about selection of research mode
                LocalPlayer.SendPacketToLocalStar(new LaboratoryUpdateEventPacket(-1, __instance.labId, GameMain.localPlanet?.factoryIndex ?? -1));
            }
        }
Esempio n. 6
0
        public static void OnItemButtonClick_Prefix(UILabWindow __instance, int index, ref bool __state)
        {
            if (!Multiplayer.IsActive)
            {
                return;
            }

            __state = false;
            LabComponent labComponent = GameMain.localPlanet.factory.factorySystem.labPool[__instance.labId];

            if (!labComponent.researchMode && !labComponent.matrixMode)
            {
                //Notify about changing matrix selection
                Multiplayer.Session.Network.SendPacketToLocalStar(new LaboratoryUpdateEventPacket(index, __instance.labId, GameMain.localPlanet?.id ?? -1));
                __state = true;
            }
        }
Esempio n. 7
0
        public static void OnItemButtonClick_Postfix(UILabWindow __instance, int index, bool __state)
        {
            // Skip if lab was in neither researchMode nor matrixMode
            if (!Multiplayer.IsActive || __state)
            {
                return;
            }

            LabComponent labComponent = GameMain.localPlanet.factory.factorySystem.labPool[__instance.labId];

            if (labComponent.researchMode)
            {
                Multiplayer.Session.Network.SendPacketToLocalStar(new LaboratoryUpdateCubesPacket(labComponent.matrixServed[index], labComponent.matrixIncServed[index], index, __instance.labId, GameMain.localPlanet?.id ?? -1));
            }
            else if (labComponent.matrixMode)
            {
                Multiplayer.Session.Network.SendPacketToLocalStar(new LaboratoryUpdateStoragePacket(labComponent.served[index], labComponent.incServed[index], index, __instance.labId, GameMain.localPlanet?.id ?? -1));
            }
        }
Esempio n. 8
0
        public static void OnItemButtonClick_Prefix(UILabWindow __instance, int index)
        {
            if (!SimulatedWorld.Initialized)
            {
                return;
            }

            LabComponent labComponent = GameMain.localPlanet.factory.factorySystem.labPool[__instance.labId];

            if (labComponent.researchMode)
            {
                if (GameMain.mainPlayer.inhandItemId > 0 && GameMain.mainPlayer.inhandItemCount > 0)
                {
                    //Notify about depositing source cubes
                    ItemProto[] matrixProtos = (ItemProto[])AccessTools.Field(typeof(UILabWindow), "matrixProtos").GetValue(__instance);
                    int         id           = matrixProtos[index].ID;
                    if (GameMain.mainPlayer.inhandItemId == id)
                    {
                        int num  = labComponent.matrixServed[index] / 3600;
                        int num2 = 100 - num;
                        if (num2 < 0)
                        {
                            num2 = 0;
                        }
                        int num3 = (GameMain.mainPlayer.inhandItemCount >= num2) ? num2 : GameMain.mainPlayer.inhandItemCount;
                        if (num3 > 0)
                        {
                            LocalPlayer.SendPacketToLocalStar(new LaboratoryUpdateCubesPacket(labComponent.matrixServed[index] + num3 * 3600, index, __instance.labId, GameMain.localPlanet?.id ?? -1));
                        }
                    }
                }
                else
                {
                    //Notify about widthrawing source cubes
                    if ((int)(labComponent.matrixServed[index] / 3600) > 0)
                    {
                        LocalPlayer.SendPacketToLocalStar(new LaboratoryUpdateCubesPacket(0, index, __instance.labId, GameMain.localPlanet?.id ?? -1));
                    }
                }
            }
            else if (labComponent.matrixMode)
            {
                if (GameMain.mainPlayer.inhandItemId > 0 && GameMain.mainPlayer.inhandItemCount > 0)
                {
                    //Notify about depositing source items to the center
                    int num7 = labComponent.served[index];
                    int num8 = 100 - num7;
                    if (num8 < 0)
                    {
                        num8 = 0;
                    }
                    int num9 = (GameMain.mainPlayer.inhandItemCount >= num8) ? num8 : GameMain.mainPlayer.inhandItemCount;
                    if (num9 > 0)
                    {
                        LocalPlayer.SendPacketToLocalStar(new LaboratoryUpdateStoragePacket(labComponent.served[index] + num9, index, __instance.labId, GameMain.localPlanet?.id ?? -1));
                    }
                }
                else
                {
                    //Notify about withdrawing source items from the center
                    if (labComponent.served[index] > 0)
                    {
                        LocalPlayer.SendPacketToLocalStar(new LaboratoryUpdateStoragePacket(0, index, __instance.labId, GameMain.localPlanet?.id ?? -1));
                    }
                }
            }
            else
            {
                //Notify about changing matrix selection
                LocalPlayer.SendPacketToLocalStar(new LaboratoryUpdateEventPacket(index, __instance.labId, GameMain.localPlanet?.id ?? -1));
            }
        }
Esempio n. 9
0
 public static void OnBackButtonClick_Prefix(UILabWindow __instance)
 {
     //Notify about recipe reset
     LocalPlayer.SendPacketToLocalStar(new LaboratoryUpdateEventPacket(-2, __instance.labId, GameMain.localPlanet?.factoryIndex ?? -1));
 }
Esempio n. 10
0
 public static void OnBackButtonClick_Prefix(UILabWindow __instance)
 {
     //Notify about recipe reset
     LocalPlayer.SendPacketToLocalPlanet(new LaboratoryUpdateEventPacket(-2, __instance.labId));
 }