Enemy viewer revamp, loading screen improvement

This commit is contained in:
2025-12-05 16:30:13 -08:00
parent f39bd8ecdb
commit 678916be89
61 changed files with 1109 additions and 657 deletions

View File

@@ -0,0 +1,47 @@
shader_type spatial;
render_mode diffuse_toon,specular_toon,cull_disabled;
uniform sampler2D iChannel0 : source_color;
uniform int samples =100;
//
//
uniform float alpha_cut ;
uniform float gain = 1.0; // gain : (gain), min = 0., max = 50.
//
uniform float blur_x =50.0; // X blur : (X blur), min = 0, max = 1000.
uniform float blur_y = 50.0; // Y blur : (Y blur), min = 0, max = 1000.
uniform float Rot_Angle : hint_range(0.0, 100.0, 0.1);
uniform float Metal : hint_range(0.0, 1.0, 0.1);
//
//
//
vec2 rotate(vec2 uv, vec2 p, float angle)
{
mat2 rotation = mat2(vec2(cos(angle), -sin(angle)),vec2(sin(angle), cos(angle)));
uv -= p;
uv = uv * rotation;
uv += p;
return uv;
}
void fragment(){
float Angle = Rot_Angle/-100.0;
vec2 uv = UV;
vec2 origin;
float precompute = Angle * (1.0 / float(samples - 1));
origin = vec2(0.5,0.5);
vec4 color = vec4(0.0);
float ws = 0.0;
vec2 center = vec2(0.5,0.5);
for(int i = 0; i <= samples; i++)
{
float p = (float(i)* precompute);
float w = 1.0 ;
color += texture(iChannel0, rotate(uv,origin, p)) * w;
ws += w;
}
ALBEDO = vec4(color.rgb / ws * gain, 1.0).rgb;
//ALPHA = vec4(color.rgb / ws * gain, 1.0).r;
ALPHA = step(alpha_cut,1.0 - distance(center,UV));
METALLIC = Metal;
}

View File

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

View File

@@ -1,16 +1,25 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
using Zennysoft.Game.Abstractions;
namespace Zennysoft.Game.Ma;
public interface IDataViewer
{
}
[Meta(typeof(IAutoNode))]
public partial class DataViewer : Control
public partial class DataViewer : Control, IDataViewer
{
public override void _Notification(int what) => this.Notify(what);
public IInstantiator Instantiator { get; set; } = default!;
[Dependency]
public IAppRepo AppRepo => this.DependOn<IAppRepo>();
[Export]
public float _cameraSpeed = 0.01f;
@@ -21,73 +30,135 @@ public partial class DataViewer : Control
[Node] public Node3D ModelPivot { get; set; } = default!;
[Node] public DataViewerRepository DataViewerRepository { get; set; } = default!;
#region UI
[Node] public RichTextLabel EnemyName { get; set; } = default!;
[Node] public RichTextLabel Description { get; set; } = default!;
[Node] public Label HPValue { get; set; } = default!;
[Node] public Label ATKValue { get; set; } = default!;
[Node] public Label DEFValue { get; set; } = default!;
[Node] public Label Drop1Value { get; set; } = default!;
[Node] public Label Drop2Value { get; set; } = default!;
[Node] public Label AffinityValue { get; set; } = default!;
[Node] public Label WeaknessValue { get; set; } = default!;
[Node] public Control EnemyInfo { get; set; } = default!;
[Node] public Button BackButton { get; set; } = default!;
#endregion
private EnemyModelView2D _currentModel;
private EnemyModelView _currentModel;
private float _cameraStartingPoint = 0f;
private int _currentIndex = 0;
private int _modelIndex = 0;
private List<EnemyModelView> _enemies;
public void Initialize()
public void OnReady()
{
Instantiator = new Instantiator(GetTree());
LoadModel();
BackButton.Pressed += BackButton_Pressed;
_enemies = [.. ModelPivot.GetChildren().Cast<EnemyModelView>()];
_currentModel = _enemies.First();
DisplayEnemy();
}
public void OnEnterTree() => GetTree().Paused = false;
public void OnExitTree() => GetTree().Paused = false;
private void BackButton_Pressed() => AppRepo.OnDataViewerExited();
public override void _Input(InputEvent @event)
{
if (BackButton.HasFocus() && @event.IsActionPressed(GameInputs.Interact))
{
GetTree().Paused = false;
BackButton.ReleaseFocus();
return;
}
if (_currentModel == null || BackButton.HasFocus())
return;
if (@event.IsActionPressed(GameInputs.Attack))
_currentModel.PlayPrimaryAttackAnimation();
if (@event.IsActionPressed(GameInputs.InventorySort))
_currentModel.PlaySecondaryAttackAnimation();
if (Input.IsActionJustPressed(GameInputs.Inventory))
_currentModel.PlayActivateAnimation();
if (@event.IsActionPressed(GameInputs.EnemyViewerWalk))
_currentModel.PlayWalkAnimation();
if (@event.IsActionReleased(GameInputs.EnemyViewerWalk))
_currentModel.PlayIdleAnimation();
if (@event.IsActionPressed(GameInputs.Interact))
{
GetTree().Paused = true;
BackButton.GrabFocus();
}
if (@event.IsActionPressed(GameInputs.StrafeRight))
{
// Load next model
_enemies[_currentIndex].Hide();
if (_currentIndex == _enemies.Count - 1)
_currentIndex = 0;
else
_currentIndex++;
DisplayEnemy();
}
if (@event.IsActionPressed(GameInputs.StrafeLeft))
{
_enemies[_currentIndex].Hide();
// Load previous model
if (_currentIndex == 0)
_currentIndex = _enemies.Count - 1;
else
_currentIndex--;
DisplayEnemy();
}
}
public override void _Process(double delta)
{
if (Input.IsActionPressed(GameInputs.MoveLeft))
CameraPivot.RotateY(_cameraSpeed);
if (Input.IsActionPressed(GameInputs.MoveRight))
CameraPivot.RotateY(-_cameraSpeed);
if (Input.IsActionPressed(GameInputs.StrafeLeft))
Camera3D.Position = Camera3D.Position.MoveToward(CameraPivot.Position, (float)delta * 2f);
if (Input.IsActionPressed(GameInputs.StrafeRight))
Camera3D.Position = Camera3D.Position.MoveToward(CameraPivot.Position, -(float)delta * 2f);
if (_currentModel == null || BackButton.HasFocus())
return;
Camera3D.Position = Camera3D.Position.Clamp(new Vector3(0, 0, 1), new Vector3(0, 0, 4));
var forwardStrength = Input.GetActionStrength(GameInputs.CameraForward);
Camera3D.Position = Camera3D.Position.MoveToward(CameraPivot.Position, _cameraSpeed * forwardStrength * (_cameraStartingPoint / 10));
var backStrength = Input.GetActionStrength(GameInputs.CameraBack);
Camera3D.Position = Camera3D.Position.MoveToward(CameraPivot.Position, -_cameraSpeed * backStrength * (_cameraStartingPoint / 10));
var leftStrength = Input.GetActionStrength(GameInputs.MoveLeft);
CameraPivot.RotateY(_cameraSpeed * leftStrength);
var rightStrength = Input.GetActionStrength(GameInputs.MoveRight);
CameraPivot.RotateY(-_cameraSpeed * rightStrength);
Camera3D.Position = Camera3D.Position.Clamp(new Vector3(0, 0, _cameraStartingPoint / 2), new Vector3(0, 0, _cameraStartingPoint));
ModelPivot.Rotation = ModelPivot.Rotation.Clamp(Mathf.DegToRad(-60), Mathf.DegToRad(60));
_currentModel.SetCurrentDirection(_currentModel.GlobalBasis, -CameraPivot.Basis.Z);
Description.Text = (-CameraPivot.RotationDegrees).ToString();
if (Input.IsActionJustPressed(GameInputs.Attack))
_currentModel.PlayPrimaryAttackAnimation();
if (Input.IsActionJustPressed(GameInputs.AltAttack))
_currentModel.PlaySecondaryAttackAnimation();
if (Input.IsActionJustPressed(GameInputs.Inventory))
_currentModel.PlayActivateAnimation();
if (Input.IsActionPressed(GameInputs.StrafeRight))
_currentModel.PlayWalkAnimation();
if (Input.IsActionJustReleased(GameInputs.StrafeRight))
_currentModel.PlayIdleAnimation();
if (Input.IsActionJustPressed(GameInputs.Next))
{
// Load next model
_currentModel.CallDeferred(MethodName.QueueFree);
_modelIndex = (_modelIndex + 1) % DataViewerRepository.ModelRepository.Count;
GD.Print(_modelIndex);
CallDeferred(MethodName.LoadModel);
}
if (Input.IsActionJustPressed(GameInputs.Previous))
{
// Load previous model
_currentModel.CallDeferred(MethodName.QueueFree);
_modelIndex = (_modelIndex - 1 < 0 ? DataViewerRepository.ModelRepository.Count : _modelIndex) - 1;
CallDeferred(MethodName.LoadModel);
}
if (_currentModel is EnemyModelView2D enemyModelView2D)
enemyModelView2D.SetCurrentDirection(_currentModel.GlobalBasis, -CameraPivot.Basis.Z);
}
private void LoadModel()
private void DisplayEnemy()
{
var modelScene = DataViewerRepository.ModelRepository.ElementAt(_modelIndex);
_currentModel = modelScene.Instantiate<EnemyModelView2D>();
ModelPivot.AddChild(_currentModel);
EnemyName.Text = _currentModel.EnemyLoreInfo.Name;
Description.Text = _currentModel.EnemyLoreInfo.Description;
_currentModel = _enemies[_currentIndex];
var size = _currentModel.GetSize();
if (_currentModel is EnemyModelView2D)
_cameraStartingPoint = size.X / 50;
else
_cameraStartingPoint = size.X * 2;
Camera3D.Position = new Vector3(Camera3D.Position.X, Camera3D.Position.Y, _cameraStartingPoint);
EnemyName.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Name : "Placeholder Text";
Description.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Description : "Placeholder Text";
HPValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.MaximumHP : "Placeholder Text";
ATKValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.ATK : "Placeholder Text";
DEFValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.DEF : "Placeholder Text";
Drop1Value.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Drop1 : "Placeholder Text";
Drop2Value.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Drop2 : "Placeholder Text";
AffinityValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Affinity : "Placeholder Text";
WeaknessValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Weakness : "Placeholder Text";
_enemies[_currentIndex].Show();
}
}

View File

@@ -1,28 +1,35 @@
[gd_scene load_steps=22 format=3 uid="uid://c7wjbgbrdivol"]
[gd_scene load_steps=19 format=3 uid="uid://c7wjbgbrdivol"]
[ext_resource type="Script" uid="uid://bgaflnnur26vk" path="res://src/data_viewer/DataViewer.cs" id="1_1qako"]
[ext_resource type="Theme" uid="uid://daxuhpmyxwxck" path="res://src/ui/inventory_menu/InventoryDialogueSelectionStyle.tres" id="2_bef6s"]
[ext_resource type="Texture2D" uid="uid://bg7elvikjtl36" path="res://src/map/assets/Sarcophagus/sarco altar_greeen2.png" id="3_3wl4s"]
[ext_resource type="PackedScene" uid="uid://c16i1gmg6yu5a" path="res://src/data_viewer/DataViewerRepository.tscn" id="3_ejdn0"]
[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/02. michael/MichaelModelView.tscn" id="4_bef6s"]
[ext_resource type="PackedScene" uid="uid://dcm53j3rncxdm" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.tscn" id="5_vk1lh"]
[ext_resource type="PackedScene" uid="uid://bimjnsu52y3xi" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="6_hpkd1"]
[ext_resource type="PackedScene" uid="uid://bup8c4x1na3aw" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn" id="8_dvixg"]
[ext_resource type="PackedScene" uid="uid://bls3mcsyld4vy" path="res://src/enemy/enemy_types/09. Agni/AgniDemonModelView.tscn" id="9_utjpw"]
[ext_resource type="PackedScene" uid="uid://cu7n814hhtjwm" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn" id="10_ylptw"]
[ext_resource type="PackedScene" uid="uid://c2i8ylr3y0bri" path="res://src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn" id="11_fm7p5"]
[ext_resource type="PackedScene" uid="uid://72lbcmp4bcx4" path="res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn" id="12_5hrw6"]
[ext_resource type="PackedScene" uid="uid://lc5koiqn1sca" path="res://src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelModelView.tscn" id="13_5hrw6"]
[ext_resource type="PackedScene" uid="uid://dxwwfbt2mtmer" path="res://src/enemy/enemy_types/11. Palan/PalanModelView.tscn" id="14_3wl4s"]
[ext_resource type="PackedScene" uid="uid://drkaq6grim1fb" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn" id="15_37gx6"]
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/04. sara/SaraModelView.tscn" id="16_alsxp"]
[ext_resource type="PackedScene" uid="uid://byd7cwxq1be6f" path="res://src/enemy/enemy_types/07. chinthe/ChintheModelView.tscn" id="17_qov77"]
[ext_resource type="PackedScene" uid="uid://c5xijwxkg4pf6" path="res://src/enemy/enemy_types/05. ballos/BallosModelView.tscn" id="18_sxd8s"]
[ext_resource type="PackedScene" uid="uid://c5asojy73n44d" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingyModelView2.tscn" id="19_gkucd"]
[ext_resource type="Texture2D" uid="uid://dsf5l6g8n1tkw" path="res://src/ui/rendered_assets/SCREEN_RENDERS_Viewer_720_16_9.png" id="2_hpkd1"]
[ext_resource type="Texture2D" uid="uid://bophm5or5opdf" path="res://src/data_viewer/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg" id="3_hpkd1"]
[ext_resource type="PackedScene" uid="uid://bimjnsu52y3xi" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="3_vk1lh"]
[ext_resource type="Shader" uid="uid://o80s4yvp0rto" path="res://src/data_viewer/BlurSprite3D.gdshader" id="4_vk1lh"]
[ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="6_vk1lh"]
[ext_resource type="FontFile" uid="uid://beh6d5lo5ihq0" path="res://src/ui/fonts/georgiai.ttf" id="7_dvixg"]
[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/02. michael/MichaelModelView.tscn" id="8_ekqja"]
[ext_resource type="PackedScene" uid="uid://c5xijwxkg4pf6" path="res://src/enemy/enemy_types/05. ballos/BallosModelView.tscn" id="11_icshd"]
[ext_resource type="PackedScene" uid="uid://bid6f48l0q58o" path="res://src/enemy/enemy_types/14. horse_head/HorseFaceModelView.tscn" id="19_qagkd"]
[ext_resource type="PackedScene" uid="uid://dnomfbym36ivg" path="res://src/enemy/enemy_types/15. ox_face/OxFaceModelView.tscn" id="20_bw7jv"]
[ext_resource type="PackedScene" uid="uid://l4413jwn0m8v" path="res://src/enemy/enemy_types/16. demon wall/DemonWallModelView.tscn" id="21_i7aes"]
[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="25_gdy4a"]
[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="26_br3ej"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dvixg"]
shading_mode = 0
albedo_texture = ExtResource("3_3wl4s")
[sub_resource type="Environment" id="Environment_vk1lh"]
[sub_resource type="CameraAttributesPhysical" id="CameraAttributesPhysical_dvixg"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dvixg"]
render_priority = 0
shader = ExtResource("4_vk1lh")
shader_parameter/iChannel0 = ExtResource("3_hpkd1")
shader_parameter/samples = 100
shader_parameter/alpha_cut = 0.0
shader_parameter/gain = 17.73
shader_parameter/blur_x = 50.0
shader_parameter/blur_y = 50.0
shader_parameter/Rot_Angle = 4.9
shader_parameter/Metal = 0.0
[sub_resource type="Environment" id="Environment_3wl4s"]
background_mode = 1
@@ -37,131 +44,245 @@ grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_1qako")
_cameraSpeed = 0.015
_cameraSpeed = 0.08
[node name="CenterContainer" type="CenterContainer" parent="."]
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_hpkd1")
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
layout_mode = 2
theme_override_constants/separation = 0
alignment = 1
[node name="CenterContainer2" type="CenterContainer" parent="."]
layout_mode = 0
offset_left = 69.0
offset_top = 196.0
offset_right = 900.0
offset_bottom = 942.0
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 0
[node name="LeftPanel" type="Panel" parent="CenterContainer/VBoxContainer/HBoxContainer"]
custom_minimum_size = Vector2(390, 0)
layout_mode = 2
size_flags_horizontal = 3
[node name="EnemyName" type="RichTextLabel" parent="CenterContainer/VBoxContainer/HBoxContainer/LeftPanel"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2_bef6s")
text = "Placeholder Text"
[node name="SubViewportContainer" type="SubViewportContainer" parent="CenterContainer/VBoxContainer/HBoxContainer"]
custom_minimum_size = Vector2(500, 500)
[node name="SubViewportContainer" type="SubViewportContainer" parent="CenterContainer2"]
custom_minimum_size = Vector2(750, 600)
layout_mode = 2
stretch = true
[node name="SubViewport" type="SubViewport" parent="CenterContainer/VBoxContainer/HBoxContainer/SubViewportContainer"]
[node name="SubViewport" type="SubViewport" parent="CenterContainer2/SubViewportContainer"]
process_mode = 1
own_world_3d = true
handle_input_locally = false
size = Vector2i(500, 500)
size = Vector2i(750, 600)
render_target_update_mode = 4
[node name="ModelPivot" type="Node3D" parent="CenterContainer/VBoxContainer/HBoxContainer/SubViewportContainer/SubViewport"]
[node name="Light" type="OmniLight3D" parent="CenterContainer2/SubViewportContainer/SubViewport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0.401216)
omni_range = 4096.0
[node name="ModelPivot" type="Node3D" parent="CenterContainer2/SubViewportContainer/SubViewport"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.82392, 0)
[node name="CameraPivot" type="Node3D" parent="CenterContainer/VBoxContainer/HBoxContainer/SubViewportContainer/SubViewport"]
[node name="Sproingy" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("3_vk1lh")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.26108, 0)
visible = false
[node name="Michael" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("8_ekqja")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.20608, 0)
visible = false
[node name="Ballos" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("11_icshd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.23608, 0)
visible = false
[node name="Horse Face" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("19_qagkd")]
visible = false
[node name="Ox Face" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("20_bw7jv")]
visible = false
[node name="Demon Wall" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("21_i7aes")]
visible = false
[node name="CameraPivot" type="Node3D" parent="CenterContainer2/SubViewportContainer/SubViewport"]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
[node name="Camera3D" type="Camera3D" parent="CenterContainer/VBoxContainer/HBoxContainer/SubViewportContainer/SubViewport/CameraPivot"]
[node name="Camera3D" type="Camera3D" parent="CenterContainer2/SubViewportContainer/SubViewport/CameraPivot"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.82023e-08, 0, 3.1233)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5)
environment = SubResource("Environment_vk1lh")
attributes = SubResource("CameraAttributesPhysical_dvixg")
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="CenterContainer/VBoxContainer/HBoxContainer/SubViewportContainer/SubViewport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.84891, 0)
radius = 1.5
height = 5.46951
material = SubResource("StandardMaterial3D_dvixg")
[node name="Sprite3D" type="Sprite3D" parent="CenterContainer2/SubViewportContainer/SubViewport/CameraPivot/Camera3D"]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 349.344, -203.088, -300)
material_override = SubResource("ShaderMaterial_dvixg")
pixel_size = 1.0
billboard = 2
transparent = false
texture_filter = 2
texture = ExtResource("3_hpkd1")
[node name="RightPanel" type="Panel" parent="CenterContainer/VBoxContainer/HBoxContainer"]
custom_minimum_size = Vector2(390, 0)
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 2
anchor_left = 0.5
anchor_top = 0.186
anchor_right = 0.969
anchor_bottom = 0.87
offset_left = 13.0
offset_top = 4.12
offset_right = 5.5199
offset_bottom = 3.3999
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
[node name="EnemyInfo" type="VBoxContainer" parent="MarginContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 20
[node name="EnemyName" type="RichTextLabel" parent="MarginContainer/EnemyInfo"]
unique_name_in_owner = true
custom_minimum_size = Vector2(800, 50)
layout_mode = 2
theme_override_fonts/normal_font = ExtResource("7_dvixg")
theme_override_font_sizes/normal_font_size = 40
text = "Placeholder Text"
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/EnemyInfo"]
custom_minimum_size = Vector2(0, 150)
layout_mode = 2
[node name="StatBlock" type="VBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer"]
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
[node name="HPBlock" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/HPBlock"]
layout_mode = 2
text = "HP"
label_settings = ExtResource("6_vk1lh")
[node name="HPValue" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/HPBlock"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "992"
label_settings = ExtResource("6_vk1lh")
[node name="TextEdit" type="RichTextLabel" parent="CenterContainer/VBoxContainer/HBoxContainer/RightPanel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2_bef6s")
text = "Placeholder Text"
[node name="BottomPanel" type="Panel" parent="CenterContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 460)
[node name="ATKBlock" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock"]
layout_mode = 2
size_flags_vertical = 3
[node name="ColorRect" type="ColorRect" parent="CenterContainer/VBoxContainer/BottomPanel"]
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 0
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/ATKBlock"]
layout_mode = 2
text = "ATK"
label_settings = ExtResource("6_vk1lh")
[node name="Description" type="RichTextLabel" parent="CenterContainer/VBoxContainer/BottomPanel"]
[node name="ATKValue" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/ATKBlock"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2_bef6s")
layout_mode = 2
size_flags_horizontal = 3
text = "14"
label_settings = ExtResource("6_vk1lh")
[node name="DEFBlock" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/DEFBlock"]
layout_mode = 2
text = "DEF"
label_settings = ExtResource("6_vk1lh")
[node name="DEFValue" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/DEFBlock"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "15"
label_settings = ExtResource("6_vk1lh")
[node name="DropsBlock" type="VBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer"]
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
[node name="Drops" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock"]
layout_mode = 2
text = "Drops:"
label_settings = ExtResource("6_vk1lh")
[node name="FirstDrop" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock/FirstDrop"]
layout_mode = 2
text = "1."
label_settings = ExtResource("6_vk1lh")
[node name="Drop1Value" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock/FirstDrop"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "???"
label_settings = ExtResource("6_vk1lh")
[node name="SecondDrop" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock/SecondDrop"]
layout_mode = 2
text = "2."
label_settings = ExtResource("6_vk1lh")
[node name="Drop2Value" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock/SecondDrop"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Goddess Garb"
label_settings = ExtResource("6_vk1lh")
[node name="AffinityBlock" type="VBoxContainer" parent="MarginContainer/EnemyInfo"]
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
[node name="Affinity" type="HBoxContainer" parent="MarginContainer/EnemyInfo/AffinityBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/AffinityBlock/Affinity"]
layout_mode = 2
text = "Affinity:"
label_settings = ExtResource("6_vk1lh")
[node name="AffinityValue" type="Label" parent="MarginContainer/EnemyInfo/AffinityBlock/Affinity"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Metal"
label_settings = ExtResource("6_vk1lh")
[node name="Weakness" type="HBoxContainer" parent="MarginContainer/EnemyInfo/AffinityBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/AffinityBlock/Weakness"]
layout_mode = 2
text = "Weakness:"
label_settings = ExtResource("6_vk1lh")
[node name="WeaknessValue" type="Label" parent="MarginContainer/EnemyInfo/AffinityBlock/Weakness"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Holy"
label_settings = ExtResource("6_vk1lh")
[node name="Description" type="RichTextLabel" parent="MarginContainer/EnemyInfo"]
unique_name_in_owner = true
custom_minimum_size = Vector2(800, 625)
layout_mode = 2
theme_override_fonts/normal_font = ExtResource("7_dvixg")
theme_override_font_sizes/normal_font_size = 30
text = "Placeholder Text"
[node name="Label" type="Label" parent="CenterContainer/VBoxContainer/BottomPanel"]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -460.0
offset_top = -228.0
grow_horizontal = 0
grow_vertical = 0
theme = ExtResource("2_bef6s")
text = "Switch: L1/R1 or <- ->
Primary Attack: X (Space)
Secondary Attack: ◻ (RMB)
Activate: △ (E)"
[node name="DataViewerRepository" parent="." instance=ExtResource("3_ejdn0")]
unique_name_in_owner = true
ModelRepository = Array[PackedScene]([ExtResource("5_vk1lh"), ExtResource("4_bef6s"), ExtResource("6_hpkd1"), ExtResource("8_dvixg"), ExtResource("9_utjpw"), ExtResource("10_ylptw"), ExtResource("11_fm7p5"), ExtResource("12_5hrw6"), ExtResource("13_5hrw6"), ExtResource("14_3wl4s"), ExtResource("15_37gx6"), ExtResource("16_alsxp"), ExtResource("17_qov77"), ExtResource("18_sxd8s"), ExtResource("19_gkucd")])
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_3wl4s")
@@ -170,3 +291,22 @@ transform = Transform3D(1, 0, 0, 0, -0.31977, 0.947495, 0, -0.947495, -0.31977,
light_energy = 8.943
spot_range = 9.00889
spot_attenuation = 3.45
[node name="BackButton" type="Button" parent="."]
unique_name_in_owner = true
layout_mode = 0
offset_left = 1671.0
offset_top = 972.0
offset_right = 1803.0
offset_bottom = 1028.0
theme_override_styles/focus = ExtResource("25_gdy4a")
theme_override_styles/disabled_mirrored = ExtResource("26_br3ej")
theme_override_styles/disabled = ExtResource("26_br3ej")
theme_override_styles/hover_pressed_mirrored = ExtResource("26_br3ej")
theme_override_styles/hover_pressed = ExtResource("26_br3ej")
theme_override_styles/hover_mirrored = ExtResource("26_br3ej")
theme_override_styles/hover = ExtResource("26_br3ej")
theme_override_styles/pressed_mirrored = ExtResource("26_br3ej")
theme_override_styles/pressed = ExtResource("26_br3ej")
theme_override_styles/normal_mirrored = ExtResource("26_br3ej")
theme_override_styles/normal = ExtResource("26_br3ej")

View File

@@ -1,12 +0,0 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))]
public partial class DataViewerRepository : Node
{
[Export]
public Godot.Collections.Array<PackedScene> ModelRepository;
}

View File

@@ -1,6 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://c16i1gmg6yu5a"]
[ext_resource type="Script" uid="uid://03k48fke03vu" path="res://src/data_viewer/DataViewerRepository.cs" id="1_1cvot"]
[node name="DataViewerRepository" type="Node"]
script = ExtResource("1_1cvot")

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bophm5or5opdf"
path="res://.godot/imported/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg-c763a9fd7b565d1015c74205c4c551f8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/data_viewer/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg"
dest_files=["res://.godot/imported/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg-c763a9fd7b565d1015c74205c4c551f8.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=0