You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
extends Spatial
|
|
|
|
class_name Preview
|
|
|
|
var route:Route
|
|
var item:Road
|
|
|
|
func _ready():
|
|
route = get_node("../route")
|
|
|
|
remotesync func set_network_master(id:int, recursive:bool = true):
|
|
if is_network_master():
|
|
if get_child_count() > 0:
|
|
remove_child(get_child(0))
|
|
.set_network_master(id)
|
|
|
|
func _on_route_road_added(road):
|
|
if (is_network_master() && item):
|
|
var transform = road.get_global_transform();
|
|
var curve = road.get_curve()
|
|
transform = transform.translated(curve.get_point_position(curve.get_point_count() -1))
|
|
if road.get_end_rotation_phi() != 0:
|
|
transform.basis = transform.basis.rotated(road.get_end_rotation_axis(), road.get_end_rotation_phi())
|
|
item.set_global_transform(transform)
|
|
|
|
func _on_inventory_item_changed(road_identifier):
|
|
if (is_network_master()):
|
|
if item:
|
|
item.free()
|
|
item = roads_factory.get_road_instance(road_identifier)
|
|
item.set_preview(true)
|
|
var player = get_parent().get_node("players/" + str(get_tree().get_network_unique_id()))
|
|
if player != null:
|
|
item.set_color(player.get_player_color())
|
|
add_child(item)
|
|
_on_route_road_added(route.get_last_road())
|
|
|