Skip to content

Commit

Permalink
clear data befor open
Browse files Browse the repository at this point in the history
  • Loading branch information
smallp committed Apr 18, 2022
1 parent 495338e commit 30bc078
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 23 deletions.
3 changes: 3 additions & 0 deletions MyFirstPlugin.csproj
Expand Up @@ -30,5 +30,8 @@
<HintPath>lib\netstandard.dll</HintPath>
<CopyLocal>False</CopyLocal>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>lib\UnityEngine.UI.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
4 changes: 1 addition & 3 deletions Patch.cs
Expand Up @@ -9,13 +9,11 @@ internal class DSPPatch
[HarmonyPrefix, HarmonyPatch(typeof(UIStationWindow), "_OnOpen")]
public static bool openStorageWindow(UIStationWindow __instance)
{
Debug.Log(__instance.stationId);
//如果有factory,跳过初始化过程
if (__instance.factory == null)
{
return true;
}
Debug.Log(__instance.factory.planet);
//如果有factory,跳过初始化过程
__instance.transform.SetAsLastSibling();
return false;
}
Expand Down
48 changes: 28 additions & 20 deletions Plugin.cs
Expand Up @@ -3,6 +3,7 @@
using UnityEngine;
using System.Collections.Generic;
using System.Reflection;
using UnityEngine.Events;

namespace MyFirstPlugin
{
Expand All @@ -15,9 +16,10 @@ public class Plugin : BaseUnityPlugin

private List<TransportInfo> arrayList = new List<TransportInfo>();
internal static string search = "";
internal static Dictionary<int,string> itemCache = new Dictionary<int, string>();
internal static Dictionary<int, string> itemCache = new Dictionary<int, string>();
internal static List<Cell> cells = new List<Cell>();
internal static Vector2 scroll = new Vector2(0,0);
internal static Vector2 scroll = new Vector2(0, 0);
internal static double time = 0;

private void Awake()
{
Expand All @@ -28,12 +30,11 @@ private void Awake()
Window.Show = false;
Window.OnWinodwGUI = guiInfo;
Window.OnWindowOpen = () =>
{
getInfo();
};
Window.OnWindowClose = () =>
{
arrayList.Clear();
itemCache.Clear();
cells.Clear();
getInfo();
};
}

Expand All @@ -46,9 +47,9 @@ void Update()
{
if (Input.GetKeyDown(KeyCode.F4))
{
if (!GameMain.isRunning)
if (!GameMain.isRunning && !GameMain.isPaused)
{
Window.Show=false;
Window.Show = false;
return;
}
Window.Show = !Window.Show;
Expand All @@ -61,16 +62,16 @@ void getInfo()
Dictionary<int, List<TransportInfo>> map = new Dictionary<int, List<TransportInfo>>();
foreach (StationComponent station in stations)
{
if (station==null || station.isCollector || station.isVeinCollector)
if (station == null || station.isCollector || station.isVeinCollector)
{
continue;
}
TransportInfo info=new TransportInfo();
TransportInfo info = new TransportInfo();
info.id = station.id;
info.gid = station.gid;
info.name = string.IsNullOrEmpty(station.name)?"transfer-"+ info.id : station.name;
info.entityId=station.entityId;
info.planetId=station.planetId;
info.name = string.IsNullOrEmpty(station.name) ? "transfer-" + info.id : station.name;
info.entityId = station.entityId;
info.planetId = station.planetId;
arrayList.Add(info);
int galaxy = station.planetId / 100;
if (!map.ContainsKey(galaxy))
Expand All @@ -81,9 +82,9 @@ void getInfo()
}
foreach (var kv in map)
{
string name=GameMain.galaxy.StarById(kv.Key).displayName;
string name = GameMain.galaxy.StarById(kv.Key).displayName;
kv.Value.Sort();
cells.Add(new Cell(name,kv.Value, OpenTransfer));
cells.Add(new Cell(name, kv.Value, OpenTransfer));
}
}

Expand All @@ -92,9 +93,9 @@ void UpdateItems()
StationComponent[] stations = GameMain.data.galacticTransport.stationPool;
foreach (var info in arrayList)
{
var item=stations[info.gid];
var item = stations[info.gid];
int i = -1;
foreach(var storage in item.storage)
foreach (var storage in item.storage)
{
i++;
if (storage.itemId <= 0) continue;
Expand All @@ -109,14 +110,17 @@ void UpdateItems()

void OpenTransfer(TransportInfo item)
{
var uigame=UIRoot.instance.uiGame;
var uigame = UIRoot.instance.uiGame;
uigame.OpenPlayerInventory();
var win = uigame.stationWindow;
win.player= GameMain.mainPlayer;
win.player = GameMain.mainPlayer;
win.factory = GameMain.data.GetOrCreateFactory(GameMain.data.galaxy.PlanetById(item.planetId));
win.transport = win.factory.transport;
win.powerSystem = win.factory.powerSystem;
win.factorySystem = win.factory.factorySystem;

win.nameInput.onValueChanged.AddListener(new UnityAction<string>(win.OnNameInputSubmit));
win.nameInput.onEndEdit.AddListener(new UnityAction<string>(win.OnNameInputSubmit));
win._Open();
win.stationId = item.id;
Window.Show = false;
Expand All @@ -129,7 +133,11 @@ void OnGUI()

void guiInfo()
{
UpdateItems();
if (GameMain.gameTime - time > 1)
{
UpdateItems();
time = GameMain.gameTime;
}
GUILayout.BeginHorizontal();
GUILayout.Label("Search:", GUILayout.ExpandWidth(false));
search = GUILayout.TextField(search);
Expand Down

0 comments on commit 30bc078

Please sign in to comment.