Cleanup, make the project compilable on windows using AoT, add room box to all rooms

This commit is contained in:
2025-02-27 22:30:51 -08:00
parent f41c0ec025
commit d9cb9fb31e
115 changed files with 757 additions and 3153 deletions

View File

@@ -2,12 +2,13 @@
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<!-- Use NativeAOT. -->
<PublishAot>true</PublishAot>
</PropertyGroup>
<ItemGroup>
<Compile Remove="src\enemy\enemy_types\NewFolder\**" />
<Compile Remove="src\map\dungeon\corridor\**" />
<EmbeddedResource Remove="src\enemy\enemy_types\NewFolder\**" />
<EmbeddedResource Remove="src\map\dungeon\corridor\**" />
<!-- Root the assemblies to avoid trimming. -->
<TrimmerRootAssembly Include="GodotSharp" />
<TrimmerRootAssembly Include="$(TargetName)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Chickensoft.AutoInject" Version="2.5.0" />

View File

@@ -1,53 +0,0 @@
using System;
using System.Diagnostics;
using Godot;
namespace Laura.DeployToSteamOS;
public class GodotExportManager
{
public static void ExportProject(
string projectPath,
string outputPath,
bool isReleaseBuild,
Callable logCallable,
Action OnProcessExited = null)
{
logCallable.CallDeferred("Starting project export, this may take a while.");
logCallable.CallDeferred($"Output path: {outputPath}");
logCallable.CallDeferred($"Is Release Build: {(isReleaseBuild ? "Yes" : "No")}");
Process exportProcess = new Process();
exportProcess.StartInfo.FileName = OS.GetExecutablePath();
var arguments = $"--headless --path \"{projectPath}\" ";
arguments += isReleaseBuild ? "--export-release " : "--export-debug ";
arguments += "\"Steamdeck\" ";
arguments += $"\"{outputPath}\"";
exportProcess.StartInfo.Arguments = arguments;
exportProcess.StartInfo.UseShellExecute = false;
exportProcess.StartInfo.RedirectStandardOutput = true;
exportProcess.EnableRaisingEvents = true;
exportProcess.ErrorDataReceived += (sender, args) =>
{
throw new Exception("Error while building project: " + args.Data);
};
exportProcess.OutputDataReceived += (sender, args) =>
{
logCallable.CallDeferred(args.Data);
};
exportProcess.Exited += (sender, args) =>
{
OnProcessExited?.Invoke();
exportProcess.WaitForExit();
};
exportProcess.Start();
exportProcess.BeginOutputReadLine();
}
}

View File

@@ -1 +0,0 @@
uid://bilfhy4daj1r7

View File

@@ -1,33 +0,0 @@
#if TOOLS
using Godot;
namespace Laura.DeployToSteamOS;
[Tool]
public partial class Plugin : EditorPlugin
{
private Control _dock;
private Control _settingsPanel;
public override void _EnterTree()
{
AddAutoloadSingleton("SettingsManager", "res://addons/deploy_to_steamos/SettingsManager.cs");
_dock = GD.Load<PackedScene>("res://addons/deploy_to_steamos/deploy_dock/deploy_dock.tscn").Instantiate<Control>();
_settingsPanel = GD.Load<PackedScene>("res://addons/deploy_to_steamos/settings_panel/settings_panel.tscn").Instantiate<Control>();
AddControlToContainer(CustomControlContainer.Toolbar, _dock);
AddControlToContainer(CustomControlContainer.ProjectSettingTabRight, _settingsPanel);
}
public override void _ExitTree()
{
RemoveControlFromContainer(CustomControlContainer.Toolbar, _dock);
RemoveControlFromContainer(CustomControlContainer.ProjectSettingTabRight, _settingsPanel);
RemoveAutoloadSingleton("SettingsManager");
_dock.Free();
}
}
#endif

View File

@@ -1 +0,0 @@
uid://b6d4565qxd5vp

View File

@@ -1,13 +0,0 @@
public class SettingsFile
{
public enum UploadMethods
{
Differential,
Incremental,
CleanReplace
}
public string BuildPath { get; set; } = "";
public string StartParameters { get; set; } = "";
public UploadMethods UploadMethod { get; set; } = UploadMethods.Differential;
}

View File

@@ -1 +0,0 @@
uid://dqm7rp41yye7q

View File

@@ -1,101 +0,0 @@
using System.Collections.Generic;
using System.Text.Json;
using Godot;
namespace Laura.DeployToSteamOS;
[Tool]
public partial class SettingsManager : Node
{
public static SettingsManager Instance;
private const string FolderPath = "res://.deploy_to_steamos";
private const string SettingsPath = FolderPath + "/settings.json";
private const string DevicesPath = FolderPath + "/devices.json";
public bool IsDirty = false;
public SettingsFile Settings = new();
public List<SteamOSDevkitManager.Device> Devices = new();
public override void _EnterTree()
{
Instance = this;
Load();
}
public void Load()
{
if (!FileAccess.FileExists(SettingsPath))
{
Settings = new SettingsFile();
IsDirty = true;
}
else
{
using var settingsFile = FileAccess.Open(SettingsPath, FileAccess.ModeFlags.Read);
var settingsFileContent = settingsFile.GetAsText();
Settings = JsonSerializer.Deserialize<SettingsFile>(settingsFileContent, DefaultSerializerOptions);
// Failsafe if settings file is corrupt
if (Settings == null)
{
Settings = new SettingsFile();
IsDirty = true;
}
}
if (!FileAccess.FileExists(SettingsPath))
{
Devices = new List<SteamOSDevkitManager.Device>();
IsDirty = true;
}
else
{
using var devicesFile = FileAccess.Open(DevicesPath, FileAccess.ModeFlags.Read);
var devicesFileContent = devicesFile.GetAsText();
Devices = JsonSerializer.Deserialize<List<SteamOSDevkitManager.Device>>(devicesFileContent, DefaultSerializerOptions);
// Failsafe if device file is corrupt
if (Devices == null)
{
Devices = new List<SteamOSDevkitManager.Device>();
IsDirty = true;
}
}
if (IsDirty)
{
Save();
}
}
public void Save()
{
// Check if directory exists and create if it doesn't
var dirAccess = DirAccess.Open(FolderPath);
if (dirAccess == null)
{
DirAccess.MakeDirRecursiveAbsolute(FolderPath);
}
// Save Settings
var jsonSettings = JsonSerializer.Serialize(Settings);
using var settingsFile = FileAccess.Open(SettingsPath, FileAccess.ModeFlags.Write);
settingsFile.StoreString(jsonSettings);
// Save Devices
var jsonDevices = JsonSerializer.Serialize(Devices);
using var devicesFile = FileAccess.Open(DevicesPath, FileAccess.ModeFlags.Write);
devicesFile.StoreString(jsonDevices);
IsDirty = false;
}
public static readonly JsonSerializerOptions DefaultSerializerOptions = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true,
};
}

View File

@@ -1 +0,0 @@
uid://f4th1y34dy1y

View File

@@ -1,251 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
using Godot;
using Renci.SshNet;
using Zeroconf;
namespace Laura.DeployToSteamOS;
/// <summary>
/// Scans the network for SteamOS Devkit devices via the ZeroConf / Bonjour protocol
/// </summary>
public class SteamOSDevkitManager
{
public const string SteamOSProtocol = "_steamos-devkit._tcp.local.";
public const string CompatibleTextVersion = "1";
/// <summary>
/// Scans the network for valid SteamOS devkit devices
/// </summary>
/// <returns>A list of valid SteamOS devkit devices</returns>
public static async Task<List<Device>> ScanDevices()
{
var networkDevices = await ZeroconfResolver.ResolveAsync(SteamOSProtocol);
List<Device> devices = new();
// Iterate through all network devices and request further connection info from the service
foreach (var networkDevice in networkDevices)
{
var device = new Device
{
DisplayName = networkDevice.DisplayName,
IPAdress = networkDevice.IPAddress,
ServiceName = networkDevice.DisplayName + "." + SteamOSProtocol,
};
var hasServiceData = networkDevice.Services.TryGetValue(device.ServiceName, out var serviceData);
// This device is not a proper SteamOS device
if(!hasServiceData) continue;
var properties = serviceData.Properties.FirstOrDefault();
if (properties == null) continue;
// Device is not compatible (version mismatch)
// String"1" is for some reason not equal to String"1"
//if (properties["txtvers"] != CompatibleTextVersion) continue;
device.Settings = properties["settings"];
device.Login = properties["login"];
device.Devkit1 = properties["devkit1"];
devices.Add(device);
}
return devices;
}
/// <summary>
/// Creates an SSH connection and runs a command
/// </summary>
/// <param name="device">A SteamOS devkit device</param>
/// <param name="command">The SSH command to run</param>
/// <param name="logCallable">A callable for logging</param>
/// <returns>The SSH CLI output</returns>
public static async Task<string> RunSSHCommand(Device device, string command, Callable logCallable)
{
logCallable.CallDeferred($"Connecting to {device.Login}@{device.IPAdress}");
using var client = new SshClient(GetSSHConnectionInfo(device));
await client.ConnectAsync(CancellationToken.None);
logCallable.CallDeferred($"Command: '{command}'");
var sshCommand = client.CreateCommand(command);
var result = await Task.Factory.FromAsync(sshCommand.BeginExecute(), sshCommand.EndExecute);
client.Disconnect();
return result;
}
/// <summary>
/// Creates a new SCP connection and copies all local files to a remote path
/// </summary>
/// <param name="device">A SteamOS devkit device</param>
/// <param name="localPath">The path on the host</param>
/// <param name="remotePath">The path on the device</param>
/// <param name="logCallable">A callable for logging</param>
public static async Task CopyFiles(Device device, string localPath, string remotePath, Callable logCallable)
{
logCallable.CallDeferred($"Connecting to {device.Login}@{device.IPAdress}");
using var client = new ScpClient(GetSSHConnectionInfo(device));
await client.ConnectAsync(CancellationToken.None);
logCallable.CallDeferred($"Uploading files");
// Run async method until upload is done
// TODO: Set Progress based on files
var lastUploadedFilename = "";
var uploadProgress = 0;
var taskCompletion = new TaskCompletionSource<bool>();
client.Uploading += (sender, e) =>
{
if (e.Filename != lastUploadedFilename)
{
lastUploadedFilename = e.Filename;
uploadProgress = 0;
}
var progressPercentage = Mathf.CeilToInt((double)e.Uploaded / e.Size * 100);
if (progressPercentage != uploadProgress)
{
uploadProgress = progressPercentage;
logCallable.CallDeferred($"Uploading {lastUploadedFilename} ({progressPercentage}%)");
}
if (e.Uploaded == e.Size)
{
taskCompletion.TrySetResult(true);
}
};
client.ErrorOccurred += (sender, args) => throw new Exception("Error while uploading build.");
await Task.Run(() => client.Upload(new DirectoryInfo(localPath), remotePath));
await taskCompletion.Task;
client.Disconnect();
logCallable.CallDeferred($"Fixing file permissions");
await RunSSHCommand(device, $"chmod +x -R {remotePath}", logCallable);
}
/// <summary>
/// Runs an SSH command on the device that runs the steamos-prepare-upload script
/// </summary>
/// <param name="device">A SteamOS devkit device</param>
/// <param name="gameId">An ID for the game</param>
/// <param name="logCallable">A callable for logging</param>
/// <returns>The CLI result</returns>
public static async Task<PrepareUploadResult> PrepareUpload(Device device, string gameId, Callable logCallable)
{
logCallable.CallDeferred("Preparing upload");
var resultRaw = await RunSSHCommand(device, "python3 ~/devkit-utils/steamos-prepare-upload --gameid " + gameId, logCallable);
var result = JsonSerializer.Deserialize<PrepareUploadResult>(resultRaw, DefaultSerializerOptions);
return result;
}
/// <summary>
/// Runs an SSH command on the device that runs the steamos-create-shortcut script
/// </summary>
/// <param name="device">A SteamOS devkit device</param>
/// <param name="parameters">Parameters for the shortcut</param>
/// <param name="logCallable">A callable for logging</param>
/// <returns>The CLI result</returns>
public static async Task<CreateShortcutResult> CreateShortcut(Device device, CreateShortcutParameters parameters, Callable logCallable)
{
var parametersJson = JsonSerializer.Serialize(parameters);
var command = $"python3 ~/devkit-utils/steam-client-create-shortcut --parms '{parametersJson}'";
var resultRaw = await RunSSHCommand(device, command, logCallable);
var result = JsonSerializer.Deserialize<CreateShortcutResult>(resultRaw, DefaultSerializerOptions);
return result;
}
/// <summary>
/// A SteamOS devkit device
/// </summary>
public class Device
{
public string DisplayName { get; set; }
public string IPAdress { get; set; }
public int Port { get; set; }
public string ServiceName { get; set; }
public string Settings { get; set; }
public string Login { get; set; }
public string Devkit1 { get; set; }
}
public class PrepareUploadResult
{
public string User { get; set; }
public string Directory { get; set; }
}
public class CreateShortcutResult
{
public string Error { get; set; }
public string Success { get; set; }
}
/// <summary>
/// Parameters for the CreateShortcut method
/// </summary>
public struct CreateShortcutParameters
{
public string gameid { get; set; }
public string directory { get; set; }
public string[] argv { get; set; }
public Dictionary<string, string> settings { get; set; }
}
/// <summary>
/// Returns the path to the devkit_rsa key generated by the official SteamOS devkit client
/// </summary>
/// <returns>The path to the "devkit_rsa" key</returns>
public static string GetPrivateKeyPath()
{
string applicationDataPath;
switch (System.Environment.OSVersion.Platform)
{
// TODO: Linux Support
case PlatformID.Win32NT:
applicationDataPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData), "steamos-devkit");
break;
case PlatformID.Unix:
applicationDataPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "Library", "Application Support");
break;
default:
applicationDataPath = "";
break;
}
var keyFolder = Path.Combine(applicationDataPath, "steamos-devkit");
return Path.Combine(keyFolder, "devkit_rsa");
}
/// <summary>
/// Creates a SSH Connection Info for a SteamOS devkit device
/// </summary>
/// <param name="device">A SteamOS devkit device</param>
/// <returns>An SSH ConnectionInfo</returns>
/// <exception cref="Exception">Throws if there is no private key present</exception>
public static ConnectionInfo GetSSHConnectionInfo(Device device)
{
var privateKeyPath = GetPrivateKeyPath();
if (!File.Exists(privateKeyPath)) throw new Exception("devkit_rsa key is missing. Have you connected to your device via the official devkit UI yet?");
var privateKeyFile = new PrivateKeyFile(privateKeyPath);
return new ConnectionInfo(device.IPAdress, device.Login, new PrivateKeyAuthenticationMethod(device.Login, privateKeyFile));
}
public static readonly JsonSerializerOptions DefaultSerializerOptions = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true,
};
}

View File

@@ -1 +0,0 @@
uid://dvupxtmvbmofd

View File

@@ -1,130 +0,0 @@
using System.Collections.Generic;
using Godot;
namespace Laura.DeployToSteamOS;
[Tool]
public partial class AddDeviceWindow : Window
{
private bool _isVisible;
private bool _isUpdatingDevices;
private float _scanCooldown;
private List<SteamOSDevkitManager.Device> _scannedDevices = new();
private List<SteamOSDevkitManager.Device> _pairedDevices = new();
public delegate void DevicesChangedDelegate(List<SteamOSDevkitManager.Device> devices);
public event DevicesChangedDelegate OnDevicesChanged;
[ExportGroup("References")]
[Export] private VBoxContainer _devicesContainer;
[Export] private PackedScene _deviceItemPrefab;
[Export] private Button _refreshButton;
public override void _Process(double delta)
{
if (!Visible) return;
_scanCooldown -= (float)delta;
if (_scanCooldown < 0f)
{
_scanCooldown = 10f;
UpdateDevices();
UpdateDeviceList();
}
_refreshButton.Disabled = _isUpdatingDevices;
}
private async void UpdateDevices()
{
if (!Visible || _isUpdatingDevices) return;
_isUpdatingDevices = true;
var devices = await SteamOSDevkitManager.ScanDevices();
if (devices != _scannedDevices)
{
foreach (var device in devices)
{
if (
_scannedDevices.Exists(x => x.IPAdress == device.IPAdress && x.Login == device.Login)
|| _pairedDevices.Exists(x => x.IPAdress == device.IPAdress && x.Login == device.Login)
) continue;
_scannedDevices.Add(device);
}
UpdateDeviceList();
}
_isUpdatingDevices = false;
}
public void UpdateDeviceList()
{
// Clear List
foreach (var childNode in _devicesContainer.GetChildren())
{
childNode.QueueFree();
}
var devices = new List<SteamOSDevkitManager.Device>();
devices.AddRange(_pairedDevices);
foreach (var scannedDevice in _scannedDevices)
{
if (devices.Exists(x => x.IPAdress == scannedDevice.IPAdress && x.Login == scannedDevice.Login))
{
continue;
}
devices.Add(scannedDevice);
}
foreach (var scannedDevice in devices)
{
var deviceItem = _deviceItemPrefab.Instantiate<DeviceItemPrefab>();
deviceItem.SetUI(scannedDevice);
deviceItem.OnDevicePair += device =>
{
// TODO: Connect to device and run a random ssh command to check communication
if (!_pairedDevices.Exists(x => x.IPAdress == device.IPAdress && x.Login == device.Login))
{
_pairedDevices.Add(device);
}
UpdateDeviceList();
};
deviceItem.OnDeviceUnpair += device =>
{
_pairedDevices.Remove(device);
UpdateDeviceList();
};
_devicesContainer.AddChild(deviceItem);
}
}
public void Close()
{
Hide();
if (_pairedDevices != SettingsManager.Instance.Devices)
{
OnDevicesChanged?.Invoke(_pairedDevices);
}
}
public void OnVisibilityChanged()
{
if (Visible)
{
_isVisible = true;
// Prepopulate device list with saved devices
_pairedDevices = new List<SteamOSDevkitManager.Device>(SettingsManager.Instance.Devices);
UpdateDeviceList();
}
else
{
_isVisible = false;
}
}
}

View File

@@ -1 +0,0 @@
uid://db4834umjmne2

View File

@@ -1,42 +0,0 @@
using Godot;
namespace Laura.DeployToSteamOS;
[Tool]
public partial class DeviceItemPrefab : PanelContainer
{
private SteamOSDevkitManager.Device _device;
public delegate void DeviceDelegate(SteamOSDevkitManager.Device device);
public event DeviceDelegate OnDevicePair;
public event DeviceDelegate OnDeviceUnpair;
[ExportGroup("References")]
[Export] private Label _deviceNameLabel;
[Export] private Label _deviceConnectionLabel;
[Export] private Button _devicePairButton;
[Export] private Button _deviceUnpairButton;
public void SetUI(SteamOSDevkitManager.Device device)
{
_device = device;
_deviceNameLabel.Text = device.DisplayName;
_deviceConnectionLabel.Text = $"{device.Login}@{device.IPAdress}";
if (SettingsManager.Instance.Devices.Exists(x => x.IPAdress == device.IPAdress && x.Login == device.Login))
{
_devicePairButton.Visible = false;
_deviceUnpairButton.Visible = true;
}
}
public void Pair()
{
OnDevicePair?.Invoke(_device);
}
public void Unpair()
{
OnDeviceUnpair?.Invoke(_device);
}
}

View File

@@ -1 +0,0 @@
uid://b42137lbyy050

View File

@@ -1,107 +0,0 @@
[gd_scene load_steps=7 format=3 uid="uid://6be5afncp3nr"]
[ext_resource type="Script" path="res://addons/deploy_to_steamos/add_device_window/AddDeviceWindow.cs" id="1_3tepc"]
[ext_resource type="PackedScene" uid="uid://p64nkj5ii2xt" path="res://addons/deploy_to_steamos/add_device_window/device_item_prefab.tscn" id="2_dka1k"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mam6h"]
content_margin_left = 0.0
content_margin_top = 0.0
content_margin_right = 0.0
content_margin_bottom = 0.0
bg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_imdn0"]
content_margin_left = 30.0
content_margin_top = 10.0
content_margin_right = 30.0
content_margin_bottom = 10.0
bg_color = Color(0.2, 0.0823529, 0.121569, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_74135"]
content_margin_left = 15.0
content_margin_top = 15.0
content_margin_right = 15.0
content_margin_bottom = 15.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ne8al"]
content_margin_left = 30.0
content_margin_top = 10.0
content_margin_right = 30.0
content_margin_bottom = 10.0
bg_color = Color(0.133333, 0.133333, 0.133333, 1)
[node name="AddDeviceWindow" type="Window" node_paths=PackedStringArray("_devicesContainer", "_refreshButton")]
title = "Add devkit device"
initial_position = 1
size = Vector2i(650, 500)
transient = true
exclusive = true
min_size = Vector2i(650, 500)
script = ExtResource("1_3tepc")
_devicesContainer = NodePath("PanelContainer/VBoxContainer/ScrollContainer/ContentContainer/DevicesContainer")
_deviceItemPrefab = ExtResource("2_dka1k")
_refreshButton = NodePath("PanelContainer/VBoxContainer/ActionsContainer/HBoxContainer/RefreshButton")
[node name="PanelContainer" type="PanelContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_mam6h")
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/separation = 0
[node name="InfoContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_imdn0")
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/InfoContainer"]
custom_minimum_size = Vector2(0, 10)
layout_mode = 2
theme_override_colors/font_color = Color(1, 0.788235, 0.858824, 1)
theme_override_font_sizes/font_size = 11
text = "Please keep in mind that you need to connect to your devkit device at least once through the official SteamOS devkit client to install the devkit tools to your device and create the necessary authentication keys."
autowrap_mode = 3
[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="ContentContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 0
theme_override_styles/panel = SubResource("StyleBoxEmpty_74135")
[node name="DevicesContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer/ScrollContainer/ContentContainer"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="ActionsContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_ne8al")
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/ActionsContainer"]
layout_mode = 2
theme_override_constants/separation = 10
alignment = 2
[node name="RefreshButton" type="Button" parent="PanelContainer/VBoxContainer/ActionsContainer/HBoxContainer"]
layout_mode = 2
text = "Refresh"
[node name="CloseButton" type="Button" parent="PanelContainer/VBoxContainer/ActionsContainer/HBoxContainer"]
layout_mode = 2
text = "Close"
[connection signal="close_requested" from="." to="." method="Close"]
[connection signal="visibility_changed" from="." to="." method="OnVisibilityChanged"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/ActionsContainer/HBoxContainer/RefreshButton" to="." method="UpdateDevices"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/ActionsContainer/HBoxContainer/CloseButton" to="." method="Close"]

View File

@@ -1,63 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://p64nkj5ii2xt"]
[ext_resource type="Script" path="res://addons/deploy_to_steamos/add_device_window/DeviceItemPrefab.cs" id="1_q77lw"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6g2hd"]
content_margin_left = 15.0
content_margin_top = 10.0
content_margin_right = 15.0
content_margin_bottom = 10.0
bg_color = Color(0.133333, 0.133333, 0.133333, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[node name="DeviceItemPrefab" type="PanelContainer" node_paths=PackedStringArray("_deviceNameLabel", "_deviceConnectionLabel", "_devicePairButton", "_deviceUnpairButton")]
offset_right = 532.0
offset_bottom = 51.0
theme_override_styles/panel = SubResource("StyleBoxFlat_6g2hd")
script = ExtResource("1_q77lw")
_deviceNameLabel = NodePath("HBoxContainer/VBoxContainer/DeviceNameLabel")
_deviceConnectionLabel = NodePath("HBoxContainer/VBoxContainer/DeviceConnectionLabel")
_devicePairButton = NodePath("HBoxContainer/PairButton")
_deviceUnpairButton = NodePath("HBoxContainer/UnpairButton")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 5
alignment = 1
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = -5
[node name="DeviceNameLabel" type="Label" parent="HBoxContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "steamdeck"
[node name="DeviceConnectionLabel" type="Label" parent="HBoxContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(1, 1, 1, 0.490196)
theme_override_font_sizes/font_size = 12
text = "deck@127.0.0.1"
[node name="PairButton" type="Button" parent="HBoxContainer"]
layout_mode = 2
size_flags_vertical = 4
theme_override_constants/icon_max_width = 20
text = "Pair"
[node name="UnpairButton" type="Button" parent="HBoxContainer"]
visible = false
layout_mode = 2
size_flags_vertical = 4
theme_override_constants/icon_max_width = 20
text = "Unpair"
[connection signal="pressed" from="HBoxContainer/PairButton" to="." method="Pair"]
[connection signal="pressed" from="HBoxContainer/UnpairButton" to="." method="Unpair"]

View File

@@ -1,108 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Godot;
namespace Laura.DeployToSteamOS;
[Tool]
public partial class DeployDock : PanelContainer
{
private int _selectedId = 10000;
[Export] private OptionButton _deployTargetButton;
[Export] private Button _deployButton;
[Export] private AddDeviceWindow _addDeviceWindow;
[Export] private DeployWindow _deployWindow;
public override void _EnterTree()
{
_addDeviceWindow.OnDevicesChanged += OnDevicesChanged;
}
public override void _ExitTree()
{
_addDeviceWindow.OnDevicesChanged -= OnDevicesChanged;
}
public override void _Ready()
{
UpdateDropdown();
}
public void OnDeployTargetItemSelected(int index)
{
var itemId = _deployTargetButton.GetItemId(index);
if (_selectedId == itemId) return;
if (itemId <= 10000)
{
_selectedId = itemId;
}
else if (itemId == 10001)
{
_addDeviceWindow.Show();
}
_deployTargetButton.Select(_deployTargetButton.GetItemIndex(_selectedId));
_deployButton.Disabled = _selectedId >= 10000;
}
public void Deploy()
{
var device = SettingsManager.Instance.Devices.ElementAtOrDefault(_selectedId);
if (device == null)
{
GD.PrintErr("[DeployToSteamOS] Unknown deploy target.");
return;
}
// TODO: Detect Export Presets and stop if no Linux preset named "Steamdeck" exists
_deployWindow.Deploy(device);
}
private void OnDevicesChanged(List<SteamOSDevkitManager.Device> devices)
{
// Adding Devices
var devicesToAdd = devices.Where(device => !SettingsManager.Instance.Devices.Exists(x => x.IPAdress == device.IPAdress && x.Login == device.Login)).ToList();
foreach (var device in devicesToAdd)
{
SettingsManager.Instance.Devices.Add(device);
}
// Removing Devices
var devicesToRemove = SettingsManager.Instance.Devices.Where(savedDevice => !devices.Exists(x => x.IPAdress == savedDevice.IPAdress && x.Login == savedDevice.Login)).ToList();
foreach (var savedDevice in devicesToRemove)
{
SettingsManager.Instance.Devices.Remove(savedDevice);
}
SettingsManager.Instance.Save();
UpdateDropdown();
}
private async void UpdateDropdown()
{
// Hack to prevent console error
// Godot apparently calls this before the settings are loaded
while (SettingsManager.Instance == null)
{
await Task.Delay(10);
}
_deployTargetButton.Clear();
_deployTargetButton.AddItem("None", 10000);
for (var index = 0; index < SettingsManager.Instance.Devices.Count; index++)
{
var savedDevice = SettingsManager.Instance.Devices.ElementAtOrDefault(index);
if(savedDevice == null) continue;
_deployTargetButton.AddItem($"{savedDevice.DisplayName} ({savedDevice.Login}@{savedDevice.IPAdress})", index);
}
_deployTargetButton.AddSeparator();
_deployTargetButton.AddItem("Add devkit device", 10001);
}
}

View File

@@ -1 +0,0 @@
uid://0kau18vff4u2

View File

@@ -1,54 +0,0 @@
[gd_scene load_steps=6 format=3 uid="uid://kdbpdei4v1ub"]
[ext_resource type="Script" path="res://addons/deploy_to_steamos/deploy_dock/DeployDock.cs" id="1_atc6e"]
[ext_resource type="Texture2D" uid="uid://s1tcpal4iir4" path="res://addons/deploy_to_steamos/icon.svg" id="2_rpj28"]
[ext_resource type="PackedScene" uid="uid://6be5afncp3nr" path="res://addons/deploy_to_steamos/add_device_window/add_device_window.tscn" id="3_qfyb3"]
[ext_resource type="PackedScene" uid="uid://ds2umdqybfls8" path="res://addons/deploy_to_steamos/deploy_window/deploy_window.tscn" id="4_8y8co"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ebqha"]
content_margin_left = 10.0
[node name="DeployDock" type="PanelContainer" node_paths=PackedStringArray("_deployTargetButton", "_deployButton", "_addDeviceWindow", "_deployWindow")]
offset_right = 337.0
offset_bottom = 32.0
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_ebqha")
script = ExtResource("1_atc6e")
_deployTargetButton = NodePath("HBoxContainer/DeployTargetButton")
_deployButton = NodePath("HBoxContainer/DeployButton")
_addDeviceWindow = NodePath("AddDeviceWindow")
_deployWindow = NodePath("DeployWindow")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="DeployTargetButton" type="OptionButton" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
item_count = 3
selected = 0
popup/item_0/text = "None"
popup/item_0/id = 10000
popup/item_1/text = ""
popup/item_1/id = -1
popup/item_1/separator = true
popup/item_2/text = "Add devkit device"
popup/item_2/id = 10001
[node name="DeployButton" type="Button" parent="HBoxContainer"]
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
disabled = true
icon = ExtResource("2_rpj28")
icon_alignment = 1
expand_icon = true
[node name="AddDeviceWindow" parent="." instance=ExtResource("3_qfyb3")]
visible = false
[node name="DeployWindow" parent="." instance=ExtResource("4_8y8co")]
visible = false
[connection signal="item_selected" from="HBoxContainer/DeployTargetButton" to="." method="OnDeployTargetItemSelected"]
[connection signal="pressed" from="HBoxContainer/DeployButton" to="." method="Deploy"]

View File

@@ -1,38 +0,0 @@
using System.IO;
using System.Threading.Tasks;
using Godot;
namespace Laura.DeployToSteamOS;
public partial class DeployWindow
{
private async Task DeployBuild(Callable logCallable)
{
CurrentStep = DeployStep.Building;
CurrentProgress = StepProgress.Running;
UpdateUI();
// Adding a 2 second delay so the UI can update
await ToSignal(GetTree().CreateTimer(1), "timeout");
var buildTask = new TaskCompletionSource<bool>();
if (SettingsManager.Instance.Settings.UploadMethod == SettingsFile.UploadMethods.CleanReplace)
{
AddToConsole(DeployStep.Building, "Removing previous build as upload method is set to CleanReplace");
await SteamOSDevkitManager.RunSSHCommand(_device, "python3 ~/devkit-utils/steamos-delete --delete-title " + _gameId, logCallable);
}
GodotExportManager.ExportProject(
ProjectSettings.GlobalizePath("res://"),
Path.Join(_localPath, "game.x86_64"),
false,
logCallable,
() => { buildTask.SetResult(true); }
);
await buildTask.Task;
CurrentProgress = StepProgress.Succeeded;
UpdateUI();
}
}

View File

@@ -1 +0,0 @@
uid://bye7k4dvdra1b

View File

@@ -1,36 +0,0 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Godot;
namespace Laura.DeployToSteamOS;
public partial class DeployWindow
{
private async Task DeployCreateShortcut(Callable logCallable)
{
CurrentStep = DeployStep.CreateShortcut;
CurrentProgress = StepProgress.Running;
UpdateUI();
var createShortcutParameters = new SteamOSDevkitManager.CreateShortcutParameters
{
gameid = _gameId,
directory = _prepareUploadResult.Directory,
argv = new[] { "game.x86_64", SettingsManager.Instance.Settings.StartParameters },
settings = new Dictionary<string, string>
{
{ "steam_play", "0" }
},
};
// TODO: Fix Result, success/error are not filled in response but exist/dont
_createShortcutResult = await SteamOSDevkitManager.CreateShortcut(
_device,
createShortcutParameters,
logCallable
);
CurrentProgress = StepProgress.Succeeded;
UpdateUI();
}
}

View File

@@ -1,41 +0,0 @@
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Godot;
namespace Laura.DeployToSteamOS;
public partial class DeployWindow
{
private async Task DeployInit()
{
CurrentStep = DeployStep.Init;
CurrentProgress = StepProgress.Running;
UpdateUI();
await Task.Delay(0);
_gameId = ProjectSettings.GetSetting("application/config/name", "game").AsString();
_gameId = Regex.Replace(_gameId, @"[^a-zA-Z0-9]", string.Empty);
// Add current timestamp to gameid for incremental builds
if (SettingsManager.Instance.Settings.UploadMethod == SettingsFile.UploadMethods.Incremental)
{
_gameId += "_" + DateTimeOffset.Now.ToUnixTimeSeconds();
}
GD.Print($"[DeployToSteamOS] Deploying '{_gameId}' to '{_device.DisplayName} ({_device.Login}@{_device.IPAdress})'");
_localPath = SettingsManager.Instance.Settings.BuildPath;
if (DirAccess.Open(_localPath) == null)
{
GD.PrintErr($"[DeployToSteamOS] Build path '{_localPath}' does not exist.");
UpdateUIToFail();
return;
}
CurrentProgress = StepProgress.Succeeded;
UpdateUI();
}
}

View File

@@ -1 +0,0 @@
uid://bhkwfem6monsw

View File

@@ -1,26 +0,0 @@
using System.Threading.Tasks;
using Godot;
namespace Laura.DeployToSteamOS;
public partial class DeployWindow
{
private async Task DeployPrepareUpload(Callable logCallable)
{
CurrentStep = DeployStep.PrepareUpload;
CurrentProgress = StepProgress.Running;
UpdateUI();
_prepareUploadResult = await SteamOSDevkitManager.PrepareUpload(
_device,
_gameId,
logCallable
);
AddToConsole(DeployStep.PrepareUpload, $"User: {_prepareUploadResult.User}");
AddToConsole(DeployStep.PrepareUpload, $"Directory: {_prepareUploadResult.Directory}");
CurrentProgress = StepProgress.Succeeded;
UpdateUI();
}
}

View File

@@ -1 +0,0 @@
uid://do8iwi7jpset4

View File

@@ -1,33 +0,0 @@
using System;
using System.Threading.Tasks;
using Godot;
namespace Laura.DeployToSteamOS;
public partial class DeployWindow
{
private async Task DeployUpload(Callable logCallable)
{
CurrentStep = DeployStep.Uploading;
CurrentProgress = StepProgress.Running;
UpdateUI();
try
{
await SteamOSDevkitManager.CopyFiles(
_device,
_localPath,
_prepareUploadResult.Directory,
logCallable
);
}
catch (Exception e)
{
AddToConsole(DeployStep.Uploading, e.Message);
UpdateUIToFail();
}
CurrentProgress = StepProgress.Succeeded;
UpdateUI();
}
}

View File

@@ -1 +0,0 @@
uid://csn5do4f3tqya

View File

@@ -1,304 +0,0 @@
using System.Collections.Generic;
using Godot;
namespace Laura.DeployToSteamOS;
[Tool]
public partial class DeployWindow : Window
{
public enum DeployStep
{
Init,
Building,
PrepareUpload,
Uploading,
CreateShortcut,
Done
}
public DeployStep CurrentStep = DeployStep.Init;
public enum StepProgress
{
Queued,
Running,
Succeeded,
Failed
}
public StepProgress CurrentProgress = StepProgress.Queued;
private string _localPath;
private string _gameId;
private SteamOSDevkitManager.Device _device;
private SteamOSDevkitManager.PrepareUploadResult _prepareUploadResult;
private SteamOSDevkitManager.CreateShortcutResult _createShortcutResult;
private Dictionary<StepProgress, Color> _colorsBright = new()
{
{ StepProgress.Queued, new Color("#6a6a6a") },
{ StepProgress.Running, new Color("#ffffff") },
{ StepProgress.Succeeded, new Color("#00f294") },
{ StepProgress.Failed, new Color("#ff4245") },
};
private Dictionary<StepProgress, Color> _colorsDim = new()
{
{ StepProgress.Queued, new Color("#1d1d1d") },
{ StepProgress.Running, new Color("#222222") },
{ StepProgress.Succeeded, new Color("#13241d") },
{ StepProgress.Failed, new Color("#241313") },
};
[ExportGroup("References")]
[Export] private VBoxContainer _buildingContainer;
[Export] private VBoxContainer _prepareUploadContainer;
[Export] private VBoxContainer _uploadingContainer;
[Export] private VBoxContainer _createShortcutContainer;
public override void _Process(double delta)
{
if (CurrentStep != DeployStep.Done)
{
var container = CurrentStep switch
{
DeployStep.Building => _buildingContainer,
DeployStep.PrepareUpload => _prepareUploadContainer,
DeployStep.Uploading => _uploadingContainer,
DeployStep.CreateShortcut => _createShortcutContainer,
_ => null
};
if (container != null)
{
var progressBar = container.GetNode<ProgressBar>("Progressbar");
if (progressBar.Value < 95f)
{
var shouldDoubleSpeed = CurrentStep is DeployStep.PrepareUpload or DeployStep.CreateShortcut;
progressBar.Value += (float)delta * (shouldDoubleSpeed ? 2f : 1f);
}
}
}
}
public async void Deploy(SteamOSDevkitManager.Device device)
{
if (device == null)
{
GD.PrintErr("[DeployToSteamOS] Device is not available.");
return;
}
_device = device;
_prepareUploadResult = null;
_createShortcutResult = null;
ResetUI();
Title = $"Deploying to {_device.DisplayName} ({_device.Login}@{_device.IPAdress})";
Show();
await DeployInit();
await DeployBuild(Callable.From((Variant log) => AddToConsole(DeployStep.Building, log.AsString())));
await DeployPrepareUpload(Callable.From((Variant log) => AddToConsole(DeployStep.PrepareUpload, log.AsString())));
await DeployUpload(Callable.From((Variant log) => AddToConsole(DeployStep.Uploading, log.AsString())));
await DeployCreateShortcut(Callable.From((Variant log) => AddToConsole(DeployStep.CreateShortcut, log.AsString())));
CurrentStep = DeployStep.Done;
CurrentProgress = StepProgress.Succeeded;
UpdateUI();
}
public void Close()
{
if (CurrentStep != DeployStep.Init && CurrentStep != DeployStep.Done) return;
Hide();
}
private void UpdateUI()
{
UpdateContainer(CurrentStep, CurrentProgress);
if (CurrentStep == DeployStep.Done)
{
SetConsoleVisibility(DeployStep.Building, false, false);
SetConsoleVisibility(DeployStep.PrepareUpload, false, false);
SetConsoleVisibility(DeployStep.Uploading, false, false);
SetConsoleVisibility(DeployStep.CreateShortcut, false, false);
}
}
private void ResetUI()
{
// Clear Consoles
List<Node> consoleNodes = new();
consoleNodes.AddRange(_buildingContainer.GetNode<VBoxContainer>("ConsoleContainer/ScrollContainer/VBoxContainer").GetChildren());
consoleNodes.AddRange(_prepareUploadContainer.GetNode<VBoxContainer>("ConsoleContainer/ScrollContainer/VBoxContainer").GetChildren());
consoleNodes.AddRange(_uploadingContainer.GetNode<VBoxContainer>("ConsoleContainer/ScrollContainer/VBoxContainer").GetChildren());
consoleNodes.AddRange(_createShortcutContainer.GetNode<VBoxContainer>("ConsoleContainer/ScrollContainer/VBoxContainer").GetChildren());
foreach (var consoleNode in consoleNodes)
{
consoleNode.QueueFree();
}
// Clear States
UpdateContainer(DeployStep.Building, StepProgress.Queued);
UpdateContainer(DeployStep.PrepareUpload, StepProgress.Queued);
UpdateContainer(DeployStep.Uploading, StepProgress.Queued);
UpdateContainer(DeployStep.CreateShortcut, StepProgress.Queued);
CurrentStep = DeployStep.Init;
CurrentProgress = StepProgress.Queued;
}
private void UpdateContainer(DeployStep step, StepProgress progress)
{
var container = step switch
{
DeployStep.Building => _buildingContainer,
DeployStep.PrepareUpload => _prepareUploadContainer,
DeployStep.Uploading => _uploadingContainer,
DeployStep.CreateShortcut => _createShortcutContainer,
_ => null
};
if (container == null) return;
var headerContainer = container.GetNode<PanelContainer>("HeaderContainer");
var label = headerContainer.GetNode<Label>("HBoxContainer/Label");
var toggleConsoleButton = headerContainer.GetNode<Button>("HBoxContainer/ToggleConsoleButton");
var progressBar = container.GetNode<ProgressBar>("Progressbar");
label.AddThemeColorOverride("font_color", _colorsBright[progress]);
headerContainer.AddThemeStyleboxOverride("panel", new StyleBoxFlat
{
BgColor = _colorsDim[progress],
ContentMarginTop = 10,
ContentMarginBottom = 10,
ContentMarginLeft = 10,
ContentMarginRight = 10,
});
progressBar.AddThemeStyleboxOverride("fill", new StyleBoxFlat
{
BgColor = _colorsBright[progress],
});
progressBar.Value = progress switch
{
StepProgress.Queued => 0,
StepProgress.Running => 0,
StepProgress.Succeeded => 100,
StepProgress.Failed => 100,
_ => progressBar.Value
};
SetConsoleVisibility(step, progress == StepProgress.Running, false);
toggleConsoleButton.Visible = progress is StepProgress.Succeeded or StepProgress.Failed;
toggleConsoleButton.Disabled = progress is not StepProgress.Succeeded and not StepProgress.Failed;
}
private void AddToConsole(DeployStep step, string text)
{
var consoleContainer = step switch
{
DeployStep.Building => _buildingContainer.GetNode<PanelContainer>("ConsoleContainer"),
DeployStep.PrepareUpload => _prepareUploadContainer.GetNode<PanelContainer>("ConsoleContainer"),
DeployStep.Uploading => _uploadingContainer.GetNode<PanelContainer>("ConsoleContainer"),
DeployStep.CreateShortcut => _createShortcutContainer.GetNode<PanelContainer>("ConsoleContainer"),
_ => null
};
if (consoleContainer == null) return;
var consoleScrollContainer = consoleContainer.GetNode<ScrollContainer>("ScrollContainer");
var consoleVBoxContainer = consoleScrollContainer.GetNode<VBoxContainer>("VBoxContainer");
// Create new Label
var newLabel = new Label { Text = text };
newLabel.AddThemeFontSizeOverride("font_size", 12);
newLabel.AutowrapMode = TextServer.AutowrapMode.Word;
newLabel.SizeFlagsHorizontal = Control.SizeFlags.ExpandFill;
consoleVBoxContainer.AddChild(newLabel);
consoleScrollContainer.ScrollVertical = (int)consoleScrollContainer.GetVScrollBar().MaxValue;
}
private void SetConsoleVisibility(DeployStep step, bool shouldOpen, bool closeOthers)
{
var consoleContainer = step switch
{
DeployStep.Building => _buildingContainer.GetNode<PanelContainer>("ConsoleContainer"),
DeployStep.PrepareUpload => _prepareUploadContainer.GetNode<PanelContainer>("ConsoleContainer"),
DeployStep.Uploading => _uploadingContainer.GetNode<PanelContainer>("ConsoleContainer"),
DeployStep.CreateShortcut => _createShortcutContainer.GetNode<PanelContainer>("ConsoleContainer"),
_ => null
};
if (consoleContainer == null) return;
// Open Container
if (shouldOpen)
{
// Close all other open containers if not running anymore
if (closeOthers)
{
var consoleContainers = new List<PanelContainer>
{
_buildingContainer.GetNode<PanelContainer>("ConsoleContainer"),
_prepareUploadContainer.GetNode<PanelContainer>("ConsoleContainer"),
_uploadingContainer.GetNode<PanelContainer>("ConsoleContainer"),
_createShortcutContainer.GetNode<PanelContainer>("ConsoleContainer")
};
foreach (var container in consoleContainers)
{
container.Visible = false;
container.GetParent<VBoxContainer>().SizeFlagsVertical = Control.SizeFlags.ShrinkBegin;
}
}
// Open container
consoleContainer.Visible = true;
consoleContainer.GetParent<VBoxContainer>().SizeFlagsVertical = Control.SizeFlags.ExpandFill;
}
else
{
consoleContainer.Visible = false;
consoleContainer.GetParent<VBoxContainer>().SizeFlagsVertical = Control.SizeFlags.ShrinkBegin;
}
}
private void ToggleConsoleVisiblity(DeployStep step)
{
var consoleContainer = step switch
{
DeployStep.Building => _buildingContainer.GetNode<PanelContainer>("ConsoleContainer"),
DeployStep.PrepareUpload => _prepareUploadContainer.GetNode<PanelContainer>("ConsoleContainer"),
DeployStep.Uploading => _uploadingContainer.GetNode<PanelContainer>("ConsoleContainer"),
DeployStep.CreateShortcut => _createShortcutContainer.GetNode<PanelContainer>("ConsoleContainer"),
_ => null
};
if (consoleContainer == null) return;
SetConsoleVisibility(step, !consoleContainer.Visible, CurrentStep == DeployStep.Done);
}
private void UpdateUIToFail()
{
CurrentProgress = StepProgress.Failed;
UpdateUI();
CurrentStep = DeployStep.Done;
CurrentProgress = StepProgress.Queued;
UpdateUI();
}
public void OnBuildingConsolePressed()
{
ToggleConsoleVisiblity(DeployStep.Building);
}
public void OnPrepareUploadConsolePressed()
{
ToggleConsoleVisiblity(DeployStep.PrepareUpload);
}
public void OnUploadingConsolePressed()
{
ToggleConsoleVisiblity(DeployStep.Uploading);
}
public void OnCreatingShortcutConsolePressed()
{
ToggleConsoleVisiblity(DeployStep.CreateShortcut);
}
}

View File

@@ -1 +0,0 @@
uid://dwen7451fh4y0

View File

@@ -1,287 +0,0 @@
[gd_scene load_steps=17 format=3 uid="uid://ds2umdqybfls8"]
[ext_resource type="Script" path="res://addons/deploy_to_steamos/deploy_window/DeployWindow.cs" id="1_01184"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4voio"]
content_margin_left = 10.0
content_margin_top = 10.0
content_margin_right = 10.0
content_margin_bottom = 10.0
bg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_e8gqy"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lhk4y"]
bg_color = Color(0.866667, 0.866667, 0.866667, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_asgva"]
content_margin_left = 10.0
content_margin_top = 10.0
content_margin_right = 10.0
content_margin_bottom = 10.0
bg_color = Color(0.113725, 0.113725, 0.113725, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_7uvru"]
content_margin_left = 5.0
content_margin_top = 5.0
content_margin_right = 5.0
content_margin_bottom = 5.0
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ojxav"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_e3114"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gqti7"]
bg_color = Color(0.866667, 0.866667, 0.866667, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ok20f"]
content_margin_left = 10.0
content_margin_top = 10.0
content_margin_right = 10.0
content_margin_bottom = 10.0
bg_color = Color(0.113725, 0.113725, 0.113725, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_aj0up"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_td6y3"]
bg_color = Color(0.866667, 0.866667, 0.866667, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_017mf"]
content_margin_left = 10.0
content_margin_top = 10.0
content_margin_right = 10.0
content_margin_bottom = 10.0
bg_color = Color(0.113725, 0.113725, 0.113725, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_encuu"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_esvxa"]
bg_color = Color(0.866667, 0.866667, 0.866667, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dgegm"]
content_margin_left = 10.0
content_margin_top = 10.0
content_margin_right = 10.0
content_margin_bottom = 10.0
bg_color = Color(0.113725, 0.113725, 0.113725, 1)
[node name="DeployWindow" type="Window" node_paths=PackedStringArray("_buildingContainer", "_prepareUploadContainer", "_uploadingContainer", "_createShortcutContainer")]
title = "Deploying to steamdeck (deck@127.0.0.1)"
initial_position = 1
size = Vector2i(450, 600)
transient = true
min_size = Vector2i(450, 600)
script = ExtResource("1_01184")
_buildingContainer = NodePath("PanelContainer/VBoxContainer/BuildContainer")
_prepareUploadContainer = NodePath("PanelContainer/VBoxContainer/PrepareUploadContainer")
_uploadingContainer = NodePath("PanelContainer/VBoxContainer/UploadContainer")
_createShortcutContainer = NodePath("PanelContainer/VBoxContainer/CreateShortcutContainer")
[node name="PanelContainer" type="PanelContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_4voio")
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/separation = 10
[node name="BuildContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 0
theme_override_constants/separation = 0
[node name="Progressbar" type="ProgressBar" parent="PanelContainer/VBoxContainer/BuildContainer"]
custom_minimum_size = Vector2(0, 2)
layout_mode = 2
theme_override_styles/background = SubResource("StyleBoxEmpty_e8gqy")
theme_override_styles/fill = SubResource("StyleBoxFlat_lhk4y")
show_percentage = false
[node name="HeaderContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/BuildContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_asgva")
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/BuildContainer/HeaderContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/BuildContainer/HeaderContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.415686, 0.415686, 0.415686, 1)
text = "Building Project"
[node name="ToggleConsoleButton" type="Button" parent="PanelContainer/VBoxContainer/BuildContainer/HeaderContainer/HBoxContainer"]
layout_mode = 2
disabled = true
text = "Output"
[node name="ConsoleContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/BuildContainer"]
visible = false
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_7uvru")
[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/VBoxContainer/BuildContainer/ConsoleContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_ojxav")
horizontal_scroll_mode = 0
vertical_scroll_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer/BuildContainer/ConsoleContainer/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 0
[node name="PrepareUploadContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 0
theme_override_constants/separation = 0
[node name="Progressbar" type="ProgressBar" parent="PanelContainer/VBoxContainer/PrepareUploadContainer"]
custom_minimum_size = Vector2(0, 2)
layout_mode = 2
theme_override_styles/background = SubResource("StyleBoxEmpty_e3114")
theme_override_styles/fill = SubResource("StyleBoxFlat_gqti7")
show_percentage = false
[node name="HeaderContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/PrepareUploadContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_ok20f")
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/PrepareUploadContainer/HeaderContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/PrepareUploadContainer/HeaderContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.415686, 0.415686, 0.415686, 1)
text = "Preparing Upload"
[node name="ToggleConsoleButton" type="Button" parent="PanelContainer/VBoxContainer/PrepareUploadContainer/HeaderContainer/HBoxContainer"]
layout_mode = 2
disabled = true
text = "Output"
[node name="ConsoleContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/PrepareUploadContainer"]
visible = false
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_7uvru")
[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/VBoxContainer/PrepareUploadContainer/ConsoleContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_ojxav")
horizontal_scroll_mode = 0
vertical_scroll_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer/PrepareUploadContainer/ConsoleContainer/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 0
theme_override_constants/separation = 0
[node name="UploadContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 0
[node name="Progressbar" type="ProgressBar" parent="PanelContainer/VBoxContainer/UploadContainer"]
custom_minimum_size = Vector2(0, 2)
layout_mode = 2
theme_override_styles/background = SubResource("StyleBoxEmpty_aj0up")
theme_override_styles/fill = SubResource("StyleBoxFlat_td6y3")
show_percentage = false
[node name="HeaderContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/UploadContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_017mf")
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/UploadContainer/HeaderContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/UploadContainer/HeaderContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.415686, 0.415686, 0.415686, 1)
text = "Uploading Project"
[node name="ToggleConsoleButton" type="Button" parent="PanelContainer/VBoxContainer/UploadContainer/HeaderContainer/HBoxContainer"]
layout_mode = 2
disabled = true
text = "Output"
[node name="ConsoleContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/UploadContainer"]
visible = false
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_7uvru")
[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/VBoxContainer/UploadContainer/ConsoleContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_ojxav")
horizontal_scroll_mode = 0
vertical_scroll_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer/UploadContainer/ConsoleContainer/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 0
[node name="CreateShortcutContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 0
[node name="Progressbar" type="ProgressBar" parent="PanelContainer/VBoxContainer/CreateShortcutContainer"]
custom_minimum_size = Vector2(0, 2)
layout_mode = 2
theme_override_styles/background = SubResource("StyleBoxEmpty_encuu")
theme_override_styles/fill = SubResource("StyleBoxFlat_esvxa")
show_percentage = false
[node name="HeaderContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/CreateShortcutContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_dgegm")
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/CreateShortcutContainer/HeaderContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/CreateShortcutContainer/HeaderContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.415686, 0.415686, 0.415686, 1)
text = "Creating Shortcut"
[node name="ToggleConsoleButton" type="Button" parent="PanelContainer/VBoxContainer/CreateShortcutContainer/HeaderContainer/HBoxContainer"]
layout_mode = 2
disabled = true
text = "Output"
[node name="ConsoleContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/CreateShortcutContainer"]
visible = false
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_7uvru")
[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/VBoxContainer/CreateShortcutContainer/ConsoleContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_ojxav")
horizontal_scroll_mode = 0
vertical_scroll_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer/CreateShortcutContainer/ConsoleContainer/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 0
[connection signal="close_requested" from="." to="." method="Close"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/BuildContainer/HeaderContainer/HBoxContainer/ToggleConsoleButton" to="." method="OnBuildingConsolePressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/PrepareUploadContainer/HeaderContainer/HBoxContainer/ToggleConsoleButton" to="." method="OnPrepareUploadConsolePressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/UploadContainer/HeaderContainer/HBoxContainer/ToggleConsoleButton" to="." method="OnUploadingConsolePressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/CreateShortcutContainer/HeaderContainer/HBoxContainer/ToggleConsoleButton" to="." method="OnCreatingShortcutConsolePressed"]

View File

@@ -1 +0,0 @@
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M2 2a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-4a1 1 0 0 1-1-1V3a1 1 0 0 0-1-1z" fill="#e0e0e0"/></svg>

Before

Width:  |  Height:  |  Size: 219 B

View File

@@ -1,37 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://du661vtsmqc7h"
path="res://.godot/imported/folder.svg-3209c1ff45131a205cbeb3923822ebc7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/deploy_to_steamos/folder.svg"
dest_files=["res://.godot/imported/folder.svg-3209c1ff45131a205cbeb3923822ebc7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Ebene_1" data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24">
<defs>
<style>
.cls-1 {
fill: #e0e0e0;
stroke-width: 0px;
}
</style>
</defs>
<path class="cls-1" d="M12,2C6.9,2,2.3,6.1,2,11.2c1.3.6,6.8,2.8,6.8,2.8l2.2-4.4-3.4-1.7c-.9-.5.2-1.8.5-2.4,0-.2.4-.4.6-.4h4.2l7.1,3.7c.3.2.5.6.3.9-2.4,4.5-1.1,4-5.6,1.8l-3.5,6.8c-1.1,2.2-4.6.8-3.9-1.5l-5-2.1c2.8,10,17.3,9.5,19.4-.7,1.4-6.1-3.5-12-9.7-12Z"/>
<rect class="cls-1" x="16.6" y="9.7" width="2.1" height="1.4" transform="translate(.3 21.3) rotate(-62.9)"/>
</svg>

Before

Width:  |  Height:  |  Size: 641 B

View File

@@ -1,37 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://s1tcpal4iir4"
path="res://.godot/imported/icon.svg-3fd3169593c3fd142e77475bb0bb8a61.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/deploy_to_steamos/icon.svg"
dest_files=["res://.godot/imported/icon.svg-3fd3169593c3fd142e77475bb0bb8a61.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -1,7 +0,0 @@
[plugin]
name="Deploy to SteamOS"
description="A Godot plugin integrating a direct deployment workflow to SteamOS"
author="Laura Sofia Heimann"
version="1.1.0"
script="Plugin.cs"

View File

@@ -1,101 +0,0 @@
using Godot;
namespace Laura.DeployToSteamOS;
[Tool]
public partial class SettingsPanel : PanelContainer
{
[ExportGroup("References")]
[Export] private Label _versionLabel;
[Export] private AddDeviceWindow _addDeviceWindow;
[Export] private LineEdit _buildPathLineEdit;
[Export] private FileDialog _buildPathFileDialog;
[Export] private LineEdit _startParametersLineEdit;
[Export] private OptionButton _uploadMethodOptionButton;
[Export] private Label _uploadMethodDifferentialHintLabel;
[Export] private Label _uploadMethodIncrementalHintLabel;
[Export] private Label _uploadMethodCleanReplaceHintLabel;
private float _saveCooldown = 2f;
public override void _Process(double delta)
{
if (SettingsManager.Instance.IsDirty && _saveCooldown < 0f)
{
_saveCooldown = 2f;
SettingsManager.Instance.Save();
}
if (SettingsManager.Instance.IsDirty && Visible)
{
_saveCooldown -= (float)delta;
}
}
public void OnVisibilityChanged()
{
if (Visible)
{
ShowPanel();
}
else
{
HidePanel();
}
}
private void ShowPanel()
{
_buildPathLineEdit.Text = SettingsManager.Instance.Settings.BuildPath;
_startParametersLineEdit.Text = SettingsManager.Instance.Settings.StartParameters;
_uploadMethodOptionButton.Selected = (int)SettingsManager.Instance.Settings.UploadMethod;
_saveCooldown = 2f;
}
private void HidePanel()
{
}
public void BuildPathTextChanged(string newBuildPath)
{
SettingsManager.Instance.Settings.BuildPath = newBuildPath;
_buildPathLineEdit.Text = newBuildPath;
_saveCooldown = 2f;
SettingsManager.Instance.IsDirty = true;
}
public void BuildPathOpenFileDialog()
{
_buildPathFileDialog.Show();
}
public void StartParametersTextChanged(string newStartParameters)
{
SettingsManager.Instance.Settings.StartParameters = newStartParameters;
_startParametersLineEdit.Text = newStartParameters;
_saveCooldown = 2f;
SettingsManager.Instance.IsDirty = true;
}
public void UploadMethodItemSelected(int newItemIndex)
{
var newUploadMethod = (SettingsFile.UploadMethods)newItemIndex;
SettingsManager.Instance.Settings.UploadMethod = newUploadMethod;
_uploadMethodOptionButton.Selected = newItemIndex;
_saveCooldown = 2f;
SettingsManager.Instance.IsDirty = true;
_uploadMethodDifferentialHintLabel.Visible = newUploadMethod == SettingsFile.UploadMethods.Differential;
_uploadMethodIncrementalHintLabel.Visible = newUploadMethod == SettingsFile.UploadMethods.Incremental;
_uploadMethodCleanReplaceHintLabel.Visible = newUploadMethod == SettingsFile.UploadMethods.CleanReplace;
}
public void PairDevices()
{
_addDeviceWindow.Show();
}
}

View File

@@ -1 +0,0 @@
uid://dkuod3bjmlgy3

View File

@@ -1,259 +0,0 @@
[gd_scene load_steps=12 format=3 uid="uid://c8k27e2fcl21j"]
[ext_resource type="Script" path="res://addons/deploy_to_steamos/settings_panel/SettingsPanel.cs" id="1_sde4n"]
[ext_resource type="Texture2D" uid="uid://s1tcpal4iir4" path="res://addons/deploy_to_steamos/icon.svg" id="2_uruwd"]
[ext_resource type="Texture2D" uid="uid://du661vtsmqc7h" path="res://addons/deploy_to_steamos/folder.svg" id="3_w3m1c"]
[ext_resource type="PackedScene" uid="uid://6be5afncp3nr" path="res://addons/deploy_to_steamos/add_device_window/add_device_window.tscn" id="4_yoa1a"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_txpoc"]
content_margin_left = 15.0
content_margin_top = 15.0
content_margin_right = 15.0
content_margin_bottom = 15.0
bg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_t6jug"]
content_margin_left = 15.0
content_margin_top = 15.0
content_margin_right = 15.0
content_margin_bottom = 15.0
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_twxhr"]
texture = ExtResource("2_uruwd")
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jrblc"]
content_margin_left = 15.0
content_margin_top = 15.0
content_margin_right = 15.0
content_margin_bottom = 15.0
bg_color = Color(0.133333, 0.133333, 0.133333, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_so52p"]
content_margin_left = 5.0
content_margin_top = 5.0
content_margin_right = 5.0
content_margin_bottom = 5.0
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_r6ghl"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2gufl"]
content_margin_left = 10.0
content_margin_top = 10.0
content_margin_right = 10.0
content_margin_bottom = 10.0
bg_color = Color(0.2, 0.2, 0.2, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[node name="Deploy to SteamOS" type="PanelContainer" node_paths=PackedStringArray("_versionLabel", "_addDeviceWindow", "_buildPathLineEdit", "_buildPathFileDialog", "_startParametersLineEdit", "_uploadMethodOptionButton", "_uploadMethodDifferentialHintLabel", "_uploadMethodIncrementalHintLabel", "_uploadMethodCleanReplaceHintLabel")]
offset_right = 600.0
offset_bottom = 500.0
theme_override_styles/panel = SubResource("StyleBoxFlat_txpoc")
script = ExtResource("1_sde4n")
_versionLabel = NodePath("VBoxContainer/LogoContainer/VBoxContainer/VersionLabel")
_addDeviceWindow = NodePath("AddDeviceWindow")
_buildPathLineEdit = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer/BuildPathInput")
_buildPathFileDialog = NodePath("BuildPathFileDialog")
_startParametersLineEdit = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer/HBoxContainer/StartParametersInput")
_uploadMethodOptionButton = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer/PanelContainer/UploadMethodOptionButton")
_uploadMethodDifferentialHintLabel = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer/DifferentialHintLabel")
_uploadMethodIncrementalHintLabel = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer/IncrementalHintLabel")
_uploadMethodCleanReplaceHintLabel = NodePath("VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer/CleanReplaceHintLabel")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
theme_override_constants/separation = 5
[node name="LogoContainer" type="PanelContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_t6jug")
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/LogoContainer"]
layout_mode = 2
theme_override_constants/separation = 0
alignment = 1
[node name="LogoContainer" type="HBoxContainer" parent="VBoxContainer/LogoContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 10
alignment = 1
[node name="Icon" type="Panel" parent="VBoxContainer/LogoContainer/VBoxContainer/LogoContainer"]
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxTexture_twxhr")
[node name="DevkitPathLabel" type="Label" parent="VBoxContainer/LogoContainer/VBoxContainer/LogoContainer"]
layout_mode = 2
size_flags_horizontal = 0
text = "Deploy to SteamOS"
[node name="VersionLabel" type="Label" parent="VBoxContainer/LogoContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
theme_override_colors/font_color = Color(1, 1, 1, 0.490196)
theme_override_font_sizes/font_size = 12
text = "Version 1.1.0"
horizontal_alignment = 1
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_jrblc")
[node name="SettingsContainer" type="VBoxContainer" parent="VBoxContainer/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 0
[node name="BuildPathContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_so52p")
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer"]
layout_mode = 2
theme_override_constants/separation = 5
[node name="BuildPathLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Build Path"
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 5
[node name="BuildPathInput" type="LineEdit" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "C:/Users/hello/Development/Godot4-DeployToSteamOS-Builds"
[node name="BrowseButton" type="Button" parent="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/icon_max_width = 20
icon = ExtResource("3_w3m1c")
[node name="StartParametersContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_so52p")
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer"]
layout_mode = 2
theme_override_constants/separation = 5
[node name="StartParametersLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Start Parameters"
[node name="StartParametersInput" type="LineEdit" parent="VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="UploadMethodContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_so52p")
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 5
[node name="UploadMethodLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Upload Method"
[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_r6ghl")
[node name="UploadMethodOptionButton" type="OptionButton" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer/PanelContainer"]
layout_mode = 2
item_count = 3
selected = 0
popup/item_0/text = "Differential"
popup/item_0/id = 0
popup/item_1/text = "Incremental"
popup/item_1/id = 1
popup/item_2/text = "CleanReplace"
popup/item_2/id = 2
[node name="UploadMethodHintContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_2gufl")
[node name="DifferentialHintLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer"]
custom_minimum_size = Vector2(0, 15)
layout_mode = 2
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
theme_override_font_sizes/font_size = 12
text = "Only changed and new files of the build will be uploaded."
autowrap_mode = 3
[node name="IncrementalHintLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer"]
visible = false
custom_minimum_size = Vector2(0, 15)
layout_mode = 2
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
theme_override_font_sizes/font_size = 12
text = "A new build will be uploaded with the current timestamp. Existing builds will not be changed."
autowrap_mode = 3
[node name="CleanReplaceHintLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/UploadMethodHintContainer"]
visible = false
custom_minimum_size = Vector2(0, 15)
layout_mode = 2
theme_override_colors/font_color = Color(1, 1, 1, 0.588235)
theme_override_font_sizes/font_size = 12
text = "Before the new build will be uploaded, the old one will be fully removed."
autowrap_mode = 3
[node name="DevicesContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer"]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_so52p")
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer"]
layout_mode = 2
theme_override_constants/separation = 5
[node name="DevicesLabel" type="Label" parent="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Devices"
[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_r6ghl")
[node name="PairDevicesButton" type="Button" parent="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer/HBoxContainer/PanelContainer"]
layout_mode = 2
size_flags_horizontal = 0
text = "Pair Devices"
[node name="BuildPathFileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
initial_position = 2
size = Vector2i(700, 400)
ok_button_text = "Select Current Folder"
file_mode = 2
access = 2
[node name="AddDeviceWindow" parent="." instance=ExtResource("4_yoa1a")]
visible = false
[connection signal="visibility_changed" from="." to="." method="OnVisibilityChanged"]
[connection signal="text_changed" from="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer/BuildPathInput" to="." method="BuildPathTextChanged"]
[connection signal="pressed" from="VBoxContainer/ScrollContainer/SettingsContainer/BuildPathContainer/HBoxContainer/HBoxContainer/BrowseButton" to="." method="BuildPathOpenFileDialog"]
[connection signal="text_changed" from="VBoxContainer/ScrollContainer/SettingsContainer/StartParametersContainer/HBoxContainer/StartParametersInput" to="." method="StartParametersTextChanged"]
[connection signal="item_selected" from="VBoxContainer/ScrollContainer/SettingsContainer/UploadMethodContainer/VBoxContainer/HBoxContainer/PanelContainer/UploadMethodOptionButton" to="." method="UploadMethodItemSelected"]
[connection signal="pressed" from="VBoxContainer/ScrollContainer/SettingsContainer/DevicesContainer/HBoxContainer/PanelContainer/PairDevicesButton" to="." method="PairDevices"]
[connection signal="dir_selected" from="BuildPathFileDialog" to="." method="BuildPathTextChanged"]

View File

@@ -43,3 +43,73 @@ rm -rf \"{temp_dir}\""
dotnet/include_scripts_content=false
dotnet/include_debug_symbols=true
dotnet/embed_build_outputs=false
[preset.1]
name="Windows Desktop"
platform="Windows Desktop"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="Output/Ma.zip"
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.1.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=2
binary_format/embed_pck=true
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
binary_format/architecture="x86_64"
codesign/enable=false
codesign/timestamp=true
codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PackedStringArray()
application/modify_resources=true
application/icon=""
application/console_wrapper_icon=""
application/icon_interpolation=4
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
application/file_description=""
application/copyright=""
application/trademarks=""
application/export_angle=0
application/export_d3d12=0
application/d3d12_agility_sdk_multiarch=true
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
Start-ScheduledTask -TaskName godot_remote_debug
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
Remove-Item -Recurse -Force '{temp_dir}'"
dotnet/include_scripts_content=false
dotnet/include_debug_symbols=false
dotnet/embed_build_outputs=false

View File

@@ -12,6 +12,7 @@ config_version=5
config/name="GameJamDungeon"
run/main_scene="uid://d1gjaijijd5ot"
run/print_header=false
config/features=PackedStringArray("4.4", "C#", "GL Compatibility")
boot_splash/show_image=false

View File

@@ -1,8 +1,8 @@
@startuml AppLogic
state "AppLogic State" as GameJamDungeon_AppLogic_State {
state "SetupGameScene" as GameJamDungeon_AppLogic_State_SetupGameScene
state "LoadingScreen" as GameJamDungeon_AppLogic_State_LoadingScreen
state "InGame" as GameJamDungeon_AppLogic_State_InGame
state "LoadingScreen" as GameJamDungeon_AppLogic_State_LoadingScreen
state "MainMenu" as GameJamDungeon_AppLogic_State_MainMenu
}

View File

@@ -170,17 +170,17 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
private void OnAttackTimeout()
{
//if (GlobalPosition.DistanceTo(_player.CurrentPosition) > 5f)
//{
// _enemyLogic.Input(new EnemyLogic.Input.Alerted());
// return;
//}
if (GlobalPosition.DistanceTo(_player.CurrentPosition) > 5f)
{
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
return;
}
var rng = new RandomNumberGenerator();
rng.Randomize();
_enemyLogic.Input(new EnemyLogic.Input.AttackTimer());
_attackTimer.Stop();
//_attackTimer.WaitTime = rng.RandfRange(2f, 5.0f);
_attackTimer.WaitTime = rng.RandfRange(2f, 5.0f);
_attackTimer.Start();
}

View File

@@ -73,7 +73,7 @@
[ext_resource type="Script" uid="uid://6edayafleq8y" path="res://src/hitbox/Hitbox.cs" id="71_ul4dn"]
[sub_resource type="ViewportTexture" id="ViewportTexture_v7t0v"]
viewport_path = NodePath("Sprite/SubViewportContainer/SubViewport")
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wey7h"]
@@ -322,7 +322,7 @@ tracks/0/keys = {
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
@@ -334,7 +334,7 @@ tracks/1/keys = {
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/2/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
@@ -352,7 +352,7 @@ step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@@ -364,7 +364,7 @@ tracks/0/keys = {
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
@@ -382,7 +382,7 @@ step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@@ -394,7 +394,7 @@ tracks/0/keys = {
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
@@ -412,7 +412,7 @@ step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@@ -424,7 +424,7 @@ tracks/0/keys = {
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
@@ -442,7 +442,7 @@ step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@@ -454,7 +454,7 @@ tracks/0/keys = {
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
@@ -472,7 +472,7 @@ step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@@ -484,7 +484,7 @@ tracks/0/keys = {
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
@@ -502,7 +502,7 @@ step = 0.0833333
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@@ -514,7 +514,7 @@ tracks/0/keys = {
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
@@ -543,7 +543,7 @@ tracks/0/keys = {
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
@@ -555,7 +555,7 @@ tracks/1/keys = {
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/2/path = NodePath("Sprite3D/SubViewportContainer/SubViewport/AnimatedSprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
@@ -722,7 +722,7 @@ graph_offset = Vector2(-190, -100.703)
[node name="EnemyModelView" type="Node3D"]
script = ExtResource("1_o4cc2")
[node name="Sprite" type="Sprite3D" parent="."]
[node name="Sprite3D" type="Sprite3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.086869, 0)
billboard = 2
alpha_cut = 1
@@ -730,19 +730,19 @@ texture_filter = 0
render_priority = 100
texture = SubResource("ViewportTexture_v7t0v")
[node name="SubViewportContainer" type="SubViewportContainer" parent="Sprite"]
[node name="SubViewportContainer" type="SubViewportContainer" parent="Sprite3D"]
visibility_layer = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="SubViewport" type="SubViewport" parent="Sprite/SubViewportContainer"]
[node name="SubViewport" type="SubViewport" parent="Sprite3D/SubViewportContainer"]
disable_3d = true
transparent_bg = true
handle_input_locally = false
size = Vector2i(200, 200)
render_target_update_mode = 4
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="Sprite/SubViewportContainer/SubViewport"]
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
unique_name_in_owner = true
texture_filter = 1
texture_repeat = 1

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=161 format=3 uid="uid://dcm53j3rncxdm"]
[gd_scene load_steps=110 format=3 uid="uid://dcm53j3rncxdm"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_cw50h"]
[ext_resource type="Texture2D" uid="uid://drjnht11skb0l" path="res://src/enemy/enemy_types/06. chariot/animations/Chariot Front Walk/Layer 1.png" id="2_dg3gx"]
@@ -445,171 +445,12 @@ animations = [{
[sub_resource type="BoxShape3D" id="BoxShape3D_brkxl"]
size = Vector3(1, 0.565, 2)
[sub_resource type="Animation" id="Animation_vr4bf"]
resource_name = "idle_front"
[sub_resource type="AnimationLibrary" id="AnimationLibrary_brkxl"]
_data = {
&"idle_front": SubResource("Animation_vr4bf")
}
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_53wuj"]
animation = &"idle_back"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_o0tmb"]
animation = &"idle_back_walk"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_d5bmw"]
animation = &"idle_front"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_a6s5c"]
animation = &"idle_front_walk"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_fpvxl"]
animation = &"idle_left"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dvj10"]
animation = &"idle_left_walk"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_erbrx"]
animation = &"primary_attack"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_3xv6a"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0h1op"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_361b7"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_wftla"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_gqqkl"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5cj36"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4t05h"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8hgxu"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_fq2yw"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yqm0k"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmy1k"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mxl7w"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qq0ru"]
advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_c54uj"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qmo72"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_jyt1n"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5un2v"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_2x3nl"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_6a5nw"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0jqty"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yjcrh"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_2ybyh"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_n454k"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_vrcjv"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_h1yxw"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_kg6hd"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_25i3y"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5g722"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_a6y4x"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_7y7m4"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ldcvv"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_aalmk"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_2le5t"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4nmgu"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mw5r6"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_jbtxi"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mjxlk"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_al2xs"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_afa0q"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_irq32"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_2khaq"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_k7x0x"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_noc6c"]
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_a6y3t"]
states/End/position = Vector2(1466, 104)
states/Start/position = Vector2(92, 119)
states/idle_back/node = SubResource("AnimationNodeAnimation_53wuj")
states/idle_back/position = Vector2(180.116, -34)
states/idle_back_walk/node = SubResource("AnimationNodeAnimation_o0tmb")
states/idle_back_walk/position = Vector2(676, -8.0526)
states/idle_front/node = SubResource("AnimationNodeAnimation_d5bmw")
states/idle_front/position = Vector2(403.116, 43.9474)
states/idle_front_walk/node = SubResource("AnimationNodeAnimation_a6s5c")
states/idle_front_walk/position = Vector2(644, -100)
states/idle_left/node = SubResource("AnimationNodeAnimation_fpvxl")
states/idle_left/position = Vector2(367.116, 119)
states/idle_left_walk/node = SubResource("AnimationNodeAnimation_dvj10")
states/idle_left_walk/position = Vector2(438, 242.947)
states/primary_attack/node = SubResource("AnimationNodeAnimation_erbrx")
states/primary_attack/position = Vector2(1024, 92.9474)
transitions = ["idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "idle_front_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_4t05h"), "primary_attack", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_8hgxu"), "primary_attack", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_fq2yw"), "primary_attack", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_yqm0k"), "idle_back_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_bmy1k"), "idle_left_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_mxl7w"), "Start", "idle_front", SubResource("AnimationNodeStateMachineTransition_qq0ru"), "idle_front", "idle_back", SubResource("AnimationNodeStateMachineTransition_c54uj"), "idle_back", "idle_left", SubResource("AnimationNodeStateMachineTransition_qmo72"), "idle_left", "idle_front", SubResource("AnimationNodeStateMachineTransition_jyt1n"), "idle_left", "idle_back", SubResource("AnimationNodeStateMachineTransition_5un2v"), "idle_back", "idle_front", SubResource("AnimationNodeStateMachineTransition_2x3nl"), "idle_front", "idle_left", SubResource("AnimationNodeStateMachineTransition_6a5nw"), "idle_back", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0jqty"), "idle_front", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_yjcrh"), "idle_back", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_2ybyh"), "idle_left", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_n454k"), "idle_back_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_vrcjv"), "idle_back_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_h1yxw"), "idle_back_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_kg6hd"), "idle_back", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_25i3y"), "idle_left", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_5g722"), "idle_front", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_a6y4x"), "idle_left_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_7y7m4"), "idle_left_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_ldcvv"), "idle_left_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_aalmk"), "idle_front_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_2le5t"), "idle_front_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_4nmgu"), "idle_front_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_mw5r6"), "idle_front", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_jbtxi"), "idle_left", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_mjxlk"), "idle_back", "primary_attack", SubResource("AnimationNodeStateMachineTransition_al2xs"), "primary_attack", "idle_back", SubResource("AnimationNodeStateMachineTransition_afa0q"), "idle_front", "primary_attack", SubResource("AnimationNodeStateMachineTransition_irq32"), "primary_attack", "idle_front", SubResource("AnimationNodeStateMachineTransition_2khaq"), "idle_left", "primary_attack", SubResource("AnimationNodeStateMachineTransition_k7x0x"), "primary_attack", "idle_left", SubResource("AnimationNodeStateMachineTransition_noc6c")]
graph_offset = Vector2(46.1163, -73.3694)
graph_offset = Vector2(-153.304, 24.5048)
[node name="EnemyModelView" type="Node3D"]
script = ExtResource("1_cw50h")

View File

@@ -4,7 +4,7 @@
[ext_resource type="Script" uid="uid://6edayafleq8y" path="res://src/hitbox/Hitbox.cs" id="2_rmtca"]
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
viewport_path = NodePath("Sprite3D/SubViewport")
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
[sub_resource type="SpriteFrames" id="SpriteFrames_6drt6"]
resource_local_to_scene = true
@@ -181,14 +181,18 @@ texture_filter = 0
render_priority = 100
texture = SubResource("ViewportTexture_h1kaf")
[node name="SubViewport" type="SubViewport" parent="Sprite3D"]
[node name="SubViewportContainer" type="SubViewportContainer" parent="Sprite3D"]
offset_right = 40.0
offset_bottom = 40.0
[node name="SubViewport" type="SubViewport" parent="Sprite3D/SubViewportContainer"]
disable_3d = true
transparent_bg = true
handle_input_locally = false
size = Vector2i(200, 200)
render_target_update_mode = 4
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="Sprite3D/SubViewport"]
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="Sprite3D/SubViewportContainer/SubViewport"]
unique_name_in_owner = true
texture_filter = 1
position = Vector2(100, 100)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=107 format=3 uid="uid://cwlgxsk6iojrd"]
[gd_scene load_steps=97 format=3 uid="uid://cwlgxsk6iojrd"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_u2p8a"]
[ext_resource type="Texture2D" uid="uid://bokmaslnp1a4u" path="res://src/enemy/enemy_types/13. gold sproingy/animations/GOLD_SPROING_FRONT/Layer 1.png" id="3_kfpgw"]
@@ -234,6 +234,15 @@ tracks/1/keys = {
"values": [0]
}
[sub_resource type="Animation" id="Animation_u2p8a"]
resource_name = "idle_left_walk"
[sub_resource type="Animation" id="Animation_fynbp"]
resource_name = "idle_front_walk"
[sub_resource type="Animation" id="Animation_bxjfw"]
resource_name = "idle_back_walk"
[sub_resource type="Animation" id="Animation_smvnd"]
resource_name = "back_walk"
length = 1.16668
@@ -324,9 +333,12 @@ tracks/1/keys = {
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2o8qa"]
_data = {
&"RESET": SubResource("Animation_2o8qa"),
&"back_walk": SubResource("Animation_smvnd"),
&"front_walk": SubResource("Animation_w6gcy"),
&"left_walk": SubResource("Animation_pa2de")
&"idle_back": SubResource("Animation_smvnd"),
&"idle_back_walk": SubResource("Animation_bxjfw"),
&"idle_front": SubResource("Animation_w6gcy"),
&"idle_front_walk": SubResource("Animation_fynbp"),
&"idle_left": SubResource("Animation_pa2de"),
&"idle_left_walk": SubResource("Animation_u2p8a")
}
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_53wuj"]
@@ -347,9 +359,6 @@ animation = &"idle_left"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dvj10"]
animation = &"idle_left_walk"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_erbrx"]
animation = &"primary_attack"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_3xv6a"]
switch_mode = 1
@@ -368,23 +377,6 @@ switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5cj36"]
switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4t05h"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8hgxu"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_fq2yw"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yqm0k"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmy1k"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mxl7w"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qq0ru"]
advance_mode = 2
@@ -455,18 +447,6 @@ switch_mode = 1
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mjxlk"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_al2xs"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_afa0q"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_irq32"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_2khaq"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_k7x0x"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_noc6c"]
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_d5bmw"]
states/End/position = Vector2(1466, 104)
states/Start/position = Vector2(92, 119)
@@ -482,10 +462,8 @@ states/idle_left/node = SubResource("AnimationNodeAnimation_fpvxl")
states/idle_left/position = Vector2(367.116, 119)
states/idle_left_walk/node = SubResource("AnimationNodeAnimation_dvj10")
states/idle_left_walk/position = Vector2(438, 242.947)
states/primary_attack/node = SubResource("AnimationNodeAnimation_erbrx")
states/primary_attack/position = Vector2(1024, 92.9474)
transitions = ["idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "idle_front_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_4t05h"), "primary_attack", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_8hgxu"), "primary_attack", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_fq2yw"), "primary_attack", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_yqm0k"), "idle_back_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_bmy1k"), "idle_left_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_mxl7w"), "Start", "idle_front", SubResource("AnimationNodeStateMachineTransition_qq0ru"), "idle_front", "idle_back", SubResource("AnimationNodeStateMachineTransition_c54uj"), "idle_back", "idle_left", SubResource("AnimationNodeStateMachineTransition_qmo72"), "idle_left", "idle_front", SubResource("AnimationNodeStateMachineTransition_jyt1n"), "idle_left", "idle_back", SubResource("AnimationNodeStateMachineTransition_5un2v"), "idle_back", "idle_front", SubResource("AnimationNodeStateMachineTransition_2x3nl"), "idle_front", "idle_left", SubResource("AnimationNodeStateMachineTransition_6a5nw"), "idle_back", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0jqty"), "idle_front", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_yjcrh"), "idle_back", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_2ybyh"), "idle_left", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_n454k"), "idle_back_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_vrcjv"), "idle_back_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_h1yxw"), "idle_back_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_kg6hd"), "idle_back", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_25i3y"), "idle_left", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_5g722"), "idle_front", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_a6y4x"), "idle_left_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_7y7m4"), "idle_left_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_ldcvv"), "idle_left_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_aalmk"), "idle_front_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_2le5t"), "idle_front_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_4nmgu"), "idle_front_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_mw5r6"), "idle_front", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_jbtxi"), "idle_left", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_mjxlk"), "idle_back", "primary_attack", SubResource("AnimationNodeStateMachineTransition_al2xs"), "primary_attack", "idle_back", SubResource("AnimationNodeStateMachineTransition_afa0q"), "idle_front", "primary_attack", SubResource("AnimationNodeStateMachineTransition_irq32"), "primary_attack", "idle_front", SubResource("AnimationNodeStateMachineTransition_2khaq"), "idle_left", "primary_attack", SubResource("AnimationNodeStateMachineTransition_k7x0x"), "primary_attack", "idle_left", SubResource("AnimationNodeStateMachineTransition_noc6c")]
graph_offset = Vector2(46.1163, -73.3694)
transitions = ["idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "Start", "idle_front", SubResource("AnimationNodeStateMachineTransition_qq0ru"), "idle_front", "idle_back", SubResource("AnimationNodeStateMachineTransition_c54uj"), "idle_back", "idle_left", SubResource("AnimationNodeStateMachineTransition_qmo72"), "idle_left", "idle_front", SubResource("AnimationNodeStateMachineTransition_jyt1n"), "idle_left", "idle_back", SubResource("AnimationNodeStateMachineTransition_5un2v"), "idle_back", "idle_front", SubResource("AnimationNodeStateMachineTransition_2x3nl"), "idle_front", "idle_left", SubResource("AnimationNodeStateMachineTransition_6a5nw"), "idle_back", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0jqty"), "idle_front", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_yjcrh"), "idle_back", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_2ybyh"), "idle_left", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_n454k"), "idle_back_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_vrcjv"), "idle_back_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_h1yxw"), "idle_back_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_kg6hd"), "idle_back", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_25i3y"), "idle_left", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_5g722"), "idle_front", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_a6y4x"), "idle_left_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_7y7m4"), "idle_left_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_ldcvv"), "idle_left_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_aalmk"), "idle_front_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_2le5t"), "idle_front_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_4nmgu"), "idle_front_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_mw5r6"), "idle_front", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_jbtxi"), "idle_left", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_mjxlk")]
graph_offset = Vector2(46.1163, -146.617)
[node name="EnemyModelView" type="Node3D"]
script = ExtResource("1_u2p8a")

View File

@@ -303,7 +303,7 @@ bones/0/name = "spine1"
bones/0/parent = -1
bones/0/rest = Transform3D(1.49012e-06, 0.00846654, -0.999964, 2.93367e-08, 0.999964, 0.00846654, 1, -4.23752e-08, 1.49012e-06, 0.000155807, -0.00105953, -2.01735)
bones/0/enabled = true
bones/0/position = Vector3(-0.259765, -0.995499, -1.97163)
bones/0/position = Vector3(-0.259717, -0.989979, -1.972)
bones/0/rotation = Quaternion(0.0915277, -0.692111, -0.0341586, 0.715149)
bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "spine0"
@@ -346,7 +346,7 @@ bones/6/parent = 5
bones/6/rest = Transform3D(0.0598389, 0.98531, 0.15995, -0.975271, 0.0235553, 0.219755, 0.212759, -0.169144, 0.962353, 3.65078e-07, 1.40318, 0)
bones/6/enabled = true
bones/6/position = Vector3(3.65078e-07, 1.40318, 0)
bones/6/rotation = Quaternion(-0.0597785, -0.298713, -0.744517, 0.594047)
bones/6/rotation = Quaternion(-0.068138, -0.301755, -0.744687, 0.591391)
bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "Bone.007"
bones/7/parent = 6
@@ -381,7 +381,7 @@ bones/11/parent = 1
bones/11/rest = Transform3D(0.981457, 0.0769315, -0.175568, 0.18837, -0.217537, 0.957703, 0.035485, -0.973015, -0.227995, -1.09896e-07, 3.84743, -2.10479e-07)
bones/11/enabled = true
bones/11/position = Vector3(-1.09896e-07, 3.84743, -2.10479e-07)
bones/11/rotation = Quaternion(-0.782876, -0.0600197, 0.0755557, 0.614649)
bones/11/rotation = Quaternion(-0.783201, -0.0603045, 0.0749057, 0.614287)
bones/11/scale = Vector3(1, 0.999999, 1)
bones/12/name = "arm2_L"
bones/12/parent = 11
@@ -409,7 +409,7 @@ bones/15/parent = 1
bones/15/rest = Transform3D(-0.98213, 0.0512573, -0.181089, -0.187541, -0.185921, 0.964501, 0.0157694, 0.981227, 0.192212, 0.00107862, 3.8461, -0.0821097)
bones/15/enabled = true
bones/15/position = Vector3(0.00107886, 3.8461, -0.0821095)
bones/15/rotation = Quaternion(-0.212402, 0.740585, 0.618733, -0.153585)
bones/15/rotation = Quaternion(-0.212102, 0.740115, 0.61924, -0.154223)
bones/15/scale = Vector3(1, 1, 1)
bones/16/name = "arm2_R"
bones/16/parent = 15
@@ -436,22 +436,22 @@ bones/19/name = "hip_L"
bones/19/parent = -1
bones/19/rest = Transform3D(0.138486, 0.897208, 0.419333, -0.129033, -0.403458, 0.905854, 0.981923, -0.179556, 0.059896, 0.000155807, -0.00105953, -2.01735)
bones/19/enabled = true
bones/19/position = Vector3(-0.334538, -1.15593, -1.87113)
bones/19/rotation = Quaternion(0.618151, 0.304521, 0.560865, -0.458898)
bones/19/position = Vector3(-0.330093, -1.15173, -1.88579)
bones/19/rotation = Quaternion(0.617221, 0.305629, 0.562348, -0.457596)
bones/19/scale = Vector3(1, 1, 1)
bones/20/name = "leg1_L"
bones/20/parent = 19
bones/20/rest = Transform3D(0.945603, 0.113405, 0.304916, -0.324072, 0.410457, 0.852351, -0.0284943, -0.9048, 0.424881, 2.08616e-07, 2.00996, -7.1153e-07)
bones/20/enabled = true
bones/20/position = Vector3(2.08616e-07, 2.00996, -7.1153e-07)
bones/20/rotation = Quaternion(-0.317823, -0.433952, -0.28409, 0.793705)
bones/20/rotation = Quaternion(-0.316853, -0.435017, -0.282488, 0.794081)
bones/20/scale = Vector3(1, 0.999999, 1)
bones/21/name = "leg2_L"
bones/21/parent = 20
bones/21/rest = Transform3D(0.990336, -0.138679, 0.00180777, 0.138628, 0.990193, 0.0173138, -0.00419111, -0.0168959, 0.999848, 5.96046e-08, 5.85994, -5.23403e-07)
bones/21/enabled = true
bones/21/position = Vector3(5.96046e-08, 5.85994, -5.23403e-07)
bones/21/rotation = Quaternion(-0.0603187, 0.00129958, 0.488283, 0.870597)
bones/21/rotation = Quaternion(-0.0602972, 0.00129972, 0.488108, 0.870697)
bones/21/scale = Vector3(1, 1, 1)
bones/22/name = "foot1_L"
bones/22/parent = 21
@@ -485,7 +485,7 @@ bones/26/name = "hip_R"
bones/26/parent = -1
bones/26/rest = Transform3D(0.138486, -0.897208, -0.419333, 0.129033, -0.403458, 0.905854, -0.981923, -0.179556, 0.059896, -0.000155807, -0.00105953, -2.01735)
bones/26/enabled = true
bones/26/position = Vector3(-0.160043, -1.11395, -2.01824)
bones/26/position = Vector3(-0.173108, -1.11395, -2.01815)
bones/26/rotation = Quaternion(0.608697, -0.3155, -0.575514, -0.445793)
bones/26/scale = Vector3(1, 1, 1)
bones/27/name = "leg1_R"
@@ -493,14 +493,14 @@ bones/27/parent = 26
bones/27/rest = Transform3D(0.945603, -0.113405, -0.304916, 0.324072, 0.410457, 0.852351, 0.0284943, -0.9048, 0.424881, -9.54606e-09, 2.00996, -3.52971e-07)
bones/27/enabled = true
bones/27/position = Vector3(-9.54606e-09, 2.00996, -3.52971e-07)
bones/27/rotation = Quaternion(-0.205506, 0.422864, 0.140352, 0.871352)
bones/27/rotation = Quaternion(-0.205889, 0.422653, 0.140625, 0.87132)
bones/27/scale = Vector3(1, 0.999999, 1)
bones/28/name = "leg2_R"
bones/28/parent = 27
bones/28/rest = Transform3D(0.990336, 0.138679, -0.00180777, -0.138628, 0.990193, 0.0173138, 0.00419111, -0.0168959, 0.999848, 4.51691e-08, 5.85994, -3.72529e-09)
bones/28/enabled = true
bones/28/position = Vector3(4.51691e-08, 5.85994, -3.72529e-09)
bones/28/rotation = Quaternion(-0.0635773, -0.00115937, -0.507595, 0.859246)
bones/28/rotation = Quaternion(-0.0636584, -0.00115882, -0.508243, 0.858857)
bones/28/scale = Vector3(1, 1, 1)
bones/29/name = "foot1_R"
bones/29/parent = 28
@@ -532,7 +532,7 @@ bones/32/rotation = Quaternion(0.456756, 0.539878, -0.539587, -0.456893)
bones/32/scale = Vector3(1, 1, 1)
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Armature/Skeleton3D"]
transform = Transform3D(-0.280364, -0.0579873, -0.958141, -0.331718, -0.930823, 0.153399, -0.900754, 0.360841, 0.241733, -1.6768, 8.26406, 4.95172)
transform = Transform3D(-0.289932, -0.0729368, -0.954264, -0.330132, -0.92827, 0.171253, -0.898304, 0.364685, 0.245056, -1.66838, 8.27337, 4.95041)
bone_name = "TOP OF SKULL"
bone_idx = 8

File diff suppressed because one or more lines are too long

View File

@@ -1,12 +1,12 @@
@startuml EnemyLogic
state "EnemyLogic State" as GameJamDungeon_EnemyLogic_State {
state "Alive" as GameJamDungeon_EnemyLogic_State_Alive {
state "Idle" as GameJamDungeon_EnemyLogic_State_Idle
state "Activated" as GameJamDungeon_EnemyLogic_State_Activated {
state "Attacking" as GameJamDungeon_EnemyLogic_State_Attacking
state "FollowPlayer" as GameJamDungeon_EnemyLogic_State_FollowPlayer
state "Patrolling" as GameJamDungeon_EnemyLogic_State_Patrolling
state "Attacking" as GameJamDungeon_EnemyLogic_State_Attacking
}
state "Idle" as GameJamDungeon_EnemyLogic_State_Idle
}
state "Defeated" as GameJamDungeon_EnemyLogic_State_Defeated
}

View File

@@ -1,14 +1,14 @@
@startuml GameLogic
state "GameLogic State" as GameJamDungeon_GameLogic_State {
state "GameStarted" as GameJamDungeon_GameLogic_State_GameStarted
state "Playing" as GameJamDungeon_GameLogic_State_Playing {
state "AskForTeleport" as GameJamDungeon_GameLogic_State_AskForTeleport
state "MinimapOpen" as GameJamDungeon_GameLogic_State_MinimapOpen
state "FloorClearedDecisionState" as GameJamDungeon_GameLogic_State_FloorClearedDecisionState
state "Resuming" as GameJamDungeon_GameLogic_State_Resuming
state "Paused" as GameJamDungeon_GameLogic_State_Paused
state "InventoryOpened" as GameJamDungeon_GameLogic_State_InventoryOpened
state "MinimapOpen" as GameJamDungeon_GameLogic_State_MinimapOpen
state "Paused" as GameJamDungeon_GameLogic_State_Paused
state "Resuming" as GameJamDungeon_GameLogic_State_Resuming
}
state "GameStarted" as GameJamDungeon_GameLogic_State_GameStarted
state "Quit" as GameJamDungeon_GameLogic_State_Quit
}

View File

@@ -2,7 +2,6 @@ using Chickensoft.AutoInject;
using Chickensoft.GodotNodeInterfaces;
using Chickensoft.Introspection;
using Godot;
using System.Collections.Generic;
using System.Linq;
namespace GameJamDungeon;

View File

@@ -1,20 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://bjqgl5u05ia04"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_vtvx6"]
radius = 1.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dc1b0"]
transparency = 1
albedo_color = Color(0, 1, 0, 0.164706)
[node name="Teleport" type="Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.09493, 0)
collision_layer = 256
collision_mask = 256
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("CylinderShape3D_vtvx6")
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="."]
sorting_offset = 100.0
material = SubResource("StandardMaterial3D_dc1b0")

View File

@@ -1,6 +1,7 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using System.Collections.Immutable;
using System.Linq;
namespace GameJamDungeon;
@@ -18,9 +19,52 @@ public partial class MonsterRoom : Node3D, IDungeonRoom
[Node] public ItemDatabase ItemDatabase { get; set; } = default!;
[Node] private Area3D _room { get; set; } = default!;
private ImmutableList<IEnemy> _enemiesInRoom;
public void Setup()
{
SpawnItems();
_enemiesInRoom = [];
_room.BodyEntered += _room_BodyEntered;
_room.BodyExited += _room_BodyExited;
}
private void _room_BodyExited(Node3D body)
{
if (body is IEnemy enemy)
_enemiesInRoom = _enemiesInRoom.Remove(enemy);
}
private void _room_BodyEntered(Node3D body)
{
if (body is IEnemy enemy)
_enemiesInRoom = _enemiesInRoom.Add(enemy);
}
public ImmutableList<IEnemy> GetEnemiesInCurrentRoom()
{
return _enemiesInRoom;
}
public void SpawnEnemies(EnemyDatabase enemyDatabase)
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var enemySpawnPoints = EnemySpawnPoints.GetChildren();
var numberOfEnemiesToSpawn = rng.RandiRange(1, enemySpawnPoints.Count);
foreach (Marker3D spawnPoint in enemySpawnPoints)
{
if (numberOfEnemiesToSpawn <= 0)
break;
numberOfEnemiesToSpawn--;
var enemy = enemyDatabase.EnemyList[rng.RandWeighted(enemyDatabase.SpawnRate)];
var instantiatedEnemy = enemy.Instantiate<Enemy>();
instantiatedEnemy.Position = new Vector3(spawnPoint.Position.X, -0.5f, spawnPoint.Position.Z);
AddChild(instantiatedEnemy);
}
}
private void SpawnItems()
@@ -44,24 +88,4 @@ public partial class MonsterRoom : Node3D, IDungeonRoom
AddChild(duplicated);
}
}
public void SpawnEnemies(EnemyDatabase enemyDatabase)
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var enemySpawnPoints = EnemySpawnPoints.GetChildren();
var numberOfEnemiesToSpawn = rng.RandiRange(1, enemySpawnPoints.Count);
foreach (Marker3D spawnPoint in enemySpawnPoints)
{
if (numberOfEnemiesToSpawn <= 0)
break;
numberOfEnemiesToSpawn--;
var enemy = enemyDatabase.EnemyList[rng.RandWeighted(enemyDatabase.SpawnRate)];
var instantiatedEnemy = enemy.Instantiate<Enemy>();
instantiatedEnemy.Position = new Vector3(spawnPoint.Position.X, -0.5f, spawnPoint.Position.Z);
AddChild(instantiatedEnemy);
}
}
}

View File

@@ -1,15 +1,14 @@
[gd_scene load_steps=14 format=3 uid="uid://bc1sp6xwe0j65"]
[gd_scene load_steps=13 format=3 uid="uid://bc1sp6xwe0j65"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_0ecnn"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_cxmwa"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/scenes/Set A/03. Antechamber A.tscn" id="3_gkkr3"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/scenes/Set A/08. BasinRoom.tscn" id="8_5rblf"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_gkkr3"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="8_5rblf"]
[ext_resource type="PackedScene" uid="uid://cmvimr0pvsgqy" path="res://src/enemy/enemy_types/10. Eden Pillar/Eden Pillar.tscn" id="10_atq1f"]
[ext_resource type="PackedScene" uid="uid://cfecvvav8kkp6" path="res://src/player/Player.tscn" id="11_sdyti"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="12_aw26s"]
[ext_resource type="PackedScene" uid="uid://cihbmyo0ltq4m" path="res://src/map/dungeon/scenes/Set A/19. Floor Exit A.tscn" id="12_n02rw"]
[ext_resource type="PackedScene" uid="uid://cihbmyo0ltq4m" path="res://src/map/dungeon/rooms/Set A/19. Floor Exit A.tscn" id="12_n02rw"]
[ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="13_kwaga"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/scenes/Set A/18. Corridor A.tscn" id="13_ofywd"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="13_ofywd"]
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="14_gkkr3"]
[sub_resource type="NavigationMesh" id="NavigationMesh_4d8mx"]
@@ -177,6 +176,3 @@ EnemyList = Array[PackedScene]([ExtResource("13_kwaga"), ExtResource("14_gkkr3")
[node name="Eden Pillar" parent="." instance=ExtResource("10_atq1f")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29.7976, -1.33866, 30.3232)
[node name="Player" parent="." instance=ExtResource("11_sdyti")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29.6846, -1.648, 32.5604)

View File

@@ -1,15 +1,15 @@
[gd_scene load_steps=15 format=3 uid="uid://dmiqwmivkjgmq"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="1_afeds"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/scenes/Set A/03. Antechamber A.tscn" id="3_7txs6"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/scenes/Set A/08. BasinRoom.tscn" id="4_r7shj"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/scenes/Set A/06. Balcony Room A.tscn" id="5_geyju"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_7txs6"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="4_r7shj"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/rooms/Set A/06. Balcony Room A.tscn" id="5_geyju"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="5_ld0kt"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/scenes/Set A/09. Column Room.tscn" id="6_jgovx"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/scenes/Set A/18. Corridor A.tscn" id="7_86if8"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/scenes/Set A/13. Water Room.tscn" id="8_lpc1g"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/scenes/Set A/07. Statue Room.tscn" id="9_4i2f8"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/scenes/Set A/05. Pit Room A.tscn" id="9_lpelw"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/rooms/Set A/09. Column Room.tscn" id="6_jgovx"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="7_86if8"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/rooms/Set A/13. Water Room.tscn" id="8_lpc1g"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/rooms/Set A/07. Statue Room.tscn" id="9_4i2f8"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/rooms/Set A/05. Pit Room A.tscn" id="9_lpelw"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_yvj8v"]
[ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="12_pmbic"]
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="13_eyrkc"]

View File

@@ -1,15 +1,15 @@
[gd_scene load_steps=16 format=3 uid="uid://dl1scvkp8r5sw"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="1_ou8lo"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/scenes/Set A/03. Antechamber A.tscn" id="3_yeqmp"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/scenes/Set A/08. BasinRoom.tscn" id="4_2o7kq"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_yeqmp"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="4_2o7kq"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="5_mo2td"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/scenes/Set A/06. Balcony Room A.tscn" id="5_wo0bu"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/scenes/Set A/09. Column Room.tscn" id="6_o010k"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/scenes/Set A/18. Corridor A.tscn" id="7_qjouh"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/scenes/Set A/13. Water Room.tscn" id="8_06hbf"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/scenes/Set A/05. Pit Room A.tscn" id="9_imrv0"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/scenes/Set A/07. Statue Room.tscn" id="9_ym1ny"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/rooms/Set A/06. Balcony Room A.tscn" id="5_wo0bu"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/rooms/Set A/09. Column Room.tscn" id="6_o010k"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="7_qjouh"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/rooms/Set A/13. Water Room.tscn" id="8_06hbf"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/rooms/Set A/05. Pit Room A.tscn" id="9_imrv0"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/rooms/Set A/07. Statue Room.tscn" id="9_ym1ny"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_kyvxc"]
[ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="12_1j6d5"]
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="13_q8fb5"]

View File

@@ -2,14 +2,14 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_8amoj"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_p7nwd"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/scenes/Set A/03. Antechamber A.tscn" id="3_te0rp"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/scenes/Set A/08. BasinRoom.tscn" id="4_i5hjj"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/scenes/Set A/06. Balcony Room A.tscn" id="5_katpr"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/scenes/Set A/09. Column Room.tscn" id="6_8pmtc"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/scenes/Set A/13. Water Room.tscn" id="7_5wyu4"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/scenes/Set A/07. Statue Room.tscn" id="8_36gcj"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/scenes/Set A/05. Pit Room A.tscn" id="9_gn1yf"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/scenes/Set A/18. Corridor A.tscn" id="10_he2ag"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_te0rp"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="4_i5hjj"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/rooms/Set A/06. Balcony Room A.tscn" id="5_katpr"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/rooms/Set A/09. Column Room.tscn" id="6_8pmtc"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/rooms/Set A/13. Water Room.tscn" id="7_5wyu4"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/rooms/Set A/07. Statue Room.tscn" id="8_36gcj"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/rooms/Set A/05. Pit Room A.tscn" id="9_gn1yf"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="10_he2ag"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_f4225"]
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="13_5kttw"]
[ext_resource type="PackedScene" uid="uid://cvk007twac22c" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn" id="14_h5hhw"]

View File

@@ -2,14 +2,14 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_8l7r7"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_ksplq"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/scenes/Set A/03. Antechamber A.tscn" id="3_b3rou"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/scenes/Set A/08. BasinRoom.tscn" id="4_duhq4"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/scenes/Set A/06. Balcony Room A.tscn" id="5_ut4ij"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/scenes/Set A/09. Column Room.tscn" id="6_lposy"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/scenes/Set A/13. Water Room.tscn" id="7_mb8sd"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/scenes/Set A/07. Statue Room.tscn" id="8_573ke"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/scenes/Set A/05. Pit Room A.tscn" id="9_puq45"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/scenes/Set A/18. Corridor A.tscn" id="10_slkpn"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_b3rou"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="4_duhq4"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/rooms/Set A/06. Balcony Room A.tscn" id="5_ut4ij"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/rooms/Set A/09. Column Room.tscn" id="6_lposy"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/rooms/Set A/13. Water Room.tscn" id="7_mb8sd"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/rooms/Set A/07. Statue Room.tscn" id="8_573ke"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/rooms/Set A/05. Pit Room A.tscn" id="9_puq45"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="10_slkpn"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_l2dei"]
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="12_uv3l4"]
[ext_resource type="PackedScene" uid="uid://cvk007twac22c" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn" id="13_v44hk"]

View File

@@ -2,14 +2,14 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_51vs0"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_ixj2e"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/scenes/Set A/03. Antechamber A.tscn" id="3_rgrkc"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/scenes/Set A/08. BasinRoom.tscn" id="4_ltey6"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/scenes/Set A/06. Balcony Room A.tscn" id="5_xalbn"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/scenes/Set A/09. Column Room.tscn" id="6_yfjr1"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/scenes/Set A/13. Water Room.tscn" id="7_wnhhx"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/scenes/Set A/07. Statue Room.tscn" id="8_7s220"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/scenes/Set A/05. Pit Room A.tscn" id="9_twkiu"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/scenes/Set A/18. Corridor A.tscn" id="10_xh2mp"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_rgrkc"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="4_ltey6"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/rooms/Set A/06. Balcony Room A.tscn" id="5_xalbn"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/rooms/Set A/09. Column Room.tscn" id="6_yfjr1"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/rooms/Set A/13. Water Room.tscn" id="7_wnhhx"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/rooms/Set A/07. Statue Room.tscn" id="8_7s220"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/rooms/Set A/05. Pit Room A.tscn" id="9_twkiu"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="10_xh2mp"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_vn8cd"]
[ext_resource type="PackedScene" uid="uid://feegakykn3fv" path="res://src/enemy/enemy_types/05. ballos/Ballos.tscn" id="13_0tmnj"]
[ext_resource type="PackedScene" uid="uid://cvk007twac22c" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn" id="13_gb3sg"]

View File

@@ -2,14 +2,14 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_un5rc"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_purgj"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/scenes/Set A/03. Antechamber A.tscn" id="3_67qnt"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/scenes/Set A/08. BasinRoom.tscn" id="4_ogmgc"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/scenes/Set A/06. Balcony Room A.tscn" id="5_fjqnq"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/scenes/Set A/09. Column Room.tscn" id="6_bji1g"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/scenes/Set A/13. Water Room.tscn" id="7_sqvag"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/scenes/Set A/07. Statue Room.tscn" id="8_c5i81"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/scenes/Set A/05. Pit Room A.tscn" id="9_lo82o"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/scenes/Set A/18. Corridor A.tscn" id="10_xvcp8"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_67qnt"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="4_ogmgc"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/rooms/Set A/06. Balcony Room A.tscn" id="5_fjqnq"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/rooms/Set A/09. Column Room.tscn" id="6_bji1g"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/rooms/Set A/13. Water Room.tscn" id="7_sqvag"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/rooms/Set A/07. Statue Room.tscn" id="8_c5i81"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/rooms/Set A/05. Pit Room A.tscn" id="9_lo82o"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="10_xvcp8"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_xast8"]
[ext_resource type="PackedScene" uid="uid://cvk007twac22c" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn" id="12_tr8km"]
[ext_resource type="PackedScene" uid="uid://feegakykn3fv" path="res://src/enemy/enemy_types/05. ballos/Ballos.tscn" id="13_43euk"]

View File

@@ -2,14 +2,14 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_qs20c"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_6ps7u"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/scenes/Set A/03. Antechamber A.tscn" id="3_pn3nc"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/scenes/Set A/08. BasinRoom.tscn" id="4_esh22"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/scenes/Set A/06. Balcony Room A.tscn" id="5_mir7f"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/scenes/Set A/09. Column Room.tscn" id="6_1elux"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/scenes/Set A/13. Water Room.tscn" id="7_c68jx"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/scenes/Set A/07. Statue Room.tscn" id="8_3lecr"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/scenes/Set A/05. Pit Room A.tscn" id="9_dtrr3"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/scenes/Set A/18. Corridor A.tscn" id="10_vtwmp"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_pn3nc"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="4_esh22"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/rooms/Set A/06. Balcony Room A.tscn" id="5_mir7f"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/rooms/Set A/09. Column Room.tscn" id="6_1elux"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/rooms/Set A/13. Water Room.tscn" id="7_c68jx"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/rooms/Set A/07. Statue Room.tscn" id="8_3lecr"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/rooms/Set A/05. Pit Room A.tscn" id="9_dtrr3"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="10_vtwmp"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_uflod"]
[ext_resource type="PackedScene" uid="uid://feegakykn3fv" path="res://src/enemy/enemy_types/05. ballos/Ballos.tscn" id="13_c8dl5"]
[ext_resource type="PackedScene" uid="uid://dlw5cvutvypxn" path="res://src/enemy/enemy_types/06. chariot/Chariot.tscn" id="13_qs20c"]

View File

@@ -2,14 +2,14 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_ah6eb"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_2l5nt"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/scenes/Set A/03. Antechamber A.tscn" id="3_f55jb"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/scenes/Set A/08. BasinRoom.tscn" id="4_iljqd"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/scenes/Set A/06. Balcony Room A.tscn" id="5_2admg"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/scenes/Set A/09. Column Room.tscn" id="6_fuh3g"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/scenes/Set A/13. Water Room.tscn" id="7_lk05i"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/scenes/Set A/07. Statue Room.tscn" id="8_b81ow"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/scenes/Set A/05. Pit Room A.tscn" id="9_tl40f"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/scenes/Set A/18. Corridor A.tscn" id="10_glh5y"]
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_f55jb"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="4_iljqd"]
[ext_resource type="PackedScene" uid="uid://b7111krf365x0" path="res://src/map/dungeon/rooms/Set A/06. Balcony Room A.tscn" id="5_2admg"]
[ext_resource type="PackedScene" uid="uid://c1qicmrcg6q6x" path="res://src/map/dungeon/rooms/Set A/09. Column Room.tscn" id="6_fuh3g"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/rooms/Set A/13. Water Room.tscn" id="7_lk05i"]
[ext_resource type="PackedScene" uid="uid://vdhl32je6hq2" path="res://src/map/dungeon/rooms/Set A/07. Statue Room.tscn" id="8_b81ow"]
[ext_resource type="PackedScene" uid="uid://cam640h4euewx" path="res://src/map/dungeon/rooms/Set A/05. Pit Room A.tscn" id="9_tl40f"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="10_glh5y"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_xxd5b"]
[ext_resource type="PackedScene" uid="uid://feegakykn3fv" path="res://src/enemy/enemy_types/05. ballos/Ballos.tscn" id="12_mhyau"]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://g28xmp6cn16h"]
[ext_resource type="Script" uid="uid://b74nta2e20elm" path="res://src/map/dungeon/code/BossFloor.cs" id="1_0xjxw"]
[ext_resource type="PackedScene" uid="uid://5ja3qxn8h7iw" path="res://src/map/dungeon/scenes/Set A/15. Boss Floor A.tscn" id="2_rbjfi"]
[ext_resource type="PackedScene" uid="uid://5ja3qxn8h7iw" path="res://src/map/dungeon/rooms/Set A/15. Boss Floor A.tscn" id="2_rbjfi"]
[node name="Floor10" type="Node3D"]
script = ExtResource("1_0xjxw")

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_k525w"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_bw315"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/scenes/Set B/20. Antechamber 3.tscn" id="3_bw315"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/scenes/Set B/21. Gallery Room.tscn" id="4_8e7p7"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/scenes/Set B/22. Pit Room B.tscn" id="5_deo6i"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/scenes/Set B/23. Antechamber 4.tscn" id="6_x1lv4"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/scenes/Set B/24. Balcony Room 2.tscn" id="7_274rn"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/scenes/Set B/25. Pedestal Room.tscn" id="8_fj5sv"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/scenes/Set B/28. Long Room B.tscn" id="9_famp5"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/scenes/Set B/29. Column Circle Room.tscn" id="10_5y5fx"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/scenes/Set B/38. Floor Exit B.tscn" id="11_8e7p7"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/scenes/Set B/37. Corridor 2.tscn" id="11_jk7yl"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/rooms/Set B/20. Antechamber 3.tscn" id="3_bw315"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/rooms/Set B/21. Gallery Room.tscn" id="4_8e7p7"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/rooms/Set B/22. Pit Room B.tscn" id="5_deo6i"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/rooms/Set B/23. Antechamber 4.tscn" id="6_x1lv4"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/rooms/Set B/24. Balcony Room 2.tscn" id="7_274rn"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/rooms/Set B/25. Pedestal Room.tscn" id="8_fj5sv"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/rooms/Set B/28. Long Room B.tscn" id="9_famp5"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/rooms/Set B/29. Column Circle Room.tscn" id="10_5y5fx"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_8e7p7"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="11_jk7yl"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_y24bo"]
[ext_resource type="PackedScene" uid="uid://dlw5cvutvypxn" path="res://src/enemy/enemy_types/06. chariot/Chariot.tscn" id="13_aj7yr"]
[ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="15_bw315"]

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_xpfig"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_m28m3"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/scenes/Set B/20. Antechamber 3.tscn" id="3_53cm1"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/scenes/Set B/21. Gallery Room.tscn" id="4_ffc3h"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/scenes/Set B/22. Pit Room B.tscn" id="5_jc51p"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/scenes/Set B/23. Antechamber 4.tscn" id="6_rtv5v"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/scenes/Set B/24. Balcony Room 2.tscn" id="7_jro0u"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/scenes/Set B/25. Pedestal Room.tscn" id="8_b7mkw"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/scenes/Set B/28. Long Room B.tscn" id="9_4qv3u"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/scenes/Set B/29. Column Circle Room.tscn" id="10_5fprq"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/scenes/Set B/38. Floor Exit B.tscn" id="11_nemst"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/scenes/Set B/37. Corridor 2.tscn" id="12_1rgka"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/rooms/Set B/20. Antechamber 3.tscn" id="3_53cm1"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/rooms/Set B/21. Gallery Room.tscn" id="4_ffc3h"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/rooms/Set B/22. Pit Room B.tscn" id="5_jc51p"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/rooms/Set B/23. Antechamber 4.tscn" id="6_rtv5v"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/rooms/Set B/24. Balcony Room 2.tscn" id="7_jro0u"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/rooms/Set B/25. Pedestal Room.tscn" id="8_b7mkw"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/rooms/Set B/28. Long Room B.tscn" id="9_4qv3u"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/rooms/Set B/29. Column Circle Room.tscn" id="10_5fprq"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_nemst"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_1rgka"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_jwrcb"]
[ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="14_edmor"]

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_cmrxb"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_bb5ek"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/scenes/Set B/20. Antechamber 3.tscn" id="3_ak4no"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/scenes/Set B/21. Gallery Room.tscn" id="4_sfr88"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/scenes/Set B/22. Pit Room B.tscn" id="5_by6es"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/scenes/Set B/23. Antechamber 4.tscn" id="6_xkoxe"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/scenes/Set B/24. Balcony Room 2.tscn" id="7_63dun"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/scenes/Set B/25. Pedestal Room.tscn" id="8_btunt"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/scenes/Set B/28. Long Room B.tscn" id="9_vonag"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/scenes/Set B/29. Column Circle Room.tscn" id="10_yo5mh"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/scenes/Set B/38. Floor Exit B.tscn" id="11_mwwyc"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/scenes/Set B/37. Corridor 2.tscn" id="12_hnpqo"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/rooms/Set B/20. Antechamber 3.tscn" id="3_ak4no"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/rooms/Set B/21. Gallery Room.tscn" id="4_sfr88"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/rooms/Set B/22. Pit Room B.tscn" id="5_by6es"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/rooms/Set B/23. Antechamber 4.tscn" id="6_xkoxe"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/rooms/Set B/24. Balcony Room 2.tscn" id="7_63dun"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/rooms/Set B/25. Pedestal Room.tscn" id="8_btunt"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/rooms/Set B/28. Long Room B.tscn" id="9_vonag"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/rooms/Set B/29. Column Circle Room.tscn" id="10_yo5mh"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_mwwyc"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_hnpqo"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_bm34w"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_qo66f"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_q127u"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/scenes/Set B/20. Antechamber 3.tscn" id="3_7km57"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/scenes/Set B/21. Gallery Room.tscn" id="4_nrwsy"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/scenes/Set B/22. Pit Room B.tscn" id="5_mh162"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/scenes/Set B/23. Antechamber 4.tscn" id="6_hs7sr"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/scenes/Set B/24. Balcony Room 2.tscn" id="7_48ayb"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/scenes/Set B/25. Pedestal Room.tscn" id="8_j3q75"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/scenes/Set B/28. Long Room B.tscn" id="9_g0y0e"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/scenes/Set B/29. Column Circle Room.tscn" id="10_8jhvc"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/scenes/Set B/38. Floor Exit B.tscn" id="11_ng7ux"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/scenes/Set B/37. Corridor 2.tscn" id="12_tkntm"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/rooms/Set B/20. Antechamber 3.tscn" id="3_7km57"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/rooms/Set B/21. Gallery Room.tscn" id="4_nrwsy"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/rooms/Set B/22. Pit Room B.tscn" id="5_mh162"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/rooms/Set B/23. Antechamber 4.tscn" id="6_hs7sr"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/rooms/Set B/24. Balcony Room 2.tscn" id="7_48ayb"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/rooms/Set B/25. Pedestal Room.tscn" id="8_j3q75"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/rooms/Set B/28. Long Room B.tscn" id="9_g0y0e"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/rooms/Set B/29. Column Circle Room.tscn" id="10_8jhvc"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_ng7ux"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_tkntm"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_8j25c"]
[ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="14_r4r1j"]

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_i4yll"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_xtyir"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/scenes/Set B/20. Antechamber 3.tscn" id="3_cfhak"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/scenes/Set B/21. Gallery Room.tscn" id="4_i1g1c"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/scenes/Set B/22. Pit Room B.tscn" id="5_fqp0v"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/scenes/Set B/23. Antechamber 4.tscn" id="6_86r4l"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/scenes/Set B/24. Balcony Room 2.tscn" id="7_mxaww"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/scenes/Set B/25. Pedestal Room.tscn" id="8_eti4c"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/scenes/Set B/28. Long Room B.tscn" id="9_3p6l1"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/scenes/Set B/29. Column Circle Room.tscn" id="10_rd0ko"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/scenes/Set B/38. Floor Exit B.tscn" id="11_t8tuf"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/scenes/Set B/37. Corridor 2.tscn" id="12_f284e"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/rooms/Set B/20. Antechamber 3.tscn" id="3_cfhak"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/rooms/Set B/21. Gallery Room.tscn" id="4_i1g1c"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/rooms/Set B/22. Pit Room B.tscn" id="5_fqp0v"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/rooms/Set B/23. Antechamber 4.tscn" id="6_86r4l"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/rooms/Set B/24. Balcony Room 2.tscn" id="7_mxaww"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/rooms/Set B/25. Pedestal Room.tscn" id="8_eti4c"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/rooms/Set B/28. Long Room B.tscn" id="9_3p6l1"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/rooms/Set B/29. Column Circle Room.tscn" id="10_rd0ko"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_t8tuf"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_f284e"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_hlb65"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_dg3fy"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_q8hlb"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/scenes/Set B/20. Antechamber 3.tscn" id="3_0utb0"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/scenes/Set B/21. Gallery Room.tscn" id="4_jh7em"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/scenes/Set B/22. Pit Room B.tscn" id="5_xrigs"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/scenes/Set B/23. Antechamber 4.tscn" id="6_r76p4"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/scenes/Set B/24. Balcony Room 2.tscn" id="7_b414q"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/scenes/Set B/25. Pedestal Room.tscn" id="8_7gq57"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/scenes/Set B/28. Long Room B.tscn" id="9_kaga7"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/scenes/Set B/29. Column Circle Room.tscn" id="10_0r7u7"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/scenes/Set B/38. Floor Exit B.tscn" id="11_wurkp"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/scenes/Set B/37. Corridor 2.tscn" id="12_qbngl"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/rooms/Set B/20. Antechamber 3.tscn" id="3_0utb0"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/rooms/Set B/21. Gallery Room.tscn" id="4_jh7em"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/rooms/Set B/22. Pit Room B.tscn" id="5_xrigs"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/rooms/Set B/23. Antechamber 4.tscn" id="6_r76p4"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/rooms/Set B/24. Balcony Room 2.tscn" id="7_b414q"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/rooms/Set B/25. Pedestal Room.tscn" id="8_7gq57"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/rooms/Set B/28. Long Room B.tscn" id="9_kaga7"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/rooms/Set B/29. Column Circle Room.tscn" id="10_0r7u7"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_wurkp"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_qbngl"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_gg5wp"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_7fjdy"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_neo74"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/scenes/Set B/20. Antechamber 3.tscn" id="3_iqgo0"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/scenes/Set B/21. Gallery Room.tscn" id="4_m0j7h"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/scenes/Set B/22. Pit Room B.tscn" id="5_vfchv"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/scenes/Set B/23. Antechamber 4.tscn" id="6_dn13w"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/scenes/Set B/24. Balcony Room 2.tscn" id="7_i6jge"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/scenes/Set B/25. Pedestal Room.tscn" id="8_kg1wb"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/scenes/Set B/28. Long Room B.tscn" id="9_f0vei"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/scenes/Set B/29. Column Circle Room.tscn" id="10_id8cu"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/scenes/Set B/38. Floor Exit B.tscn" id="11_0tado"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/scenes/Set B/37. Corridor 2.tscn" id="12_wm2qn"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/rooms/Set B/20. Antechamber 3.tscn" id="3_iqgo0"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/rooms/Set B/21. Gallery Room.tscn" id="4_m0j7h"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/rooms/Set B/22. Pit Room B.tscn" id="5_vfchv"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/rooms/Set B/23. Antechamber 4.tscn" id="6_dn13w"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/rooms/Set B/24. Balcony Room 2.tscn" id="7_i6jge"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/rooms/Set B/25. Pedestal Room.tscn" id="8_kg1wb"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/rooms/Set B/28. Long Room B.tscn" id="9_f0vei"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/rooms/Set B/29. Column Circle Room.tscn" id="10_id8cu"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_0tado"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_wm2qn"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_f1owy"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_ksrny"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_a76ri"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/scenes/Set B/20. Antechamber 3.tscn" id="3_biant"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/scenes/Set B/21. Gallery Room.tscn" id="4_ya360"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/scenes/Set B/22. Pit Room B.tscn" id="5_7enj5"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/scenes/Set B/23. Antechamber 4.tscn" id="6_c5tc6"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/scenes/Set B/24. Balcony Room 2.tscn" id="7_jcbwi"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/scenes/Set B/25. Pedestal Room.tscn" id="8_6fs7u"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/scenes/Set B/28. Long Room B.tscn" id="9_6ueav"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/scenes/Set B/29. Column Circle Room.tscn" id="10_ag0xh"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/scenes/Set B/38. Floor Exit B.tscn" id="11_380n2"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/scenes/Set B/37. Corridor 2.tscn" id="12_tg7p8"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/rooms/Set B/20. Antechamber 3.tscn" id="3_biant"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/rooms/Set B/21. Gallery Room.tscn" id="4_ya360"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/rooms/Set B/22. Pit Room B.tscn" id="5_7enj5"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/rooms/Set B/23. Antechamber 4.tscn" id="6_c5tc6"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/rooms/Set B/24. Balcony Room 2.tscn" id="7_jcbwi"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/rooms/Set B/25. Pedestal Room.tscn" id="8_6fs7u"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/rooms/Set B/28. Long Room B.tscn" id="9_6ueav"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/rooms/Set B/29. Column Circle Room.tscn" id="10_ag0xh"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_380n2"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_tg7p8"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_avl22"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_8tkq2"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_m0atb"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/scenes/Set B/20. Antechamber 3.tscn" id="3_blhib"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/scenes/Set B/21. Gallery Room.tscn" id="4_rxmjy"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/scenes/Set B/22. Pit Room B.tscn" id="5_fnjfv"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/scenes/Set B/23. Antechamber 4.tscn" id="6_dpaem"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/scenes/Set B/24. Balcony Room 2.tscn" id="7_fp3ik"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/scenes/Set B/25. Pedestal Room.tscn" id="8_2od3c"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/scenes/Set B/28. Long Room B.tscn" id="9_twdga"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/scenes/Set B/29. Column Circle Room.tscn" id="10_2x4yi"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/scenes/Set B/38. Floor Exit B.tscn" id="11_gnpgo"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/scenes/Set B/37. Corridor 2.tscn" id="12_rgx5c"]
[ext_resource type="PackedScene" uid="uid://dadl2rua1ovhq" path="res://src/map/dungeon/rooms/Set B/20. Antechamber 3.tscn" id="3_blhib"]
[ext_resource type="PackedScene" uid="uid://dra1mqcqhw7g0" path="res://src/map/dungeon/rooms/Set B/21. Gallery Room.tscn" id="4_rxmjy"]
[ext_resource type="PackedScene" uid="uid://cq82tqhlshn1k" path="res://src/map/dungeon/rooms/Set B/22. Pit Room B.tscn" id="5_fnjfv"]
[ext_resource type="PackedScene" uid="uid://utaqo4hl68yw" path="res://src/map/dungeon/rooms/Set B/23. Antechamber 4.tscn" id="6_dpaem"]
[ext_resource type="PackedScene" uid="uid://bhqmpgpegcuu5" path="res://src/map/dungeon/rooms/Set B/24. Balcony Room 2.tscn" id="7_fp3ik"]
[ext_resource type="PackedScene" uid="uid://dbfkpodwvxmfe" path="res://src/map/dungeon/rooms/Set B/25. Pedestal Room.tscn" id="8_2od3c"]
[ext_resource type="PackedScene" uid="uid://b8tiuu3l181ke" path="res://src/map/dungeon/rooms/Set B/28. Long Room B.tscn" id="9_twdga"]
[ext_resource type="PackedScene" uid="uid://5cstpejxygy6" path="res://src/map/dungeon/rooms/Set B/29. Column Circle Room.tscn" id="10_2x4yi"]
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_gnpgo"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_rgx5c"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_8mkl1"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://w2peiubnalof"]
[ext_resource type="Script" uid="uid://b74nta2e20elm" path="res://src/map/dungeon/code/BossFloor.cs" id="1_d31ow"]
[ext_resource type="PackedScene" uid="uid://ceo7ph483io44" path="res://src/map/dungeon/scenes/Set B/34. Boss Floor B.tscn" id="2_d31ow"]
[ext_resource type="PackedScene" uid="uid://ceo7ph483io44" path="res://src/map/dungeon/rooms/Set B/34. Boss Floor B.tscn" id="2_d31ow"]
[node name="Floor20" type="Node3D"]
script = ExtResource("1_d31ow")

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://ds5dbs3wdko8j"]
[ext_resource type="PackedScene" uid="uid://bo20ffw2ygbks" path="res://src/map/dungeon/scenes/Set B/35. Goddess of Guidance's Room.tscn" id="1_0lcan"]
[ext_resource type="PackedScene" uid="uid://bo20ffw2ygbks" path="res://src/map/dungeon/rooms/Set B/35. Goddess of Guidance's Room.tscn" id="1_0lcan"]
[node name="Floor20" type="Node3D"]

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://fvemjkxfoxlw"]
[ext_resource type="PackedScene" uid="uid://cyrrhoarhxlhg" path="res://src/map/dungeon/scenes/Set B/36. Final Floor.tscn" id="1_xbsn7"]
[ext_resource type="PackedScene" uid="uid://cyrrhoarhxlhg" path="res://src/map/dungeon/rooms/Set B/36. Final Floor.tscn" id="1_xbsn7"]
[node name="Floor20" type="Node3D"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=59 format=4 uid="uid://dpec2lbt83dhe"]
[gd_scene load_steps=60 format=4 uid="uid://dpec2lbt83dhe"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_ho6e8"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_phhs1"]
@@ -648,6 +648,9 @@ shadow_mesh = SubResource("ArrayMesh_i3ffh")
[sub_resource type="BoxShape3D" id="BoxShape3D_phhs1"]
size = Vector3(2.12268, 5.82227, 1.63702)
[sub_resource type="BoxShape3D" id="BoxShape3D_e81mq"]
size = Vector3(20, 8, 16)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_51rrf"]
shading_mode = 0
albedo_texture = ExtResource("20_le1vp")
@@ -785,6 +788,15 @@ shape = SubResource("BoxShape3D_phhs1")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.24982, -0.677457, 78.8461)
shape = SubResource("BoxShape3D_phhs1")
[node name="Room" type="Area3D" parent="Antechamber A"]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Antechamber A/Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 1.9843, 0)
shape = SubResource("BoxShape3D_e81mq")
[node name="CSGBox3D" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0314088, 4.23029, -0.0385468)
visible = false

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=84 format=4 uid="uid://i781lbf2wb22"]
[gd_scene load_steps=85 format=4 uid="uid://i781lbf2wb22"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_owolg"]
[ext_resource type="Texture2D" uid="uid://b3sg8oamch2i1" path="res://src/map/dungeon/models/Set A/04. Antechamber B/TREE_ROOM_VER2_STONE_PANEL_2png.png" id="2_q760f"]
@@ -1088,6 +1088,9 @@ size = Vector2(16, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_5sviy"]
size = Vector3(20, 8, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_cgshv"]
size = Vector3(20, 8, 16)
[node name="Antechamber B" type="Node3D"]
script = ExtResource("1_owolg")
size_in_voxels = Vector3i(5, 1, 4)
@@ -1291,3 +1294,12 @@ skeleton = NodePath("../../Antechamber B")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Minimap Manager"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.187622, 1.94617, 0.0406494)
shape = SubResource("BoxShape3D_5sviy")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 1.9843, 0)
shape = SubResource("BoxShape3D_cgshv")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=87 format=4 uid="uid://cam640h4euewx"]
[gd_scene load_steps=88 format=4 uid="uid://cam640h4euewx"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_hww7y"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_et5yn"]
@@ -1136,6 +1136,9 @@ albedo_color = Color(1, 1, 1, 0)
material = ExtResource("23_2yaqs")
size = Vector2(36, 36)
[sub_resource type="BoxShape3D" id="BoxShape3D_c4wqw"]
size = Vector3(36, 8, 36)
[node name="Pit Room A" type="Node3D"]
script = ExtResource("1_hww7y")
size_in_voxels = Vector3i(9, 1, 9)
@@ -1410,3 +1413,13 @@ unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.51272, 0)
layers = 4
mesh = SubResource("PlaneMesh_i3uar")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 15.689, 0)
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, -13.6094, 0)
shape = SubResource("BoxShape3D_c4wqw")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=84 format=4 uid="uid://b7111krf365x0"]
[gd_scene load_steps=85 format=4 uid="uid://b7111krf365x0"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_jccmw"]
[ext_resource type="Texture2D" uid="uid://bb7y5jjl32b11" path="res://src/map/dungeon/models/Set A/06. Balcony Room A/INNER_BALCONY_ROOM_VER2_STONE_PANEL_2png.png" id="2_40w7a"]
@@ -890,6 +890,9 @@ size = Vector3(36, 8, 36)
material = ExtResource("19_dmkqn")
size = Vector2(36, 32)
[sub_resource type="BoxShape3D" id="BoxShape3D_1up8d"]
size = Vector3(36, 8, 32)
[node name="Balcony Room A" type="Node3D"]
script = ExtResource("1_jccmw")
size_in_voxels = Vector3i(9, 1, 8)
@@ -1284,3 +1287,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.545578, -1.75954, 0.251803)
layers = 4
mesh = SubResource("PlaneMesh_fhks4")
skeleton = NodePath("../..")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 5.65958, 0)
shape = SubResource("BoxShape3D_1up8d")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=88 format=4 uid="uid://vdhl32je6hq2"]
[gd_scene load_steps=89 format=4 uid="uid://vdhl32je6hq2"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_j1kxr"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_6xco5"]
@@ -1688,6 +1688,9 @@ size = Vector2(16, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_grw58"]
size = Vector3(16.0326, 8.01392, 2007.07)
[sub_resource type="BoxShape3D" id="BoxShape3D_jruxb"]
size = Vector3(16, 8, 16)
[node name="Statue Room" type="Node3D"]
script = ExtResource("1_j1kxr")
size_in_voxels = Vector3i(4, 1, 4)
@@ -1862,3 +1865,12 @@ skeleton = NodePath("../../Statue Room")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Minimap Manager"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.03888, 0.0590906, 995.718)
shape = SubResource("BoxShape3D_grw58")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 1.9843, 0)
shape = SubResource("BoxShape3D_jruxb")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=66 format=4 uid="uid://b82dx66mgs2d7"]
[gd_scene load_steps=67 format=4 uid="uid://b82dx66mgs2d7"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_0qew1"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_pu81k"]
@@ -721,6 +721,9 @@ size = Vector2(20, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_xepai"]
size = Vector3(19.9796, 8, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_txn5d"]
size = Vector3(20, 8, 16)
[node name="BasinRoom" type="Node3D"]
script = ExtResource("1_0qew1")
size_in_voxels = Vector3i(5, 1, 4)
@@ -889,3 +892,13 @@ skeleton = NodePath("../../BasinRoom")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
transform = Transform3D(1, 0, 0, 0, 0.999142, 0.0414048, 0, -0.0414048, 0.999142, -0.143891, 1.9078, 0.474629)
shape = SubResource("BoxShape3D_xepai")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0361805, -0.0723581, 0)
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 1.9843, 0)
shape = SubResource("BoxShape3D_txn5d")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=106 format=4 uid="uid://c1qicmrcg6q6x"]
[gd_scene load_steps=107 format=4 uid="uid://c1qicmrcg6q6x"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_x1cte"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_lij04"]
@@ -1530,6 +1530,9 @@ albedo_texture = ExtResource("23_feo0n")
shading_mode = 0
albedo_texture = ExtResource("23_feo0n")
[sub_resource type="BoxShape3D" id="BoxShape3D_07e0r"]
size = Vector3(48, 8, 28)
[node name="Column Room" type="Node3D"]
script = ExtResource("1_x1cte")
size_in_voxels = Vector3i(12, 1, 7)
@@ -1740,3 +1743,12 @@ material_override = SubResource("StandardMaterial3D_nku7m")
operation = 2
size = Vector3(4, 4, 2)
material = SubResource("StandardMaterial3D_m6mfk")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 2.00828, 0)
shape = SubResource("BoxShape3D_07e0r")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=159 format=4 uid="uid://dn5546yqyntfr"]
[gd_scene load_steps=160 format=4 uid="uid://dn5546yqyntfr"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_7tf58"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_xx257"]
@@ -2239,6 +2239,9 @@ size = Vector2(20, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_24rcp"]
size = Vector3(20, 8, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_x7lek"]
size = Vector3(12, 8, 16)
[node name="Item Transfer Room" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.73082, 0, -1.86841)
script = ExtResource("1_7tf58")
@@ -2591,3 +2594,12 @@ skeleton = NodePath("../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Minimap Manager"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.94617, 0)
shape = SubResource("BoxShape3D_24rcp")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 1.9843, 0)
shape = SubResource("BoxShape3D_x7lek")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=58 format=4 uid="uid://dhm2lyfkrjugf"]
[gd_scene load_steps=59 format=4 uid="uid://dhm2lyfkrjugf"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_lh7xt"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_lh7xt"]
@@ -645,6 +645,9 @@ albedo_texture = ExtResource("21_j6xkj")
shading_mode = 0
albedo_texture = ExtResource("21_j6xkj")
[sub_resource type="BoxShape3D" id="BoxShape3D_7sgjq"]
size = Vector3(48, 12, 28)
[node name="Long Room" type="Node3D"]
script = ExtResource("1_lh7xt")
size_in_voxels = Vector3i(12, 1, 7)
@@ -977,3 +980,12 @@ material_override = SubResource("StandardMaterial3D_nku7m")
operation = 2
size = Vector3(4, 4, 2)
material = SubResource("StandardMaterial3D_m6mfk")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 3.93401, 0)
shape = SubResource("BoxShape3D_7sgjq")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=84 format=4 uid="uid://dhkbvos11tkdw"]
[gd_scene load_steps=85 format=4 uid="uid://dhkbvos11tkdw"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_5ijis"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_ya417"]
@@ -974,6 +974,9 @@ size = Vector2(20, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_24rcp"]
size = Vector3(20, 8, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_3jg1k"]
size = Vector3(20, 8, 16)
[node name="JumpScareRoom" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.73082, 0, -1.86841)
script = ExtResource("1_5ijis")
@@ -1188,3 +1191,12 @@ skeleton = NodePath("../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Minimap Manager"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.94617, 0)
shape = SubResource("BoxShape3D_24rcp")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 1.9843, 0)
shape = SubResource("BoxShape3D_3jg1k")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=88 format=4 uid="uid://dfpyfpnya0f4u"]
[gd_scene load_steps=89 format=4 uid="uid://dfpyfpnya0f4u"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_ulct7"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_hbsbj"]
@@ -1048,6 +1048,9 @@ albedo_texture = ExtResource("23_83smy")
shading_mode = 0
albedo_texture = ExtResource("23_83smy")
[sub_resource type="BoxShape3D" id="BoxShape3D_2nfuf"]
size = Vector3(28, 8, 48)
[node name="Water Room" type="Node3D"]
script = ExtResource("1_ulct7")
size_in_voxels = Vector3i(7, 1, 12)
@@ -1318,3 +1321,12 @@ material_override = SubResource("StandardMaterial3D_rw5qh")
operation = 2
size = Vector3(4.10754, 4, 2)
material = SubResource("StandardMaterial3D_xs44o")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 1.9843, 0)
shape = SubResource("BoxShape3D_2nfuf")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=100 format=4 uid="uid://c5eon2dk4ojua"]
[gd_scene load_steps=101 format=4 uid="uid://c5eon2dk4ojua"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_bgwrn"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_bgwrn"]
@@ -1515,6 +1515,9 @@ albedo_texture = ExtResource("22_gbtai")
material = ExtResource("25_082m7")
size = Vector2(32, 36)
[sub_resource type="BoxShape3D" id="BoxShape3D_81jou"]
size = Vector3(32, 8, 36)
[node name="RansRoom" type="Node3D"]
script = ExtResource("1_bgwrn")
size_in_voxels = Vector3i(8, 1, 9)
@@ -1911,3 +1914,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.92677, 0)
layers = 4
mesh = SubResource("PlaneMesh_s0txx")
skeleton = NodePath("../..")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 1.9843, 0)
shape = SubResource("BoxShape3D_81jou")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=99 format=4 uid="uid://crf30tibwsnri"]
[gd_scene load_steps=100 format=4 uid="uid://crf30tibwsnri"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_bglxp"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_5aadh"]
@@ -1042,6 +1042,9 @@ albedo_texture = ExtResource("22_oehi4")
material = ExtResource("25_25af7")
size = Vector2(32, 36)
[sub_resource type="BoxShape3D" id="BoxShape3D_1cfoy"]
size = Vector3(36, 8, 28)
[node name="Seshat\'s Room" type="Node3D"]
script = ExtResource("1_bglxp")
size_in_voxels = Vector3i(9, 1, 7)
@@ -1270,3 +1273,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.92677, 0)
layers = 4
mesh = SubResource("PlaneMesh_s0txx")
skeleton = NodePath("../..")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 1.9843, 0)
shape = SubResource("BoxShape3D_1cfoy")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=78 format=4 uid="uid://cw33vpar237pm"]
[gd_scene load_steps=79 format=4 uid="uid://cw33vpar237pm"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_m4la0"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_56tk6"]
@@ -875,6 +875,9 @@ albedo_texture = ExtResource("18_1v0p6")
material = ExtResource("21_0yv2j")
size = Vector2(20, 16)
[sub_resource type="BoxShape3D" id="BoxShape3D_43nhx"]
size = Vector3(36, 6, 20)
[node name="GesthemiisRoom" type="Node3D"]
script = ExtResource("1_m4la0")
size_in_voxels = Vector3i(9, 1, 5)
@@ -1029,3 +1032,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.98417, 0)
layers = 4
mesh = SubResource("PlaneMesh_s0txx")
skeleton = NodePath("../..")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, 0.894945, 0)
shape = SubResource("BoxShape3D_43nhx")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=50 format=4 uid="uid://cihbmyo0ltq4m"]
[gd_scene load_steps=51 format=4 uid="uid://cihbmyo0ltq4m"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_3m472"]
[ext_resource type="Script" uid="uid://bd824eigybu51" path="res://src/map/dungeon/code/ExitRoom.cs" id="2_umdkt"]
@@ -482,6 +482,9 @@ size = Vector2(20, 36)
[sub_resource type="BoxShape3D" id="BoxShape3D_24rcp"]
size = Vector3(20.9775, 8, 34.2681)
[sub_resource type="BoxShape3D" id="BoxShape3D_tgauh"]
size = Vector3(20, 20, 36)
[node name="Floor Exit A" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.73082, 0, -1.86841)
script = ExtResource("1_3m472")
@@ -603,3 +606,13 @@ skeleton = NodePath("../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Minimap Manager"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.168457, 1.94617, -0.287262)
shape = SubResource("BoxShape3D_24rcp")
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 11.8436, 0)
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, -4.02862, -1.19209e-07)
shape = SubResource("BoxShape3D_tgauh")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=48 format=4 uid="uid://dadl2rua1ovhq"]
[gd_scene load_steps=49 format=4 uid="uid://dadl2rua1ovhq"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_utnmd"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_rsrpd"]
@@ -640,6 +640,9 @@ texture_filter = 0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hwsho"]
albedo_texture = ExtResource("22_or4jf")
[sub_resource type="BoxShape3D" id="BoxShape3D_nuwng"]
size = Vector3(20, 6, 16)
[node name="Antechamber 3" type="Node3D"]
script = ExtResource("1_utnmd")
size_in_voxels = Vector3i(5, 1, 4)
@@ -778,3 +781,13 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0487772, 0.0442526, 0.0686
material_override = SubResource("StandardMaterial3D_hwsho")
operation = 2
size = Vector3(4, 4, 2)
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 11.8436, 0)
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, -10.6408, -1.19209e-07)
shape = SubResource("BoxShape3D_nuwng")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=75 format=4 uid="uid://dra1mqcqhw7g0"]
[gd_scene load_steps=76 format=4 uid="uid://dra1mqcqhw7g0"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_wyqcj"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_snhgn"]
@@ -792,6 +792,9 @@ texture_filter = 0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hwsho"]
albedo_texture = ExtResource("20_3qtro")
[sub_resource type="BoxShape3D" id="BoxShape3D_wex81"]
size = Vector3(16, 6, 16)
[node name="Gallery Room" type="Node3D"]
script = ExtResource("1_wyqcj")
size_in_voxels = Vector3i(4, 1, 4)
@@ -1031,3 +1034,13 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0487772, 0.0442526, 0.0686
material_override = SubResource("StandardMaterial3D_hwsho")
operation = 2
size = Vector3(4, 4, 2)
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 11.8436, 0)
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, -10.6408, -1.19209e-07)
shape = SubResource("BoxShape3D_wex81")

View File

@@ -21,7 +21,6 @@
[ext_resource type="Script" uid="uid://yl7wyeo5m725" path="res://src/map/dungeon/code/remove_unused_doors.gd" id="20_n10ny"]
[ext_resource type="Script" uid="uid://c6s8hvdj3u3aq" path="res://src/map/dungeon/code/MinimapManager.cs" id="21_ju35g"]
[ext_resource type="Material" uid="uid://bsafm3t4drpl" path="res://src/map/dungeon/textures/MinimapTexture.tres" id="22_7wqw8"]
[ext_resource type="PackedScene" uid="uid://cfecvvav8kkp6" path="res://src/player/Player.tscn" id="23_6xs0s"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tranh"]
resource_name = "Material.168"
@@ -592,6 +591,9 @@ albedo_color = Color(1, 1, 1, 0)
material = ExtResource("22_7wqw8")
size = Vector2(36, 36)
[sub_resource type="BoxShape3D" id="BoxShape3D_d346t"]
size = Vector3(36, 6, 36)
[node name="Pit Room B" type="Node3D"]
script = ExtResource("1_mjoyd")
size_in_voxels = Vector3i(9, 1, 9)
@@ -859,5 +861,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.51272, 0)
layers = 4
mesh = SubResource("PlaneMesh_i3uar")
[node name="Player" parent="." instance=ExtResource("23_6xs0s")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.66277, 6.1067)
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 11.8436, 0)
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, -10.6408, -1.19209e-07)
shape = SubResource("BoxShape3D_d346t")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=38 format=4 uid="uid://utaqo4hl68yw"]
[gd_scene load_steps=39 format=4 uid="uid://utaqo4hl68yw"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_5dvbl"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_dp1b6"]
@@ -391,6 +391,9 @@ texture_filter = 0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hwsho"]
albedo_texture = ExtResource("16_6dqol")
[sub_resource type="BoxShape3D" id="BoxShape3D_oifm3"]
size = Vector3(20, 6, 16)
[node name="Antechamber 4" type="Node3D"]
script = ExtResource("1_5dvbl")
size_in_voxels = Vector3i(5, 1, 4)
@@ -538,3 +541,13 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0487772, 0.0442526, 0.0686
material_override = SubResource("StandardMaterial3D_hwsho")
operation = 2
size = Vector3(4, 4, 2)
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 11.8436, 0)
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, -10.6408, -1.19209e-07)
shape = SubResource("BoxShape3D_oifm3")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=76 format=4 uid="uid://bhqmpgpegcuu5"]
[gd_scene load_steps=77 format=4 uid="uid://bhqmpgpegcuu5"]
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="1_y05dd"]
[ext_resource type="Script" uid="uid://dhollu4j3pynq" path="res://src/map/dungeon/code/MonsterRoom.cs" id="2_fp3eo"]
@@ -644,6 +644,9 @@ texture_filter = 0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hwsho"]
albedo_texture = ExtResource("17_pvfiu")
[sub_resource type="BoxShape3D" id="BoxShape3D_lyww4"]
size = Vector3(36, 20, 32)
[node name="Balcony Room 2" type="Node3D"]
script = ExtResource("1_y05dd")
size_in_voxels = Vector3i(9, 1, 8)
@@ -980,3 +983,13 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0487772, 0.0442526, 0.0686
material_override = SubResource("StandardMaterial3D_hwsho")
operation = 2
size = Vector3(4, 4, 2)
[node name="Room" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 11.8436, 0)
collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="Room"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04566, -11.8126, -1.19209e-07)
shape = SubResource("BoxShape3D_lyww4")

Some files were not shown because too many files have changed in this diff Show More