virtual public void Spawn(Player p, string nodeName) { PackedScene PackedScene = (PackedScene)ResourceLoader.Load(_weaponResource); _weaponMesh = (MeshInstance)PackedScene.Instance(); p.Head.AddChild(_weaponMesh); _playerOwner = p; _weaponMesh.Translation = _weaponPosition; _weaponMesh.Name = nodeName; _weaponMesh.Visible = false; _shootSound = (AudioStreamPlayer3D)_weaponMesh.GetNode("ShootSound"); if (_weaponMesh.HasNode("MuzzleFlash")) { _muzzleFlash = (Sprite3D)_weaponMesh.GetNode("MuzzleFlash"); } if (_weaponMesh.HasNode("ReloadSound")) { _reloadSound = (AudioStreamPlayer3D)_weaponMesh.GetNode("ReloadSound"); } // projectile mesh if (_weaponShotType == WEAPONSHOTTYPE.PROJECTILE || _weaponShotType == WEAPONSHOTTYPE.GRENADE) { _projectileScene = (PackedScene)ResourceLoader.Load(_projectileResource); } }
public void Spawn(Node camera, string Name) { PackedScene PackedScene = (PackedScene)ResourceLoader.Load(_weaponResource); _weaponMesh = (MeshInstance)PackedScene.Instance(); camera.AddChild(_weaponMesh); _weaponMesh.Translation = this.SpawnTranslation; _weaponMesh.SetName(Name); _weaponMesh.SetVisible(false); shootSound = (AudioStreamPlayer3D)_weaponMesh.GetNode("ShootSound"); if (_weaponMesh.HasNode("MuzzleFlash")) { muzzleFlash = (Sprite3D)_weaponMesh.GetNode("MuzzleFlash"); } if (_weaponMesh.HasNode("ReloadSound")) { reloadSound = (AudioStreamPlayer3D)_weaponMesh.GetNode("ReloadSound"); } // projectile mesh if (_weaponType == WeaponType.Projectile || _weaponType == WeaponType.Grenade) { _projectileScene = (PackedScene)ResourceLoader.Load(_projectileResource); } GD.Print("Loaded " + Name); }