Files
Blockline/tests/styloo_equipment.gd

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