54 lines
1.8 KiB
GDScript
54 lines
1.8 KiB
GDScript
extends SceneTree
|
|||
|
|
|
||
|
|
class GameStub extends Node3D:
|
||
|
|
var headless := false
|
||
|
|
var is_host := false
|
||
|
|
|
||
|
|
func _initialize() -> void:
|
||
|
|
call_deferred("run")
|
||
|
|
|
||
|
|
func run() -> void:
|
||
|
|
root.size = Vector2i(1200,700)
|
||
|
|
var game := GameStub.new()
|
||
|
|
root.add_child(game)
|
||
|
|
var camera := Camera3D.new()
|
||
|
|
game.add_child(camera)
|
||
|
|
camera.position = Vector3(0,0.8,1.35)
|
||
|
|
camera.look_at(Vector3(0,0,0))
|
||
|
|
var light := DirectionalLight3D.new()
|
||
|
|
game.add_child(light)
|
||
|
|
light.rotation_degrees = Vector3(-40,-30,0)
|
||
|
|
light.light_energy = 2
|
||
|
|
var environment := WorldEnvironment.new()
|
||
|
|
environment.environment = Environment.new()
|
||
|
|
environment.environment.background_mode = Environment.BG_COLOR
|
||
|
|
environment.environment.background_color = Color("424b55")
|
||
|
|
environment.environment.ambient_light_source = Environment.AMBIENT_SOURCE_COLOR
|
||
|
|
environment.environment.ambient_light_color = Color.WHITE
|
||
|
|
environment.environment.ambient_light_energy = 0.6
|
||
|
|
game.add_child(environment)
|
||
|
|
for i in 2:
|
||
|
|
var grenade := FragGrenade.new()
|
||
|
|
grenade.name = str(i+1)
|
||
|
|
grenade.game = game
|
||
|
|
grenade.kind = "frag" if i == 0 else "flash"
|
||
|
|
grenade.position = Vector3(-0.4+i*0.3,0,0)
|
||
|
|
game.add_child(grenade)
|
||
|
|
assert(grenade.get_node("StylooEquipment").get_meta("asset_id") == ("nade_low" if i == 0 else "flashbang_low"))
|
||
|
|
assert(grenade.freeze)
|
||
|
|
var drops := AmmoDrops.new()
|
||
|
|
drops.game = game
|
||
|
|
game.add_child(drops)
|
||
|
|
drops.sync([{"id":1,"p":Vector3(0.3,0.15,0),"left":30.0}])
|
||
|
|
assert(drops.visuals.size() == 1)
|
||
|
|
assert(drops.visuals[1].get_node("StylooEquipment").get_meta("asset_id") == "ammobox_low")
|
||
|
|
await create_timer(0.5).timeout
|
||
|
|
await RenderingServer.frame_post_draw
|
||
|
|
root.get_texture().get_image().save_png("res://logs/styloo-equipment.png")
|
||
|
|
drops.clear()
|
||
|
|
assert(drops.visuals.is_empty())
|
||
|
|
game.queue_free()
|
||
|
|
await process_frame
|
||
|
|
print("STYLOO FRAG / FLASH / AMMO SPAWN AND CLEANUP PASS")
|
||
|
|
quit()
|