public virtual void AssignActor(Actor actor, bool addCamera, string headNodePath) { this.actor = actor; head = FindNode(headNodePath) as KinematicBody; if (addCamera) { camera = new Camera(); head.AddChild(camera); } }
public void SpawnAnimal(string presetName, AnimalBehaviourComponent.AnimalSex sex, Vector3 position) { // Choose preset AnimalPreset preset = null; foreach (AnimalPreset p in presets) { if (p.presetName.Equals(presetName) && p.sex == sex) { preset = p; break; } } // Use preset to generate animal PackedScene chosenScene = preset.scene; KinematicBody kb = (KinematicBody)chosenScene.Instance(); Entity entity = new Entity(); kb.AddChild(entity); entity.SetName("Entity"); AnimalBehaviourComponent behaviourComponent = new AnimalBehaviourComponent(entity, preset.sex, preset.diet, preset.foodChainLevel, preset.breedability, preset.presetName, preset.oxygenConsumption, preset.co2Production, preset.foodDrop, preset.birthDrop); PhysicsComponent physicsComponent = new PhysicsComponent(entity); entity.AddComponent(behaviourComponent); entity.AddComponent(physicsComponent); kb.SetTranslation(position); AddChild(kb); }