extends Spatial class_name Inventory var view:Spatial var item:Road var type:int = 0 var index:int = 0 var route:Route var road_straights = [ roads_factory.STRAIGHT, roads_factory.STRAIGHT_SMALL, roads_factory.BUMP, roads_factory.BUMP_SMALL, ] var roads_left = [ roads_factory.CURVE_LEFT, roads_factory.CURVE_LARGE_LEFT, roads_factory.CURVE_SMALL_LEFT, roads_factory.SKEW_LEFT, roads_factory.CURVED_LEFT, ] var roads_right = [ roads_factory.CURVE_RIGHT, roads_factory.CURVE_LARGE_RIGHT, roads_factory.CURVE_SMALL_RIGHT, roads_factory.SKEW_RIGHT, roads_factory.CURVED_RIGHT, ] var roads_up = [ roads_factory.RAMP_UP, roads_factory.RAMP_CURVED_UP, roads_factory.RAMP_SMALL_UP, ] var roads_down = [ roads_factory.RAMP_DOWN, roads_factory.RAMP_CURVED_DOWN, roads_factory.RAMP_SMALL_DOWN, ] var roads_special = [ roads_factory.LOOP, ] var roads = [ road_straights, roads_left, roads_right, roads_up, roads_down, roads_special ] signal item_changed(index) func _ready(): view = get_node("view") route = get_node("../route") remotesync func set_network_master(id:int, recursive:bool = true): if is_network_master(): get_node("HUD/background").hide() get_node("HUD/track").hide() get_node("HUD/type").hide() .set_network_master(id) if is_network_master(): get_node("HUD/background").show() get_node("HUD/track").show() get_node("HUD/type").show() set_item() func _process(delta): if (is_network_master()): if Input.is_action_just_pressed("ui_select"): route.rpc("add_road", roads[type][index], get_tree().get_network_unique_id()) if Input.is_action_just_pressed("ui_navigate_left"): type -= 1 if type < 0: type = roads.size() -1 index = 0 set_item() if Input.is_action_just_pressed("ui_navigate_right"): type += 1 if type > roads.size() - 1: type = 0 index = 0 set_item() if Input.is_action_just_pressed("ui_navigate_down"): index -= 1 if index < 0: index = roads[type].size() -1 set_item() if Input.is_action_just_pressed("ui_navigate_up"): index += 1 if index > roads[type].size() - 1: index = 0 set_item() func set_item(): if (is_network_master()): if item: item.free() if view.get_child_count() > 0: view.remove_child(view.get_child(0)) item = roads_factory.get_road_instance(roads[type][index]) var player = get_parent().get_node("players/" + str(get_tree().get_network_unique_id())) if player != null: item.set_color(player.get_player_color()) view.add_child(item) item.rotate_y(PI/2) get_node("HUD/type").set_text(roads[type][index]) emit_signal("item_changed", roads[type][index])