Files
academy2-game/world.gd
Segey Lapin d6c8a24f5a stuff
2021-10-26 21:52:15 +03:00

111 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)
if streaming.towns > 30:
break
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