Started implementing prologue

This commit is contained in:
Segey Lapin
2019-08-19 23:38:12 +03:00
parent 005ef6cf6d
commit a339140e0c
55 changed files with 4633 additions and 709 deletions

File diff suppressed because one or more lines are too long

View File

@@ -14,7 +14,7 @@ dest_files=[ "res://.import/car.escn-65d73b79a893bc27445a535a8d603f38.scn" ]
nodes/root_type="Spatial"
nodes/root_name="Scene Root"
nodes/root_scale=1.0
nodes/custom_script=""
nodes/custom_script="res://vehicles/cars/import_cars.gd"
nodes/storage=0
materials/location=1
materials/storage=1

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,43 @@
tool
extends EditorScenePostImport
func post_import(scene):
for g in scene.get_children():
if g is VehicleBody:
var car_data = g.name.split("-", true)
if car_data.size() > 1:
var bodymass = float(car_data[car_data.size() - 1])
g.mass = bodymass
var new_name = []
for c in range(car_data.size() - 1):
new_name += [car_data[c]]
g.name = PoolStringArray(new_name).join("-")
g.transform = g.transform.rotated(Vector3(0, 1, 0), PI)
var queue = [g]
while queue.size() > 0:
var item = queue.pop_front()
if item is VehicleWheel:
var wheel_data = item.name.split("-", true)
if wheel_data.size() > 1:
var wheel_radius : = float(wheel_data[wheel_data.size() - 1]) / 10.0
item.wheel_radius = wheel_radius
if item.name == "collision":
var mesh: ArrayMesh = item.mesh
var hull = mesh.create_convex_shape()
var col = CollisionShape.new()
col.shape = hull
col.name = "col"
g.add_child(col)
col.owner = g
item.queue_free()
continue
item.owner = g
for c in item.get_children():
queue.push_back(c)
var new_scene = PackedScene.new()
var res = new_scene.pack(g)
if res == OK:
ResourceSaver.save("res://vehicles/cars/car_" + g.name + ".tscn", new_scene)
scene.remove_child(g)
scene.add_child(new_scene.instance())
return scene

View File

@@ -0,0 +1,31 @@
extends Spatial
export var target_path: NodePath
var target: Node
var dist = 0.0
func _ready():
target = get_node(target_path)
var speed_slow = 3.5
var speed_fast = 8.5
var speed_cur = 3.5
func _process(delta):
if !target:
return
var p1 = global_transform.origin
var p2 = target.global_transform.origin
dist = p1.distance_to(p2)
if dist < 20.0:
speed_cur -= delta * 0.1
elif dist >= 20.0:
speed_cur += delta * 0.1
speed_cur = clamp(speed_cur, speed_slow, speed_fast)
p1 = p1.linear_interpolate(p2, clamp(speed_cur * delta, 0.0, 1.0))
p1.y = 1.4
global_transform.origin = p1
# elif dist >= 30.0:
# global_transform.origin = p1 + (p2 - p1).normalized() * ((p2 - p1).length() - 3.0)
global_transform = global_transform.looking_at(p2, Vector3.UP)
global_transform = global_transform.orthonormalized()