From f98dd512f847d8d2781e6948a5e4f14793c9af44 Mon Sep 17 00:00:00 2001 From: Dale McCoy <21223975+DaleStan@users.noreply.github.com> Date: Fri, 31 Jan 2025 18:51:52 -0500 Subject: [PATCH] fix(icons): Use icons that exist in 2.0.33 for science&launches. --- Yafc.Model/Data/DataClasses.cs | 16 +++++++--------- Yafc.Model/Data/Database.cs | 2 +- Yafc.Parser/Data/DataParserUtils.cs | 1 - .../Data/FactorioDataDeserializer_Context.cs | 16 ++++++++-------- ...ctorioDataDeserializer_RecipeAndTechnology.cs | 2 +- .../ProductionTable/ProductionTableView.cs | 2 +- 6 files changed, 18 insertions(+), 21 deletions(-) diff --git a/Yafc.Model/Data/DataClasses.cs b/Yafc.Model/Data/DataClasses.cs index ae8fd787..788642ab 100644 --- a/Yafc.Model/Data/DataClasses.cs +++ b/Yafc.Model/Data/DataClasses.cs @@ -419,6 +419,13 @@ public override bool HasSpentFuel([NotNullWhen(true)] out Item? spent) { spent = fuelResult; return spent != null; } + + public override DependencyNode GetDependencies() { + if (this == Database.science) { + return (Database.technologies.all, DependencyNode.Flags.Source); + } + return base.GetDependencies(); + } } public class Module : Item { @@ -464,20 +471,11 @@ public class Location : FactorioObject { public class Special : Goods { internal string? virtualSignal { get; set; } internal bool power; - internal bool isResearch; internal bool isVoid; public override bool isPower => power; public override string type => isPower ? "Power" : "Special"; public override UnitOfMeasure flowUnitOfMeasure => isVoid ? UnitOfMeasure.None : isPower ? UnitOfMeasure.Megawatt : UnitOfMeasure.PerSecond; internal override FactorioObjectSortOrder sortingOrder => FactorioObjectSortOrder.SpecialGoods; - public override DependencyNode GetDependencies() { - if (isResearch) { - return (Database.technologies.all, DependencyNode.Flags.Source); - } - else { - return base.GetDependencies(); - } - } } [Flags] diff --git a/Yafc.Model/Data/Database.cs b/Yafc.Model/Data/Database.cs index 67aae9c1..823b461f 100644 --- a/Yafc.Model/Data/Database.cs +++ b/Yafc.Model/Data/Database.cs @@ -13,7 +13,7 @@ public static class Database { public static Dictionary objectsByTypeName { get; internal set; } = null!; public static Dictionary> fluidVariants { get; internal set; } = null!; public static Goods voidEnergy { get; internal set; } = null!; - public static Goods researchUnit { get; internal set; } = null!; + public static Goods science { get; internal set; } = null!; public static Goods itemInput { get; internal set; } = null!; public static Goods itemOutput { get; internal set; } = null!; public static Goods electricity { get; internal set; } = null!; diff --git a/Yafc.Parser/Data/DataParserUtils.cs b/Yafc.Parser/Data/DataParserUtils.cs index fa6ca918..5e9ea8ef 100644 --- a/Yafc.Parser/Data/DataParserUtils.cs +++ b/Yafc.Parser/Data/DataParserUtils.cs @@ -129,7 +129,6 @@ public static class SpecialNames { public const string RocketLaunch = "launch"; public const string RocketCraft = "rocket."; public const string ReactorRecipe = "reactor"; - public const string ResearchUnit = "research-unit"; public const string SpoilRecipe = "spoil"; public const string PlantRecipe = "plant"; public const string AsteroidCapture = "asteroid-capture"; diff --git a/Yafc.Parser/Data/FactorioDataDeserializer_Context.cs b/Yafc.Parser/Data/FactorioDataDeserializer_Context.cs index 4e9da171..daf3d995 100644 --- a/Yafc.Parser/Data/FactorioDataDeserializer_Context.cs +++ b/Yafc.Parser/Data/FactorioDataDeserializer_Context.cs @@ -28,7 +28,7 @@ internal partial class FactorioDataDeserializer { private readonly Special heat; private readonly Special electricity; private readonly Special rocketLaunch; - private readonly Special researchUnit; + private readonly Item science; private readonly Item totalItemOutput; private readonly Item totalItemInput; private readonly EntityEnergy voidEntityEnergy; @@ -86,12 +86,12 @@ Item createSpecialItem(string name, string locName, string locDescr, string icon rootAccessible.Add(voidEnergy); rocketLaunch = createSpecialObject(false, SpecialNames.RocketLaunch, "Rocket launch slot", - "This is a slot in a rocket ready to be launched", "__base__/graphics/entity/rocket-silo/02-rocket.png", "signal-R"); - researchUnit = createSpecialObject(false, SpecialNames.ResearchUnit, "Research", - "This represents one unit of a research task.", "__base__/graphics/icons/compilatron.png", "signal-L"); - researchUnit.isResearch = true; - researchUnit.showInExplorers = false; - Analysis.ExcludeFromAnalysis(researchUnit); + "This is a slot in a rocket ready to be launched", "__base__/graphics/entity/rocket-silo/rocket-static-pod.png", "signal-R"); + + science = GetObject("science"); + science.showInExplorers = false; + Analysis.ExcludeFromAnalysis(science); + formerAliases["Special.research-unit"] = science; generatorProduction = CreateSpecialRecipe(electricity, SpecialNames.GeneratorRecipe, "generating"); generatorProduction.products = [new Product(electricity, 1f)]; @@ -189,7 +189,7 @@ private void ExportBuiltData() { Database.allSciencePacks = [.. sciencePacks]; Database.voidEnergy = voidEnergy; - Database.researchUnit = researchUnit; + Database.science = science; Database.itemInput = totalItemInput; Database.itemOutput = totalItemOutput; Database.electricity = electricity; diff --git a/Yafc.Parser/Data/FactorioDataDeserializer_RecipeAndTechnology.cs b/Yafc.Parser/Data/FactorioDataDeserializer_RecipeAndTechnology.cs index 50233204..e7f737f5 100644 --- a/Yafc.Parser/Data/FactorioDataDeserializer_RecipeAndTechnology.cs +++ b/Yafc.Parser/Data/FactorioDataDeserializer_RecipeAndTechnology.cs @@ -46,7 +46,7 @@ private static void DeserializeFlags(LuaTable table, RecipeOrTechnology recipe) private void DeserializeTechnology(LuaTable table, ErrorCollector errorCollector) { var technology = DeserializeCommon(table, "technology"); LoadTechnologyData(technology, table, errorCollector); - technology.products = [new(researchUnit, 1)]; + technology.products = [new(science, 1)]; } private void DeserializeQuality(LuaTable table, ErrorCollector errorCollector) { diff --git a/Yafc/Workspace/ProductionTable/ProductionTableView.cs b/Yafc/Workspace/ProductionTable/ProductionTableView.cs index 199bede8..ab49bf46 100644 --- a/Yafc/Workspace/ProductionTable/ProductionTableView.cs +++ b/Yafc/Workspace/ProductionTable/ProductionTableView.cs @@ -969,7 +969,7 @@ void dropDownContent(ImGui gui) { #region Recipe selection int numberOfShownRecipes = 0; - if (goods.name == SpecialNames.ResearchUnit) { + if (goods == Database.science) { if (gui.BuildButton("Add technology") && gui.CloseDropdown()) { SelectMultiObjectPanel.Select(Database.technologies.all, "Select technology", r => context.AddRecipe(r, DefaultVariantOrdering), checkMark: r => context.recipes.Any(rr => rr.recipe == r));