Skip to content

Commit

Permalink
Merge pull request #7 from mpewsey/load-path
Browse files Browse the repository at this point in the history
Add fallback resource paths
  • Loading branch information
mpewsey authored Aug 15, 2024
2 parents 5aa79d9 + a5be4af commit 5e903c7
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 8 deletions.
6 changes: 3 additions & 3 deletions addons/mpewsey.maniamap/ManiaMapPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ private static Node FindContainingRoom(GodotObject obj)

private void AddGraphEditorDock()
{
var scene = ResourceLoader.Load<PackedScene>(ManiaMapResources.Scenes.LayoutGraphEditorScene);
var scene = ManiaMapResources.Scenes.LayoutGraphEditorScene.Load<PackedScene>();
GraphEditor = scene.Instantiate<LayoutGraphEditor>();
GraphEditorDockButton = AddControlToBottomPanel(GraphEditor, GraphEditorDockButtonName);
GraphEditorDockButton.Visible = false;
Expand Down Expand Up @@ -155,7 +155,7 @@ private void CreateRoomNode2DToolbar()
var mainScreen2d = EditorInterface.Singleton.GetEditorMainScreen().GetChild(0);
var hFlowContainers = mainScreen2d.FindChildren("*", nameof(HFlowContainer), true, false);
var buttonContainer = (HFlowContainer)hFlowContainers[0];
var scene = ResourceLoader.Load<PackedScene>(ManiaMapResources.Scenes.RoomNode2DToolbarScene);
var scene = ManiaMapResources.Scenes.RoomNode2DToolbarScene.Load<PackedScene>();
var toolbar = scene.Instantiate<RoomNode2DToolbar>();
RoomNode2DToolbar = toolbar;
buttonContainer.AddChild(toolbar);
Expand All @@ -167,7 +167,7 @@ private void CreateRoomNode3DToolbar()
var mainScreen3d = EditorInterface.Singleton.GetEditorMainScreen().GetChild(1);
var hFlowContainers = mainScreen3d.FindChildren("*", nameof(HFlowContainer), true, false);
var buttonContainer = (HFlowContainer)hFlowContainers[0];
var scene = ResourceLoader.Load<PackedScene>(ManiaMapResources.Scenes.RoomNode3DToolbarScene);
var scene = ManiaMapResources.Scenes.RoomNode3DToolbarScene.Load<PackedScene>();
var toolbar = scene.Instantiate<RoomNode3DToolbar>();
RoomNode3DToolbar = toolbar;
buttonContainer.AddChild(toolbar);
Expand Down
2 changes: 1 addition & 1 deletion addons/mpewsey.maniamap/plugin.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
name="ManiaMap.Godot"
description="Procedural generation of metroidvania style maps for Godot .NET."
author="Matt Pewsey"
version="1.0.1"
version="1.0.2"
script="ManiaMapPlugin.cs"
9 changes: 5 additions & 4 deletions addons/mpewsey.maniamap/scripts/runtime/ManiaMapResources.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,18 @@ public static class Enums
/// </summary>
public static class Scenes
{
public const string LayoutGraphEditorScene = "uid://ckyjrhwvcs6fi";
public const string RoomNode2DToolbarScene = "uid://ceij50wkmgvyi";
public const string RoomNode3DToolbarScene = "uid://b25t77npx7a3l";
public static PathRef LayoutGraphEditorScene { get; } = new PathRef("uid://ckyjrhwvcs6fi", "res://addons/mpewsey.maniamap/scenes/layout_graph_editor/layout_graph_editor.tscn");
public static PathRef RoomNode2DToolbarScene { get; } = new PathRef("uid://ceij50wkmgvyi", "res://addons/mpewsey.maniamap/scenes/room_node_2d_toolbar/room_node_2d_toolbar.tscn");
public static PathRef RoomNode3DToolbarScene { get; } = new PathRef("uid://b25t77npx7a3l", "res://addons/mpewsey.maniamap/scenes/room_node_3d_toolbar/room_node_3d_toolbar.tscn");
}

/// <summary>
/// Contains materials.
/// </summary>
public static class Materials
{
public static Material AlbedoMaterial { get; } = ResourceLoader.Load<Material>("uid://ppa2shs6thgv");
public static PathRef AlbedoMaterialPath { get; } = new PathRef("uid://ppa2shs6thgv", "res://addons/mpewsey.maniamap/materials/albedo_material.tres");
public static Material AlbedoMaterial { get; } = AlbedoMaterialPath.Load<Material>();
}

/// <summary>
Expand Down
26 changes: 26 additions & 0 deletions addons/mpewsey.maniamap/scripts/runtime/PathRef.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using Godot;

namespace MPewsey.ManiaMapGodot
{
public readonly struct PathRef
{
public string UidPath { get; }
public string ResPath { get; }

public PathRef(string uidPath, string resPath)
{
UidPath = uidPath;
ResPath = resPath;
}

public string GetLoadPath()
{
return ResourceLoader.Exists(ResPath) ? ResPath : UidPath;
}

public T Load<T>() where T : class
{
return ResourceLoader.Load<T>(GetLoadPath());
}
}
}

0 comments on commit 5e903c7

Please sign in to comment.