void InitializeAnimations() { CompositeAnimation.Descriptor descriptor = FileUtils.LoadJsonFromString <CompositeAnimation.Descriptor>( ContentPaths.GetFileAsString(ContentPaths.Entities.Demon.demon_animations)); Animations = new List <Animation>(); Animations.AddRange(descriptor.GenerateAnimations(CompositeLibrary.Demon)); }
void InitializeAnimations() { /* * Texture2D dwarfSprites = TextureManager.GetTexture(ContentPaths.Entities.Dwarf.Sprites.dwarf_animations); * Animations = Dwarf.CreateDefaultAnimations(dwarfSprites, 32, 40); */ CompositeAnimation.Descriptor descriptor = FileUtils.LoadJsonFromString <CompositeAnimation.Descriptor>( ContentPaths.GetFileAsString(ContentPaths.Entities.Dwarf.Sprites.worker_animation)); Animations = new List <Animation>(); Animations.AddRange(descriptor.GenerateAnimations(CompositeLibrary.Dwarf)); }
public EmployeeClass(EmployeeClassDef definition) { Name = definition.Name; Levels = definition.Levels; Actions = new List <GameMaster.ToolMode>(); foreach (string s in definition.Actions) { GameMaster.ToolMode value = GameMaster.ToolMode.SelectUnits; if (Enum.TryParse(s, true, out value)) { Actions.Add(value); } } CompositeAnimation.Descriptor descriptor = FileUtils.LoadJsonFromString <CompositeAnimation.Descriptor>(ContentPaths.GetFileAsString(definition.Animations)); Animations = new List <Animation>(); Animations.AddRange(descriptor.GenerateAnimations(Name)); Attacks = definition.Attacks; }
protected void CreateSprite(string animations, ComponentManager manager) { // Create the sprite component for the bird. var sprite = Physics.AddChild(new CharacterSprite (manager.World.GraphicsDevice, manager, "Sprite", Matrix.CreateTranslation(0, 0.5f, 0) )) as CharacterSprite; CompositeAnimation.Descriptor descriptor = FileUtils.LoadJsonFromString <CompositeAnimation.Descriptor>( ContentPaths.GetFileAsString(animations)); List <CompositeAnimation> animations_list = descriptor.GenerateAnimations(Name); foreach (CompositeAnimation animation in animations_list) { sprite.AddAnimation(animation); } sprite.SetFlag(Flag.ShouldSerialize, false); }
/// <summary> /// Initialize function creates all the required components for the bird. /// </summary> /// <param name="spriteSheet">The sprite sheet to use for the bird</param> public void Initialize(string sprites) { // When true, causes the bird to face the direction its moving in Physics.Orientation = Physics.OrientMode.RotateY; // Create the sprite component for the bird. Sprite = new CharacterSprite (Graphics, Manager, "Frog Sprite", Physics, Matrix.CreateTranslation(0, 0.5f, 0) ); CompositeAnimation.Descriptor descriptor = FileUtils.LoadJsonFromString <CompositeAnimation.Descriptor>( ContentPaths.GetFileAsString(sprites)); List <CompositeAnimation> animations = descriptor.GenerateAnimations("Rabbit"); foreach (CompositeAnimation animation in animations) { Sprite.AddAnimation(animation); } // Used to grab other components Hands = new Grabber("hands", Physics, Matrix.Identity, new Vector3(0.2f, 0.2f, 0.2f), Vector3.Zero); // Used to sense hostile creatures Sensors = new EnemySensor(Manager, "EnemySensor", Physics, Matrix.Identity, new Vector3(20, 5, 20), Vector3.Zero); // Controls the behavior of the creature AI = new CreatureAI(this, "Rabbit AI", Sensors, PlanService); // The bird can peck at its enemies (0.1 damage) Attacks = new List <Attack> { new Attack("Bite", 0.01f, 2.0f, 1.0f, ContentPaths.Audio.frog, ContentPaths.Effects.flash) }; // The bird can hold one item at a time in its inventory Inventory = new Inventory("Inventory", Physics) { Resources = new ResourceContainer { MaxResources = 1 } }; // The shadow is rotated 90 degrees along X, and is 0.25 blocks beneath the creature Matrix shadowTransform = Matrix.CreateRotationX((float)Math.PI * 0.5f); shadowTransform.Translation = new Vector3(0.0f, -0.25f, 0.0f); shadowTransform *= Matrix.CreateScale(0.75f); SpriteSheet shadowTexture = new SpriteSheet(ContentPaths.Effects.shadowcircle); Shadow = new Shadow(Manager, "Shadow", Physics, shadowTransform, shadowTexture); // We set up the shadow's animation so that it's just a static black circle // TODO: Make the shadow set this up automatically List <Point> shP = new List <Point> { new Point(0, 0) }; Animation shadowAnimation = new Animation(Graphics, new SpriteSheet(ContentPaths.Effects.shadowcircle), "sh", 32, 32, shP, false, Color.Black, 1, 0.7f, 0.7f, false); Shadow.AddAnimation(shadowAnimation); shadowAnimation.Play(); Shadow.SetCurrentAnimation("sh"); // The bird will emit a shower of blood when it dies DeathParticleTrigger = new ParticleTrigger("blood_particle", Manager, "Death Gibs", Physics, Matrix.Identity, Vector3.One, Vector3.Zero) { TriggerOnDeath = true, TriggerAmount = 1 }; // The bird is flammable, and can die when exposed to fire. Flames = new Flammable(Manager, "Flames", Physics, this); // Tag the physics component with some information // that can be used later Physics.Tags.Add("Frog"); Physics.Tags.Add("Animal"); Stats.FullName = TextGenerator.GenerateRandom("$firstname") + " the frog"; Stats.CurrentClass = new EmployeeClass() { Name = "Frog", Levels = new List <EmployeeClass.Level>() { new EmployeeClass.Level() { Index = 0, Name = "Frog" } } }; NoiseMaker.Noises.Add("Idle", new List <string>() { ContentPaths.Audio.frog }); NoiseMaker.Noises.Add("Hurt", new List <string>() { ContentPaths.Audio.frog }); }