From 44b4d847e5b490946991c4d0a89da3ae16818ba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Thu, 4 May 2023 00:32:54 +0200 Subject: [PATCH] initial commit --- README.md | 9 + godot/.gitattributes | 2 + godot/.gitignore | 2 + godot/icon.png | Bin 0 -> 58277 bytes godot/icon.png.import | 34 ++ godot/mhjnr.gdextension | 12 + godot/mhjnr/Camera2D.gd | 60 +++ godot/mhjnr/Moorhuhn.tscn | 648 ++++++++++++++++++++++++++ godot/mhjnr/camera.gd | 7 + godot/mhjnr/level.gd | 61 +++ godot/mhjnr/level.tscn | 142 ++++++ godot/mhjnr/theme.tres | 6 + godot/project.godot | 50 ++ icon.blend | Bin 0 -> 1302232 bytes rust/.gitignore | 3 + rust/Cargo.lock | 832 ++++++++++++++++++++++++++++++++++ rust/Cargo.toml | 22 + rust/src/formats/datafile.rs | 46 ++ rust/src/formats/level.rs | 46 ++ rust/src/formats/mod.rs | 115 +++++ rust/src/formats/rle.rs | 131 ++++++ rust/src/formats/sprites.rs | 75 +++ rust/src/formats/txt.rs | 68 +++ rust/src/formats/ui_xml.rs | 77 ++++ rust/src/godot/datafile.rs | 272 +++++++++++ rust/src/godot/font.rs | 88 ++++ rust/src/godot/game_object.rs | 138 ++++++ rust/src/godot/image.rs | 57 +++ rust/src/godot/mod.rs | 7 + rust/src/godot/sprites.rs | 133 ++++++ rust/src/godot/tile_map.rs | 139 ++++++ rust/src/godot/ui.rs | 58 +++ rust/src/lib.rs | 40 ++ rust/src/main.rs | 130 ++++++ 34 files changed, 3510 insertions(+) create mode 100644 README.md create mode 100644 godot/.gitattributes create mode 100644 godot/.gitignore create mode 100644 godot/icon.png create mode 100644 godot/icon.png.import create mode 100644 godot/mhjnr.gdextension create mode 100644 godot/mhjnr/Camera2D.gd create mode 100644 godot/mhjnr/Moorhuhn.tscn create mode 100644 godot/mhjnr/camera.gd create mode 100644 godot/mhjnr/level.gd create mode 100644 godot/mhjnr/level.tscn create mode 100644 godot/mhjnr/theme.tres create mode 100644 godot/project.godot create mode 100644 icon.blend create mode 100644 rust/.gitignore create mode 100644 rust/Cargo.lock create mode 100644 rust/Cargo.toml create mode 100644 rust/src/formats/datafile.rs create mode 100644 rust/src/formats/level.rs create mode 100644 rust/src/formats/mod.rs create mode 100644 rust/src/formats/rle.rs create mode 100644 rust/src/formats/sprites.rs create mode 100644 rust/src/formats/txt.rs create mode 100644 rust/src/formats/ui_xml.rs create mode 100644 rust/src/godot/datafile.rs create mode 100644 rust/src/godot/font.rs create mode 100644 rust/src/godot/game_object.rs create mode 100644 rust/src/godot/image.rs create mode 100644 rust/src/godot/mod.rs create mode 100644 rust/src/godot/sprites.rs create mode 100644 rust/src/godot/tile_map.rs create mode 100644 rust/src/godot/ui.rs create mode 100644 rust/src/lib.rs create mode 100644 rust/src/main.rs diff --git a/README.md b/README.md new file mode 100644 index 0000000..32585cb --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# MHLIB + +A project to make the old classic Moorhuhn Games playable +on modern systems via an engine reimplementation, written +in Rust and Godot. + +Most of the Moorhuhn Games are structured quite similarly, +which makes supporting them relatively easy. + diff --git a/godot/.gitattributes b/godot/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/godot/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/godot/.gitignore b/godot/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/godot/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/godot/icon.png b/godot/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e660ec3ebe55032d49d5e994d4345b965ae3cd0e GIT binary patch literal 58277 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 Hwvqn>JHJ;+ literal 0 HcmV?d00001 diff --git a/godot/icon.png.import b/godot/icon.png.import new file mode 100644 index 0000000..4a02b34 --- /dev/null +++ b/godot/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1vqk21x7qa8t" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.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/godot/mhjnr.gdextension b/godot/mhjnr.gdextension new file mode 100644 index 0000000..99f902e --- /dev/null +++ b/godot/mhjnr.gdextension @@ -0,0 +1,12 @@ +[configuration] +entry_symbol = "gdext_rust_init" + +[libraries] +linux.debug.x86_64 = "res://../rust/target/debug/libmhjnr.so" +linux.release.x86_64 = "res://../rust/target/release/libmhjnr.so" +windows.debug.x86_64 = "res://../rust/target/debug/mhjnr.dll" +windows.release.x86_64 = "res://../rust/target/release/mhjnr.dll" +macos.debug = "res://../rust/target/debug/mhjnr.dylib" +macos.release = "res://../rust/target/release/mhjnr.dylib" +macos.debug.arm64 = "res://../rust/target/aarch64-apple-darwin/debug/mhjnr.dylib" +macos.release.arm64 = "res://../rust/target/aarch64-apple-darwin/release/mhjnr.dylib" \ No newline at end of file diff --git a/godot/mhjnr/Camera2D.gd b/godot/mhjnr/Camera2D.gd new file mode 100644 index 0000000..49691c2 --- /dev/null +++ b/godot/mhjnr/Camera2D.gd @@ -0,0 +1,60 @@ +extends CharacterBody2D + +@export var max_jumps: int = 2 +@export_range(0, 4000, 1, "suffix:px/s") var speed: float = 400 +@export_range(0, 4000, 1, "suffix:px/s") var terminal_velocity: float = 2000 +@export_range(0, 4000, 1, "suffix:px/s") var jump_speed: float = 900 +@export_range(0, 4000, 1, "suffix:px/s²") var acceleration: float = 800 +@export_range(0, 4000, 1, "suffix:px/s²") var deceleration: float = 1000 + +@onready var state_machine: AnimationNodeStateMachinePlayback = %AnimationTree["parameters/playback"] +@onready var jumps: int = max_jumps +@onready var gravity: float = ProjectSettings.get_setting("physics/2d/default_gravity") + +func is_running(): + return Input.is_action_pressed("Move Left") or Input.is_action_pressed("Move Right") + +func is_on_ledge(): + return is_on_floor() and not is_running() and not %Slip.is_colliding() + +func did_jump(): + return Input.is_action_just_pressed("Move Up") and jumps > 0 + +func _ready() -> void: + apply_floor_snap() + +func clamp_dir(value: float, dir: float): + return clampf(value, min(dir, 0.0), max(dir, 0.0)) + +func _physics_process(delta: float) -> void: + velocity.y += gravity * delta + velocity.y = minf(velocity.y, terminal_velocity) + + var vertical: float = Input.get_axis("Move Down", "Move Up") + var horizontal: float = Input.get_axis("Move Left", "Move Right") + + velocity + if is_on_floor(): + jumps = max_jumps + if did_jump(): + if jumps != max_jumps: + state_machine.start(state_machine.get_current_node(), true) + jumps -= 1 + velocity.y = -jump_speed + + var max_speed: float = speed * horizontal + + velocity.x += acceleration * horizontal * delta + if is_running(): + velocity.x = clamp_dir(velocity.x, max_speed) + %animations.flip_h = horizontal > 0.0 + else: + velocity.x -= clamp_dir(deceleration * velocity.x * delta, velocity.x) + + if is_on_ledge(): + jumps = 0 + var direction: float = 1.0 if %SlipTestFront.is_colliding() else -1.0 + velocity.x += 10_000 * delta * direction + + if move_and_slide() and is_on_wall(): + velocity.x = 0.0 diff --git a/godot/mhjnr/Moorhuhn.tscn b/godot/mhjnr/Moorhuhn.tscn new file mode 100644 index 0000000..399b76b --- /dev/null +++ b/godot/mhjnr/Moorhuhn.tscn @@ -0,0 +1,648 @@ +[gd_scene load_steps=61 format=3 uid="uid://ctoj2a102rs6f"] + +[ext_resource type="Script" path="res://mhjnr/Camera2D.gd" id="1_nngds"] +[ext_resource type="SpriteFrames" path="datafile://data/player/sprites.txt" id="2_valkm"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_mob27"] +size = Vector2(96, 85) + +[sub_resource type="Animation" id="Animation_7sfno"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"mh_runW"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="Animation" id="Animation_v01jo"] +resource_name = "crawl" +length = 1.00001 +loop_mode = 1 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_crawlWCycle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667, 0.533333, 0.6, 0.666667, 0.733333, 0.8, 0.866667, 0.933333, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] +} + +[sub_resource type="Animation" id="Animation_jmosv"] +resource_name = "crawl_end" +length = 0.400007 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_crawlWEnd"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6] +} + +[sub_resource type="Animation" id="Animation_8i52u"] +resource_name = "crawl_start" +length = 0.266673 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_crawlWStart"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4] +} + +[sub_resource type="Animation" id="Animation_f4p3b"] +resource_name = "idle" +length = 4.00001 +loop_mode = 1 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_stayW_idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1, 1.06667, 1.13333, 1.2, 1.26667, 1.33333, 2.26667, 2.33333, 2.4, 2.46667, 2.53333, 2.6, 2.66667, 3.6, 3.66667, 3.73333, 3.8, 3.86667, 3.93333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20] +} + +[sub_resource type="Animation" id="Animation_kugay"] +resource_name = "jump" +length = 0.266673 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_stayW_jumpCycle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4] +} + +[sub_resource type="Animation" id="Animation_kbk86"] +resource_name = "jump_end" +length = 0.53334 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_stayW_jumpEnd+particle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667, 0.533333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8] +} + +[sub_resource type="Animation" id="Animation_0uslx"] +resource_name = "jump_start" +length = 0.33334 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_stayW_jumpStart"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5] +} + +[sub_resource type="Animation" id="Animation_bifhq"] +resource_name = "run" +length = 0.600007 +loop_mode = 1 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"mh_runW"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667, 0.533333, 0.6), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +} + +[sub_resource type="Animation" id="Animation_517vc"] +resource_name = "run_end" +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_runW_stop+particle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667, 0.533333, 0.6, 0.666667, 0.733333, 0.8, 0.866667, 0.933333, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] +} + +[sub_resource type="Animation" id="Animation_1mxgl"] +resource_name = "run_end_fall" +length = 1.13334 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"mh_fall_down"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667, 0.533333, 0.6, 0.666667, 0.733333, 0.8, 0.866667, 0.933333, 1, 1.06667, 1.13333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] +} + +[sub_resource type="Animation" id="Animation_fmxky"] +resource_name = "run_jump" +length = 0.466673 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_runW_jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7] +} + +[sub_resource type="Animation" id="Animation_l4g2q"] +resource_name = "run_smash_wall" +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"mh_hit_smashedWall"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667, 0.533333, 0.6, 0.666667, 0.733333, 0.8, 0.866667, 0.933333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15] +} + +[sub_resource type="Animation" id="Animation_khe4g"] +resource_name = "run_start" +length = 0.53334 +step = 0.0666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.0666667, 0.133333, 0.2, 0.266667, 0.333333, 0.4, 0.466667, 0.533333), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7, 8] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:animation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"MH_runW_1.stepStart"] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_jvkhi"] +_data = { +"RESET": SubResource("Animation_7sfno"), +"crawl": SubResource("Animation_v01jo"), +"crawl_end": SubResource("Animation_jmosv"), +"crawl_start": SubResource("Animation_8i52u"), +"idle": SubResource("Animation_f4p3b"), +"jump": SubResource("Animation_kugay"), +"jump_end": SubResource("Animation_kbk86"), +"jump_start": SubResource("Animation_0uslx"), +"run": SubResource("Animation_bifhq"), +"run_end": SubResource("Animation_517vc"), +"run_end_fall": SubResource("Animation_1mxgl"), +"run_jump": SubResource("Animation_fmxky"), +"run_smash_wall": SubResource("Animation_l4g2q"), +"run_start": SubResource("Animation_khe4g") +} + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u60at"] +animation = &"RESET" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qt2l3"] +animation = &"run" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ohkqh"] +animation = &"run_end" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_s2hko"] +animation = &"run_smash_wall" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_t7lts"] +animation = &"run_start" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_xgmeb"] +advance_mode = 2 +advance_expression = "not is_running()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x0rjg"] +advance_mode = 2 +advance_expression = "is_on_wall()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_orvkk"] +switch_mode = 2 +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mtp52"] +switch_mode = 2 +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_yfk7a"] +switch_mode = 2 +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_p4gp5"] +advance_mode = 2 +advance_expression = "not is_running() or is_on_wall()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_suygg"] +advance_mode = 2 +advance_expression = "is_running()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_750mf"] +advance_mode = 2 +advance_expression = "velocity.x != 0" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0ymww"] +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_gi4av"] +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_h8tv8"] +states/End/position = Vector2(668, 134) +states/RESET/node = SubResource("AnimationNodeAnimation_u60at") +states/RESET/position = Vector2(367, -131) +states/Start/position = Vector2(258, -131) +states/run/node = SubResource("AnimationNodeAnimation_qt2l3") +states/run/position = Vector2(668, -56) +states/run_end/node = SubResource("AnimationNodeAnimation_ohkqh") +states/run_end/position = Vector2(668, 32) +states/run_smash_wall/node = SubResource("AnimationNodeAnimation_s2hko") +states/run_smash_wall/position = Vector2(865, -131) +states/run_start/node = SubResource("AnimationNodeAnimation_t7lts") +states/run_start/position = Vector2(495, -131) +transitions = ["run", "run_end", SubResource("AnimationNodeStateMachineTransition_xgmeb"), "run", "run_smash_wall", SubResource("AnimationNodeStateMachineTransition_x0rjg"), "run_smash_wall", "End", SubResource("AnimationNodeStateMachineTransition_orvkk"), "run_end", "End", SubResource("AnimationNodeStateMachineTransition_mtp52"), "run_start", "run", SubResource("AnimationNodeStateMachineTransition_yfk7a"), "run_start", "End", SubResource("AnimationNodeStateMachineTransition_p4gp5"), "run_end", "run_start", SubResource("AnimationNodeStateMachineTransition_suygg"), "run_smash_wall", "run_start", SubResource("AnimationNodeStateMachineTransition_750mf"), "Start", "RESET", SubResource("AnimationNodeStateMachineTransition_0ymww"), "RESET", "run_start", SubResource("AnimationNodeStateMachineTransition_gi4av")] +graph_offset = Vector2(77, -267) + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_wubix"] +animation = &"jump" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1p554"] +animation = &"idle" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_q376h"] +animation = &"jump_start" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kxajv"] +animation = &"jump_end" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_io5l5"] +animation = &"run_jump" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_mgepe"] +animation = &"run_end_fall" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_khcbs"] +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_6878b"] +advance_mode = 2 +advance_expression = "velocity.y > 0.0" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_1lxrg"] +advance_mode = 2 +advance_expression = "is_on_floor()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5me5o"] +switch_mode = 2 +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_nrhuk"] +switch_mode = 2 +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_og56a"] +advance_mode = 2 +advance_expression = "is_running() and velocity.x != 0.0" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_do5xa"] +advance_mode = 2 +advance_expression = "is_on_ledge()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_okk45"] +switch_mode = 2 +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_r33lm"] +advance_mode = 2 +advance_expression = "is_on_floor() and not is_on_ledge()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mqs3h"] +advance_mode = 2 +advance_expression = "did_jump()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_jd8pa"] +advance_mode = 2 +advance_expression = "velocity.y > 0.0" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_c8u27"] +advance_mode = 2 +advance_expression = "did_jump()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_3lran"] +advance_mode = 2 +advance_expression = "not is_running()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8e8p2"] +advance_mode = 2 +advance_expression = "is_on_floor()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_aivqa"] +advance_mode = 2 +advance_expression = "is_running()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_pp0po"] +advance_mode = 2 +advance_expression = "is_on_ledge()" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_rh1ge"] +advance_mode = 2 +advance_expression = "did_jump()" + +[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_lv3mp"] +states/End/position = Vector2(893, 119) +states/Run/node = SubResource("AnimationNodeStateMachine_h8tv8") +states/Run/position = Vector2(592, 119) +states/Start/position = Vector2(73, 119) +states/fall/node = SubResource("AnimationNodeAnimation_wubix") +states/fall/position = Vector2(430, -168) +states/idle/node = SubResource("AnimationNodeAnimation_1p554") +states/idle/position = Vector2(235, 119) +states/jump/node = SubResource("AnimationNodeAnimation_q376h") +states/jump/position = Vector2(144, -19) +states/jump_end/node = SubResource("AnimationNodeAnimation_kxajv") +states/jump_end/position = Vector2(235, -168) +states/run_jump/node = SubResource("AnimationNodeAnimation_io5l5") +states/run_jump/position = Vector2(592, -40) +states/slip/node = SubResource("AnimationNodeAnimation_mgepe") +states/slip/position = Vector2(421, 58) +transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition_khcbs"), "jump", "fall", SubResource("AnimationNodeStateMachineTransition_6878b"), "fall", "jump_end", SubResource("AnimationNodeStateMachineTransition_1lxrg"), "jump_end", "idle", SubResource("AnimationNodeStateMachineTransition_5me5o"), "Run", "idle", SubResource("AnimationNodeStateMachineTransition_nrhuk"), "idle", "Run", SubResource("AnimationNodeStateMachineTransition_og56a"), "idle", "slip", SubResource("AnimationNodeStateMachineTransition_do5xa"), "slip", "fall", SubResource("AnimationNodeStateMachineTransition_okk45"), "slip", "jump_end", SubResource("AnimationNodeStateMachineTransition_r33lm"), "idle", "jump", SubResource("AnimationNodeStateMachineTransition_mqs3h"), "idle", "fall", SubResource("AnimationNodeStateMachineTransition_jd8pa"), "Run", "run_jump", SubResource("AnimationNodeStateMachineTransition_c8u27"), "run_jump", "fall", SubResource("AnimationNodeStateMachineTransition_3lran"), "run_jump", "Run", SubResource("AnimationNodeStateMachineTransition_8e8p2"), "jump_end", "Run", SubResource("AnimationNodeStateMachineTransition_aivqa"), "jump_end", "slip", SubResource("AnimationNodeStateMachineTransition_pp0po"), "jump_end", "jump", SubResource("AnimationNodeStateMachineTransition_rh1ge")] +graph_offset = Vector2(-106, -229) + +[sub_resource type="AnimationNodeStateMachinePlayback" id="AnimationNodeStateMachinePlayback_udssx"] + +[sub_resource type="AnimationNodeStateMachinePlayback" id="AnimationNodeStateMachinePlayback_n5wvc"] + +[node name="Moorhuhn" type="CharacterBody2D"] +script = ExtResource("1_nngds") +jump_speed = 610.0 + +[node name="Slip" type="RayCast2D" parent="."] +unique_name_in_owner = true +target_position = Vector2(0, 100) + +[node name="SlipTestFront" type="RayCast2D" parent="."] +unique_name_in_owner = true +position = Vector2(-55, 0) +target_position = Vector2(0, 100) + +[node name="Collision" type="CollisionShape2D" parent="."] +unique_name_in_owner = true +position = Vector2(0, 40) +shape = SubResource("RectangleShape2D_mob27") + +[node name="animations" type="AnimatedSprite2D" parent="."] +unique_name_in_owner = true +sprite_frames = ExtResource("2_valkm") +animation = &"mh_runW" + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +root_node = NodePath("../animations") +playback_process_mode = 0 +libraries = { +"": SubResource("AnimationLibrary_jvkhi") +} + +[node name="AnimationTree" type="AnimationTree" parent="."] +unique_name_in_owner = true +tree_root = SubResource("AnimationNodeStateMachine_lv3mp") +anim_player = NodePath("../AnimationPlayer") +advance_expression_base_node = NodePath("..") +active = true +process_callback = 0 +parameters/playback = SubResource("AnimationNodeStateMachinePlayback_udssx") +parameters/Run/playback = SubResource("AnimationNodeStateMachinePlayback_n5wvc") diff --git a/godot/mhjnr/camera.gd b/godot/mhjnr/camera.gd new file mode 100644 index 0000000..487382a --- /dev/null +++ b/godot/mhjnr/camera.gd @@ -0,0 +1,7 @@ +extends Camera2D + +var player: CharacterBody2D + +func _process(delta: float) -> void: + position = player.position + pass diff --git a/godot/mhjnr/level.gd b/godot/mhjnr/level.gd new file mode 100644 index 0000000..e3a431e --- /dev/null +++ b/godot/mhjnr/level.gd @@ -0,0 +1,61 @@ +@tool +extends Node2D + +@export var level_id: int = 1 + +func _ready() -> void: + var player = preload("res://mhjnr/Moorhuhn.tscn").instantiate() + add_child(player) + %Camera.player = player + %HudLevel.text = "Level %d" % level_id + player.position = Vector2(200, 10) + var camera_rect: Rect2i + + var level: ObjectScript = load("datafile://data/level%02d/settings/level.txt" % level_id) + for data in level.static_objects: + match data.resource_type: + "LevelSettings": + %LevelTimer.start(data.props["levelTime"]) + "TiledLayer": + var scene = load("datafile://data/level%02d/layers/%s.dat" % [level_id, data.name.to_lower()]) + var tiles: TileMap = scene.instantiate() + tiles.name = data.name + tiles.visible = data.props["is visible"] == 1 + + var used = tiles.get_used_rect() + used.position *= tiles.cell_quadrant_size + used.size *= tiles.cell_quadrant_size + camera_rect = used if camera_rect == null else camera_rect.merge(used) + + var scroll_speed: Vector2 = data.props["scroll speed"] + if scroll_speed.is_equal_approx(Vector2(1, 1)): + add_child(tiles) + else: + var parallax = ParallaxLayer.new() + parallax.name = data.name + parallax.visible = data.props["is visible"] == 1 + parallax.motion_scale = data.props["scroll speed"] + %parallax.add_child(parallax) + parallax.add_child(tiles) + + %Camera.limit_left = camera_rect.position.x + %Camera.limit_top = camera_rect.position.y + %Camera.limit_right = camera_rect.position.x + camera_rect.size.x + %Camera.limit_bottom = camera_rect.position.y + camera_rect.size.y + + %WorldBoundLeft.position.x = camera_rect.position.x + %WorldBoundTop.position.y = camera_rect.position.y + %WorldBoundRight.position.x = camera_rect.position.x + camera_rect.size.x + %WorldBoundBottom.position.y = camera_rect.position.y + camera_rect.size.y + + #var enemies: ObjectScript = load("datafile://data/level%02d/layers/%s.dat" % [level_id, name.to_lower()]) + #for object in enemies.dynamic_objects: + # match object.props["subType"]: + ## 1: create_movable(object) + # 0: create_enemy(object) + +func create_enemy(data: ObjectData): + pass + +func create_movable(data: ObjectData): + pass diff --git a/godot/mhjnr/level.tscn b/godot/mhjnr/level.tscn new file mode 100644 index 0000000..42c7325 --- /dev/null +++ b/godot/mhjnr/level.tscn @@ -0,0 +1,142 @@ +[gd_scene load_steps=14 format=3 uid="uid://bgb4avgjexp4t"] + +[ext_resource type="Script" path="res://mhjnr/level.gd" id="1_dfqgf"] +[ext_resource type="Theme" uid="uid://ks2uyxqg6u4k" path="res://mhjnr/theme.tres" id="3_a2fmg"] +[ext_resource type="Script" path="res://mhjnr/camera.gd" id="3_e6xoo"] +[ext_resource type="Texture2D" path="datafile://data/set1/sprites/hud_live.bmp" id="4_4bu8b"] +[ext_resource type="Texture2D" path="datafile://data/set1/sprites/hud_shield.bmp" id="5_6bu8b"] +[ext_resource type="Texture2D" path="datafile://data/set1/sprites/hud_bullet.bmp" id="5_rxbck"] + +[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_j78b3"] +normal = Vector2(0, 1) + +[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_3mxdl"] +normal = Vector2(-1, 0) + +[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_p4tp1"] +normal = Vector2(1, 0) + +[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_ixcvh"] + +[sub_resource type="GDScript" id="GDScript_nmpfh"] +resource_name = "TimeLabel" +script/source = "extends Label + +func _process(delta: float) -> void: + var time_left = %LevelTimer.time_left + text = \"%02d:%02d\" % [int(time_left / 60), int(time_left) % 60] +" + +[sub_resource type="AtlasTexture" id="AtlasTexture_glgkj"] +atlas = ExtResource("5_6bu8b") +region = Rect2(0, 0, 136, 42) +filter_clip = true + +[sub_resource type="AtlasTexture" id="AtlasTexture_2nrpq"] +atlas = ExtResource("4_4bu8b") +region = Rect2(0, 0, 36, 32) +filter_clip = true + +[node name="level" type="Node2D"] +script = ExtResource("1_dfqgf") +level_id = 2 + +[node name="Camera" type="Camera2D" parent="."] +unique_name_in_owner = true +process_callback = 0 +limit_smoothed = true +position_smoothing_enabled = true +position_smoothing_speed = 10.0 +drag_horizontal_enabled = true +drag_vertical_enabled = true +script = ExtResource("3_e6xoo") + +[node name="parallax" type="ParallaxBackground" parent="."] +unique_name_in_owner = true + +[node name="WorldBounds" type="StaticBody2D" parent="."] + +[node name="WorldBoundTop" type="CollisionShape2D" parent="WorldBounds"] +unique_name_in_owner = true +shape = SubResource("WorldBoundaryShape2D_j78b3") + +[node name="WorldBoundRight" type="CollisionShape2D" parent="WorldBounds"] +unique_name_in_owner = true +shape = SubResource("WorldBoundaryShape2D_3mxdl") + +[node name="WorldBoundLeft" type="CollisionShape2D" parent="WorldBounds"] +unique_name_in_owner = true +shape = SubResource("WorldBoundaryShape2D_p4tp1") + +[node name="KillFloor" type="Area2D" parent="."] + +[node name="WorldBoundBottom" type="CollisionShape2D" parent="KillFloor"] +unique_name_in_owner = true +shape = SubResource("WorldBoundaryShape2D_ixcvh") + +[node name="LevelTimer" type="Timer" parent="."] +unique_name_in_owner = true + +[node name="HUD" type="CanvasLayer" parent="."] + +[node name="MarginContainer" type="MarginContainer" parent="HUD"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 32 +theme_override_constants/margin_top = 32 +theme_override_constants/margin_right = 32 +theme_override_constants/margin_bottom = 32 + +[node name="GridContainer" type="GridContainer" parent="HUD/MarginContainer"] +layout_mode = 2 +columns = 3 + +[node name="VBoxContainer" type="VBoxContainer" parent="HUD/MarginContainer/GridContainer"] +layout_mode = 2 + +[node name="Score" type="Label" parent="HUD/MarginContainer/GridContainer/VBoxContainer"] +layout_mode = 2 +text = "0035570" + +[node name="Time" type="Label" parent="HUD/MarginContainer/GridContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +theme = ExtResource("3_a2fmg") +text = "04:36" +horizontal_alignment = 1 +vertical_alignment = 1 +script = SubResource("GDScript_nmpfh") + +[node name="HudLevel" type="Label" parent="HUD/MarginContainer/GridContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "Level 4" + +[node name="shield" type="TextureRect" parent="HUD/MarginContainer/GridContainer"] +layout_mode = 2 +size_flags_vertical = 10 +texture = SubResource("AtlasTexture_glgkj") + +[node name="Lives" type="HBoxContainer" parent="HUD/MarginContainer/GridContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 8 + +[node name="Label" type="Label" parent="HUD/MarginContainer/GridContainer/Lives"] +layout_mode = 2 +text = "4" + +[node name="TextureRect" type="TextureRect" parent="HUD/MarginContainer/GridContainer/Lives"] +layout_mode = 2 +texture = SubResource("AtlasTexture_2nrpq") + +[node name="HBoxContainer" type="HBoxContainer" parent="HUD/MarginContainer/GridContainer"] +layout_mode = 2 +size_flags_vertical = 8 + +[node name="TextureRect" type="TextureRect" parent="HUD/MarginContainer/GridContainer/HBoxContainer"] +layout_mode = 2 +texture = ExtResource("5_rxbck") diff --git a/godot/mhjnr/theme.tres b/godot/mhjnr/theme.tres new file mode 100644 index 0000000..a7b34dc --- /dev/null +++ b/godot/mhjnr/theme.tres @@ -0,0 +1,6 @@ +[gd_resource type="Theme" format=3 uid="uid://ks2uyxqg6u4k"] + +[ext_resource type="FontFile" path="datafile://data/fonts/menufont.bmp" id="9_6bx8b"] + +[resource] +/fonts/menufont = ExtResource("9_6bx8b") diff --git a/godot/project.godot b/godot/project.godot new file mode 100644 index 0000000..c96e96e --- /dev/null +++ b/godot/project.godot @@ -0,0 +1,50 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="MHJNR" +run/main_scene="res://mhjnr/level.tscn" +config/features=PackedStringArray("4.0", "GL Compatibility") +boot_splash/bg_color=Color(0, 0, 0, 1) +boot_splash/image="res://icon.png" +boot_splash/fullsize=false + +[input] + +"Move Up"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +"Move Down"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +"Move Right"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +"Move Left"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} + +[physics] + +2d/default_gravity=2000.0 + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/icon.blend b/icon.blend new file mode 100644 index 0000000000000000000000000000000000000000..bf58117ecd12316d5f27abc9b0df6121a6a29e70 GIT binary patch literal 1302232 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�SNaBJ<3AKPNWz>Uo@YWyM+I^&)v7AGD_* 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

E({uOJh_}p73wc=$1y7wD!{EKjBAVl+B7x$Py0K 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 YnG3x#rT+51#y>, +} + +#[binread] +#[derive(Debug)] +pub enum Edition { + #[br(magic = b"-XS")] + Xs, + #[br(magic = b"-XXL")] + Xxl, +} + +#[derive(Debug)] +#[binread] +pub struct FileEntry { + #[br(pad_size_to = 0x68)] + pub name: NullString, + pub pos: u32, + #[br(pad_after = 0x10)] + pub len: u32, +} + +impl Datafile { + pub fn into_index(self) -> HashMap { + self.files + .into_iter() + .map(|entry| (entry.name.to_string(), entry)) + .collect() + } +} diff --git a/rust/src/formats/level.rs b/rust/src/formats/level.rs new file mode 100644 index 0000000..9612497 --- /dev/null +++ b/rust/src/formats/level.rs @@ -0,0 +1,46 @@ +use binrw::prelude::*; +use binrw::{BinRead, Error}; +use image; +use image::error::{DecodingError, ImageFormatHint}; +use image::{ImageError, ImageResult, Rgb, RgbImage}; +use std::io::Cursor; + +#[binrw] +#[brw(little)] +pub struct LevelTile { + pub index: u8, + pub id: u8, +} + +#[binrw] +#[brw(little)] +pub struct LevelLayer { + pub tile_count: u32, + pub width: u32, + pub height: u32, + pub unknown_2: u32, + #[br(count = width * height)] + pub tiles: Vec, +} + +pub fn level_tile_data_to_image(tile_data: &[u8]) -> ImageResult { + let mut cursor = Cursor::new(tile_data); + let layer = LevelLayer::read(&mut cursor).map_err(to_decoding_err)?; + + let mut image = RgbImage::new(layer.width, layer.height); + for y in 0..layer.height { + for x in 0..layer.width { + let tile = LevelTile::read(&mut cursor).map_err(to_decoding_err)?; + image.put_pixel(x, y, Rgb([tile.id, tile.index, 0])); + } + } + + Ok(image) +} + +fn to_decoding_err(err: Error) -> ImageError { + ImageError::Decoding(DecodingError::new( + ImageFormatHint::Name(String::from("mhjnr_layer")), + err, + )) +} diff --git a/rust/src/formats/mod.rs b/rust/src/formats/mod.rs new file mode 100644 index 0000000..db9b1ae --- /dev/null +++ b/rust/src/formats/mod.rs @@ -0,0 +1,115 @@ +use crate::formats::datafile::FileEntry; +use crate::formats::level::LevelLayer; +use crate::formats::rle::RleImage; +use crate::formats::sprites::Sprites; +use crate::formats::txt::{decrypt_txt, DecryptError}; +use crate::formats::ui_xml::UiTag; +use binrw::BinRead; +use std::ffi::OsStr; +use std::fmt::Debug; +use std::io::{Cursor, Read, Seek, SeekFrom}; +use std::path::Path; + +pub mod datafile; +pub mod level; +pub mod rle; +pub mod sprites; +pub mod txt; +pub mod ui_xml; + +pub enum DatafileFile { + Txt(String), + Level(LevelLayer), + Sprites(Vec), + RleSprite(Box), + Bitmap(Vec), + Vorbis(Vec), + TileCollision(String), + Ui(UiTag), +} + +pub enum Error { + Deserialization, + UnknownFormat(String), + UnknownError, + Custom(String), + DecryptError(DecryptError), +} + +fn custom_err(e: T) -> Error +where + T: Debug, +{ + Error::Custom(format!("{:#?}", e)) +} + +pub fn load_data(entry: &FileEntry, reader: &mut R) -> Result +where + R: Read + Seek, +{ + reader + .seek(SeekFrom::Start(entry.pos as u64)) + .map_err(custom_err)?; + let mut data = vec![0u8; entry.len as usize]; + reader.read_exact(&mut data).map_err(custom_err)?; + + let name = entry.name.to_string(); + let path = Path::new(&name); + + match path + .extension() + .and_then(OsStr::to_str) + .ok_or(Error::Custom("No extension".to_string()))? + { + "dat" => Ok(DatafileFile::Level( + LevelLayer::read(&mut Cursor::new(data)).map_err(custom_err)?, + )), + "rle" => Ok(DatafileFile::RleSprite(Box::new( + RleImage::read(&mut Cursor::new(data)).map_err(custom_err)?, + ))), + "bmp" => Ok(DatafileFile::Bitmap(data)), + "ogg" => Ok(DatafileFile::Vorbis(data)), + "xml" => { + serde_xml_rs::from_str::(String::from_utf8(data).map_err(custom_err)?.as_str()) + .map_err(custom_err) + .map(DatafileFile::Ui) + } + "txt" => { + let stem = path + .file_stem() + .and_then(OsStr::to_str) + .ok_or(Error::Custom("Stem".to_string()))?; + let decr = decrypt_txt(data.into_iter()).map_err(|e| Error::DecryptError(e))?; + if stem.starts_with("tile_collision") { + Ok(DatafileFile::TileCollision(decr)) + } else if stem == "sprites" { + Ok(DatafileFile::Sprites( + Sprites::parse(decr.as_str()).map_err(custom_err)?, + )) + } else { + Ok(DatafileFile::Txt(decr)) + } + } + /*Some("rle") => { + let image: RleImage = RleImage::read(&mut Cursor::new(data)).unwrap(); + let path = Path::new(dat_path).with_file_name("res.gif"); + println!("{:?}", path); + let mut encoder = GifEncoder::new( + OpenOptions::new() + .create(true) + .write(true) + .open(path) + .unwrap(), + ); + encoder.set_repeat(Repeat::Infinite).unwrap(); + encoder.try_encode_frames(image.into_frames()).unwrap(); + } + Some("dat") => { + let image = level_tile_data_to_image(&data).unwrap(); + let path = Path::new(dat_path).with_file_name("res.png"); + println!("{:?}", path); + image.save_with_format(path, ImageFormat::Png).unwrap(); + }*/ + ext => Err(Error::UnknownFormat(ext.to_string())), + } +} diff --git a/rust/src/formats/rle.rs b/rust/src/formats/rle.rs new file mode 100644 index 0000000..60f1f39 --- /dev/null +++ b/rust/src/formats/rle.rs @@ -0,0 +1,131 @@ +use binrw::prelude::*; +use binrw::Endian; +use image::error::{DecodingError, ImageFormatHint}; +use image::{AnimationDecoder, Delay, Frame, Frames, ImageBuffer, ImageError}; +use std::io::{Read, Seek}; +use std::time::Duration; + +#[binread] +#[br(little, magic = 0x67u32)] +pub struct RleImage { + pub hash: u64, + pub color_table: [[u8; 4]; 512], + pub width: u32, + pub height: u32, + pub numerator: u32, + pub denominator: u32, + #[br(temp)] + pub frame_count: u32, + #[br(count = frame_count)] + pub frames: Vec, +} + +#[binread] +#[br(little)] +pub struct RleLayer { + pub width: u32, + pub height: u32, + pub left: u32, + pub top: u32, + pub numerator: u32, + pub denominator: u32, + pub data_size: u32, + pub unknown3: u32, + #[br(args(width * height), parse_with = parse_rle)] + pub data: Vec, +} + +pub fn parse_rle( + reader: &mut R, + endian: Endian, + (size,): (u32,), +) -> BinResult> { + let mut data = Vec::with_capacity(size as usize); + + while data.len() != size as usize { + let count: i8 = reader.read_type(endian)?; + if count > 0 { + let value: u8 = reader.read_type(endian)?; + for _ in 0..count { + data.push(value); + } + } else { + for _ in 0..-count { + data.push(reader.read_type(endian)?); + } + } + } + + Ok(data) +} + +impl RleImage { + pub fn get_image_data(&self, layer: &RleLayer) -> Vec { + let mut data = Vec::::with_capacity(self.width as usize * self.height as usize * 4); + let mut i = 0; + for y in 0..self.height { + for x in 0..self.width { + if y < layer.top + || y >= layer.top + layer.height + || x < layer.left + || x >= layer.left + layer.width + { + data.push(0); + data.push(0); + data.push(0); + data.push(0); + } else { + let color = self.color_table[layer.data[i] as usize]; + i += 1; + data.push(color[2]); + data.push(color[1]); + data.push(color[0]); + data.push(if color[2] == 0 && color[1] == 0 && color[0] == 0 { + 0 + } else { + 255 + }); + } + } + } + + data + } +} + +impl<'a> AnimationDecoder<'a> for RleImage { + fn into_frames(self) -> Frames<'a> { + Frames::new(Box::new(self.frames.into_iter().map(move |frame| { + let buffer = ImageBuffer::from_raw( + frame.width, + frame.height, + frame + .data + .into_iter() + .flat_map(|it| bgra_to_rgba(self.color_table[it as usize])) + .collect(), + ) + .ok_or(to_rle_image_err(std::fmt::Error::default()))?; + Ok(Frame::from_parts( + buffer, + frame.left, + frame.top, + Delay::from_saturating_duration(Duration::from_millis(80)), + )) + }))) + } +} + +pub fn bgra_to_rgba(pixel: [u8; 4]) -> [u8; 4] { + [pixel[2], pixel[1], pixel[0], pixel[3]] +} + +fn to_rle_image_err(err: T) -> ImageError +where + T: Into>, +{ + ImageError::Decoding(DecodingError::new( + ImageFormatHint::Name(String::from("mhjnr_rle")), + err, + )) +} diff --git a/rust/src/formats/sprites.rs b/rust/src/formats/sprites.rs new file mode 100644 index 0000000..9fb57a7 --- /dev/null +++ b/rust/src/formats/sprites.rs @@ -0,0 +1,75 @@ +#[derive(Debug)] +pub struct Sprites { + pub name: String, + pub sprite_type: SpriteType, + pub file_name: String, + pub render_mode: RenderMode, + pub frames: Option, +} + +#[derive(Debug)] +pub enum Error { + InvalidData, + UnknownEnum(String), +} + +impl Sprites { + pub fn parse(string: &str) -> Result, Error> { + string + .split('\n') + .map(|s| s.trim()) + .filter(|s| !s.is_empty()) + .map(Sprites::parse_single) + .collect() + } + + pub fn parse_single(string: &str) -> Result { + let mut components = string.split_whitespace(); + + Ok(Sprites { + file_name: components.next().ok_or(Error::InvalidData)?.to_string(), + sprite_type: match components.next().ok_or(Error::InvalidData)? { + "anim_rle" => SpriteType::AnimRle, + "anim" => SpriteType::Anim, + "static" => SpriteType::Static, + e => return Err(Error::UnknownEnum(e.to_string())), + }, + name: components.next().ok_or(Error::InvalidData)?.to_string(), + render_mode: match components.next().ok_or(Error::InvalidData)? { + "normx" => RenderMode::NormX, + "flipx" => RenderMode::FlipX, + e => return Err(Error::UnknownEnum(e.to_string())), + }, + frames: if let Some(c) = components.next() { + Some(match c { + "nocrop" => CropMode::NoCrop, + x => x + .parse::() + .map(CropMode::FrameCount) + .map_err(|e| Error::UnknownEnum(e.to_string()))?, + }) + } else { + None + }, + }) + } +} + +#[derive(Debug)] +pub enum CropMode { + FrameCount(i32), + NoCrop, +} + +#[derive(Debug)] +pub enum RenderMode { + NormX, + FlipX, +} + +#[derive(Debug)] +pub enum SpriteType { + Static, + Anim, + AnimRle, +} diff --git a/rust/src/formats/txt.rs b/rust/src/formats/txt.rs new file mode 100644 index 0000000..eee0bf5 --- /dev/null +++ b/rust/src/formats/txt.rs @@ -0,0 +1,68 @@ +use std::num::ParseIntError; +use std::string::FromUtf8Error; + +#[derive(Debug)] +pub enum DecryptError { + FromUtf8Error(FromUtf8Error), + ParseIntError(ParseIntError), +} + +impl From for DecryptError { + fn from(e: FromUtf8Error) -> DecryptError { + DecryptError::FromUtf8Error(e) + } +} + +impl From for DecryptError { + fn from(e: ParseIntError) -> DecryptError { + DecryptError::ParseIntError(e) + } +} + +/// Decrypts txt files contained inside the dat file +pub fn decrypt_txt(buffer: I) -> Result +where + I: Iterator, +{ + let mut key = 0x1234u16; + + String::from_utf8( + buffer + .map(|char| { + let decr = char ^ key as u8; + key = key.wrapping_mul(3).wrapping_add(2); + decr + }) + .map(|char| (((char >> 1) ^ (char << 1)) & 0x55) ^ (char << 1)) + .collect(), + ) + .map_err(DecryptError::from) +} + +/// Parses a hex string to a Vec +fn from_hex(line: &str) -> Result, ParseIntError> { + (0..line.len()) + .step_by(2) + .map(|i| u8::from_str_radix(line.get(i..=i + 1).unwrap_or(""), 16)) + .collect() +} + +/// This function is applied to *exposed* txt files, +/// such as the player profile or high scores +/// +/// If the file is contained in the datafile, it has +/// to first be decrypted normally and then again +/// with this function. +pub fn decrypt_exposed_txt(contents: String) -> Result { + contents + .split_terminator("\r\n") + .map(|line| line.trim()) + .filter(|line| !line.is_empty()) + .map(from_hex) + .map(|line| decrypt_txt(line.map_err(DecryptError::from)?.into_iter())) + .collect::, _>>() + .map(|l| l.join("\r\n")) +} + +#[cfg(test)] +mod tests {} diff --git a/rust/src/formats/ui_xml.rs b/rust/src/formats/ui_xml.rs new file mode 100644 index 0000000..7af13f9 --- /dev/null +++ b/rust/src/formats/ui_xml.rs @@ -0,0 +1,77 @@ +use serde::de::Error; +use serde::{Deserialize, Deserializer}; + +#[derive(Debug, Deserialize)] +pub enum UiTag { + Menu(UiMenu), + Image(UiImage), + TextButton(UiTextButton), +} + +#[derive(Debug, Deserialize)] +pub struct UiMenu { + pub selected: String, + #[serde(rename = "OnBack")] + pub on_back: String, + #[serde(rename = "$value")] + pub children: Vec, +} + +#[derive(Debug, Deserialize)] +pub struct UiImage { + pub texture: String, + #[serde(deserialize_with = "deserialize_vec2")] + pub position: [i32; 2], + #[serde(deserialize_with = "deserialize_vec2")] + pub size: [i32; 2], + #[serde(rename = "fademode")] + pub fade_mode: FadeMode, +} + +#[derive(Debug, Deserialize)] +pub struct UiTextButton { + pub name: Option, + pub text: String, + #[serde(deserialize_with = "deserialize_vec2")] + pub position: [i32; 2], + #[serde(rename = "halign")] + pub horizontal_align: HorizontalAlign, + #[serde(rename = "fademode")] + pub fade_mode: FadeMode, + #[serde(rename = "OnSelect")] + pub on_select: String, +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum HorizontalAlign { + Center, +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum FadeMode { + None, +} + +fn deserialize_vec2<'de, D>(deserializer: D) -> Result<[i32; 2], D::Error> +where + D: Deserializer<'de>, +{ + let buf = String::deserialize(deserializer)?; + let mut values: Vec> = buf + .split(',') + .into_iter() + .map(|value| { + // there's some typos so we have to cover that... + value.split_ascii_whitespace().collect::>()[0] + .trim() + .parse::() + .map_err(|err| Error::custom(err.to_string())) + }) + .collect(); + let y = values.pop().ok_or(Error::custom("InvalidField"))??; + let x = values.pop().ok_or(Error::custom("InvalidField"))??; + + Ok([x, y]) +} diff --git a/rust/src/godot/datafile.rs b/rust/src/godot/datafile.rs new file mode 100644 index 0000000..ce07342 --- /dev/null +++ b/rust/src/godot/datafile.rs @@ -0,0 +1,272 @@ +use crate::formats; +use crate::formats::datafile::{Datafile, FileEntry}; +use crate::formats::sprites::{CropMode, RenderMode, SpriteType}; +use crate::formats::{load_data, DatafileFile}; +use crate::godot::font::load_bitmap_font; +use crate::godot::game_object::parse_game_object; +use crate::godot::image::{load_bmp_as_image_texture, load_rle_as_sprite_frames}; +use crate::godot::sprites::load_sprite_frames; +use crate::godot::tile_map::{create_tile_map, TileCollision}; +use crate::godot::ui::convert_ui; +use binrw::BinRead; +use godot::engine::global::Error; +use godot::engine::image::Format; +use godot::engine::resource_loader::CacheMode; +use godot::engine::resource_saver::SaverFlags; +use godot::engine::utilities::{printerr, prints}; +use godot::engine::{ + AtlasTexture, AudioStream, AudioStreamOggVorbis, DirAccess, OggPacketSequence, + PlaceholderTexture2D, SpriteFrames, +}; +use godot::engine::{Image, PckPacker}; +use godot::engine::{ImageTexture, ProjectSettings}; +use godot::engine::{ResourceFormatLoader, ResourceSaver}; +use godot::engine::{ResourceFormatLoaderVirtual, ResourceLoader}; +use godot::prelude::*; +use itertools::Itertools; +use std::collections::HashMap; +use std::fs::File; +use std::str::FromStr; + +const DAT_PATH: &str = "E:\\Games\\Schatzjäger\\data\\datafile.dat"; + +#[derive(GodotClass)] +#[class(base=ResourceFormatLoader)] +pub struct DatafileLoader { + pub datafile_table: HashMap, + + #[base] + pub base: Base, +} + +fn convert_path(path: &GodotString) -> String { + path.to_string() + .strip_prefix("datafile://") + .map(|it| it.replace('/', "\\")) + .expect("Invalid path") +} + +#[godot_api] +impl DatafileLoader { + fn save_to_cache(&self, resource: Gd, path: String) { + let cache_path = self.get_cache_path(path); + match DirAccess::make_dir_recursive_absolute(cache_path.rsplit_once('/').unwrap().0.into()) + { + Error::OK => (), + error => printerr(error.to_variant(), &[]), + } + ResourceSaver::singleton().save(resource, cache_path.into(), SaverFlags::FLAG_NONE); + } + + fn get_cache_path(&self, path: String) -> String { + format!( + "{}/.cache/{}", + DAT_PATH + .replace('\\', "/") + .strip_suffix("datafile.dat") + .unwrap(), + path.replace('\\', "/") + ) + } + + fn retrieve_cache(&self, path: String) -> Option> + where + T: GodotClass + Inherits, + { + let cache_path = self.get_cache_path(path); + let type_hint = T::CLASS_NAME; + if !ResourceLoader::singleton().exists(cache_path.clone().into(), type_hint.into()) { + return None; + } + ResourceLoader::singleton() + .load( + cache_path.into(), + type_hint.into(), + CacheMode::CACHE_MODE_REUSE, + ) + .map(|it| it.cast()) + } +} + +#[godot_api] +impl ResourceFormatLoaderVirtual for DatafileLoader { + fn init(base: Base) -> Self { + let mut file = File::open(DAT_PATH).unwrap(); + let datafile_table = Datafile::read(&mut file).unwrap().into_index(); + + DatafileLoader { + base, + datafile_table, + } + } + + fn get_recognized_extensions(&self) -> PackedStringArray { + PackedStringArray::from(&[ + "xml".into(), + "txt".into(), + "rle".into(), + "bmp".into(), + "dat".into(), + ]) + } + + fn recognize_path(&self, path: GodotString, _type: StringName) -> bool { + path.to_string().starts_with("datafile://") + } + + fn get_resource_type(&self, path: GodotString) -> GodotString { + if path.to_string().ends_with(".dat") { + "PackedScene".into() + } else { + "Resource".into() + } + } + + fn get_resource_script_class(&self, _path: GodotString) -> GodotString { + GodotString::from_str("").unwrap() + } + + fn exists(&self, path: GodotString) -> bool { + self.datafile_table + .contains_key(convert_path(&path).as_str()) + } + + fn get_classes_used(&self, _path: GodotString) -> PackedStringArray { + PackedStringArray::from(&[]) + } + + fn load( + &self, + path: GodotString, + _original_path: GodotString, + _use_sub_threads: bool, + _cache_mode: i64, + ) -> Variant { + let datafile_path = convert_path(&path); + if let Some(resource) = self.retrieve_cache::(format!( + "{}.{}", + datafile_path, + if datafile_path.ends_with(".xml") || datafile_path.ends_with("dat") { + "scn" + } else { + "res" + } + )) { + return resource.to_variant(); + } + + if let Some(target) = self.datafile_table.get(datafile_path.as_str()) { + let mut file = File::open(DAT_PATH).unwrap(); + match load_data(target, &mut file) { + Ok(DatafileFile::Level(level)) => { + let level_id = datafile_path + .split_terminator('\\') + .find(|i| i.starts_with("level")) + .map(|lvl| u32::from_str(lvl.strip_prefix("level").unwrap()).unwrap()) + .unwrap(); + let tile_map = create_tile_map(level, level_id); + + self.save_to_cache(tile_map.share().upcast(), format!("{}.scn", datafile_path)); + tile_map.to_variant() + } + Ok(DatafileFile::Txt(txt)) => { + let game_object = parse_game_object(txt); + self.save_to_cache( + game_object.share().upcast(), + format!("{}.res", datafile_path), + ); + game_object.to_variant() + } + Ok(DatafileFile::Ui(ui)) => { + let ui = convert_ui(ui); + let mut scene = PackedScene::new(); + scene.pack(ui.upcast()); + + self.save_to_cache(scene.share().upcast(), format!("{}.scn", datafile_path)); + scene.to_variant() + } + Ok(DatafileFile::Vorbis(vorbis)) => { + let mut audio = AudioStreamOggVorbis::new(); + audio.set_loop(true); + let mut packet = OggPacketSequence::new(); + packet.set_packet_data(Array::from(&[Array::from(&[PackedByteArray::from( + vorbis.as_slice(), + ) + .to_variant()])])); + audio.set_packet_sequence(packet); + audio.to_variant() + } + Ok(DatafileFile::RleSprite(rle)) => load_rle_as_sprite_frames(*rle).to_variant(), + Ok(DatafileFile::Sprites(sprites)) => { + let sprite_frames = load_sprite_frames(sprites, path); + + self.save_to_cache( + sprite_frames.share().upcast(), + format!("{}.res", datafile_path), + ); + sprite_frames.to_variant() + } + Ok(DatafileFile::Bitmap(data)) => { + let gd_image = match load_bmp_as_image_texture(data) { + Ok(image) => image, + Err(err) => return err.to_variant(), + }; + + if datafile_path.contains("\\fonts\\") { + let font = load_bitmap_font(gd_image); + + self.save_to_cache( + font.share().upcast(), + format!("{}.tres", datafile_path), + ); + font.to_variant() + } else { + let mut texture = ImageTexture::new(); + texture.set_image(gd_image); + + self.save_to_cache( + texture.share().upcast(), + format!("{}.res", datafile_path), + ); + texture.to_variant() + } + } + Ok(DatafileFile::TileCollision(collision)) => { + let tile_collision = Gd::new(TileCollision { + collision: collision + .chars() + .filter_map(|c| c.to_digit(10)) + .map(|d| d as u8) + .collect(), + }); + + // No need to save this to cache, we only use this internally + /*self.save_to_cache( + tile_collision.share().upcast(), + format!("{}.res", datafile_path), + );*/ + tile_collision.to_variant() + } + Err(formats::Error::UnknownFormat(ext)) => { + printerr(format!("Unknown format <{}>", ext).to_variant(), &[]); + Error::ERR_FILE_UNRECOGNIZED.to_variant() + } + Err(formats::Error::Deserialization) => { + printerr("Failed to deserialize".to_variant(), &[]); + Error::ERR_FILE_CORRUPT.to_variant() + } + Err(formats::Error::Custom(message)) => { + printerr(message.to_variant(), &[]); + Error::ERR_BUG.to_variant() + } + _ => { + printerr("Unknown error".to_variant(), &[]); + Error::ERR_BUG.to_variant() + } + } + } else { + printerr("File not found".to_variant(), &[]); + Error::ERR_FILE_NOT_FOUND.to_variant() + } + } +} diff --git a/rust/src/godot/font.rs b/rust/src/godot/font.rs new file mode 100644 index 0000000..9e7646a --- /dev/null +++ b/rust/src/godot/font.rs @@ -0,0 +1,88 @@ +use godot::builtin::{Rect2, Vector2, Vector2i}; +use godot::engine::{FontFile, Image}; +use godot::prelude::utilities::{print_verbose, prints}; +use godot::prelude::{Color, Gd, Share, ToVariant}; +use std::ops::Index; +use unicode_segmentation::UnicodeSegmentation; + +const CHARSET: &str = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzäöüß0123456789,;.:!?\ + +-*/=<>()[]{}\"$%&#~_’^@|¡¿™©®º¹²³ªÀÁÂÃÅÆÇÈÉÊËÌÍÎÏIÐGÑÒÓÔÕŒØSŠÙÚÛÝÞŸŽàáâãåæçèéêëìíî\ + ïiðgñòóôõœøsšùúûýþÿž£¥ƒ¤¯¦¬¸¨·§×¢±÷µ«»"; + +pub fn load_bitmap_font(image: Gd) -> Gd { + let mut font_chars = CHARSET.as_bytes().iter(); + + let mut font_file = FontFile::new(); + + let chroma_key = Color { + r: 0.0, + g: 0.0, + b: 0.0, + a: 0.0, + }; + + let mut was_empty_column = true; + let mut char_x = 0; + let mut char_width = 0; + let char_height = image.get_height(); + let char_y = 0; + + let base_size = Vector2i { x: 16, y: 0 }; + + font_file.set_texture_image(0, base_size, 0, image.share()); + + for x in 0..image.get_width() { + let is_empty_column = (0..image.get_height()).all(|y| image.get_pixel(x, y).a == 0.0); + + if !was_empty_column && is_empty_column { + let char = font_chars.next().expect("Font has too many characters!"); + let glyph = *char as i64; + /*let mut glyph = 0i64; + for (i, c) in char.bytes().rev().enumerate() { + glyph |= (c as i64) << (i * 8); + }*/ + + let glyph_offset = Vector2 { + x: char_x as f32, + y: char_y as f32, + }; + let glyph_size = Vector2 { + x: char_width as f32, + y: char_height as f32, + }; + + prints( + "Glyph".to_variant(), + &[ + (*char as char).to_string().to_variant(), + glyph_offset.to_variant(), + glyph_size.to_variant(), + ], + ); + + // font_file.set_glyph_offset(0, base_size, glyph, glyph_offset); + font_file.set_glyph_size(0, base_size, glyph, glyph_size); + font_file.set_glyph_uv_rect( + 0, + base_size, + glyph, + Rect2 { + position: glyph_offset, + size: glyph_size, + }, + ); + font_file.set_glyph_texture_idx(0, base_size, glyph, 0); + } else if was_empty_column && !is_empty_column { + char_x = x; + char_width = 0; + } + + char_width += 1; + was_empty_column = is_empty_column; + } + + font_file.set_font_name("menufont".into()); + // font_file.set_cache_ascent(0, base_size.x, ) + + font_file +} diff --git a/rust/src/godot/game_object.rs b/rust/src/godot/game_object.rs new file mode 100644 index 0000000..de9416a --- /dev/null +++ b/rust/src/godot/game_object.rs @@ -0,0 +1,138 @@ +use godot::engine::Resource; +use godot::prelude::*; +use itertools::Itertools; +use std::str::FromStr; + +#[derive(GodotClass)] +#[class(base=Resource, init)] +pub struct ObjectScript { + #[export] + pub dynamic_objects: Array>, + #[export] + pub static_objects: Array>, + #[base] + base: Base, +} + +#[godot_api] +impl ObjectScript {} + +#[derive(GodotClass)] +#[class(base=Resource, init)] +pub struct ObjectData { + #[export] + pub class_type: GodotString, + #[export] + pub resource_type: GodotString, + #[export] + pub name: GodotString, + #[export] + pub props: Dictionary, + #[export] + pub children: Array>, + #[base] + base: Base, +} + +#[godot_api] +impl ObjectData {} + +pub fn parse_game_object(contents: String) -> Gd { + Gd::::with_base(|base| { + let mut object_script = ObjectScript { + dynamic_objects: Array::new(), + static_objects: Array::new(), + base, + }; + + let mut lines = contents + .lines() + .map(|l| l.trim()) + .filter(|l| !l.is_empty()) + .filter(|l| !l.starts_with('#')); + + while let Some(line) = lines.next() { + match line { + "DYNAMIC OBJECT START" => { + object_script.dynamic_objects.push(read_object(&mut lines)) + } + "OBJECT START" => object_script.static_objects.push(read_object(&mut lines)), + l => eprintln!("TODO: {}", l), + }; + } + + object_script + }) +} + +pub fn read_object<'s, I>(lines: &mut I) -> Gd +where + I: Iterator, +{ + let class_type = lines + .next() + .unwrap() + .strip_prefix("class type:") + .unwrap() + .trim() + .trim_matches('"'); + let (resource_type, name) = lines + .next() + .unwrap() + .splitn(2, ']') + .map(|x| x.trim()) + .collect_tuple::<(&str, &str)>() + .unwrap(); + + Gd::::with_base(|base| { + let mut object_data = ObjectData { + class_type: class_type.into(), + resource_type: resource_type + .trim_start_matches('[') + .trim_end_matches(']') + .into(), + name: name.trim_matches('"').into(), + props: Dictionary::new(), + children: Array::new(), + base, + }; + + lines.next(); + loop { + match lines.next().unwrap() { + "}" => break, + l => { + let (_, key, value) = l + .splitn(3, '"') + .map(|x| x.trim()) + .collect_tuple::<(&str, &str, &str)>() + .unwrap(); + let values = value + .split_whitespace() + .map(|s| f32::from_str(s).unwrap()) + .collect_vec(); + object_data.props.insert( + key, + match values.len() { + 1 => values[0].to_variant(), + 2 => Vector2 { + x: values[0], + y: values[1], + } + .to_variant(), + 3 => Vector3 { + x: values[0], + y: values[1], + z: values[2], + } + .to_variant(), + _ => panic!(), + }, + ); + } + } + } + + object_data + }) +} diff --git a/rust/src/godot/image.rs b/rust/src/godot/image.rs new file mode 100644 index 0000000..6f21b9f --- /dev/null +++ b/rust/src/godot/image.rs @@ -0,0 +1,57 @@ +use crate::formats::rle::RleImage; +use godot::builtin::{Color, PackedByteArray}; +use godot::engine::global::Error; +use godot::engine::image::Format; +use godot::engine::{Image, ImageTexture, SpriteFrames}; +use godot::obj::Gd; + +const FPS: f64 = 15.0; + +pub fn load_rle_as_sprite_frames(rle: RleImage) -> Gd { + let mut frames = SpriteFrames::new(); + + frames.set_animation_loop("default".into(), true); + frames.set_animation_speed("default".into(), FPS); + + for frame in rle.frames.iter() { + let mut image = Image::new(); + image.set_data( + rle.width as i64, + rle.height as i64, + false, + Format::FORMAT_RGBA8, + PackedByteArray::from(rle.get_image_data(frame).as_slice()), + ); + image.fix_alpha_edges(); + + let mut texture = ImageTexture::new(); + texture.set_image(image); + frames.add_frame("default".into(), texture.upcast(), 1.0, 0); + } + + frames +} + +pub fn load_bmp_as_image_texture(data: Vec) -> Result, Error> { + let mut image = Image::new(); + + match image.load_bmp_from_buffer(data.as_slice().into()) { + Error::OK => { + for x in 0..image.get_width() { + for y in 0..image.get_height() { + if image.get_pixel(x, y).is_equal_approx(Color { + r: 1.0, + g: 0.0, + b: 1.0, + a: 1.0, + }) { + image.set_pixel(x, y, Color::TRANSPARENT_BLACK); + } + } + } + image.fix_alpha_edges(); + Ok(image) + } + error => Err(error), + } +} diff --git a/rust/src/godot/mod.rs b/rust/src/godot/mod.rs new file mode 100644 index 0000000..eb2a971 --- /dev/null +++ b/rust/src/godot/mod.rs @@ -0,0 +1,7 @@ +pub mod datafile; +pub mod font; +pub mod game_object; +pub mod image; +pub mod sprites; +pub mod tile_map; +pub mod ui; diff --git a/rust/src/godot/sprites.rs b/rust/src/godot/sprites.rs new file mode 100644 index 0000000..aca5405 --- /dev/null +++ b/rust/src/godot/sprites.rs @@ -0,0 +1,133 @@ +use crate::formats::sprites::{CropMode, RenderMode, Sprites}; +use godot::builtin::{GodotString, Rect2, StringName, ToVariant, Vector2}; +use godot::engine::utilities::printerr; +use godot::engine::{ + load, AtlasTexture, ImageTexture, PlaceholderTexture2D, ResourceLoader, SpriteFrames, +}; +use godot::obj::{Gd, Share}; +use godot::prelude::GodotClass; + +const FPS: f64 = 15.0; +const SPRITE_EXTENSIONS: &[&str] = &["bmp", "rle"]; + +pub fn load_sprite_frames(sprites: Vec, path: GodotString) -> Gd { + let dir = path + .to_string() + .strip_suffix("/sprites.txt") + .unwrap() + .to_string(); + let mut sprite_frames = SpriteFrames::new(); + for sprite in sprites.into_iter() { + if let RenderMode::FlipX = sprite.render_mode { + continue; + } + sprite_frames.add_animation(StringName::from(&sprite.name)); + sprite_frames.set_animation_speed(StringName::from(&sprite.name), FPS); + + match select_from_extensions(&dir, &sprite.file_name) { + Some((path, "rle")) => extract_rle_frames(&mut sprite_frames, &sprite, path), + Some((path, "bmp")) => extract_bitmap_frames(&mut sprite_frames, &sprite, path), + Some(_) | None => { + printerr( + format!("Missing sprite '{}'", sprite.file_name).to_variant(), + &[], + ); + let texture = PlaceholderTexture2D::new(); + sprite_frames.add_frame( + StringName::from(&sprite.name), + texture.upcast(), + 60.0 / FPS, + 0, + ); + } + } + } + + sprite_frames +} + +/// Loads an RLE file as SpriteFrames and extracts +/// its frames into `sprite_frames` +fn extract_rle_frames(sprite_frames: &mut SpriteFrames, sprite: &Sprites, path: String) { + let frames: Gd = load(path); + for frame_idx in 0..frames.get_frame_count("default".into()) { + sprite_frames.add_frame( + StringName::from(&sprite.name), + frames + .get_frame_texture("default".into(), frame_idx) + .unwrap(), + 60.0 / FPS, + 0, + ); + } +} + +/// Loads a bitmap and extracts its frames into `sprite_frames` +/// creates an atlas if there are multiple frames. +fn extract_bitmap_frames(sprite_frames: &mut SpriteFrames, sprite: &Sprites, path: String) { + let texture: Gd = load(path); + + let frame_count = if let Some(CropMode::FrameCount(frame_count)) = sprite.frames { + frame_count + } else { + 1 + }; + + if frame_count > 1 { + let height = texture.get_height(); + let width = texture.get_width(); + let frame_height = height / frame_count as i64; + + for i in 0..frame_count as i64 { + let mut atlas = AtlasTexture::new(); + atlas.set_atlas(texture.share().upcast()); + atlas.set_region(Rect2 { + position: Vector2 { + x: 0.0, + y: (i * frame_height) as f32, + }, + size: Vector2 { + x: width as f32, + y: frame_height as f32, + }, + }); + + sprite_frames.add_frame( + StringName::from(&sprite.name), + atlas.upcast(), + 60.0 / FPS, + 0, + ); + } + } else { + sprite_frames.add_frame( + StringName::from(&sprite.name), + texture.upcast(), + 60.0 / FPS, + 0, + ); + } +} + +/// Selects the extension based on which file exists +fn select_from_extensions(dir: &str, file_name: &str) -> Option<(String, &'static str)> { + SPRITE_EXTENSIONS + .iter() + .map(|ext| { + ( + format!("{}/sprites/{}.{}", dir, file_name.to_lowercase(), ext), + *ext, + ) + }) + .find(|(path, ext)| { + ResourceLoader::singleton().exists( + path.clone().into(), + match *ext { + "rle" => SpriteFrames::CLASS_NAME.to_string(), + "bmp" => ImageTexture::CLASS_NAME.to_string(), + _ => panic!(), + } + .into(), + ) + }) +} diff --git a/rust/src/godot/tile_map.rs b/rust/src/godot/tile_map.rs new file mode 100644 index 0000000..8a381fb --- /dev/null +++ b/rust/src/godot/tile_map.rs @@ -0,0 +1,139 @@ +use crate::formats::level::LevelLayer; +use godot::engine::global::Error; +use godot::engine::utilities::{clampi, printerr}; +use godot::engine::{load, PackedScene}; +use godot::engine::{ImageTexture, TileSet}; +use godot::engine::{TileMap, TileSetAtlasSource}; +use godot::prelude::*; +use godot::prelude::{Gd, PackedByteArray, Share, ToVariant}; + +pub fn create_tile_map(layer: LevelLayer, level_id: u32) -> Gd { + let mut tile_set = TileSet::new(); + tile_set.set_tile_size(Vector2i { x: 32, y: 32 }); + tile_set.add_physics_layer(0); + let mut map = TileMap::new_alloc(); + map.set_tileset(tile_set.share()); + map.set_quadrant_size(32); + + for x in 0..layer.width { + for y in 0..layer.height { + let tile = &layer.tiles[(y * layer.width + x) as usize]; + if tile.id == 0 { + continue; + } + if !tile_set.has_source(tile.id as i64) { + let atlas_id = tile.id as u32 + 1; + let atlas = load_atlas(1, atlas_id, layer.tile_count); + tile_set.add_source(atlas.share().upcast(), tile.id as i64); + add_collision(atlas, level_id, atlas_id); + } + map.set_cell( + 0, + Vector2i { + x: x as i32, + y: y as i32, + }, + tile.id as i64, + Vector2i { + x: clampi(tile.index as i64 % 16, 0, 15) as i32, + y: clampi(tile.index as i64 / 16, 0, 15) as i32, + }, + 0, + ); + } + } + + let mut scene = PackedScene::new(); + let error = scene.pack(map.upcast()); + match error { + Error::OK => (), + e => printerr(e.to_variant(), &[]), + } + scene +} + +#[derive(GodotClass)] +#[class(base=Resource, init)] +pub struct TileCollision { + #[export] + pub collision: PackedByteArray, +} + +#[godot_api] +impl TileCollision {} + +fn add_collision(atlas: Gd, level_id: u32, atlas_id: u32) { + let tile_collision: Gd = load(format!( + "datafile://data/level{:02}/tile_collision_{:02}.txt", + level_id, atlas_id + )); + let width = atlas.get_atlas_grid_size().x; + let height = atlas.get_atlas_grid_size().y; + + let tile_width = atlas.get_texture_region_size().x as f32 / 2.0; + let tile_height = atlas.get_texture_region_size().y as f32 / 2.0; + let collision = &[ + Vector2 { + x: -tile_width, + y: -tile_height, + }, + Vector2 { + x: -tile_width, + y: tile_height, + }, + Vector2 { + x: tile_width, + y: tile_height, + }, + Vector2 { + x: tile_width, + y: -tile_height, + }, + ]; + + for x in 0..width { + for y in 0..height { + let collision_data = tile_collision + .bind() + .collision + .get((y * width + x) as usize); + let mut data = atlas.get_tile_data(Vector2i { x, y }, 0).unwrap(); + if collision_data & 0x1 != 0 { + data.add_collision_polygon(0); + data.set_collision_polygon_points(0, 0, PackedVector2Array::from(collision)); + } else if collision_data & 0xfe != 0 { + printerr( + format!("Missing collision info for {}", collision_data).to_variant(), + &[], + ); + } + } + } +} + +fn load_atlas(set_id: u32, atlas_id: u32, tile_count: u32) -> Gd { + let mut atlas = TileSetAtlasSource::new(); + let tex: Gd = load(format!( + "datafile://data/set{}/sprites/tiles_{:02}.bmp", + set_id, atlas_id, + )); + let region_size = (tile_count as f32).sqrt(); + debug_assert_eq!(tex.get_width(), tex.get_height()); + debug_assert_eq!(region_size, region_size.trunc()); + + let tile_size = (tex.get_width() / region_size as i64) as i32; + + atlas.set_texture(tex.upcast()); + atlas.set_texture_region_size(Vector2i { + x: tile_size, + y: tile_size, + }); + + for x in 0..region_size as i32 { + for y in 0..region_size as i32 { + atlas.create_tile(Vector2i { x, y }, Vector2i { x: 1, y: 1 }); + } + } + + atlas +} diff --git a/rust/src/godot/ui.rs b/rust/src/godot/ui.rs new file mode 100644 index 0000000..856cc63 --- /dev/null +++ b/rust/src/godot/ui.rs @@ -0,0 +1,58 @@ +use crate::formats::ui_xml::{HorizontalAlign, UiTag}; +use godot::builtin::{GodotString, Vector2}; +use godot::engine::global::HorizontalAlignment; +use godot::engine::node::InternalMode; +use godot::engine::{Button, Container, Control, TextureRect}; +use godot::prelude::*; + +pub fn convert_ui(ui: UiTag) -> Gd { + match ui { + UiTag::Menu(menu) => { + let mut gd_menu = Container::new_alloc(); + for child in menu.children { + gd_menu.add_child( + convert_ui(child).upcast(), + false, + InternalMode::INTERNAL_MODE_FRONT, + ); + } + gd_menu.upcast() + } + UiTag::Image(image) => { + let mut gd_image = TextureRect::new_alloc(); + gd_image.set_position( + Vector2 { + x: image.position[0] as f32, + y: image.position[1] as f32, + }, + false, + ); + gd_image.set_size( + Vector2 { + x: image.size[0] as f32, + y: image.size[1] as f32, + }, + false, + ); + gd_image.upcast() + } + UiTag::TextButton(button) => { + let mut gd_button = Button::new_alloc(); + gd_button.set_position( + Vector2 { + x: button.position[0] as f32, + y: button.position[1] as f32, + }, + false, + ); + gd_button.set_text_alignment(match button.horizontal_align { + HorizontalAlign::Center => HorizontalAlignment::HORIZONTAL_ALIGNMENT_CENTER, + }); + if let Some(name) = button.name { + gd_button.set_name(GodotString::from(name)); + } + gd_button.set_text(GodotString::from(button.text)); + gd_button.upcast() + } + } +} diff --git a/rust/src/lib.rs b/rust/src/lib.rs new file mode 100644 index 0000000..6be175a --- /dev/null +++ b/rust/src/lib.rs @@ -0,0 +1,40 @@ +use crate::godot::datafile::DatafileLoader; +use ::godot::engine::class_macros::auto_register_classes; +use ::godot::engine::{ResourceFormatLoaderVirtual, ResourceLoader}; +use ::godot::init::{gdextension, ExtensionLayer}; +use ::godot::prelude::{ExtensionLibrary, Gd, InitHandle, InitLevel, Share}; + +pub mod formats; +pub mod godot; + +struct Main {} + +#[gdextension] +unsafe impl ExtensionLibrary for Main { + fn load_library(handle: &mut InitHandle) -> bool { + handle.register_layer(InitLevel::Editor, ResourceLoaderLayer { datafile: None }); + true + } +} + +struct ResourceLoaderLayer { + pub datafile: Option>, +} + +impl ExtensionLayer for ResourceLoaderLayer { + fn initialize(&mut self) { + auto_register_classes(); + + self.datafile = Some(Gd::::with_base(DatafileLoader::init)); + + ResourceLoader::singleton() + .add_resource_format_loader(self.datafile.as_ref().unwrap().share().upcast(), true); + } + + fn deinitialize(&mut self) { + if let Some(datafile) = &self.datafile { + ResourceLoader::singleton().remove_resource_format_loader(datafile.share().upcast()); + self.datafile = None; + } + } +} diff --git a/rust/src/main.rs b/rust/src/main.rs new file mode 100644 index 0000000..324a53d --- /dev/null +++ b/rust/src/main.rs @@ -0,0 +1,130 @@ +use binrw::{BinRead, NullString}; +use image::codecs::gif::{GifEncoder, Repeat}; +use image::{AnimationDecoder, ImageFormat}; +use mhjnr::formats::datafile::Datafile; +use mhjnr::formats::level::level_tile_data_to_image; +use mhjnr::formats::rle::RleImage; +use mhjnr::formats::sprites::Sprites; +use mhjnr::formats::txt::{decrypt_exposed_txt, decrypt_txt}; +use mhjnr::formats::ui_xml::UiTag; +use serde_xml_rs::from_str; +use std::ffi::OsStr; +use std::fs; +use std::fs::{File, OpenOptions}; +use std::io::{Cursor, Read, Seek, SeekFrom, Write}; +use std::path::Path; + +fn extract(datafile: &Datafile, file: &mut File) { + let target = "E:\\Games\\Schatzjäger\\data3"; + + for entry in &datafile.files { + let file_name = format!("{}\\{}", target, entry.name); + fs::create_dir_all(file_name.rsplit_once('\\').unwrap().0).unwrap(); + + file.seek(SeekFrom::Start(entry.pos as u64)).unwrap(); + let mut data = vec![0u8; entry.len as usize]; + file.read_exact(&mut data).unwrap(); + + if entry.name.to_string().ends_with(".txt") { + let mut contents = decrypt_txt(data.into_iter()).unwrap(); + /*if entry + .name + .to_string() + .split('\\') + .collect::>() + .len() + == 1 + { + contents = decrypt_exposed_txt(contents).unwrap(); + }*/ + File::create(file_name) + .unwrap() + .write_all(contents.as_bytes()) + .unwrap(); + } else if entry.name.to_string().ends_with(".rle") { + let image: RleImage = RleImage::read(&mut Cursor::new(data)).unwrap(); + let mut encoder = GifEncoder::new( + OpenOptions::new() + .create(true) + .write(true) + .open(format!( + "{}.{}", + file_name.strip_suffix(".rle").unwrap(), + ".gif" + )) + .unwrap(), + ); + encoder.set_repeat(Repeat::Infinite).unwrap(); + encoder.try_encode_frames(image.into_frames()).unwrap(); + } else { + File::create(file_name) + .unwrap() + .write_all(data.as_slice()) + .unwrap(); + } + } +} + +fn main() { + let file_name = Some(NullString::from("data\\loading\\sprites.txt")); + let dat_path = "E:\\Games\\Schatzjäger\\data\\datafile.dat"; + + let mut file = File::open(dat_path).unwrap(); + let dat: Datafile = Datafile::read(&mut file).unwrap(); + println!("{:#?}", dat); + + extract(&dat, &mut file); + + /*if let Some(file_name) = file_name { + let target = dat.files.iter().find(|it| it.name == file_name).unwrap(); + file.seek(SeekFrom::Start(target.pos as u64)).unwrap(); + let mut data = vec![0u8; target.len as usize]; + file.read_exact(&mut data).unwrap(); + + match Path::new(&file_name.to_string()) + .extension() + .and_then(OsStr::to_str) + { + Some("xml") => println!( + "{:#?}", + from_str::(String::from_utf8(data).unwrap().as_str()) + ), + Some("txt") => { + if false { + /*let decr = decrypt_txt(&mut data); + let entries: String = decrypt_exposed_txt(decr);*/ + let decr = decrypt_txt(data.into_iter()).unwrap(); + println!("{}", &decr); + let sprites = Sprites::parse(decr.as_str()).unwrap(); + println!("{:#?}", sprites); + } else { + println!("{}", decrypt_txt(data.into_iter()).unwrap()) + } + } + Some("rle") => { + let image: RleImage = RleImage::read(&mut Cursor::new(data)).unwrap(); + let path = Path::new(dat_path).with_file_name("res.gif"); + println!("{:?}", path); + let mut encoder = GifEncoder::new( + OpenOptions::new() + .create(true) + .write(true) + .open(path) + .unwrap(), + ); + encoder.set_repeat(Repeat::Infinite).unwrap(); + encoder.try_encode_frames(image.into_frames()).unwrap(); + } + Some("dat") => { + let image = level_tile_data_to_image(&data).unwrap(); + let path = Path::new(dat_path).with_file_name("res.png"); + println!("{:?}", path); + image.save_with_format(path, ImageFormat::Png).unwrap(); + } + Some(ext) => eprintln!("Unknown file extension <{}>", ext), + None => eprintln!("Failed to read"), + } + }*/ +} + +// pub fn decr2()