mirror of
https://github.com/Theaninova/mhlib.git
synced 2025-12-12 12:36:17 +00:00
Add kart game
This commit is contained in:
@@ -1,6 +1,13 @@
|
|||||||
extends Area3D
|
extends Node3D
|
||||||
|
|
||||||
class_name FinishLine
|
class_name FinishLine
|
||||||
|
|
||||||
@export var start_positions: Array[Marker3D]
|
@onready var start_positions = [
|
||||||
|
$pos_0,
|
||||||
|
$pos_1,
|
||||||
|
$pos_2,
|
||||||
|
$pos_3,
|
||||||
|
$pos_4,
|
||||||
|
$pos_5
|
||||||
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
[gd_scene load_steps=16 format=3 uid="uid://1sm0qglu7q7i"]
|
[gd_scene load_steps=16 format=3 uid="uid://1sm0qglu7q7i"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://PhysicsInterpolator.gd" id="1_x8dkv"]
|
[ext_resource type="Script" path="res://PhysicsInterpolator.gd" id="1_cxgl4"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/moorhuhn.lwo/layer_0.res" id="2_rbnr8"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/moorhuhn.lwo/layer_0.res" id="2_ges5k"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/moorhuhn.lwo/layer_1.res" id="3_j84nv"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/moorhuhn.lwo/layer_1.res" id="3_3dgmt"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/moorhuhn.lwo/layer_2.res" id="4_trmbd"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/moorhuhn.lwo/layer_2.res" id="4_pr7c3"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_0.res" id="5_ydkp1"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_0.res" id="5_eqscg"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_1.res" id="6_ul4ba"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_1.res" id="6_o6fvu"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_6.res" id="7_s4uu8"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_6.res" id="7_bicni"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_7.res" id="8_yx2s2"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_7.res" id="8_3dlnt"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_8.res" id="9_kadfc"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_8.res" id="9_qvqff"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_3.res" id="10_hfn0h"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_3.res" id="10_xywge"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_4.res" id="11_scyqe"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_cars/kart_01.lwo/layer_4.res" id="11_57yte"]
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_dfi4v"]
|
[sub_resource type="GDScript" id="GDScript_dfi4v"]
|
||||||
script/source = "extends VehicleBody3D
|
script/source = "extends VehicleBody3D
|
||||||
@@ -89,40 +89,40 @@ spring_length = -2.06
|
|||||||
transform = Transform3D(-1, 1.21669e-08, -8.6572e-08, 0, 0.990268, 0.139173, 8.74228e-08, 0.139173, -0.990268, 0, 0, 0)
|
transform = Transform3D(-1, 1.21669e-08, -8.6572e-08, 0, 0.990268, 0.139173, 8.74228e-08, 0.139173, -0.990268, 0, 0, 0)
|
||||||
|
|
||||||
[node name="Interpolator" type="Node3D" parent="."]
|
[node name="Interpolator" type="Node3D" parent="."]
|
||||||
script = ExtResource("1_x8dkv")
|
script = ExtResource("1_cxgl4")
|
||||||
|
|
||||||
[node name="Character" type="Node3D" parent="Interpolator"]
|
[node name="Character" type="Node3D" parent="Interpolator"]
|
||||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0)
|
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0)
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Interpolator/Character"]
|
[node name="layer_0" type="MeshInstance3D" parent="Interpolator/Character"]
|
||||||
mesh = ExtResource("2_rbnr8")
|
mesh = ExtResource("2_ges5k")
|
||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
[node name="layer_1" type="MeshInstance3D" parent="Interpolator/Character"]
|
[node name="layer_1" type="MeshInstance3D" parent="Interpolator/Character"]
|
||||||
mesh = ExtResource("3_j84nv")
|
mesh = ExtResource("3_3dgmt")
|
||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
[node name="layer_2" type="MeshInstance3D" parent="Interpolator/Character"]
|
[node name="layer_2" type="MeshInstance3D" parent="Interpolator/Character"]
|
||||||
mesh = ExtResource("4_trmbd")
|
mesh = ExtResource("4_pr7c3")
|
||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
[node name="kart_01" type="Node3D" parent="Interpolator"]
|
[node name="kart_01" type="Node3D" parent="Interpolator"]
|
||||||
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -0.00301218, -0.102925, 0.0106623)
|
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -0.00301218, -0.102925, 0.0106623)
|
||||||
|
|
||||||
[node name="kart_base" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
[node name="kart_base" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
||||||
mesh = ExtResource("5_ydkp1")
|
mesh = ExtResource("5_eqscg")
|
||||||
|
|
||||||
[node name="steering_wheel" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
[node name="steering_wheel" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
||||||
mesh = ExtResource("6_ul4ba")
|
mesh = ExtResource("6_o6fvu")
|
||||||
|
|
||||||
[node name="engine" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
[node name="engine" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
||||||
mesh = ExtResource("7_s4uu8")
|
mesh = ExtResource("7_bicni")
|
||||||
|
|
||||||
[node name="layer_7" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
[node name="layer_7" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
||||||
mesh = ExtResource("8_yx2s2")
|
mesh = ExtResource("8_3dlnt")
|
||||||
|
|
||||||
[node name="exhaust" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
[node name="exhaust" type="MeshInstance3D" parent="Interpolator/kart_01"]
|
||||||
mesh = ExtResource("9_kadfc")
|
mesh = ExtResource("9_qvqff")
|
||||||
|
|
||||||
[node name="CharacterCollision" type="CollisionShape3D" parent="."]
|
[node name="CharacterCollision" type="CollisionShape3D" parent="."]
|
||||||
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -0.00301217, 0.516557, 0.0695111)
|
transform = Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -0.00301217, 0.516557, 0.0695111)
|
||||||
@@ -143,11 +143,11 @@ suspension_travel = 0.1
|
|||||||
suspension_stiffness = 50.0
|
suspension_stiffness = 50.0
|
||||||
|
|
||||||
[node name="Interpolator" type="Node3D" parent="FrontLeftWheel"]
|
[node name="Interpolator" type="Node3D" parent="FrontLeftWheel"]
|
||||||
script = ExtResource("1_x8dkv")
|
script = ExtResource("1_cxgl4")
|
||||||
|
|
||||||
[node name="wheel_fr" type="MeshInstance3D" parent="FrontLeftWheel/Interpolator"]
|
[node name="wheel_fr" type="MeshInstance3D" parent="FrontLeftWheel/Interpolator"]
|
||||||
transform = Transform3D(-7.54979e-08, -6.60024e-15, 1, 8.74228e-08, -1, 0, 1, 8.74228e-08, 7.54979e-08, -0.412, 0.142, -0.55)
|
transform = Transform3D(-7.54979e-08, -6.60024e-15, 1, 8.74228e-08, -1, 0, 1, 8.74228e-08, 7.54979e-08, -0.412, 0.142, -0.55)
|
||||||
mesh = ExtResource("10_hfn0h")
|
mesh = ExtResource("10_xywge")
|
||||||
skeleton = NodePath("../../../Interpolator/kart_01")
|
skeleton = NodePath("../../../Interpolator/kart_01")
|
||||||
|
|
||||||
[node name="FrontRightWheel" type="VehicleWheel3D" parent="."]
|
[node name="FrontRightWheel" type="VehicleWheel3D" parent="."]
|
||||||
@@ -161,11 +161,11 @@ suspension_travel = 0.1
|
|||||||
suspension_stiffness = 50.0
|
suspension_stiffness = 50.0
|
||||||
|
|
||||||
[node name="Node3D" type="Node3D" parent="FrontRightWheel"]
|
[node name="Node3D" type="Node3D" parent="FrontRightWheel"]
|
||||||
script = ExtResource("1_x8dkv")
|
script = ExtResource("1_cxgl4")
|
||||||
|
|
||||||
[node name="wheel_fr" type="MeshInstance3D" parent="FrontRightWheel/Node3D"]
|
[node name="wheel_fr" type="MeshInstance3D" parent="FrontRightWheel/Node3D"]
|
||||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0.412142, -0.142, -0.55)
|
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0.412142, -0.142, -0.55)
|
||||||
mesh = ExtResource("10_hfn0h")
|
mesh = ExtResource("10_xywge")
|
||||||
skeleton = NodePath("../../../Interpolator/kart_01")
|
skeleton = NodePath("../../../Interpolator/kart_01")
|
||||||
|
|
||||||
[node name="RearLeftWheel" type="VehicleWheel3D" parent="."]
|
[node name="RearLeftWheel" type="VehicleWheel3D" parent="."]
|
||||||
@@ -178,11 +178,11 @@ suspension_travel = 0.1
|
|||||||
suspension_stiffness = 50.0
|
suspension_stiffness = 50.0
|
||||||
|
|
||||||
[node name="Node3D" type="Node3D" parent="RearLeftWheel"]
|
[node name="Node3D" type="Node3D" parent="RearLeftWheel"]
|
||||||
script = ExtResource("1_x8dkv")
|
script = ExtResource("1_cxgl4")
|
||||||
|
|
||||||
[node name="wheel_bl" type="MeshInstance3D" parent="RearLeftWheel/Node3D"]
|
[node name="wheel_bl" type="MeshInstance3D" parent="RearLeftWheel/Node3D"]
|
||||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.421, -0.175, 0.44)
|
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.421, -0.175, 0.44)
|
||||||
mesh = ExtResource("11_scyqe")
|
mesh = ExtResource("11_57yte")
|
||||||
skeleton = NodePath("../../../Interpolator/kart_01")
|
skeleton = NodePath("../../../Interpolator/kart_01")
|
||||||
|
|
||||||
[node name="RearRightWheel" type="VehicleWheel3D" parent="."]
|
[node name="RearRightWheel" type="VehicleWheel3D" parent="."]
|
||||||
@@ -195,9 +195,9 @@ suspension_travel = 0.1
|
|||||||
suspension_stiffness = 50.0
|
suspension_stiffness = 50.0
|
||||||
|
|
||||||
[node name="Node3D" type="Node3D" parent="RearRightWheel"]
|
[node name="Node3D" type="Node3D" parent="RearRightWheel"]
|
||||||
script = ExtResource("1_x8dkv")
|
script = ExtResource("1_cxgl4")
|
||||||
|
|
||||||
[node name="wheel_bl" type="MeshInstance3D" parent="RearRightWheel/Node3D"]
|
[node name="wheel_bl" type="MeshInstance3D" parent="RearRightWheel/Node3D"]
|
||||||
transform = Transform3D(4.37114e-08, 0, 1, 0, -1, 0, -1, 0, 4.37114e-08, 0.421, 0.18, -0.44)
|
transform = Transform3D(4.37114e-08, 0, 1, 0, -1, 0, -1, 0, 4.37114e-08, 0.421, 0.18, -0.44)
|
||||||
mesh = ExtResource("11_scyqe")
|
mesh = ExtResource("11_57yte")
|
||||||
skeleton = NodePath("../../../Interpolator/kart_01")
|
skeleton = NodePath("../../../Interpolator/kart_01")
|
||||||
|
|||||||
@@ -1,68 +1,68 @@
|
|||||||
[gd_scene load_steps=57 format=3 uid="uid://c08iaahf32kfe"]
|
[gd_scene load_steps=57 format=3 uid="uid://c08iaahf32kfe"]
|
||||||
|
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/skydome.lwo/layer_0.res" id="1_c65rh"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/skydome.lwo/layer_0.res" id="1_g70un"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh.lwo/layer_0.res" id="2_0vph3"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh.lwo/layer_0.res" id="2_sg51j"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh_ai.lwo/layer_0.res" id="3_5o533"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh_ai.lwo/layer_0.res" id="3_cufsh"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh_fall.lwo/layer_0.res" id="4_xogjj"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh_fall.lwo/layer_0.res" id="4_jm0br"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh_floor_fahrbahn.lwo/layer_0.res" id="5_ifrb3"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh_floor_fahrbahn.lwo/layer_0.res" id="5_kfkhw"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh_floor_sand.lwo/layer_0.res" id="6_ihb7w"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colmesh_floor_sand.lwo/layer_0.res" id="6_td8k1"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colreset.lwo/layer_0.res" id="7_72khp"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/colreset.lwo/layer_0.res" id="7_7yxop"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_0.res" id="8_5p6dl"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_0.res" id="8_xka2g"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_1.res" id="9_ytc4o"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_1.res" id="9_s811u"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_2.res" id="10_lywwv"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_2.res" id="10_jyu5s"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_3.res" id="11_4v0yx"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_3.res" id="11_ul8gg"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_4.res" id="12_jvdyb"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_4.res" id="12_lwbnk"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_5.res" id="13_336u2"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_5.res" id="13_fxx2d"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_6.res" id="14_ee0c4"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/boden.lwo/layer_6.res" id="14_p7emx"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackel_flamme.lwo/layer_0.res" id="15_70tk5"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackel_flamme.lwo/layer_0.res" id="15_ytsgp"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackeln.lwo/layer_0.res" id="16_cemce"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackeln.lwo/layer_0.res" id="16_5haoh"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackeln.lwo/layer_1.res" id="17_4gfai"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackeln.lwo/layer_1.res" id="17_08o3v"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackeln.lwo/layer_2.res" id="18_5gmxo"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackeln.lwo/layer_2.res" id="18_h6mgv"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackeln.lwo/layer_3.res" id="19_y4m5k"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fackeln.lwo/layer_3.res" id="19_4spta"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fadeplane.lwo/layer_0.res" id="20_vrkeu"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/fadeplane.lwo/layer_0.res" id="20_xyk5d"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_0.res" id="21_hd23i"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_0.res" id="21_vaiyg"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_1.res" id="22_5k0rw"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_1.res" id="22_l7xpd"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_2.res" id="23_myo8x"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_2.res" id="23_066ro"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_3.res" id="24_cmcne"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_3.res" id="24_nsalh"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_4.res" id="25_6wu5v"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/felsbrocken.lwo/layer_4.res" id="25_s6d6m"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/flamme_gruen.lwo/layer_0.res" id="26_pgy6e"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/flamme_gruen.lwo/layer_0.res" id="26_jlrrh"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_0.res" id="27_5qssv"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_0.res" id="27_obm7s"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_1.res" id="28_2k7mn"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_1.res" id="28_c3h6e"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_2.res" id="29_svld3"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_2.res" id="29_e8f64"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_3.res" id="30_oiilc"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_3.res" id="30_n8g5h"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_4.res" id="31_q5gnp"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_4.res" id="31_oeos5"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_5.res" id="32_iota2"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_5.res" id="32_oq0or"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_6.res" id="33_xu506"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/haeuser.lwo/layer_6.res" id="33_hmoyp"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_0.res" id="34_bpxiv"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_0.res" id="34_th46l"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_1.res" id="35_3cejh"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_1.res" id="35_0dy2b"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_2.res" id="36_qmnch"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_2.res" id="36_x3s28"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_3.res" id="37_huntu"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_3.res" id="37_jhuhh"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_4.res" id="38_rwaiu"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_4.res" id="38_b0vy6"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_5.res" id="39_u5xq7"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_5.res" id="39_splx0"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_6.res" id="40_ayamf"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_6.res" id="40_ktu0r"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_7.res" id="41_eb8ee"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/palmen.lwo/layer_7.res" id="41_0it0h"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/pyramide_inside.lwo/layer_0.res" id="42_77jcw"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/pyramide_inside.lwo/layer_0.res" id="42_yfx8d"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/pyramide_inside.lwo/layer_1.res" id="43_c0iwq"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/pyramide_inside.lwo/layer_1.res" id="43_xnlgr"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/pyramide_inside.lwo/layer_2.res" id="44_tx4mp"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/pyramide_inside.lwo/layer_2.res" id="44_5syhs"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/sphinx.lwo/layer_0.res" id="45_n7j1d"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/sphinx.lwo/layer_0.res" id="45_x8mul"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/stampfer_saeule.lwo/layer_0.res" id="46_pa778"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/stampfer_saeule.lwo/layer_0.res" id="46_8yqhj"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_0.res" id="47_7yqjk"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_0.res" id="47_n1dps"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_1.res" id="48_di7dj"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_1.res" id="48_pkatc"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_2.res" id="49_k4ed0"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_2.res" id="49_awms6"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_3.res" id="50_pes1e"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_3.res" id="50_va8p8"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_4.res" id="51_cwuyq"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_4.res" id="51_ljmi0"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_5.res" id="52_8aw2s"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_5.res" id="52_slvmn"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_6.res" id="53_6avia"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_6.res" id="53_eo76r"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_7.res" id="54_wy6ms"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_7.res" id="54_r0d4r"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_8.res" id="55_mib5n"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_8.res" id="55_b86ab"]
|
||||||
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_9.res" id="56_l2bqy"]
|
[ext_resource type="ArrayMesh" path="res://games/mhk3/D/Moorhuhnkart/3dobjects_tracks/track05_aegypten/statuen.lwo/layer_9.res" id="56_drfwp"]
|
||||||
|
|
||||||
[node name="egypt" type="Node3D"]
|
[node name="egypt" type="Node3D"]
|
||||||
|
|
||||||
[node name="skydome" type="Node3D" parent="."]
|
[node name="skydome" type="Node3D" parent="."]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="skydome"]
|
[node name="layer_0" type="MeshInstance3D" parent="skydome"]
|
||||||
mesh = ExtResource("1_c65rh")
|
mesh = ExtResource("1_g70un")
|
||||||
|
|
||||||
[node name="Collision" type="Node3D" parent="."]
|
[node name="Collision" type="Node3D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -70,202 +70,202 @@ visible = false
|
|||||||
[node name="colmesh" type="Node3D" parent="Collision"]
|
[node name="colmesh" type="Node3D" parent="Collision"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh"]
|
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh"]
|
||||||
mesh = ExtResource("2_0vph3")
|
mesh = ExtResource("2_sg51j")
|
||||||
|
|
||||||
[node name="colmesh_ai" type="Node3D" parent="Collision"]
|
[node name="colmesh_ai" type="Node3D" parent="Collision"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh_ai"]
|
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh_ai"]
|
||||||
mesh = ExtResource("3_5o533")
|
mesh = ExtResource("3_cufsh")
|
||||||
|
|
||||||
[node name="colmesh_fall" type="Node3D" parent="Collision"]
|
[node name="colmesh_fall" type="Node3D" parent="Collision"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh_fall"]
|
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh_fall"]
|
||||||
mesh = ExtResource("4_xogjj")
|
mesh = ExtResource("4_jm0br")
|
||||||
|
|
||||||
[node name="colmesh_floor_fahrbahn" type="Node3D" parent="Collision"]
|
[node name="colmesh_floor_fahrbahn" type="Node3D" parent="Collision"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh_floor_fahrbahn"]
|
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh_floor_fahrbahn"]
|
||||||
mesh = ExtResource("5_ifrb3")
|
mesh = ExtResource("5_kfkhw")
|
||||||
|
|
||||||
[node name="colmesh_floor_sand" type="Node3D" parent="Collision"]
|
[node name="colmesh_floor_sand" type="Node3D" parent="Collision"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh_floor_sand"]
|
[node name="layer_0" type="MeshInstance3D" parent="Collision/colmesh_floor_sand"]
|
||||||
mesh = ExtResource("6_ihb7w")
|
mesh = ExtResource("6_td8k1")
|
||||||
|
|
||||||
[node name="colreset" type="Node3D" parent="Collision"]
|
[node name="colreset" type="Node3D" parent="Collision"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Collision/colreset"]
|
[node name="layer_0" type="MeshInstance3D" parent="Collision/colreset"]
|
||||||
mesh = ExtResource("7_72khp")
|
mesh = ExtResource("7_7yxop")
|
||||||
|
|
||||||
[node name="Geometry" type="Node3D" parent="."]
|
[node name="Geometry" type="Node3D" parent="."]
|
||||||
|
|
||||||
[node name="boden" type="Node3D" parent="Geometry"]
|
[node name="boden" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/boden"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/boden"]
|
||||||
mesh = ExtResource("8_5p6dl")
|
mesh = ExtResource("8_xka2g")
|
||||||
|
|
||||||
[node name="layer_1" type="MeshInstance3D" parent="Geometry/boden"]
|
[node name="layer_1" type="MeshInstance3D" parent="Geometry/boden"]
|
||||||
mesh = ExtResource("9_ytc4o")
|
mesh = ExtResource("9_s811u")
|
||||||
|
|
||||||
[node name="layer_2" type="MeshInstance3D" parent="Geometry/boden"]
|
[node name="layer_2" type="MeshInstance3D" parent="Geometry/boden"]
|
||||||
mesh = ExtResource("10_lywwv")
|
mesh = ExtResource("10_jyu5s")
|
||||||
|
|
||||||
[node name="layer_3" type="MeshInstance3D" parent="Geometry/boden"]
|
[node name="layer_3" type="MeshInstance3D" parent="Geometry/boden"]
|
||||||
mesh = ExtResource("11_4v0yx")
|
mesh = ExtResource("11_ul8gg")
|
||||||
|
|
||||||
[node name="layer_4" type="MeshInstance3D" parent="Geometry/boden"]
|
[node name="layer_4" type="MeshInstance3D" parent="Geometry/boden"]
|
||||||
mesh = ExtResource("12_jvdyb")
|
mesh = ExtResource("12_lwbnk")
|
||||||
|
|
||||||
[node name="layer_5" type="MeshInstance3D" parent="Geometry/boden"]
|
[node name="layer_5" type="MeshInstance3D" parent="Geometry/boden"]
|
||||||
mesh = ExtResource("13_336u2")
|
mesh = ExtResource("13_fxx2d")
|
||||||
|
|
||||||
[node name="layer_6" type="MeshInstance3D" parent="Geometry/boden"]
|
[node name="layer_6" type="MeshInstance3D" parent="Geometry/boden"]
|
||||||
mesh = ExtResource("14_ee0c4")
|
mesh = ExtResource("14_p7emx")
|
||||||
|
|
||||||
[node name="fackel_flamme" type="Node3D" parent="Geometry"]
|
[node name="fackel_flamme" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/fackel_flamme"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/fackel_flamme"]
|
||||||
mesh = ExtResource("15_70tk5")
|
mesh = ExtResource("15_ytsgp")
|
||||||
|
|
||||||
[node name="fackeln" type="Node3D" parent="Geometry"]
|
[node name="fackeln" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/fackeln"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/fackeln"]
|
||||||
mesh = ExtResource("16_cemce")
|
mesh = ExtResource("16_5haoh")
|
||||||
|
|
||||||
[node name="layer_1" type="MeshInstance3D" parent="Geometry/fackeln"]
|
[node name="layer_1" type="MeshInstance3D" parent="Geometry/fackeln"]
|
||||||
mesh = ExtResource("17_4gfai")
|
mesh = ExtResource("17_08o3v")
|
||||||
|
|
||||||
[node name="layer_2" type="MeshInstance3D" parent="Geometry/fackeln"]
|
[node name="layer_2" type="MeshInstance3D" parent="Geometry/fackeln"]
|
||||||
mesh = ExtResource("18_5gmxo")
|
mesh = ExtResource("18_h6mgv")
|
||||||
|
|
||||||
[node name="layer_3" type="MeshInstance3D" parent="Geometry/fackeln"]
|
[node name="layer_3" type="MeshInstance3D" parent="Geometry/fackeln"]
|
||||||
mesh = ExtResource("19_y4m5k")
|
mesh = ExtResource("19_4spta")
|
||||||
|
|
||||||
[node name="fadeplane" type="Node3D" parent="Geometry"]
|
[node name="fadeplane" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/fadeplane"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/fadeplane"]
|
||||||
mesh = ExtResource("20_vrkeu")
|
mesh = ExtResource("20_xyk5d")
|
||||||
|
|
||||||
[node name="felsbrocken" type="Node3D" parent="Geometry"]
|
[node name="felsbrocken" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
||||||
mesh = ExtResource("21_hd23i")
|
mesh = ExtResource("21_vaiyg")
|
||||||
|
|
||||||
[node name="layer_1" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
[node name="layer_1" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
||||||
mesh = ExtResource("22_5k0rw")
|
mesh = ExtResource("22_l7xpd")
|
||||||
|
|
||||||
[node name="layer_2" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
[node name="layer_2" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
||||||
mesh = ExtResource("23_myo8x")
|
mesh = ExtResource("23_066ro")
|
||||||
|
|
||||||
[node name="layer_3" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
[node name="layer_3" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
||||||
mesh = ExtResource("24_cmcne")
|
mesh = ExtResource("24_nsalh")
|
||||||
|
|
||||||
[node name="layer_4" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
[node name="layer_4" type="MeshInstance3D" parent="Geometry/felsbrocken"]
|
||||||
mesh = ExtResource("25_6wu5v")
|
mesh = ExtResource("25_s6d6m")
|
||||||
|
|
||||||
[node name="flamme_gruen" type="Node3D" parent="Geometry"]
|
[node name="flamme_gruen" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/flamme_gruen"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/flamme_gruen"]
|
||||||
mesh = ExtResource("26_pgy6e")
|
mesh = ExtResource("26_jlrrh")
|
||||||
|
|
||||||
[node name="haeuser" type="Node3D" parent="Geometry"]
|
[node name="haeuser" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/haeuser"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/haeuser"]
|
||||||
mesh = ExtResource("27_5qssv")
|
mesh = ExtResource("27_obm7s")
|
||||||
|
|
||||||
[node name="layer_1" type="MeshInstance3D" parent="Geometry/haeuser"]
|
[node name="layer_1" type="MeshInstance3D" parent="Geometry/haeuser"]
|
||||||
mesh = ExtResource("28_2k7mn")
|
mesh = ExtResource("28_c3h6e")
|
||||||
|
|
||||||
[node name="layer_2" type="MeshInstance3D" parent="Geometry/haeuser"]
|
[node name="layer_2" type="MeshInstance3D" parent="Geometry/haeuser"]
|
||||||
mesh = ExtResource("29_svld3")
|
mesh = ExtResource("29_e8f64")
|
||||||
|
|
||||||
[node name="layer_3" type="MeshInstance3D" parent="Geometry/haeuser"]
|
[node name="layer_3" type="MeshInstance3D" parent="Geometry/haeuser"]
|
||||||
mesh = ExtResource("30_oiilc")
|
mesh = ExtResource("30_n8g5h")
|
||||||
|
|
||||||
[node name="layer_4" type="MeshInstance3D" parent="Geometry/haeuser"]
|
[node name="layer_4" type="MeshInstance3D" parent="Geometry/haeuser"]
|
||||||
mesh = ExtResource("31_q5gnp")
|
mesh = ExtResource("31_oeos5")
|
||||||
|
|
||||||
[node name="layer_5" type="MeshInstance3D" parent="Geometry/haeuser"]
|
[node name="layer_5" type="MeshInstance3D" parent="Geometry/haeuser"]
|
||||||
mesh = ExtResource("32_iota2")
|
mesh = ExtResource("32_oq0or")
|
||||||
|
|
||||||
[node name="layer_6" type="MeshInstance3D" parent="Geometry/haeuser"]
|
[node name="layer_6" type="MeshInstance3D" parent="Geometry/haeuser"]
|
||||||
mesh = ExtResource("33_xu506")
|
mesh = ExtResource("33_hmoyp")
|
||||||
|
|
||||||
[node name="palmen" type="Node3D" parent="Geometry"]
|
[node name="palmen" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/palmen"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/palmen"]
|
||||||
mesh = ExtResource("34_bpxiv")
|
mesh = ExtResource("34_th46l")
|
||||||
|
|
||||||
[node name="layer_1" type="MeshInstance3D" parent="Geometry/palmen"]
|
[node name="layer_1" type="MeshInstance3D" parent="Geometry/palmen"]
|
||||||
mesh = ExtResource("35_3cejh")
|
mesh = ExtResource("35_0dy2b")
|
||||||
|
|
||||||
[node name="layer_2" type="MeshInstance3D" parent="Geometry/palmen"]
|
[node name="layer_2" type="MeshInstance3D" parent="Geometry/palmen"]
|
||||||
mesh = ExtResource("36_qmnch")
|
mesh = ExtResource("36_x3s28")
|
||||||
|
|
||||||
[node name="layer_3" type="MeshInstance3D" parent="Geometry/palmen"]
|
[node name="layer_3" type="MeshInstance3D" parent="Geometry/palmen"]
|
||||||
mesh = ExtResource("37_huntu")
|
mesh = ExtResource("37_jhuhh")
|
||||||
|
|
||||||
[node name="layer_4" type="MeshInstance3D" parent="Geometry/palmen"]
|
[node name="layer_4" type="MeshInstance3D" parent="Geometry/palmen"]
|
||||||
mesh = ExtResource("38_rwaiu")
|
mesh = ExtResource("38_b0vy6")
|
||||||
|
|
||||||
[node name="layer_5" type="MeshInstance3D" parent="Geometry/palmen"]
|
[node name="layer_5" type="MeshInstance3D" parent="Geometry/palmen"]
|
||||||
mesh = ExtResource("39_u5xq7")
|
mesh = ExtResource("39_splx0")
|
||||||
|
|
||||||
[node name="layer_6" type="MeshInstance3D" parent="Geometry/palmen"]
|
[node name="layer_6" type="MeshInstance3D" parent="Geometry/palmen"]
|
||||||
mesh = ExtResource("40_ayamf")
|
mesh = ExtResource("40_ktu0r")
|
||||||
|
|
||||||
[node name="layer_7" type="MeshInstance3D" parent="Geometry/palmen"]
|
[node name="layer_7" type="MeshInstance3D" parent="Geometry/palmen"]
|
||||||
mesh = ExtResource("41_eb8ee")
|
mesh = ExtResource("41_0it0h")
|
||||||
|
|
||||||
[node name="pyramide_inside" type="Node3D" parent="Geometry"]
|
[node name="pyramide_inside" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/pyramide_inside"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/pyramide_inside"]
|
||||||
mesh = ExtResource("42_77jcw")
|
mesh = ExtResource("42_yfx8d")
|
||||||
|
|
||||||
[node name="layer_1" type="MeshInstance3D" parent="Geometry/pyramide_inside"]
|
[node name="layer_1" type="MeshInstance3D" parent="Geometry/pyramide_inside"]
|
||||||
mesh = ExtResource("43_c0iwq")
|
mesh = ExtResource("43_xnlgr")
|
||||||
|
|
||||||
[node name="layer_2" type="MeshInstance3D" parent="Geometry/pyramide_inside"]
|
[node name="layer_2" type="MeshInstance3D" parent="Geometry/pyramide_inside"]
|
||||||
mesh = ExtResource("44_tx4mp")
|
mesh = ExtResource("44_5syhs")
|
||||||
|
|
||||||
[node name="sphinx" type="Node3D" parent="Geometry"]
|
[node name="sphinx" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/sphinx"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/sphinx"]
|
||||||
mesh = ExtResource("45_n7j1d")
|
mesh = ExtResource("45_x8mul")
|
||||||
|
|
||||||
[node name="stampfer_saeule" type="Node3D" parent="Geometry"]
|
[node name="stampfer_saeule" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/stampfer_saeule"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/stampfer_saeule"]
|
||||||
mesh = ExtResource("46_pa778")
|
mesh = ExtResource("46_8yqhj")
|
||||||
|
|
||||||
[node name="statuen" type="Node3D" parent="Geometry"]
|
[node name="statuen" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
[node name="layer_0" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_0" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("47_7yqjk")
|
mesh = ExtResource("47_n1dps")
|
||||||
|
|
||||||
[node name="layer_1" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_1" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("48_di7dj")
|
mesh = ExtResource("48_pkatc")
|
||||||
|
|
||||||
[node name="layer_2" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_2" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("49_k4ed0")
|
mesh = ExtResource("49_awms6")
|
||||||
|
|
||||||
[node name="layer_3" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_3" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("50_pes1e")
|
mesh = ExtResource("50_va8p8")
|
||||||
|
|
||||||
[node name="layer_4" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_4" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("51_cwuyq")
|
mesh = ExtResource("51_ljmi0")
|
||||||
|
|
||||||
[node name="layer_5" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_5" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("52_8aw2s")
|
mesh = ExtResource("52_slvmn")
|
||||||
|
|
||||||
[node name="layer_6" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_6" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("53_6avia")
|
mesh = ExtResource("53_eo76r")
|
||||||
|
|
||||||
[node name="layer_7" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_7" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("54_wy6ms")
|
mesh = ExtResource("54_r0d4r")
|
||||||
|
|
||||||
[node name="layer_8" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_8" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("55_mib5n")
|
mesh = ExtResource("55_b86ab")
|
||||||
|
|
||||||
[node name="layer_9" type="MeshInstance3D" parent="Geometry/statuen"]
|
[node name="layer_9" type="MeshInstance3D" parent="Geometry/statuen"]
|
||||||
mesh = ExtResource("56_l2bqy")
|
mesh = ExtResource("56_drfwp")
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,47 +1,47 @@
|
|||||||
[gd_resource type="ShaderMaterial" load_steps=15 format=3 uid="uid://d0i0klcefalj4"]
|
[gd_resource type="ShaderMaterial" load_steps=15 format=3 uid="uid://d0i0klcefalj4"]
|
||||||
|
|
||||||
[ext_resource type="Shader" uid="uid://44g7mn3konwc" path="res://kart/maps/ufo/force_field_shader.tres" id="1_wvajq"]
|
[ext_resource type="Shader" uid="uid://44g7mn3konwc" path="res://kart/maps/ufo/force_field_shader.tres" id="1_hof1b"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_00.bmp.res" id="2_2v7do"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_00.bmp.res" id="2_4m4pv"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_01.bmp.res" id="3_yqcd0"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_01.bmp.res" id="3_dnoca"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_10.bmp.res" id="4_q8kg5"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_10.bmp.res" id="4_10n5q"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_11.bmp.res" id="5_bdkkc"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_11.bmp.res" id="5_rw77u"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_02.bmp.res" id="6_ee2hq"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_02.bmp.res" id="6_biohn"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_03.bmp.res" id="7_hviv3"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_03.bmp.res" id="7_k4lb2"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_04.bmp.res" id="8_s51bi"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_04.bmp.res" id="8_1j65w"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_05.bmp.res" id="9_4irmw"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_05.bmp.res" id="9_5vgii"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_06.bmp.res" id="10_qip6w"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_06.bmp.res" id="10_b4oss"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_07.bmp.res" id="11_48ndu"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_07.bmp.res" id="11_pv4ig"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_08.bmp.res" id="12_t0827"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_08.bmp.res" id="12_q04bs"]
|
||||||
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_09.bmp.res" id="13_wqq6s"]
|
[ext_resource type="Texture2D" path="res://games/mhk3/D/Moorhuhnkart/textures_animations/portal/water_09.bmp.res" id="13_ytoc5"]
|
||||||
|
|
||||||
[sub_resource type="AnimatedTexture" id="AnimatedTexture_mt86o"]
|
[sub_resource type="AnimatedTexture" id="AnimatedTexture_mt86o"]
|
||||||
frames = 12
|
frames = 12
|
||||||
frame_0/texture = ExtResource("2_2v7do")
|
frame_0/texture = ExtResource("2_4m4pv")
|
||||||
frame_0/duration = 0.0666667
|
frame_0/duration = 0.0666667
|
||||||
frame_1/texture = ExtResource("3_yqcd0")
|
frame_1/texture = ExtResource("3_dnoca")
|
||||||
frame_1/duration = 0.0666667
|
frame_1/duration = 0.0666667
|
||||||
frame_2/texture = ExtResource("6_ee2hq")
|
frame_2/texture = ExtResource("6_biohn")
|
||||||
frame_2/duration = 0.0666667
|
frame_2/duration = 0.0666667
|
||||||
frame_3/texture = ExtResource("7_hviv3")
|
frame_3/texture = ExtResource("7_k4lb2")
|
||||||
frame_3/duration = 0.0666667
|
frame_3/duration = 0.0666667
|
||||||
frame_4/texture = ExtResource("8_s51bi")
|
frame_4/texture = ExtResource("8_1j65w")
|
||||||
frame_4/duration = 0.0666667
|
frame_4/duration = 0.0666667
|
||||||
frame_5/texture = ExtResource("9_4irmw")
|
frame_5/texture = ExtResource("9_5vgii")
|
||||||
frame_5/duration = 0.0666667
|
frame_5/duration = 0.0666667
|
||||||
frame_6/texture = ExtResource("10_qip6w")
|
frame_6/texture = ExtResource("10_b4oss")
|
||||||
frame_6/duration = 0.0666667
|
frame_6/duration = 0.0666667
|
||||||
frame_7/texture = ExtResource("11_48ndu")
|
frame_7/texture = ExtResource("11_pv4ig")
|
||||||
frame_7/duration = 0.0666667
|
frame_7/duration = 0.0666667
|
||||||
frame_8/texture = ExtResource("12_t0827")
|
frame_8/texture = ExtResource("12_q04bs")
|
||||||
frame_8/duration = 0.0666667
|
frame_8/duration = 0.0666667
|
||||||
frame_9/texture = ExtResource("13_wqq6s")
|
frame_9/texture = ExtResource("13_ytoc5")
|
||||||
frame_9/duration = 0.0666667
|
frame_9/duration = 0.0666667
|
||||||
frame_10/texture = ExtResource("4_q8kg5")
|
frame_10/texture = ExtResource("4_10n5q")
|
||||||
frame_10/duration = 0.0666667
|
frame_10/duration = 0.0666667
|
||||||
frame_11/texture = ExtResource("5_bdkkc")
|
frame_11/texture = ExtResource("5_rw77u")
|
||||||
frame_11/duration = 0.0666667
|
frame_11/duration = 0.0666667
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
render_priority = 0
|
render_priority = 0
|
||||||
shader = ExtResource("1_wvajq")
|
shader = ExtResource("1_hof1b")
|
||||||
shader_parameter/Texture2DParameter = SubResource("AnimatedTexture_mt86o")
|
shader_parameter/Texture2DParameter = SubResource("AnimatedTexture_mt86o")
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ texture_type = 1
|
|||||||
source = 5
|
source = 5
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_wfaag"]
|
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_wfaag"]
|
||||||
input_name = "uv2"
|
input_name = "uv"
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_akd1a"]
|
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_akd1a"]
|
||||||
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(5.915, 0, 0)]
|
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(5.915, 0, 0)]
|
||||||
@@ -36,7 +36,7 @@ void fragment() {
|
|||||||
|
|
||||||
|
|
||||||
// Input:5
|
// Input:5
|
||||||
vec2 n_out5p0 = UV2;
|
vec2 n_out5p0 = UV;
|
||||||
|
|
||||||
|
|
||||||
vec4 n_out4p0;
|
vec4 n_out4p0;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -12,7 +12,7 @@ config_version=5
|
|||||||
|
|
||||||
config/name="MHJNR"
|
config/name="MHJNR"
|
||||||
run/main_scene="res://mhjnr/level.tscn"
|
run/main_scene="res://mhjnr/level.tscn"
|
||||||
config/features=PackedStringArray("4.1", "GL Compatibility")
|
config/features=PackedStringArray("4.0", "GL Compatibility")
|
||||||
boot_splash/bg_color=Color(0, 0, 0, 0)
|
boot_splash/bg_color=Color(0, 0, 0, 0)
|
||||||
boot_splash/image="res://icon.png"
|
boot_splash/image="res://icon.png"
|
||||||
boot_splash/fullsize=false
|
boot_splash/fullsize=false
|
||||||
@@ -68,10 +68,16 @@ Brake={
|
|||||||
|
|
||||||
[physics]
|
[physics]
|
||||||
|
|
||||||
3d/run_on_separate_thread=true
|
|
||||||
2d/default_gravity=2000.0
|
2d/default_gravity=2000.0
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
renderer/rendering_method.mobile="gl_compatibility"
|
renderer/rendering_method.mobile="gl_compatibility"
|
||||||
|
lights_and_shadows/directional_shadow/size=8192
|
||||||
|
lights_and_shadows/directional_shadow/soft_shadow_filter_quality=4
|
||||||
|
lights_and_shadows/positional_shadow/soft_shadow_filter_quality=4
|
||||||
|
scaling_3d/mode=1
|
||||||
|
environment/screen_space_reflection/roughness_quality=3
|
||||||
|
global_illumination/sdfgi/probe_ray_count=4
|
||||||
|
global_illumination/sdfgi/frames_to_update_lights=3
|
||||||
anti_aliasing/quality/use_taa=true
|
anti_aliasing/quality/use_taa=true
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
shader_type spatial;
|
shader_type spatial;
|
||||||
render_mode skip_vertex_transform;
|
|
||||||
|
|
||||||
uniform vec4 color: source_color;
|
/*uniform vec4 color: source_color;*/
|
||||||
|
|
||||||
uniform float diffuse;
|
/*uniform float diffuse;
|
||||||
uniform float diffuse_envelope;
|
uniform float diffuse_envelope;
|
||||||
uniform float specular;
|
uniform float specular;
|
||||||
uniform float specular_envelope;
|
uniform float specular_envelope;
|
||||||
@@ -14,86 +13,15 @@ uniform float reflectivity_envelope;
|
|||||||
uniform float translucency;
|
uniform float translucency;
|
||||||
uniform float translucency_envelope;
|
uniform float translucency_envelope;
|
||||||
uniform float transparency;
|
uniform float transparency;
|
||||||
uniform float transparency_envelope;
|
uniform float transparency_envelope;*/
|
||||||
|
|
||||||
uniform sampler2D tex_color: source_color;
|
uniform sampler2D tex_color: source_color;
|
||||||
uniform int tex_color_axis;
|
|
||||||
uniform int tex_color_projection;
|
|
||||||
uniform mat4 tex_color_projection_transform;
|
|
||||||
uniform vec3 tex_color_projection_falloff;
|
|
||||||
uniform int tex_color_projection_falloff_type;
|
|
||||||
uniform bool tex_color_projection_world_coords;
|
|
||||||
|
|
||||||
uniform sampler2D tex_diffuse: source_color;
|
uniform sampler2D tex_diffuse: source_color;
|
||||||
uniform int tex_diffuse_axis;
|
|
||||||
uniform int tex_diffuse_projection;
|
|
||||||
uniform mat4 tex_diffuse_projection_transform;
|
|
||||||
uniform vec3 tex_diffuse_projection_falloff;
|
|
||||||
uniform int tex_diffuse_projection_falloff_type;
|
|
||||||
uniform bool tex_diffuse_projection_world_coords;
|
|
||||||
|
|
||||||
varying vec3 position;
|
|
||||||
varying vec3 normal;
|
|
||||||
|
|
||||||
vec3 project(
|
|
||||||
sampler2D tex,
|
|
||||||
int mode,
|
|
||||||
mat4 transform,
|
|
||||||
vec3 falloff,
|
|
||||||
int falloff_type,
|
|
||||||
bool world_coords,
|
|
||||||
vec2 uv,
|
|
||||||
) {
|
|
||||||
switch (mode) {
|
|
||||||
case 5: // UV
|
|
||||||
return texture(tex, uv).rgb;
|
|
||||||
case 4: // Front Projection
|
|
||||||
return vec3(0.0, 1.0, 0.0);
|
|
||||||
case 3:
|
|
||||||
vec3 p = (transform * vec4(position, 1.0)).xyz;
|
|
||||||
vec3 n = normalize(abs(mat3(transform) * normal));
|
|
||||||
vec2 uv2 = (n.x > n.y && n.x > n.z) ? p.zy
|
|
||||||
: ((n.y > n.x && n.y > n.z) ? p.zx : p.xy);
|
|
||||||
return texture(tex, uv2 + 0.5).rgb;
|
|
||||||
case 2: // Spherical
|
|
||||||
return vec3(0.0, 0.0, 1.0);
|
|
||||||
case 1: // Cylindrical
|
|
||||||
return vec3(1.0, 1.0, 0.0);
|
|
||||||
case 0: // Planar
|
|
||||||
return texture(tex, (transform * vec4(position, 1.0)).zx + 0.5).rgb;
|
|
||||||
default:
|
|
||||||
return vec3(0.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void vertex() {
|
|
||||||
position = VERTEX;
|
|
||||||
VERTEX = (MODELVIEW_MATRIX * vec4(VERTEX, 1.0)).xyz;
|
|
||||||
NORMAL = normalize((MODELVIEW_MATRIX * vec4(NORMAL, 0.0)).xyz);
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment() {
|
void fragment() {
|
||||||
normal = (INV_VIEW_MATRIX * vec4(NORMAL, 0.0)).xyz;
|
ALBEDO = texture(tex_color, UV).rgb;
|
||||||
|
|
||||||
ALBEDO = project(
|
|
||||||
tex_color,
|
|
||||||
tex_color_projection,
|
|
||||||
tex_color_projection_transform,
|
|
||||||
tex_color_projection_falloff,
|
|
||||||
tex_color_projection_falloff_type,
|
|
||||||
tex_color_projection_world_coords,
|
|
||||||
UV2
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void light() {
|
void light() {
|
||||||
DIFFUSE_LIGHT = project(
|
DIFFUSE_LIGHT = texture(tex_diffuse, UV2).rgb;
|
||||||
tex_diffuse,
|
|
||||||
tex_diffuse_projection,
|
|
||||||
tex_diffuse_projection_transform,
|
|
||||||
tex_diffuse_projection_falloff,
|
|
||||||
tex_diffuse_projection_falloff_type,
|
|
||||||
tex_diffuse_projection_world_coords,
|
|
||||||
UV
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
use crate::lwo::material::MaterialUvInfo;
|
use crate::lwo::material::{MaterialProjectionMode, MaterialUvInfo};
|
||||||
use crate::lwo::surface_info::SurfaceInfo;
|
use crate::lwo::surface_info::SurfaceInfo;
|
||||||
use godot::builtin::{Array, Dictionary, Vector2, Vector3};
|
use crate::lwo::uv_baker::{project_cubic, project_planar};
|
||||||
use godot::engine::mesh::{ArrayFormat, PrimitiveType};
|
use godot::builtin::{
|
||||||
|
Array, Dictionary, FromVariant, PackedVector2Array, PackedVector3Array, ToVariant, Vector2,
|
||||||
|
Vector3,
|
||||||
|
};
|
||||||
|
use godot::engine::mesh::{ArrayFormat, ArrayType, PrimitiveType};
|
||||||
use godot::engine::{ArrayMesh, SurfaceTool};
|
use godot::engine::{ArrayMesh, SurfaceTool};
|
||||||
use godot::log::godot_print;
|
use godot::log::godot_print;
|
||||||
use godot::obj::{Gd, Share};
|
use godot::obj::{EngineEnum, Gd, Share};
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use lightwave_3d::lwo2::tags::polygon_list::PolygonList;
|
use lightwave_3d::lwo2::tags::polygon_list::PolygonList;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
use std::iter::zip;
|
||||||
|
|
||||||
pub type SurfaceMapping<T> = HashMap<i32, HashMap<i32, T>>;
|
pub type SurfaceMapping<T> = HashMap<i32, HashMap<i32, T>>;
|
||||||
|
|
||||||
@@ -75,16 +80,52 @@ fn post_process_mesh(
|
|||||||
tool.create_from(mesh.share().upcast(), surface_idx as i64);
|
tool.create_from(mesh.share().upcast(), surface_idx as i64);
|
||||||
tool.generate_normals(false);
|
tool.generate_normals(false);
|
||||||
tool.generate_tangents();
|
tool.generate_tangents();
|
||||||
|
let mut arrays = tool.commit_to_arrays();
|
||||||
|
|
||||||
|
let mat = &materials[surface_id];
|
||||||
|
for (uv_type, info) in [
|
||||||
|
(ArrayType::ARRAY_TEX_UV, &mat.color_projection),
|
||||||
|
(ArrayType::ARRAY_TEX_UV2, &mat.diffuse_projection),
|
||||||
|
] {
|
||||||
|
match info {
|
||||||
|
Some(MaterialProjectionMode::Planar { transform, axis }) => {
|
||||||
|
let vertices = PackedVector3Array::from_variant(
|
||||||
|
&arrays.get(ArrayType::ARRAY_VERTEX.ord() as usize),
|
||||||
|
)
|
||||||
|
.to_vec();
|
||||||
|
let mut uvs = PackedVector2Array::new();
|
||||||
|
for vertex in vertices {
|
||||||
|
uvs.push(project_planar(vertex, *axis, *transform))
|
||||||
|
}
|
||||||
|
arrays.set(uv_type.ord() as usize, uvs.to_variant());
|
||||||
|
}
|
||||||
|
Some(MaterialProjectionMode::Cubic { transform }) => {
|
||||||
|
let vertices = PackedVector3Array::from_variant(
|
||||||
|
&arrays.get(ArrayType::ARRAY_VERTEX.ord() as usize),
|
||||||
|
)
|
||||||
|
.to_vec();
|
||||||
|
let normals = PackedVector3Array::from_variant(
|
||||||
|
&arrays.get(ArrayType::ARRAY_NORMAL.ord() as usize),
|
||||||
|
)
|
||||||
|
.to_vec();
|
||||||
|
let mut uvs = PackedVector2Array::new();
|
||||||
|
for (vertex, normal) in zip(vertices, normals) {
|
||||||
|
uvs.push(project_cubic(vertex, normal, *transform))
|
||||||
|
}
|
||||||
|
arrays.set(uv_type.ord() as usize, uvs.to_variant());
|
||||||
|
}
|
||||||
|
_ => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
out_mesh.add_surface_from_arrays(
|
out_mesh.add_surface_from_arrays(
|
||||||
PrimitiveType::PRIMITIVE_TRIANGLES,
|
PrimitiveType::PRIMITIVE_TRIANGLES,
|
||||||
tool.commit_to_arrays(),
|
arrays,
|
||||||
Array::new(),
|
Array::new(),
|
||||||
Dictionary::new(),
|
Dictionary::new(),
|
||||||
ArrayFormat::ARRAY_FORMAT_NORMAL,
|
ArrayFormat::ARRAY_FORMAT_NORMAL,
|
||||||
);
|
);
|
||||||
|
|
||||||
let mat = &materials[surface_id];
|
|
||||||
out_mesh.surface_set_material(surface_idx as i64, mat.material.share().upcast())
|
out_mesh.surface_set_material(surface_idx as i64, mat.material.share().upcast())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
use godot::builtin::{Basis, Color, EulerOrder, ToVariant, Transform3D, Variant, Vector3};
|
use godot::builtin::{Basis, Color, EulerOrder, ToVariant, Transform3D, Vector3};
|
||||||
use godot::engine::{load, PlaceholderTexture2D, ShaderMaterial, Texture2D};
|
use godot::engine::{load, PlaceholderTexture2D, ShaderMaterial, Texture2D};
|
||||||
use godot::log::{godot_error, godot_print};
|
use godot::log::{godot_error, godot_print};
|
||||||
use godot::obj::{Gd, Share};
|
use godot::obj::{Gd, Share};
|
||||||
use lightwave_3d::lwo2::sub_tags::blocks::image_texture::{
|
use lightwave_3d::lwo2::sub_tags::blocks::image_texture::{
|
||||||
ProjectionMode, SurfaceBlockImageTextureSubChunk,
|
ProjectionMode, SurfaceBlockImageTextureSubChunk,
|
||||||
};
|
};
|
||||||
use lightwave_3d::lwo2::sub_tags::blocks::texture_mapping::{
|
use lightwave_3d::lwo2::sub_tags::blocks::texture_mapping::{FalloffType, TextureMappingSubChunk};
|
||||||
CoordinateSystem, FalloffType, TextureMappingSubChunk,
|
|
||||||
};
|
|
||||||
use lightwave_3d::lwo2::sub_tags::blocks::{
|
use lightwave_3d::lwo2::sub_tags::blocks::{
|
||||||
SurfaceBlockHeaderSubChunk, SurfaceBlocks, TextureChannel,
|
SurfaceBlockHeaderSubChunk, SurfaceBlocks, TextureChannel,
|
||||||
};
|
};
|
||||||
@@ -15,10 +13,17 @@ use lightwave_3d::lwo2::sub_tags::surface_parameters::SurfaceParameterSubChunk;
|
|||||||
use lightwave_3d::lwo2::tags::surface_definition::SurfaceDefinition;
|
use lightwave_3d::lwo2::tags::surface_definition::SurfaceDefinition;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub enum MaterialProjectionMode {
|
||||||
|
UvChannelName(String),
|
||||||
|
Planar { transform: Transform3D, axis: u16 },
|
||||||
|
Cubic { transform: Transform3D },
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct MaterialUvInfo {
|
pub struct MaterialUvInfo {
|
||||||
pub diffuse_channel: Option<String>,
|
pub diffuse_projection: Option<MaterialProjectionMode>,
|
||||||
pub color_channel: Option<String>,
|
pub color_projection: Option<MaterialProjectionMode>,
|
||||||
pub material: Gd<ShaderMaterial>,
|
pub material: Gd<ShaderMaterial>,
|
||||||
pub id: u16,
|
pub id: u16,
|
||||||
}
|
}
|
||||||
@@ -30,8 +35,8 @@ impl MaterialUvInfo {
|
|||||||
id: u16,
|
id: u16,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let mut m = MaterialUvInfo {
|
let mut m = MaterialUvInfo {
|
||||||
diffuse_channel: None,
|
diffuse_projection: None,
|
||||||
color_channel: None,
|
color_projection: None,
|
||||||
material: ShaderMaterial::new(),
|
material: ShaderMaterial::new(),
|
||||||
id,
|
id,
|
||||||
};
|
};
|
||||||
@@ -47,8 +52,8 @@ impl MaterialUvInfo {
|
|||||||
let mut chan = TextureChannel::Color;
|
let mut chan = TextureChannel::Color;
|
||||||
let mut uv_channel = None;
|
let mut uv_channel = None;
|
||||||
let mut major_axis = 0;
|
let mut major_axis = 0;
|
||||||
|
let mut transform: Transform3D = Transform3D::IDENTITY;
|
||||||
let mut projection_mode = ProjectionMode::UV;
|
let mut projection_mode = ProjectionMode::UV;
|
||||||
let mut mapping_info = Vec::<(&str, Variant)>::new();
|
|
||||||
for attr in header.data.block_attributes {
|
for attr in header.data.block_attributes {
|
||||||
match attr {
|
match attr {
|
||||||
SurfaceBlockHeaderSubChunk::Channel(c) => {
|
SurfaceBlockHeaderSubChunk::Channel(c) => {
|
||||||
@@ -116,6 +121,7 @@ impl MaterialUvInfo {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
TextureMappingSubChunk::Falloff(it) => {
|
TextureMappingSubChunk::Falloff(it) => {
|
||||||
|
/* TODO
|
||||||
mapping_info.push((
|
mapping_info.push((
|
||||||
"falloff",
|
"falloff",
|
||||||
Vector3 {
|
Vector3 {
|
||||||
@@ -135,9 +141,10 @@ impl MaterialUvInfo {
|
|||||||
FalloffType::LinearZ => 4,
|
FalloffType::LinearZ => 4,
|
||||||
}
|
}
|
||||||
.to_variant(),
|
.to_variant(),
|
||||||
));
|
));*/
|
||||||
}
|
}
|
||||||
TextureMappingSubChunk::CoordinateSystem(it) => {
|
TextureMappingSubChunk::CoordinateSystem(it) => {
|
||||||
|
/* TODO
|
||||||
mapping_info.push((
|
mapping_info.push((
|
||||||
"world_coords",
|
"world_coords",
|
||||||
matches!(
|
matches!(
|
||||||
@@ -145,7 +152,7 @@ impl MaterialUvInfo {
|
|||||||
CoordinateSystem::WorldCoordinates
|
CoordinateSystem::WorldCoordinates
|
||||||
)
|
)
|
||||||
.to_variant(),
|
.to_variant(),
|
||||||
));
|
));*/
|
||||||
}
|
}
|
||||||
TextureMappingSubChunk::ReferenceObject(it) => {
|
TextureMappingSubChunk::ReferenceObject(it) => {
|
||||||
if !matches!(it.object_name.as_str(), "" | "(none)")
|
if !matches!(it.object_name.as_str(), "" | "(none)")
|
||||||
@@ -156,16 +163,11 @@ impl MaterialUvInfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mapping_info.push((
|
transform = Transform3D {
|
||||||
"transform",
|
basis: Basis::from_euler(EulerOrder::ZYX, rot).scaled(size),
|
||||||
Transform3D {
|
origin: pos,
|
||||||
basis: Basis::from_euler(EulerOrder::ZYX, rot)
|
}
|
||||||
.scaled(size),
|
.affine_inverse()
|
||||||
origin: pos,
|
|
||||||
}
|
|
||||||
.affine_inverse()
|
|
||||||
.to_variant(),
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
SurfaceBlockImageTextureSubChunk::MajorAxis(axis) => {
|
SurfaceBlockImageTextureSubChunk::MajorAxis(axis) => {
|
||||||
major_axis = axis.data.texture_axis;
|
major_axis = axis.data.texture_axis;
|
||||||
@@ -190,12 +192,7 @@ impl MaterialUvInfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*godot_print!(
|
|
||||||
"TX: {:?} ({:?}) @ UV{:?}",
|
|
||||||
chan,
|
|
||||||
projection_mode,
|
|
||||||
uv_channel
|
|
||||||
);*/
|
|
||||||
let channel_name = match &chan {
|
let channel_name = match &chan {
|
||||||
TextureChannel::Color => "color",
|
TextureChannel::Color => "color",
|
||||||
// this is a bit confusing, but this is actually diffuse *lighting*
|
// this is a bit confusing, but this is actually diffuse *lighting*
|
||||||
@@ -210,37 +207,29 @@ impl MaterialUvInfo {
|
|||||||
TextureChannel::Translucency => "translucency",
|
TextureChannel::Translucency => "translucency",
|
||||||
TextureChannel::Luminosity => "luminosity",
|
TextureChannel::Luminosity => "luminosity",
|
||||||
};
|
};
|
||||||
m.material.set_shader_parameter(
|
|
||||||
format!("tex_{}_axis", channel_name).into(),
|
|
||||||
major_axis.to_variant(),
|
|
||||||
);
|
|
||||||
m.material.set_shader_parameter(
|
|
||||||
format!("tex_{}_projection", channel_name).into(),
|
|
||||||
match projection_mode {
|
|
||||||
ProjectionMode::Planar => 0,
|
|
||||||
ProjectionMode::Cylindrical => 1,
|
|
||||||
ProjectionMode::Spherical => 2,
|
|
||||||
ProjectionMode::Cubic => 3,
|
|
||||||
ProjectionMode::FrontProjection => 4,
|
|
||||||
ProjectionMode::UV => 5,
|
|
||||||
}
|
|
||||||
.to_variant(),
|
|
||||||
);
|
|
||||||
m.material.set_shader_parameter(
|
m.material.set_shader_parameter(
|
||||||
format!("tex_{}", channel_name).into(),
|
format!("tex_{}", channel_name).into(),
|
||||||
texture.to_variant(),
|
texture.to_variant(),
|
||||||
);
|
);
|
||||||
|
|
||||||
for (name, value) in mapping_info {
|
let projection_info = match projection_mode {
|
||||||
m.material.set_shader_parameter(
|
ProjectionMode::UV => {
|
||||||
format!("tex_{}_projection_{}", channel_name, name).into(),
|
MaterialProjectionMode::UvChannelName(uv_channel.unwrap())
|
||||||
value,
|
}
|
||||||
);
|
ProjectionMode::Cubic => MaterialProjectionMode::Cubic { transform },
|
||||||
}
|
ProjectionMode::Planar => MaterialProjectionMode::Planar {
|
||||||
|
transform,
|
||||||
|
axis: major_axis,
|
||||||
|
},
|
||||||
|
x => {
|
||||||
|
godot_error!("TODO: {:?}", x);
|
||||||
|
MaterialProjectionMode::UvChannelName("[[unsupported]]".into())
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
match chan {
|
match chan {
|
||||||
TextureChannel::Diffuse => m.diffuse_channel = uv_channel,
|
TextureChannel::Diffuse => m.diffuse_projection = Some(projection_info),
|
||||||
TextureChannel::Color => m.color_channel = uv_channel,
|
TextureChannel::Color => m.color_projection = Some(projection_info),
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ pub(crate) mod material;
|
|||||||
pub(crate) mod object;
|
pub(crate) mod object;
|
||||||
pub(crate) mod surface_info;
|
pub(crate) mod surface_info;
|
||||||
pub(crate) mod unique_vertex;
|
pub(crate) mod unique_vertex;
|
||||||
|
pub(crate) mod uv_baker;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use crate::lwo::intermediate_layer::IntermediateLayer;
|
use crate::lwo::intermediate_layer::IntermediateLayer;
|
||||||
use crate::lwo::mapping::find_mapping;
|
use crate::lwo::mapping::find_mapping;
|
||||||
use crate::lwo::material::MaterialUvInfo;
|
use crate::lwo::material::{MaterialProjectionMode, MaterialUvInfo};
|
||||||
use crate::lwo::unique_vertex::UniqueVertex;
|
use crate::lwo::unique_vertex::UniqueVertex;
|
||||||
use godot::builtin::{
|
use godot::builtin::{
|
||||||
PackedFloat32Array, PackedInt32Array, PackedVector2Array, PackedVector3Array, ToVariant,
|
PackedFloat32Array, PackedInt32Array, PackedVector2Array, PackedVector3Array, ToVariant,
|
||||||
@@ -78,13 +78,18 @@ impl SurfaceInfo {
|
|||||||
|
|
||||||
pub fn collect_from_layer(layer: &IntermediateLayer, material: &MaterialUvInfo) -> Self {
|
pub fn collect_from_layer(layer: &IntermediateLayer, material: &MaterialUvInfo) -> Self {
|
||||||
let uv_names = [
|
let uv_names = [
|
||||||
material.color_channel.as_ref(),
|
material.color_projection.as_ref(),
|
||||||
material.diffuse_channel.as_ref(),
|
material.diffuse_projection.as_ref(),
|
||||||
];
|
];
|
||||||
|
|
||||||
let uv_subset = uv_names
|
let uv_subset = uv_names
|
||||||
.iter()
|
.iter()
|
||||||
.map(|it| it.and_then(|it| layer.uv_mappings.iter().find(|(name, _)| name == it)))
|
.map(|it| {
|
||||||
|
it.and_then(|it| {
|
||||||
|
layer.uv_mappings.iter().find(|(name, _)|
|
||||||
|
matches!(it, MaterialProjectionMode::UvChannelName(it) if name == it))
|
||||||
|
})
|
||||||
|
})
|
||||||
.collect_vec();
|
.collect_vec();
|
||||||
|
|
||||||
let mut surface_info = SurfaceInfo {
|
let mut surface_info = SurfaceInfo {
|
||||||
|
|||||||
49
rust/mhgd/src/lwo/uv_baker.rs
Normal file
49
rust/mhgd/src/lwo/uv_baker.rs
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
use godot::builtin::{Transform3D, Vector2, Vector3};
|
||||||
|
|
||||||
|
enum Axis {
|
||||||
|
X,
|
||||||
|
Y,
|
||||||
|
Z,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn project_planar(vertex: Vector3, axis: u16, transform: Transform3D) -> Vector2 {
|
||||||
|
by_axis(
|
||||||
|
transform * vertex,
|
||||||
|
match axis {
|
||||||
|
0 => Axis::X,
|
||||||
|
1 => Axis::Y,
|
||||||
|
2 => Axis::Z,
|
||||||
|
_ => panic!(),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn project_cubic(vertex: Vector3, normal: Vector3, transform: Transform3D) -> Vector2 {
|
||||||
|
let p = transform * vertex;
|
||||||
|
let n = (transform.basis * normal).abs().normalized();
|
||||||
|
let axis = if n.x > n.y && n.x > n.z {
|
||||||
|
Axis::X
|
||||||
|
} else if n.y > n.x && n.y > n.z {
|
||||||
|
Axis::Y
|
||||||
|
} else {
|
||||||
|
Axis::Z
|
||||||
|
};
|
||||||
|
by_axis(p, axis)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn by_axis(v: Vector3, axis: Axis) -> Vector2 {
|
||||||
|
match axis {
|
||||||
|
Axis::X => Vector2 {
|
||||||
|
x: v.z + 0.5,
|
||||||
|
y: v.y + 0.5,
|
||||||
|
},
|
||||||
|
Axis::Y => Vector2 {
|
||||||
|
x: v.z + 0.5,
|
||||||
|
y: v.x + 0.5,
|
||||||
|
},
|
||||||
|
Axis::Z => Vector2 {
|
||||||
|
x: v.x + 0.5,
|
||||||
|
y: v.y + 0.5,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -45,7 +45,9 @@ impl Mhk3Map {
|
|||||||
};
|
};
|
||||||
let mut files_to_convert = HashSet::new();
|
let mut files_to_convert = HashSet::new();
|
||||||
for file in archive.files.iter_mut() {
|
for file in archive.files.iter_mut() {
|
||||||
let convert = file.path.ends_with(".lwo");
|
let convert = file.path.ends_with(".lwo")
|
||||||
|
|| file.path.ends_with(".bmp")
|
||||||
|
|| file.path.ends_with(".dds");
|
||||||
file.path = sarc_path_to_gd(&file.path);
|
file.path = sarc_path_to_gd(&file.path);
|
||||||
if convert {
|
if convert {
|
||||||
files_to_convert.insert(file.path.clone());
|
files_to_convert.insert(file.path.clone());
|
||||||
|
|||||||
Reference in New Issue
Block a user