Public repository for MUR pre alpha
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.
 
 
 
 
 

114 lines
2.6 KiB

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])