GiantsEditReloaded/3d.gd

88 lines
2.8 KiB
GDScript

extends Spatial
#-----------------SCENE--SCRIPT------------------#
# Close your game faster by clicking 'Esc' #
# Change mouse mode by clicking 'Shift + F1' #
#------------------------------------------------#
export var fast_close := true
var mouse_mode: String = "CAPTURED"
var objmgr
onready var camera = get_node("Player/Head/Camera")
##################################################
func _ready() -> void:
if fast_close:
print("** 'Esc' to close 'Shift + F1' to release mouse **")
var giantsscript = load("res://objectmanager.gd")
var f = File.new()
f.open("res://dir.txt", File.READ)
var dir = f.get_as_text()
f.close()
var terrainmanager = load("res://terrainmanager.gd").new()
var terrain_mesh = terrainmanager.get_terrain("/home/tasty/Jeux/Giants Citizen Kabuto/Worlds/Mecc v. Mecc - Summit.gck")
add_child(terrain_mesh)
objmgr = giantsscript.ObjectManager.new()
# objmgr.GIANTS_PATH = dir
# var giants_dir_browser = FileDialog.new()
# giants_dir_browser.mode = FileDialog.MODE_OPEN_DIR
# giants_dir_browser.window_title = "Select your Giants directory"
# giants_dir_browser.access = FileDialog.ACCESS_FILESYSTEM
# add_child(giants_dir_browser)
# giants_dir_browser.popup_centered()
objmgr.build()
# var m = objmgr.load_model("mc_nothrust_l0.gbs")
# var m = objmgr.load_model("ripper.gbs")
#var m = objmgr.load_model("RP_command.gbs")
#var meshinstance = objmgr.load_model_mesh(m)
#meshinstance.transform.origin.y = 50
#add_child(meshinstance)
func _input(event: InputEvent) -> void:
if event.is_action_pressed("ui_cancel") and fast_close:
get_tree().quit() # Quits the game
if event.is_action_pressed("mouse_input") and fast_close:
match mouse_mode: # Switch statement in GDScript
"CAPTURED":
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
mouse_mode = "VISIBLE"
"VISIBLE":
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
mouse_mode = "CAPTURED"
if event.is_action_pressed("spawn_object"):
var random_key = ""
var rand = RandomNumberGenerator.new()
rand.randomize()
var keys = objmgr.index.keys()
while not random_key.ends_with(".gbs"):
var rand_i = rand.randi_range(0, len(keys)-1)
random_key = keys[rand_i]
var m = objmgr.load_model(random_key)
print("Loading "+random_key)
var meshinstance = objmgr.load_model_mesh(m)
var pos = camera.get_global_transform().origin
meshinstance.transform.origin.x = pos.x
meshinstance.transform.origin.y = pos.y
meshinstance.transform.origin.z = pos.z
add_child(meshinstance)
func _process(_delta):
var pos = camera.get_global_transform().origin
get_node("Label").text = "X: "+str(pos.x)+", Y: "+str(pos.y)+", Z: "+str(pos.z)
var rotation = camera.rotation
get_node("Label").text += " X: "+str(rotation.x)+", Y: "+str(rotation.y)+", Z: "+str(rotation.z)
func _on_Button_pressed():
get_tree().quit()