diff --git a/base/assets/test_enemy/0000.png b/base/assets/test_enemy/0000.png new file mode 100644 index 0000000..002474f Binary files /dev/null and b/base/assets/test_enemy/0000.png differ diff --git a/base/assets/test_enemy/0000.png.import b/base/assets/test_enemy/0000.png.import new file mode 100644 index 0000000..0bf5101 --- /dev/null +++ b/base/assets/test_enemy/0000.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0gyyb6xwfjex" +path="res://.godot/imported/0000.png-b903af487efa2fbcc832611e33cbf454.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://base/assets/test_enemy/0000.png" +dest_files=["res://.godot/imported/0000.png-b903af487efa2fbcc832611e33cbf454.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=true +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 diff --git a/base/assets/test_enemy/0001.png b/base/assets/test_enemy/0001.png new file mode 100644 index 0000000..c313abd Binary files /dev/null and b/base/assets/test_enemy/0001.png differ diff --git a/base/assets/test_enemy/0001.png.import b/base/assets/test_enemy/0001.png.import new file mode 100644 index 0000000..7821615 --- /dev/null +++ b/base/assets/test_enemy/0001.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bp7iec52kc0ko" +path="res://.godot/imported/0001.png-b37bf2a8d5a87496e9149209ad9d9645.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://base/assets/test_enemy/0001.png" +dest_files=["res://.godot/imported/0001.png-b37bf2a8d5a87496e9149209ad9d9645.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 diff --git a/base/assets/test_enemy/0002.png b/base/assets/test_enemy/0002.png new file mode 100644 index 0000000..3bbb996 Binary files /dev/null and b/base/assets/test_enemy/0002.png differ diff --git a/base/assets/test_enemy/0002.png.import b/base/assets/test_enemy/0002.png.import new file mode 100644 index 0000000..9f94d9b --- /dev/null +++ b/base/assets/test_enemy/0002.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmjanur1y65ut" +path="res://.godot/imported/0002.png-9b12b65d0c4a70fdde18f69d2bbccc91.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://base/assets/test_enemy/0002.png" +dest_files=["res://.godot/imported/0002.png-9b12b65d0c4a70fdde18f69d2bbccc91.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 diff --git a/base/assets/test_enemy/0003.png b/base/assets/test_enemy/0003.png new file mode 100644 index 0000000..6dd84ed Binary files /dev/null and b/base/assets/test_enemy/0003.png differ diff --git a/base/assets/test_enemy/0003.png.import b/base/assets/test_enemy/0003.png.import new file mode 100644 index 0000000..af2bf0a --- /dev/null +++ b/base/assets/test_enemy/0003.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csyoosmr6c251" +path="res://.godot/imported/0003.png-1f669fd5f649d54756b5d5cbb6d54ede.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://base/assets/test_enemy/0003.png" +dest_files=["res://.godot/imported/0003.png-1f669fd5f649d54756b5d5cbb6d54ede.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 diff --git a/base/assets/test_enemy/0004.png b/base/assets/test_enemy/0004.png new file mode 100644 index 0000000..392ef5b Binary files /dev/null and b/base/assets/test_enemy/0004.png differ diff --git a/base/assets/test_enemy/0004.png.import b/base/assets/test_enemy/0004.png.import new file mode 100644 index 0000000..f1e2020 --- /dev/null +++ b/base/assets/test_enemy/0004.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8ijiv8ly74jg" +path="res://.godot/imported/0004.png-2fc0af59b10bb4de39b70e455e5a56ba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://base/assets/test_enemy/0004.png" +dest_files=["res://.godot/imported/0004.png-2fc0af59b10bb4de39b70e455e5a56ba.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 diff --git a/base/assets/test_enemy/0005.png b/base/assets/test_enemy/0005.png new file mode 100644 index 0000000..fb121f9 Binary files /dev/null and b/base/assets/test_enemy/0005.png differ diff --git a/base/assets/test_enemy/0005.png.import b/base/assets/test_enemy/0005.png.import new file mode 100644 index 0000000..cd3d2cc --- /dev/null +++ b/base/assets/test_enemy/0005.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lbo6ygri22or" +path="res://.godot/imported/0005.png-ea4e5800e69dcb3db9c74e0d36f7dada.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://base/assets/test_enemy/0005.png" +dest_files=["res://.godot/imported/0005.png-ea4e5800e69dcb3db9c74e0d36f7dada.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 diff --git a/base/assets/test_enemy/0006.png b/base/assets/test_enemy/0006.png new file mode 100644 index 0000000..1236bd1 Binary files /dev/null and b/base/assets/test_enemy/0006.png differ diff --git a/base/assets/test_enemy/0006.png.import b/base/assets/test_enemy/0006.png.import new file mode 100644 index 0000000..86a3a56 --- /dev/null +++ b/base/assets/test_enemy/0006.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bu54h8g5r50qp" +path="res://.godot/imported/0006.png-5ea93347fb4075fdeb67e91f967d8081.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://base/assets/test_enemy/0006.png" +dest_files=["res://.godot/imported/0006.png-5ea93347fb4075fdeb67e91f967d8081.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 diff --git a/base/assets/test_enemy/0007.png b/base/assets/test_enemy/0007.png new file mode 100644 index 0000000..9bf7fa6 Binary files /dev/null and b/base/assets/test_enemy/0007.png differ diff --git a/base/assets/test_enemy/0007.png.import b/base/assets/test_enemy/0007.png.import new file mode 100644 index 0000000..ee32c91 --- /dev/null +++ b/base/assets/test_enemy/0007.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c57drlhnuicu5" +path="res://.godot/imported/0007.png-c700fd2bc75a43d8fec1237ad0c34562.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://base/assets/test_enemy/0007.png" +dest_files=["res://.godot/imported/0007.png-c700fd2bc75a43d8fec1237ad0c34562.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 diff --git a/base/scenes/enemies/test_enemy.tscn b/base/scenes/enemies/test_enemy.tscn new file mode 100644 index 0000000..757ab89 --- /dev/null +++ b/base/scenes/enemies/test_enemy.tscn @@ -0,0 +1,45 @@ +[gd_scene load_steps=11 format=3 uid="uid://twqkevpn0q1a"] + +[ext_resource type="Texture2D" uid="uid://b0gyyb6xwfjex" path="res://base/assets/test_enemy/0000.png" id="1_7qny8"] +[ext_resource type="Script" uid="uid://j0w37fjl13ox" path="res://base/scripts/enemies/directional_sprite3d.gd" id="2_hmq60"] +[ext_resource type="Texture2D" uid="uid://bp7iec52kc0ko" path="res://base/assets/test_enemy/0001.png" id="3_rvsun"] +[ext_resource type="Texture2D" uid="uid://bmjanur1y65ut" path="res://base/assets/test_enemy/0002.png" id="4_ajcop"] +[ext_resource type="Texture2D" uid="uid://csyoosmr6c251" path="res://base/assets/test_enemy/0003.png" id="5_xto1v"] +[ext_resource type="Texture2D" uid="uid://8ijiv8ly74jg" path="res://base/assets/test_enemy/0004.png" id="6_d1vpv"] +[ext_resource type="Texture2D" uid="uid://lbo6ygri22or" path="res://base/assets/test_enemy/0005.png" id="7_yln7d"] +[ext_resource type="Texture2D" uid="uid://bu54h8g5r50qp" path="res://base/assets/test_enemy/0006.png" id="8_snoby"] +[ext_resource type="Texture2D" uid="uid://c57drlhnuicu5" path="res://base/assets/test_enemy/0007.png" id="9_83myg"] + +[sub_resource type="GDScript" id="GDScript_hmq60"] +resource_name = "temp_script" +script/source = "extends Node3D + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + rotate_y(TAU*delta) +" + +[node name="TestEnemy" type="Node3D"] + +[node name="RotationalSprite" type="Sprite3D" parent="."] +billboard = 2 +texture_filter = 0 +texture = ExtResource("1_7qny8") +script = ExtResource("2_hmq60") +rotations = Dictionary[float, Texture2D]({ +0.0: ExtResource("6_d1vpv"), +0.785398: ExtResource("7_yln7d"), +1.5708: ExtResource("8_snoby"), +2.35619: ExtResource("9_83myg"), +3.14159: ExtResource("1_7qny8"), +3.92699: ExtResource("3_rvsun"), +4.71239: ExtResource("4_ajcop"), +5.49779: ExtResource("5_xto1v") +}) + +[node name="Node3D" type="Node3D" parent="."] +script = SubResource("GDScript_hmq60") + +[node name="Camera3D" type="Camera3D" parent="Node3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.19268) diff --git a/base/scripts/enemies/directional_sprite3d.gd b/base/scripts/enemies/directional_sprite3d.gd new file mode 100644 index 0000000..cbfc869 --- /dev/null +++ b/base/scripts/enemies/directional_sprite3d.gd @@ -0,0 +1,23 @@ +@tool +extends Sprite3D + + +@export var rotations : Dictionary[float,Texture2D] + +func _process(delta: float) -> void: + if Engine.is_editor_hint(): return + var camera = get_viewport().get_camera_3d() + var rotation_to_camera = global_transform.basis.z.signed_angle_to(camera.global_position,Vector3.UP) + PI + var chosen_index = 0 + for i in rotations.keys(): + if abs(rotation_to_camera-i) < abs(rotation_to_camera-chosen_index): + chosen_index = i + texture = rotations[chosen_index] + +@export_tool_button("Generate entries") var generator = entry_generator +@export var rotation_count : float = 8 + +func entry_generator(): + rotations.clear() + for i in range(rotation_count): + rotations[TAU/rotation_count*i] = Texture2D.new() diff --git a/base/scripts/enemies/directional_sprite3d.gd.uid b/base/scripts/enemies/directional_sprite3d.gd.uid new file mode 100644 index 0000000..885ca80 --- /dev/null +++ b/base/scripts/enemies/directional_sprite3d.gd.uid @@ -0,0 +1 @@ +uid://j0w37fjl13ox diff --git a/project.godot b/project.godot index 31805c1..b2ee023 100644 --- a/project.godot +++ b/project.godot @@ -11,9 +11,17 @@ config_version=5 [application] config/name="Revenge of the Red Dragon Pon of the Red Dragon Pon of the Red Dragon Pon" +run/main_scene="uid://bxf4x8hp870i6" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="res://icon.svg" +<<<<<<< HEAD +======= +[dotnet] + +project/assembly_name="Revenge of the Red Dragon Pon of the Red Dragon Pon of the Red Dragon Pon" + +>>>>>>> 3a70d2a (Enemy directional sprite) [rendering] textures/canvas_textures/default_texture_filter=0