From 9b73e900f755b5e0463493fa409f6f1dabb0a01d Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Wed, 3 Dec 2025 18:09:34 +0300 Subject: [PATCH] Added data classes --- game/world/data/area_data.gd | 10 ++++++++++ game/world/data/area_data.gd.uid | 1 + game/world/data/enemy_data.gd | 7 +++++++ game/world/data/enemy_data.gd.uid | 1 + game/world/data/passage_data.gd | 10 ++++++++++ game/world/data/passage_data.gd.uid | 1 + game/world/data/sector_data.gd | 8 ++++++++ game/world/data/sector_data.gd.uid | 1 + game/world/data/stage_data.gd | 7 +++++++ game/world/data/stage_data.gd.uid | 1 + game/world/data/world_data.gd | 7 +++++++ game/world/data/world_data.gd.uid | 1 + game/world/generators/world_generator.gd | 20 ++++++++++++++++++++ game/world/generators/world_generator.gd.uid | 1 + game/world/generators/world_generator.tscn | 6 ++++++ 15 files changed, 82 insertions(+) create mode 100644 game/world/data/area_data.gd create mode 100644 game/world/data/area_data.gd.uid create mode 100644 game/world/data/enemy_data.gd create mode 100644 game/world/data/enemy_data.gd.uid create mode 100644 game/world/data/passage_data.gd create mode 100644 game/world/data/passage_data.gd.uid create mode 100644 game/world/data/sector_data.gd create mode 100644 game/world/data/sector_data.gd.uid create mode 100644 game/world/data/stage_data.gd create mode 100644 game/world/data/stage_data.gd.uid create mode 100644 game/world/data/world_data.gd create mode 100644 game/world/data/world_data.gd.uid create mode 100644 game/world/generators/world_generator.gd create mode 100644 game/world/generators/world_generator.gd.uid create mode 100644 game/world/generators/world_generator.tscn diff --git a/game/world/data/area_data.gd b/game/world/data/area_data.gd new file mode 100644 index 0000000..d701e5a --- /dev/null +++ b/game/world/data/area_data.gd @@ -0,0 +1,10 @@ +class_name AreaData +extends Resource + + +@export var first_stage : StageData +@export var last_stage : StageData +@export var inner_stages : Array[StageData] = [] +@export var passages : Array[PassageData] = [] + +@export var seed_string : String = "" diff --git a/game/world/data/area_data.gd.uid b/game/world/data/area_data.gd.uid new file mode 100644 index 0000000..f3ef0a9 --- /dev/null +++ b/game/world/data/area_data.gd.uid @@ -0,0 +1 @@ +uid://chsdac455jkm4 diff --git a/game/world/data/enemy_data.gd b/game/world/data/enemy_data.gd new file mode 100644 index 0000000..67762a2 --- /dev/null +++ b/game/world/data/enemy_data.gd @@ -0,0 +1,7 @@ +class_name EnemyData +extends Resource + + +@export var seed_string : String = "" + +@export var spawn_point : Vector2 diff --git a/game/world/data/enemy_data.gd.uid b/game/world/data/enemy_data.gd.uid new file mode 100644 index 0000000..bf1c27c --- /dev/null +++ b/game/world/data/enemy_data.gd.uid @@ -0,0 +1 @@ +uid://dsg7ml2ebhs3w diff --git a/game/world/data/passage_data.gd b/game/world/data/passage_data.gd new file mode 100644 index 0000000..3b260c6 --- /dev/null +++ b/game/world/data/passage_data.gd @@ -0,0 +1,10 @@ +class_name PassageData +extends Resource + + +@export var previous_sector : SectorData +@export var next_sector : SectorData + +@export var enemies : Array[EnemyData] = [] + +@export var seed_string : String = "" diff --git a/game/world/data/passage_data.gd.uid b/game/world/data/passage_data.gd.uid new file mode 100644 index 0000000..cc05f83 --- /dev/null +++ b/game/world/data/passage_data.gd.uid @@ -0,0 +1 @@ +uid://bvqvn7slf5f82 diff --git a/game/world/data/sector_data.gd b/game/world/data/sector_data.gd new file mode 100644 index 0000000..a8db563 --- /dev/null +++ b/game/world/data/sector_data.gd @@ -0,0 +1,8 @@ +class_name SectorData +extends Resource + + +@export var previous_passages : Array[PassageData] = [] +@export var next_passages : Array[PassageData] = [] + +@export var seed_string : String = "" diff --git a/game/world/data/sector_data.gd.uid b/game/world/data/sector_data.gd.uid new file mode 100644 index 0000000..324c394 --- /dev/null +++ b/game/world/data/sector_data.gd.uid @@ -0,0 +1 @@ +uid://ru80bu5nt6rs diff --git a/game/world/data/stage_data.gd b/game/world/data/stage_data.gd new file mode 100644 index 0000000..275dd69 --- /dev/null +++ b/game/world/data/stage_data.gd @@ -0,0 +1,7 @@ +class_name StageData +extends Resource + + +@export var sectors : Array[SectorData] = [] + +@export var seed_string : String = "" diff --git a/game/world/data/stage_data.gd.uid b/game/world/data/stage_data.gd.uid new file mode 100644 index 0000000..4040715 --- /dev/null +++ b/game/world/data/stage_data.gd.uid @@ -0,0 +1 @@ +uid://donl4fqb825et diff --git a/game/world/data/world_data.gd b/game/world/data/world_data.gd new file mode 100644 index 0000000..4258cd7 --- /dev/null +++ b/game/world/data/world_data.gd @@ -0,0 +1,7 @@ +class_name WorldData +extends Resource + + +@export var areas : Array[AreaData] = [] + +@export var seed_string : String = "" diff --git a/game/world/data/world_data.gd.uid b/game/world/data/world_data.gd.uid new file mode 100644 index 0000000..1d32ddb --- /dev/null +++ b/game/world/data/world_data.gd.uid @@ -0,0 +1 @@ +uid://1hanx5eudexx diff --git a/game/world/generators/world_generator.gd b/game/world/generators/world_generator.gd new file mode 100644 index 0000000..1adee97 --- /dev/null +++ b/game/world/generators/world_generator.gd @@ -0,0 +1,20 @@ +extends Node + + +func generate(seed_string: String) -> WorldData: + var data : WorldData = WorldData.new() + + data.seed_string = seed_string + + _fill_areas(data) + + return data + + +func _fill_areas(data : WorldData) -> void: + const MAX_AREA_COUNT = 3 + var rng := RandomNumberGenerator.new() + rng.seed = hash(data.seed_string) + + for i in MAX_AREA_COUNT: + pass diff --git a/game/world/generators/world_generator.gd.uid b/game/world/generators/world_generator.gd.uid new file mode 100644 index 0000000..8445d8f --- /dev/null +++ b/game/world/generators/world_generator.gd.uid @@ -0,0 +1 @@ +uid://b7e3xk14le68j diff --git a/game/world/generators/world_generator.tscn b/game/world/generators/world_generator.tscn new file mode 100644 index 0000000..63a3b13 --- /dev/null +++ b/game/world/generators/world_generator.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://ggf76ayl53bb"] + +[ext_resource type="Script" uid="uid://b7e3xk14le68j" path="res://game/world/generators/world_generator.gd" id="1_c1jvo"] + +[node name="WorldGenerator" type="Node"] +script = ExtResource("1_c1jvo")