fixed merge conflict

This commit is contained in:
FreezeDriedMangoes 2022-06-27 17:21:33 -04:00
commit 63383ef6d3
4 changed files with 408 additions and 396 deletions

View File

@ -446,15 +446,15 @@ namespace NewHorizons
if (!foundFile) Logger.LogWarning($"{mod.ModHelper.Manifest.Name} has a folder for translations but none were loaded");
}
public NewHorizonsBody LoadConfig(IModBehaviour mod, string relativeDirectory)
public NewHorizonsBody LoadConfig(IModBehaviour mod, string relativePath)
{
NewHorizonsBody body = null;
try
{
var config = mod.ModHelper.Storage.Load<PlanetConfig>(relativeDirectory);
var config = mod.ModHelper.Storage.Load<PlanetConfig>(relativePath);
if (config == null)
{
Logger.LogError($"Couldn't load {relativeDirectory}. Is your Json formatted correctly?");
Logger.LogError($"Couldn't load {relativePath}. Is your Json formatted correctly?");
return null;
}
@ -479,11 +479,11 @@ namespace NewHorizons
// Has to happen after we make sure theres a system config
config.MigrateAndValidate();
body = new NewHorizonsBody(config, mod, relativeDirectory);
body = new NewHorizonsBody(config, mod, relativePath);
}
catch (Exception e)
{
Logger.LogError($"Error encounter when loading {relativeDirectory}: {e.Message} {e.StackTrace}");
Logger.LogError($"Error encounter when loading {relativePath}: {e.Message} {e.StackTrace}");
}
return body;

View File

@ -28,17 +28,16 @@ namespace NewHorizons.Utility.DebugMenu
static bool openMenuOnPause;
static bool staticInitialized;
// menu params
// Menu params
internal static IModBehaviour loadedMod = null;
internal Dictionary<string, PlanetConfig> loadedConfigFiles = new Dictionary<string, PlanetConfig>();
private bool saveButtonUnlocked = false;
private Vector2 recentModListScrollPosition = Vector2.zero;
// submenus
// Submenus
private List<DebugSubmenu> submenus;
private int activeSubmenu = 0;
private static JsonSerializerSettings jsonSettings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
@ -55,7 +54,6 @@ namespace NewHorizons.Utility.DebugMenu
new DebugMenuNomaiText()
};
submenus.ForEach((submenu) => submenu.OnAwake(this));
}
@ -89,6 +87,7 @@ namespace NewHorizons.Utility.DebugMenu
pauseMenuButton = Main.Instance.ModHelper.Menus.PauseMenu.OptionsButton.Duplicate(TranslationHandler.GetTranslation("Toggle Dev Tools Menu", TranslationHandler.TextType.UI).ToUpper());
InitMenu();
}
public static void UpdatePauseMenuButton()
{
if (pauseMenuButton != null)
@ -99,11 +98,11 @@ namespace NewHorizons.Utility.DebugMenu
}
private void RestoreMenuOpennessState() { menuOpen = openMenuOnPause; }
private void ToggleMenu() { menuOpen = !menuOpen; openMenuOnPause = !openMenuOnPause; }
private void CloseMenu() { menuOpen = false; }
private void OnGUI()
{
if (!menuOpen) return;
@ -113,8 +112,7 @@ namespace NewHorizons.Utility.DebugMenu
GUILayout.BeginArea(new Rect(menuPosition.x, menuPosition.y, EditorMenuSize.x, EditorMenuSize.y), _editorMenuStyle);
// continue working on existing mod
// Continue working on existing mod
GUILayout.Label("Name of your mod");
if (loadedMod == null)
{
@ -138,9 +136,9 @@ namespace NewHorizons.Utility.DebugMenu
GUILayout.Space(5);
// save your work
if (loadedMod != null) {
// Save your work
if (loadedMod != null)
{
GUILayout.BeginHorizontal();
if (GUILayout.Button(saveButtonUnlocked ? " O " : " | ", GUILayout.ExpandWidth(false)))
{
@ -158,7 +156,7 @@ namespace NewHorizons.Utility.DebugMenu
GUILayout.Space(20);
// draw submenu stuff
// Draw submenu stuff
if (loadedMod != null)
{
GUILayout.BeginHorizontal(_tabBarStyle);
@ -167,7 +165,7 @@ namespace NewHorizons.Utility.DebugMenu
{
GUI.enabled = i != activeSubmenu;
var style = i == activeSubmenu ? _submenuStyle : _tabBarStyle;
if (GUILayout.Button(" "+submenus[i].SubmenuName()+" ", style, GUILayout.ExpandWidth(false)))
if (GUILayout.Button(" " + submenus[i].SubmenuName() + " ", style, GUILayout.ExpandWidth(false)))
{
GUI.enabled = true;
submenus[activeSubmenu].LoseActive();
@ -187,7 +185,6 @@ namespace NewHorizons.Utility.DebugMenu
GUILayout.EndVertical();
}
GUILayout.EndArea();
}
@ -198,15 +195,16 @@ namespace NewHorizons.Utility.DebugMenu
var folder = loadedMod.ModHelper.Manifest.ModFolderPath;
List<NewHorizonsBody> bodiesForThisMod = Main.BodyDict.Values.SelectMany(x => x).Where(x => x.Mod == loadedMod).ToList();
foreach (NewHorizonsBody body in bodiesForThisMod)
var bodiesForThisMod = Main.BodyDict.Values.SelectMany(x => x).Where(x => x.Mod == loadedMod).ToList();
foreach (var body in bodiesForThisMod)
{
if (body.RelativePath == null)
{
Logger.Log("Error loading config for " + body.Config.name + " in " + body.Config.starSystem);
Logger.Log($"Error loading config for {body.Config.name} in {body.Config.starSystem}");
continue;
}
loadedConfigFiles[folder + body.RelativePath] = (body.Config as PlanetConfig);
loadedConfigFiles[folder + body.RelativePath] = body.Config;
submenus.ForEach(submenu => submenu.LoadConfigFile(this, body.Config));
}
}
@ -215,12 +213,14 @@ namespace NewHorizons.Utility.DebugMenu
{
submenus.ForEach(submenu => submenu.PreSave(this));
string backupFolderName = "configBackups\\" + DateTime.Now.ToString("yyyyMMddTHHmmss") + "\\";
var backupFolderName = $"configBackups\\{DateTime.Now.ToString("yyyyMMddTHHmmss")}\\";
Logger.Log($"Potentially saving {loadedConfigFiles.Keys.Count} files");
foreach (var filePath in loadedConfigFiles.Keys)
{
Logger.Log("Possibly Saving... " + loadedConfigFiles[filePath].name + " @ " + filePath);
Logger.Log($"Possibly Saving... {loadedConfigFiles[filePath].name} @ {filePath}");
if (loadedConfigFiles[filePath].starSystem != Main.Instance.CurrentStarSystem) continue;
var relativePath = filePath.Replace(loadedMod.ModHelper.Manifest.ModFolderPath, "");
@ -231,14 +231,17 @@ namespace NewHorizons.Utility.DebugMenu
try
{
Logger.Log("Saving... " + relativePath + " to " + filePath);
Logger.Log($"Saving... {relativePath} to {filePath}");
var path = loadedMod.ModHelper.Manifest.ModFolderPath + relativePath;
var directoryName = Path.GetDirectoryName(path);
Directory.CreateDirectory(directoryName);
File.WriteAllText(path, json);
}
catch (Exception e) { Logger.LogError("Failed to save file " + backupFolderName + relativePath); Logger.LogError(e.Message + "\n" + e.StackTrace); }
catch (Exception e)
{
Logger.LogError($"Failed to save file {relativePath}:\n{e.Message}\n{e.StackTrace}");
}
try
{
@ -248,7 +251,10 @@ namespace NewHorizons.Utility.DebugMenu
File.WriteAllText(path, json);
}
catch (Exception e) { Logger.LogError("Failed to save backup file " + backupFolderName + relativePath); Logger.LogError(e.Message + "\n" + e.StackTrace); }
catch (Exception e)
{
Logger.LogError($"Failed to save backup file {backupFolderName}{relativePath}:\n{e.Message}\n{e.StackTrace}");
}
}
}
@ -263,7 +269,6 @@ namespace NewHorizons.Utility.DebugMenu
submenus.ForEach(submenu => submenu.OnInit(this));
_editorMenuStyle = new GUIStyle
{
normal =

View File

@ -114,8 +114,8 @@ namespace NewHorizons.Utility.DebugMenu
private void DrawPropsAdustmentControls(DebugMenu menu)
{
var propPath = _dpp.mostRecentlyPlacedPropPath;
var propPathElements = propPath[propPath.Length-1] == '/'
? propPath.Substring(0, propPath.Length-1).Split('/')
var propPathElements = propPath[propPath.Length - 1] == '/'
? propPath.Substring(0, propPath.Length - 1).Split('/')
: propPath.Split('/');
string propName = propPathElements[propPathElements.Length - 1];
GUILayout.Label($"Reposition {propName}: ");
@ -143,7 +143,7 @@ namespace NewHorizons.Utility.DebugMenu
if (latestPropSphericalPosDelta != Vector3.zero)
{
DeltaSphericalPosition(mostRecentlyPlacedProp, latestPropSphericalPosDelta);
mostRecentlyPlacedPropSphericalPos = mostRecentlyPlacedPropSphericalPos+latestPropSphericalPosDelta;
mostRecentlyPlacedPropSphericalPos = mostRecentlyPlacedPropSphericalPos + latestPropSphericalPosDelta;
}
GUILayout.Space(5);
@ -155,7 +155,7 @@ namespace NewHorizons.Utility.DebugMenu
float deltaRot = 0;
if (GUILayout.Button("+", GUILayout.ExpandWidth(false))) deltaRot += propRotationAboutLocalUpDelta;
if (GUILayout.Button("-", GUILayout.ExpandWidth(false))) deltaRot -= propRotationAboutLocalUpDelta;
propRotationAboutLocalUpDelta = float.Parse(GUILayout.TextField(propRotationAboutLocalUpDelta+"", GUILayout.Width(100)));
propRotationAboutLocalUpDelta = float.Parse(GUILayout.TextField(propRotationAboutLocalUpDelta + "", GUILayout.Width(100)));
if (deltaRot != 0)
{
@ -167,13 +167,13 @@ namespace NewHorizons.Utility.DebugMenu
GUILayout.BeginHorizontal();
GUILayout.Label("scale: ", GUILayout.Width(50));
var scaleString = mostRecentlyPlacedProp.transform.localScale.x+"";
var newScaleString = GUILayout.TextField(scaleString , GUILayout.Width(50));
var parsedScaleString = mostRecentlyPlacedProp.transform.localScale.x; try { parsedScaleString = float.Parse(newScaleString); } catch {}
var scaleString = mostRecentlyPlacedProp.transform.localScale.x + "";
var newScaleString = GUILayout.TextField(scaleString, GUILayout.Width(50));
var parsedScaleString = mostRecentlyPlacedProp.transform.localScale.x; try { parsedScaleString = float.Parse(newScaleString); } catch { }
float deltaScale = scaleString == newScaleString ? 0 : parsedScaleString - mostRecentlyPlacedProp.transform.localScale.x;
if (GUILayout.Button("+", GUILayout.ExpandWidth(false))) deltaScale += propScaleDelta;
if (GUILayout.Button("-", GUILayout.ExpandWidth(false))) deltaScale -= propScaleDelta;
propScaleDelta = float.Parse(GUILayout.TextField(propScaleDelta+"", GUILayout.Width(100)));
propScaleDelta = float.Parse(GUILayout.TextField(propScaleDelta + "", GUILayout.Width(100)));
if (deltaScale != 0)
{
@ -190,7 +190,7 @@ namespace NewHorizons.Utility.DebugMenu
Vector3 sphericalPos = CoordinateUtilities.CartesianToSpherical(originalLocalPos);
if (deltaSpherical == Vector3.zero) return sphericalPos;
Vector3 newSpherical = sphericalPos+deltaSpherical;
Vector3 newSpherical = sphericalPos + deltaSpherical;
Vector3 finalLocalPosition = CoordinateUtilities.SphericalToCartesian(newSpherical);
Vector3 finalAbsolutePosition = astroObject.TransformPoint(finalLocalPosition);
@ -217,36 +217,38 @@ namespace NewHorizons.Utility.DebugMenu
// x
GUILayout.BeginHorizontal();
GUILayout.Label(labelX+": ", GUILayout.Width(50));
var xString = input.x+"";
GUILayout.Label(labelX + ": ", GUILayout.Width(50));
var xString = input.x + "";
var newXString = GUILayout.TextField(xString, GUILayout.Width(50));
var parsedXString = input.x; try { parsedXString = float.Parse(newXString); } catch {}
var parsedXString = input.x; try { parsedXString = float.Parse(newXString); } catch { }
float deltaX = xString == newXString ? 0 : parsedXString - input.x;
if (GUILayout.Button("+", GUILayout.ExpandWidth(false))) deltaX += dx;
if (GUILayout.Button("-", GUILayout.ExpandWidth(false))) deltaX -= dx;
dx = float.Parse(GUILayout.TextField(dx+"", GUILayout.Width(100)));
dx = float.Parse(GUILayout.TextField(dx + "", GUILayout.Width(100)));
GUILayout.EndHorizontal();
// y
GUILayout.BeginHorizontal();
GUILayout.Label(labelY+": ", GUILayout.Width(50));
var yString = input.y+"";
GUILayout.Label(labelY + ": ", GUILayout.Width(50));
var yString = input.y + "";
var newYString = GUILayout.TextField(yString, GUILayout.Width(50));
var parsedYString = input.y; try { parsedYString = float.Parse(newYString); } catch {}
var parsedYString = input.y; try { parsedYString = float.Parse(newYString); } catch { }
float deltaY = yString == newYString ? 0 : parsedYString - input.y;
if (GUILayout.Button("+", GUILayout.ExpandWidth(false))) deltaY += dy;
if (GUILayout.Button("-", GUILayout.ExpandWidth(false))) deltaY -= dy;
dy = float.Parse(GUILayout.TextField(dy+"", GUILayout.Width(100)));
dy = float.Parse(GUILayout.TextField(dy + "", GUILayout.Width(100)));
GUILayout.EndHorizontal();
// z
GUILayout.BeginHorizontal();
GUILayout.Label(labelZ+": ", GUILayout.Width(50));
var zString = input.z+"";
GUILayout.Label(labelZ + ": ", GUILayout.Width(50));
var zString = input.z + "";
var newZString = GUILayout.TextField(zString, GUILayout.Width(50));
var parsedZString = input.z; try { parsedZString = float.Parse(newZString); } catch {}
var parsedZString = input.z; try { parsedZString = float.Parse(newZString); } catch { }
float deltaZ = zString == newZString ? 0 : parsedZString - input.z;
if (GUILayout.Button("+", GUILayout.ExpandWidth(false))) deltaZ += dz;
if (GUILayout.Button("-", GUILayout.ExpandWidth(false))) deltaZ -= dz;
dz = float.Parse(GUILayout.TextField(dz+"", GUILayout.Width(100)));
dz = float.Parse(GUILayout.TextField(dz + "", GUILayout.Width(100)));
GUILayout.EndHorizontal();
deltaControlsOut = new Vector3(dx, dy, dz);
@ -261,8 +263,8 @@ namespace NewHorizons.Utility.DebugMenu
{
GUILayout.BeginHorizontal();
var propPathElements = propPath[propPath.Length-1] == '/'
? propPath.Substring(0, propPath.Length-1).Split('/')
var propPathElements = propPath[propPath.Length - 1] == '/'
? propPath.Substring(0, propPath.Length - 1).Split('/')
: propPath.Split('/');
string propName = propPathElements[propPathElements.Length - 1];
@ -301,29 +303,34 @@ namespace NewHorizons.Utility.DebugMenu
{
var newDetails = _dpp.GetPropsConfigByBody();
Logger.Log("Updating config files. New Details Counts by planet: " + string.Join(", ", newDetails.Keys.Select(x => $"{x.name} ({newDetails[x].Length})")));
var newDetailsCountsByPlanet = string.Join(", ", newDetails.Keys.Select(x => $"{x.name} ({newDetails[x].Length})"));
Logger.Log($"Updating config files. New Details Counts by planet: {newDetailsCountsByPlanet}");
Dictionary<AstroObject, string> planetToConfigPath = new Dictionary<AstroObject, string>();
var planetToConfigPath = new Dictionary<AstroObject, string>();
// Get all configs
foreach (var filePath in menu.loadedConfigFiles.Keys)
{
Logger.Log("potentially updating copy of config at " + filePath);
Logger.Log($"Potentially updating copy of config at {filePath}");
Logger.Log($"{menu.loadedConfigFiles[filePath].name} {AstroObjectLocator.GetAstroObject(menu.loadedConfigFiles[filePath].name)?.name}");
Logger.Log($"{menu.loadedConfigFiles[filePath]}") ;
Logger.Log($"{menu.loadedConfigFiles[filePath].name}");
if (menu.loadedConfigFiles[filePath].starSystem != Main.Instance.CurrentStarSystem) return;
if (menu.loadedConfigFiles[filePath].name == null || AstroObjectLocator.GetAstroObject(menu.loadedConfigFiles[filePath].name) == null) { Logger.Log("Failed to update copy of config at " + filePath); continue; }
if (menu.loadedConfigFiles[filePath].name == null || AstroObjectLocator.GetAstroObject(menu.loadedConfigFiles[filePath].name) == null)
{
Logger.Log("Failed to update copy of config at " + filePath);
continue;
}
var astroObject = AstroObjectLocator.GetAstroObject(menu.loadedConfigFiles[filePath].name);
planetToConfigPath[astroObject] = filePath;
if (!newDetails.ContainsKey(astroObject)) continue;
if (menu.loadedConfigFiles[filePath].Props == null) menu.loadedConfigFiles[filePath].Props = new External.Modules.PropModule();
if (menu.loadedConfigFiles[filePath].Props == null) menu.loadedConfigFiles[filePath].Props = new PropModule();
menu.loadedConfigFiles[filePath].Props.details = newDetails[astroObject];
Logger.Log($"successfully updated copy of config file for {astroObject.name}");
Logger.Log($"Successfully updated copy of config file for {astroObject.name}");
}
// find all new planets that do not yet have config paths
@ -332,14 +339,15 @@ namespace NewHorizons.Utility.DebugMenu
{
Logger.Log("Fabricating new config file for " + astroObject.name);
var filepath = "planets/" + Main.Instance.CurrentStarSystem + "/" + astroObject.name + ".json";
PlanetConfig c = new PlanetConfig();
c.starSystem = Main.Instance.CurrentStarSystem;
c.name = astroObject._name == AstroObject.Name.CustomString ? astroObject.GetCustomName() : astroObject._name.ToString();
c.Props = new PropModule();
c.Props.details = newDetails[astroObject];
var filepath = $"planets/{Main.Instance.CurrentStarSystem}/{astroObject.name}.json";
menu.loadedConfigFiles[filepath] = c;
var config = new PlanetConfig();
config.starSystem = Main.Instance.CurrentStarSystem;
config.name = astroObject._name == AstroObject.Name.CustomString ? astroObject.GetCustomName() : astroObject._name.ToString();
config.Props = new PropModule();
config.Props.details = newDetails[astroObject];
menu.loadedConfigFiles[filepath] = config;
}
}
}

View File

@ -39,8 +39,8 @@ namespace NewHorizons.Utility.DebugUtilities
public static HashSet<string> RecentlyPlacedProps = new HashSet<string>();
public static bool active = false;
public GameObject mostRecentlyPlacedPropGO { get { return props.Count() <= 0 ? null : props[props.Count()-1].gameObject; } }
public string mostRecentlyPlacedPropPath { get { return props.Count() <= 0 ? "" : props[props.Count()-1].detailInfo.path; } }
public GameObject mostRecentlyPlacedPropGO { get { return props.Count() <= 0 ? null : props[props.Count() - 1].gameObject; } }
public string mostRecentlyPlacedPropPath { get { return props.Count() <= 0 ? "" : props[props.Count() - 1].detailInfo.path; } }
private void Awake()
{
@ -196,7 +196,6 @@ namespace NewHorizons.Utility.DebugUtilities
// TOOD: make this prop an item
}
//var body = AstroObjectLocator.GetAstroObject(bodyGameObjectName);
Logger.Log($"Adding prop to {Main.Instance.CurrentStarSystem}::{body.name}");
@ -237,7 +236,7 @@ namespace NewHorizons.Utility.DebugUtilities
DetailInfo[] infoArray = new DetailInfo[bodyProps.Count];
propConfigs[body] = infoArray;
for(int i = 0; i < bodyProps.Count; i++)
for (int i = 0; i < bodyProps.Count; i++)
{
var prop = bodyProps[i];
var rootTransform = prop.gameObject.transform.root;
@ -261,8 +260,8 @@ namespace NewHorizons.Utility.DebugUtilities
{
if (props.Count <= 0) return;
PropPlacementData last = props[props.Count-1];
props.RemoveAt(props.Count-1);
PropPlacementData last = props[props.Count - 1];
props.RemoveAt(props.Count - 1);
last.gameObject.SetActive(false);
@ -273,8 +272,8 @@ namespace NewHorizons.Utility.DebugUtilities
{
if (deletedProps.Count <= 0) return;
PropPlacementData last = deletedProps[deletedProps.Count-1];
deletedProps.RemoveAt(deletedProps.Count-1);
PropPlacementData last = deletedProps[deletedProps.Count - 1];
deletedProps.RemoveAt(deletedProps.Count - 1);
last.gameObject.SetActive(true);