public void Fire(bool pressed) { if (ammo_ != null) { ammo_.Fire(1f, GlobalPosition, GlobalRotation, Vector2.Up.Rotated(GlobalRotation)); if (!ammo_.IsLaser()) { GetNode("/root").GetChild(0).AddChild(ammo_ as Node2D); ammo_ = (IFireable)ammoScene_.Instance(); } } }
// Called when the node enters the scene tree for the first time. public override void _Ready() { poly_ = GetNode <Polygon2D>("Shape"); ammo_ = (IFireable)ammoScene_.Instance(); var rigid = (ammo_ as RigidBody2D); if (rigid != null) { rigid.Sleeping = true; } if (ammo_.IsLaser()) { (ammo_ as RayCast2D).Enabled = true; // TODO: this throws error currently AddChild(ammo_ as Node2D); } }