Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix CC3 1.0.0.2 bug. #507

Merged
merged 2 commits into from
Dec 17, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Fix CC3 1.0.0.2 bug.
Fix: Correct Invalid Cast exception when trying to remove a node from a custom fabricator.
  • Loading branch information
MrPurple6411 committed Dec 10, 2023
commit 4ac7dde0a4853f0d5a8fbe8d4b2b157212d00835
13 changes: 6 additions & 7 deletions Nautilus/Crafting/ModCraftTreeLinkingNode.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using Nautilus.Handlers;
using Nautilus.Utility;
using UnityEngine;
using UnityEngine.Assertions;

Expand Down Expand Up @@ -83,16 +84,15 @@ public ModCraftTreeTab AddTabNode(string nameID)
/// <returns></returns>
public ModCraftTreeTab GetTabNode(string nameID)
{
foreach (ModCraftTreeTab node in ChildNodes)
foreach (var node in ChildNodes)
{
if (node == null)
{
continue;
}

if (node.Name == nameID && node.Action == TreeAction.Expand)
if (node.Name == nameID && node.Action == TreeAction.Expand && node is ModCraftTreeTab tab)
{
ModCraftTreeTab tab = node;
return tab;
}
}
Expand All @@ -107,16 +107,15 @@ public ModCraftTreeTab GetTabNode(string nameID)
/// <returns></returns>
public ModCraftTreeCraft GetCraftingNode(TechType techType)
{
foreach (ModCraftTreeNode node in ChildNodes)
foreach (var node in ChildNodes)
{
if (node == null)
{
continue;
}

if (node.TechType == techType && node.Action == TreeAction.Craft)
if (node.TechType == techType && node.Action == TreeAction.Craft && node is ModCraftTreeCraft craftNode)
{
ModCraftTreeCraft craftNode = (ModCraftTreeCraft)node;
return craftNode;
}
}
Expand All @@ -131,7 +130,7 @@ public ModCraftTreeCraft GetCraftingNode(TechType techType)
/// <returns></returns>
public ModCraftTreeNode GetNode(string nameID)
{
foreach (ModCraftTreeNode node in ChildNodes)
foreach (var node in ChildNodes)
{
if (node == null)
{
Expand Down
8 changes: 1 addition & 7 deletions Nautilus/Handlers/CraftTreeHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -190,13 +190,7 @@ public static void RemoveNode(CraftTree.Type craftTree, params string[] stepsToN
{
if(CraftTreePatcher.CustomTrees.TryGetValue(craftTree, out var root))
{
var tab = root.GetTabNode(stepsToNode);
if(tab == null)
{
root.GetNode(stepsToNode)?.RemoveNode();
return;
}
tab.RemoveNode();
root.GetNode(stepsToNode)?.RemoveNode();
return;
}
CraftTreePatcher.NodesToRemove.Add(new Node(stepsToNode, craftTree));
Expand Down
Loading