From a9f00f36ae329618e522824d4c497b1ad62554d5 Mon Sep 17 00:00:00 2001 From: chris bell Date: Tue, 16 Jun 2026 23:00:43 -0500 Subject: [PATCH] Starting on parts system --- adept/assets/models/car/Textures/colormap.png | Bin 0 -> 12371 bytes .../models/car/Textures/colormap.png.import | 41 +++++++++++++ adept/assets/models/car/hatchback-sports.glb | Bin 0 -> 197804 bytes .../models/car/hatchback-sports.glb.import | 42 +++++++++++++ adept/project.godot | 1 + adept/scenes/main.tscn | 31 ++++++++++ adept/src/scripts/ADEPT.cs | 19 +++++- adept/src/scripts/ADEPTError.cs | 18 ++++++ adept/src/scripts/ADEPTError.cs.uid | 1 + adept/src/scripts/Main.cs | 23 +++++++ adept/src/scripts/Main.cs.uid | 1 + adept/src/scripts/PartsSystem/Part.cs | 10 +++ adept/src/scripts/PartsSystem/Part.cs.uid | 1 + adept/src/scripts/PartsSystem/PartsList.cs | 57 ++++++++++++++++++ .../src/scripts/PartsSystem/PartsList.cs.uid | 1 + 15 files changed, 244 insertions(+), 2 deletions(-) create mode 100644 adept/assets/models/car/Textures/colormap.png create mode 100644 adept/assets/models/car/Textures/colormap.png.import create mode 100644 adept/assets/models/car/hatchback-sports.glb create mode 100644 adept/assets/models/car/hatchback-sports.glb.import create mode 100644 adept/scenes/main.tscn create mode 100644 adept/src/scripts/ADEPTError.cs create mode 100644 adept/src/scripts/ADEPTError.cs.uid create mode 100644 adept/src/scripts/Main.cs create mode 100644 adept/src/scripts/Main.cs.uid create mode 100644 adept/src/scripts/PartsSystem/Part.cs create mode 100644 adept/src/scripts/PartsSystem/Part.cs.uid create mode 100644 adept/src/scripts/PartsSystem/PartsList.cs create mode 100644 adept/src/scripts/PartsSystem/PartsList.cs.uid diff --git a/adept/assets/models/car/Textures/colormap.png b/adept/assets/models/car/Textures/colormap.png new file mode 100644 index 0000000000000000000000000000000000000000..5c4b1857dafd7abd1ca9836285f1bd589f75ccb0 GIT binary patch literal 12371 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 literal 0 HcmV?d00001 diff --git a/adept/assets/models/car/Textures/colormap.png.import b/adept/assets/models/car/Textures/colormap.png.import new file mode 100644 index 0000000..0eb11fd --- /dev/null +++ b/adept/assets/models/car/Textures/colormap.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bp8id5rw0n16c" +path.s3tc="res://.godot/imported/colormap.png-9e44d5abfbbe7530ae1b965897f095de.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/models/car/Textures/colormap.png" +dest_files=["res://.godot/imported/colormap.png-9e44d5abfbbe7530ae1b965897f095de.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/adept/assets/models/car/hatchback-sports.glb b/adept/assets/models/car/hatchback-sports.glb new file mode 100644 index 0000000000000000000000000000000000000000..964c4db4004b62468ea19fdc75cb6ae19a4fc6ad GIT binary patch literal 197804 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

kRFhFkXn#9$S!DDf$D2edbS7I2NH+o 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 E0INhjGXMYp literal 0 HcmV?d00001 diff --git a/adept/assets/models/car/hatchback-sports.glb.import b/adept/assets/models/car/hatchback-sports.glb.import new file mode 100644 index 0000000..fa2f0ec --- /dev/null +++ b/adept/assets/models/car/hatchback-sports.glb.import @@ -0,0 +1,42 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://d1kk88npp13co" +path="res://.godot/imported/hatchback-sports.glb-fa30709e41da6de76695446908506dc5.scn" + +[deps] + +source_file="res://assets/models/car/hatchback-sports.glb" +dest_files=["res://.godot/imported/hatchback-sports.glb-fa30709e41da6de76695446908506dc5.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={} +gltf/naming_version=2 +gltf/embedded_image_handling=1 diff --git a/adept/project.godot b/adept/project.godot index d7b02a0..90c6008 100644 --- a/adept/project.godot +++ b/adept/project.godot @@ -11,6 +11,7 @@ config_version=5 [application] config/name="ADEPT" +run/main_scene="uid://cpqovsoo4n8xu" config/features=PackedStringArray("4.6", "C#", "GL Compatibility") config/icon="res://icon.svg" diff --git a/adept/scenes/main.tscn b/adept/scenes/main.tscn new file mode 100644 index 0000000..46ee5e6 --- /dev/null +++ b/adept/scenes/main.tscn @@ -0,0 +1,31 @@ +[gd_scene format=3 uid="uid://cpqovsoo4n8xu"] + +[ext_resource type="Script" uid="uid://4u2ome238wbq" path="res://src/scripts/Main.cs" id="1_o5qli"] +[ext_resource type="PackedScene" uid="uid://d1kk88npp13co" path="res://assets/models/car/hatchback-sports.glb" id="2_0wfyh"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_0wfyh"] +sky_horizon_color = Color(0.66224277, 0.6717428, 0.6867428, 1) +ground_horizon_color = Color(0.66224277, 0.6717428, 0.6867428, 1) + +[sub_resource type="Sky" id="Sky_sugp2"] +sky_material = SubResource("ProceduralSkyMaterial_0wfyh") + +[sub_resource type="Environment" id="Environment_jyhfs"] +background_mode = 2 +sky = SubResource("Sky_sugp2") +tonemap_mode = 2 + +[node name="Main" type="Node3D" unique_id=1905788834] +script = ExtResource("1_o5qli") + +[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=145682166] +environment = SubResource("Environment_jyhfs") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=415894162] +transform = Transform3D(-0.8660254, -0.43301278, 0.25, 0, 0.49999997, 0.86602545, -0.50000006, 0.75, -0.43301266, 0, 0, 0) +shadow_enabled = true + +[node name="hatchback-sports" parent="." unique_id=602574537 instance=ExtResource("2_0wfyh")] + +[node name="Camera3D" type="Camera3D" parent="." unique_id=130456096] +transform = Transform3D(1, 0, 0, 0, 0.8660254, 0.5, 0, -0.5, 0.8660254, 0, 1.5814024, 2.4225156) diff --git a/adept/src/scripts/ADEPT.cs b/adept/src/scripts/ADEPT.cs index 2b1f9ef..fc1db57 100644 --- a/adept/src/scripts/ADEPT.cs +++ b/adept/src/scripts/ADEPT.cs @@ -1,11 +1,26 @@ +using ADEPT.PartsSystem; using Godot; using System; +namespace ADEPT; + public sealed class ADEPT { - private ADEPT() {} private static readonly Lazy _instance = new(() => new ADEPT()); public static ADEPT Instance => _instance.Value; - + private PartsList _partsList = new(); + public PartsList PartsList => _partsList; + + private Node _mainNode; + public Node Main + { + get { return _mainNode; } + set { _mainNode ??= value; } + } + + private ADEPT() + { + + } } diff --git a/adept/src/scripts/ADEPTError.cs b/adept/src/scripts/ADEPTError.cs new file mode 100644 index 0000000..2fb145c --- /dev/null +++ b/adept/src/scripts/ADEPTError.cs @@ -0,0 +1,18 @@ +using System; + +namespace ADEPT; + +public sealed class ADEPTError +{ + + private T _value; + public T Value => _value; + + private string _message = ""; + public string Message => _message; + + public ADEPTError(T data, string message = "") + { + _message = message; + } +} \ No newline at end of file diff --git a/adept/src/scripts/ADEPTError.cs.uid b/adept/src/scripts/ADEPTError.cs.uid new file mode 100644 index 0000000..3289fac --- /dev/null +++ b/adept/src/scripts/ADEPTError.cs.uid @@ -0,0 +1 @@ +uid://ddxtkgnkxsbc diff --git a/adept/src/scripts/Main.cs b/adept/src/scripts/Main.cs new file mode 100644 index 0000000..fccd54c --- /dev/null +++ b/adept/src/scripts/Main.cs @@ -0,0 +1,23 @@ +using Godot; +using System; + +namespace ADEPT; + +public partial class Main : Node +{ + public override void _Ready() + { + ADEPT.Instance.Main = this; + ADEPT.Instance.PartsList.GeneratePartsList(this); + + foreach (var thing in ADEPT.Instance.PartsList.Parts) + { + GD.Print(thing.Key); + } + } + + + public override void _Process(double delta) + { + } +} diff --git a/adept/src/scripts/Main.cs.uid b/adept/src/scripts/Main.cs.uid new file mode 100644 index 0000000..65bbac3 --- /dev/null +++ b/adept/src/scripts/Main.cs.uid @@ -0,0 +1 @@ +uid://4u2ome238wbq diff --git a/adept/src/scripts/PartsSystem/Part.cs b/adept/src/scripts/PartsSystem/Part.cs new file mode 100644 index 0000000..613ba30 --- /dev/null +++ b/adept/src/scripts/PartsSystem/Part.cs @@ -0,0 +1,10 @@ +using System; +using Godot; + +namespace ADEPT.PartsSystem; + +public class Part(string name, Node node) +{ + public string Name = name; + public Node Node = node; +} \ No newline at end of file diff --git a/adept/src/scripts/PartsSystem/Part.cs.uid b/adept/src/scripts/PartsSystem/Part.cs.uid new file mode 100644 index 0000000..2ed56d5 --- /dev/null +++ b/adept/src/scripts/PartsSystem/Part.cs.uid @@ -0,0 +1 @@ +uid://by6wvwbkri2vp diff --git a/adept/src/scripts/PartsSystem/PartsList.cs b/adept/src/scripts/PartsSystem/PartsList.cs new file mode 100644 index 0000000..d90ac27 --- /dev/null +++ b/adept/src/scripts/PartsSystem/PartsList.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using Godot; + +namespace ADEPT.PartsSystem; + +public class PartsList +{ + public Dictionary Parts = new(); + + public ADEPTError AddPart(Part part) + { + var result = Parts.TryAdd(part.Name, part); + return result ? new(true) : new(false, $"Can't add part: Part with name '{part.Name}' already exists"); + } + + public ADEPTError RemovePart(string partName) + { + var result = Parts.Remove(partName); + return result ? new(true) : new(false, $"Can't delete part: Part with name '{partName}' doesn't exist"); + } + + public ADEPTError GetPart(string partName) + { + if (Parts.TryGetValue(partName, out Part part)) + { + return new(part); + } + + return new(null, $"Could not get part: Part with name '{partName}' does not exist"); + } + + public ADEPTError GeneratePartsList(Node node) +{ + if (node is null) return new(false, "Could not generate parts list, the input node was NULL"); + + foreach (Node child in node.GetChildren()) + { + var newPart = new Part(child.Name.ToString().Replace(" ", "_"), child); + var result = AddPart(newPart); + + if (!result.Value) + { + GD.PushError(result.Message); + return result; + } + + var conversionResult = GeneratePartsList(child); + if (!conversionResult.Value) + { + return conversionResult; + } + } + + return new(true); +} +} \ No newline at end of file diff --git a/adept/src/scripts/PartsSystem/PartsList.cs.uid b/adept/src/scripts/PartsSystem/PartsList.cs.uid new file mode 100644 index 0000000..f7aa5b1 --- /dev/null +++ b/adept/src/scripts/PartsSystem/PartsList.cs.uid @@ -0,0 +1 @@ +uid://bh8vu0obpd62d