From c8ea642b889ee7d667b2bc493c2bbb3acb0d40d5 Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Sun, 7 Dec 2025 16:35:18 +0300 Subject: [PATCH] Added EnemyGenerator --- game/world/generators/enemy_generator.gd | 16 ++++++++ game/world/generators/enemy_generator.gd.uid | 1 + game/world/generators/enemy_generator.tscn | 6 +++ game/world/generators/passage_generator.gd | 17 ++++++++- game/world/generators/passage_generator.tscn | 5 ++- images/map.png | 3 ++ images/map.png.import | 40 ++++++++++++++++++++ 7 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 game/world/generators/enemy_generator.gd create mode 100644 game/world/generators/enemy_generator.gd.uid create mode 100644 game/world/generators/enemy_generator.tscn create mode 100644 images/map.png create mode 100644 images/map.png.import diff --git a/game/world/generators/enemy_generator.gd b/game/world/generators/enemy_generator.gd new file mode 100644 index 0000000..af2d577 --- /dev/null +++ b/game/world/generators/enemy_generator.gd @@ -0,0 +1,16 @@ +class_name EnemyGenerator +extends Node + + +var local_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() + + +func generate(seed_value: int) -> EnemyData: + local_seed_rng.seed = seed_value + + var data : EnemyData = EnemyData.new() + data.seed_value = seed_value + + + + return data diff --git a/game/world/generators/enemy_generator.gd.uid b/game/world/generators/enemy_generator.gd.uid new file mode 100644 index 0000000..ce95845 --- /dev/null +++ b/game/world/generators/enemy_generator.gd.uid @@ -0,0 +1 @@ +uid://r51oawb6oedw diff --git a/game/world/generators/enemy_generator.tscn b/game/world/generators/enemy_generator.tscn new file mode 100644 index 0000000..e7586ea --- /dev/null +++ b/game/world/generators/enemy_generator.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://bqtiiog23c2ta"] + +[ext_resource type="Script" uid="uid://r51oawb6oedw" path="res://game/world/generators/enemy_generator.gd" id="1_ehucw"] + +[node name="EnemyGenerator" type="Node"] +script = ExtResource("1_ehucw") diff --git a/game/world/generators/passage_generator.gd b/game/world/generators/passage_generator.gd index 5af0bf4..9f1a63b 100644 --- a/game/world/generators/passage_generator.gd +++ b/game/world/generators/passage_generator.gd @@ -2,15 +2,30 @@ class_name PassageGenerator extends Node +const ENEMY_COUNT = 10 + + +@onready var enemy_generator : EnemyGenerator = $EnemyGenerator + + var local_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() +var enemy_seed_rng : RandomNumberGenerator = RandomNumberGenerator.new() func generate(seed_value: int) -> PassageData: local_seed_rng.seed = seed_value + enemy_seed_rng.seed = local_seed_rng.randi() var data : PassageData = PassageData.new() data.seed_value = seed_value - + _fill_enemies(data) return data + + +func _fill_enemies(data: PassageData) -> void: + for i in ENEMY_COUNT: + var seed_value := enemy_seed_rng.randi() + var enemy := enemy_generator.generate(seed_value) + data.enemies.append(enemy) diff --git a/game/world/generators/passage_generator.tscn b/game/world/generators/passage_generator.tscn index 69ce99a..ad28679 100644 --- a/game/world/generators/passage_generator.tscn +++ b/game/world/generators/passage_generator.tscn @@ -1,6 +1,9 @@ -[gd_scene load_steps=2 format=3 uid="uid://cfcpr07j58cvx"] +[gd_scene load_steps=3 format=3 uid="uid://cfcpr07j58cvx"] [ext_resource type="Script" uid="uid://bi5vt3ikxya8d" path="res://game/world/generators/passage_generator.gd" id="1_3arab"] +[ext_resource type="PackedScene" uid="uid://bqtiiog23c2ta" path="res://game/world/generators/enemy_generator.tscn" id="2_u6kxl"] [node name="PassageGenerator" type="Node"] script = ExtResource("1_3arab") + +[node name="EnemyGenerator" parent="." instance=ExtResource("2_u6kxl")] diff --git a/images/map.png b/images/map.png new file mode 100644 index 0000000..a235df1 --- /dev/null +++ b/images/map.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a824126ec34263f1785e87589fe0d732753c64a96ba565fad1a14c79139f9ef4 +size 1809 diff --git a/images/map.png.import b/images/map.png.import new file mode 100644 index 0000000..e8a8765 --- /dev/null +++ b/images/map.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://orutjsnhhruf" +path="res://.godot/imported/map.png-e82b9b01d47f4594f29b046de64de6f9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/map.png" +dest_files=["res://.godot/imported/map.png-e82b9b01d47f4594f29b046de64de6f9.ctex"] + +[params] + +compress/mode=0 +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=false +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=1