Ejemplo n.º 1
0
        public static void ImportStation()
        {
            var json     = File.ReadAllText("../../../Resources/stations.json");
            var stations = JsonConvert.DeserializeObject <ICollection <Station> >(json);

            StationStore.AddStation(stations);
        }
Ejemplo n.º 2
0
        public static void ImportStations()
        {
            string json     = ReadJsonFile("stations");
            var    stations = JsonConvert.DeserializeObject <IEnumerable <Station> >(json);

            StationStore.AddStations(stations);
        }
Ejemplo n.º 3
0
        public static bool _OnUpdate_Prefix(UIStationWindow __instance)
        {
            if (!Multiplayer.IsActive)
            {
                return(true);
            }

            // When releasing left mouse button
            if (Input.GetMouseButtonUp(0))
            {
                if (Multiplayer.Session.StationsUI.SliderBarPacket.SettingIndex != StationUI.EUISettings.None)
                {
                    // Send SliderBarPacket when left mouse button is released
                    Multiplayer.Session.Network.SendPacket(Multiplayer.Session.StationsUI.SliderBarPacket);
                    Multiplayer.Session.StationsUI.SliderBarPacket.SettingIndex = StationUI.EUISettings.None;
                }
                if (Multiplayer.Session.StationsUI.StorageMaxChangeId >= 0)
                {
                    // Do the job in UIStationStorage.OnMaxSliderValueChange()
                    int          index        = Multiplayer.Session.StationsUI.StorageMaxChangeId;
                    float        val          = __instance.storageUIs[index].maxSlider.value;
                    StationStore stationStore = __instance.transport.stationPool[__instance.stationId].storage[index];
                    __instance.transport.SetStationStorage(__instance.stationId, index, stationStore.itemId, (int)(val * 100f + 0.5f), stationStore.localLogic, stationStore.remoteLogic, GameMain.mainPlayer);

                    // In client side, preserve displaying slider value until host response
                    Multiplayer.Session.StationsUI.StorageMaxChangeId = Multiplayer.Session.LocalPlayer.IsHost ? -1 : -2;
                }
            }

            // Request for remoteOrder update every 180tick
            if (Multiplayer.Session.LocalPlayer.IsClient && GameMain.gameTick - lastUpdateGametick > 180)
            {
                int gid = __instance.transport?.stationPool?[__instance.stationId].gid ?? 0;
                if (gid > 0)
                {
                    Multiplayer.Session.Network.SendPacket(new RemoteOrderUpdate(gid, System.Array.Empty <int>()));
                }
                lastUpdateGametick = GameMain.gameTick;
            }

            return(true);
        }