110 lines
3.3 KiB
GDScript3
110 lines
3.3 KiB
GDScript3
extends Spatial
|
|
|
|
export var camera_path: NodePath
|
|
export var camera_pos_path: NodePath
|
|
export var camera_rot_y_path: NodePath
|
|
export var camera_rot_x_path: NodePath
|
|
export var camera_offset_path: NodePath
|
|
export var camera_arm_path: NodePath
|
|
export var fps_camera_scene: PackedScene
|
|
export var fps_camera_rot_y_node: String = "fps_cam_rot_y"
|
|
export var fps_camera_rot_x_node: String = "fps_cam_rot_x"
|
|
export var fps_camera_node: String = "fps_camera"
|
|
var door_sc = preload("res://scenes/door_control.tscn")
|
|
|
|
# Declare member variables here. Examples:
|
|
# var a = 2
|
|
# var b = "text"
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready():
|
|
$waiting.show()
|
|
characters.set_navmesh(null, Transform())
|
|
var start_delay0 = 8.0
|
|
var start_delay1 = 2.0
|
|
var start_delay2 = 2.0
|
|
var start_delay3 = 2.0
|
|
var state = 0
|
|
var viewer
|
|
|
|
func _process(delta):
|
|
match state:
|
|
0:
|
|
state = 1
|
|
1:
|
|
start_delay1 -= delta
|
|
if start_delay1 < 0:
|
|
var player
|
|
var cam: Camera
|
|
var fps_cam: Camera
|
|
var cam_pos
|
|
var cam_rot_y
|
|
var cam_rot_x
|
|
var cam_offset
|
|
var cam_arm
|
|
var fps_cam_rot_y
|
|
var fps_cam_rot_x
|
|
var default_offset
|
|
if has_node("Roads") && get_node("Roads") is Roads:
|
|
for site in range(RoadsData.get_site_count()):
|
|
if site == 0:
|
|
streaming.setup_first_town()
|
|
var v = RoadsData.get_site_pos(0)
|
|
var sdf = RoadsData.get_sdf(v.x, 300, v.y)
|
|
var d = 300 - sdf
|
|
$player.global_transform.origin.x = v.x
|
|
$player.global_transform.origin.y = d + 12
|
|
$player.global_transform.origin.z = v.y
|
|
else:
|
|
streaming.setup_town(site)
|
|
streaming.setup_traffic(site)
|
|
print("towns done: ", streaming.towns)
|
|
player = characters.replace_character($player, "male", ["player", "cmdq", "player_clothes"])
|
|
player.add_child(VoxelViewer.new())
|
|
player.set_script(load("res://characters/character.gd"))
|
|
var fps_cam_pos = fps_camera_scene.instance()
|
|
player.add_child(fps_cam_pos)
|
|
fps_cam = fps_cam_pos.find_node(fps_camera_node, true, false)
|
|
|
|
cam = get_node(camera_path)
|
|
cam.current = true
|
|
cam_pos = get_node(camera_pos_path)
|
|
cam_rot_y = get_node(camera_rot_y_path)
|
|
cam_rot_x = get_node(camera_rot_x_path)
|
|
cam_offset = get_node(camera_offset_path)
|
|
cam_arm = get_node(camera_arm_path)
|
|
fps_cam_rot_y = fps_cam_pos.find_node(fps_camera_rot_y_node, true, false)
|
|
fps_cam_rot_x = fps_cam_pos.find_node(fps_camera_rot_x_node, true, false)
|
|
default_offset = cam_offset.translation
|
|
cam.set_meta("cam_pos", cam_pos)
|
|
cam.set_meta("cam_rot_y", cam_rot_y)
|
|
cam.set_meta("cam_rot_x", cam_rot_x)
|
|
cam.set_meta("cam_offset", cam_offset)
|
|
cam.set_meta("cam_arm", cam_arm)
|
|
cam.set_meta("default_offset", default_offset)
|
|
fps_cam.set_meta("fps_cam_rot_y", fps_cam_rot_y)
|
|
fps_cam.set_meta("fps_cam_rot_x", fps_cam_rot_x)
|
|
|
|
cam_arm.add_excluded_object(player.get_rid())
|
|
cam.set_meta("player", player)
|
|
fps_cam.set_meta("player", player)
|
|
player.set_meta("cam", cam)
|
|
player.set_meta("fps_cam", fps_cam)
|
|
print(player)
|
|
controls.switch_fps_mode(false)
|
|
state = 2
|
|
2:
|
|
start_delay2 -= delta
|
|
if start_delay2 < 0:
|
|
state = 3
|
|
3:
|
|
start_delay2 -= delta
|
|
if start_delay2 < 0:
|
|
$waiting.hide()
|
|
state = 4
|
|
4:
|
|
RoadsData.save_json("user://world-gen.json")
|
|
state = 5
|
|
|