Started implementing prologue
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -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
|
||||
|
||||
355
proto2/vehicles/cars/car_car1.tscn
Normal file
355
proto2/vehicles/cars/car_car1.tscn
Normal file
File diff suppressed because one or more lines are too long
43
proto2/vehicles/cars/import_cars.gd
Normal file
43
proto2/vehicles/cars/import_cars.gd
Normal 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
|
||||
31
proto2/vehicles/vehicle_camera.gd
Normal file
31
proto2/vehicles/vehicle_camera.gd
Normal 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()
|
||||
Reference in New Issue
Block a user