Farm Animal

From wiki
Revision as of 09:17, 17 October 2017 by DeamonHunter (Talk | contribs) (Initial commit.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

In Staxel, *.farmAnimal files are used to specify a Animal. It specifies the following;

  • What the animal's model and body type is.
  • What behaviours the animal will have.
  • What the animal will give under certain circumstances.

Animals are probably the most complex file to make from scratch. They touch on so many different areas that it isn't uncommon to see at least 7 files per Animal.

Creating a *.farmAnimal file

Config Options

"code"

Valid options (String): A unique string which species what this Farm Animal is.

Default Value: No default value is specified. Always need to provide your own.


A string containing the code of the farm animal the blob will be referring to.


"airResistance"

Valid options (Double): A positive decimal number.

Default Value: No default value is specified. Always need to provide your own.


This is the amount of resistance to movement the animal will have while on the ground.


"animationParameters"

This is a blob containing the values of certain animation parameters. Will be elaborated upon later.


"catatonic"

This is a Blob that contains information on the what the effects that will play when the animal is playing the "staxel.farmAnimalBehaviour.Catatonic" behaviour. (Most commonly done while despawning.) It will commonly look like;

  "catatonic": {
    "emotes": [ "staxel.emote.farmAnimals.Eaiting_1"],
  },

"emotes"

Valid options (List of Strings): A list of strings each containing the code to a Emote file.

Default Value: No default value is specified. Always need to provide your own.


This is the list of emotes that will be randomly selected in when showing the animal is catatonic.


"crateTile"

Valid options (String): A string containing the code to a Tile

Default Value: No default value is specified. Always need to provide your own.


This is the tile that is given when attempting to capture this animal. It should be the same one to spawn the animal, although it can be different.


"designs"

Valid options (List of Blobs ): A list of blobs.

Default Value: No default value is specified. Always need to provide your own.


This is a list of blobs which contain information for the design of the animal.


"despawnBehaviourKind"

Valid options (List of String ): A list of strings containing the name of a behaviour.

Default Value: No default value is specified. Always need to provide your own.


This is a list of behaviours that the animal will use when despawning from the world. The full list of Behaviour codes and what they do is listed under Animal Behaviours.


"eggs"

Valid options (List of Blob ): A list of blobs containing Items.

Default Value: No default value is specified. Always need to provide your own.


This is the list of items you want the Animal to lay on occasion. Each of these items will need to follow the Items#Universal Spawning Rules of normal items.


"eatsFromHand"

Valid options (Bool): True or False

Default Value: No default value is specified. Always need to provide your own.


This will be elaborated upon at a later point.


"eatsGrass"

Valid options (Bool): True or False

Default Value: No default value is specified. Always need to provide your own.


This will determine if the animal will actually eat the tile tile and lose hunger. Will do nothing unless #"grazes" is true.


"eating"

This is a Blob that contains information on the what the effects that will play when the animal is eating. It will commonly look like;

  "happy": {
    "emotes": [ "staxel.emote.farmAnimals.Eaiting_1"],
  },

"emotes"

Valid options (List of Strings): A list of strings each containing the code to a Emote file.

Default Value: No default value is specified. Always need to provide your own.


This is the list of emotes that will be randomly selected in when showing the animal is eating.


"feedKind"

Valid options (String): Any valid string.

Default Value: No default value is specified. Always need to provide your own.


This is the string containing what the animal will eat. This animal will then proceed to eat from Tiles that have a Feeder Component with this particular string.


"grazes"

Valid options (Bool): True or False

Default Value: No default value is specified. Always need to provide your own.


This will determine whether or not the Animal will show the eating the ground animation. This will not determine if the animal will turn the grass to dirt. (That is decided by #"eatsGrass".)


"happy"

This is a Blob that contains information on the what the effects that will play when the animal is happy. It will commonly look like;

  "happy": {
    "emotes": [ "staxel.emote.farmAnimals.Happy_1"],
    "sounds": [ "staxel.sounds.farmAnimals.Chicken.happy_1"]
  },

"emotes"

Valid options (List of Strings): A list of strings each containing the code to a Emote file.

Default Value: No default value is specified. Always need to provide your own.


This is the list of emotes that will be randomly selected in when showing the animal is happy.


"sounds"

Valid options (List of Strings): A list of strings each containing the code to a Sound file.

Default Value: No default value is specified. Always need to provide your own.


This is the list of sounds that will be randomly selected in when showing the animal is happy.


"idleBehaviours"

Valid options (List of String ): A list of strings containing the name of a behaviour.

Default Value: No default value is specified. Always need to provide your own.


This is a list of behaviours that the animal will use when the animal is considered Idle. This is often the default behaviour. The full list of Behaviour codes and what they do is listed under Animal Behaviours.


"jumpForce"

Valid options (Double): A positive decimal number.

Default Value: No default value is specified. Always need to provide your own.


This is the force the will get applied when the animal starts to jump. Be sure to set this high enough for your animal to get over blocks.


"milkingBehaviours"

Valid options (List of String ): A list of strings containing the name of a behaviour.

Default Value: No default value is specified. Always need to provide your own.


This is a list of behaviours that the animal will use when the animal is being milked. The full list of Behaviour codes and what they do is listed under Animal Behaviours.


"milks"

Valid options (List of Blob ): A list of blobs containing Items.

Default Value: No default value is specified. Always need to provide your own.


This is the list of items you want the Animal to give when they are milked. Each of these items will need to follow the Items#Universal Spawning Rules of normal items.


"models"

Valid options (List of String): A list of strings each containing the path to a model.

Default Value: No default value is specified. Always need to provide your own.


This is a list of models that will be randomly used when creating the animal.


"movementVelocity"

Valid options (Double): A positive decimal number.

Default Value: No default value is specified. Always need to provide your own.


This is the maximum speed that the Animal will move at.


"names"

Valid options (List of String ): A list of strings containing any valid values.

Default Value: No default value is specified. Always need to provide your own.


This is a list of names that will be randomly given to the animal upon spawning.


"nudeModels"

Valid options (List of String): A list of strings each containing the path to a model.

Default Value: No default value is specified. Always need to provide your own.


This is a list of models that will be randomly used when the animal is sheared. They will go back to a normal model after regrowing their wool.


"playBehaviours"

Valid options (List of String ): A list of strings containing the name of a behaviour.

Default Value: No default value is specified. Always need to provide your own.


This is a list of behaviours that the animal will use when the animal is interacted with. These behaviours are special and are usually associated with specific items. Such as those with the Throwable Component. The full list of Behaviour codes and what they do is listed under Animal Behaviours.


"poops"

Valid options (List of Blob ): A list of blobs containing Items.

Default Value: No default value is specified. Always need to provide your own.


This is the list of items you want the Animal to poop out on occasion. Each of these items will need to follow the Items#Universal Spawning Rules of normal items.


"pushedForce"

Valid options (Double): A positive decimal number.

Default Value: No default value is specified. Always need to provide your own.


This is the force the will get applied when the animal when it gets pushed. This particular force happens when the animal is idle. (i.e. Not doing anything.)


"resistedPushedForce"

Valid options (Double): A positive decimal number.

Default Value: No default value is specified. Always need to provide your own.


This is the force the will get applied when the animal when it gets pushed. This particular force happens when the animal is not idle. (i.e. Moving, eating etc)


"shearingBehaviours"

Valid options (List of String ): A list of strings containing the name of a behaviour.

Default Value: No default value is specified. Always need to provide your own.


This is a list of behaviours that the animal will use when the animal is being sheared. The full list of Behaviour codes and what they do is listed under Animal Behaviours.


"sleepy"

Valid options (Bool): True or False

Default Value: If not specified, will default to false.


This will determine if the animal will randomly sleep throughout the day.


"spawnBehaviours"

Valid options (List of String ): A list of strings containing the name of a behaviour.

Default Value: No default value is specified. Always need to provide your own.


This is a list of behaviours that the animal will use when spawning into the world. The full list of Behaviour codes and what they do is listed under Animal Behaviours.


"standingResistance"

Valid options (Double): A positive decimal number.

Default Value: No default value is specified. Always need to provide your own.


This is the amount of resistance to movement the animal will have while on the ground.


"turnSmoothingFactor"

Valid options (Double): A positive decimal number.

Default Value: No default value is specified. Always need to provide your own.


This is the largest angle you will allow the animal to turn in one tick. Note that this is in Radians.


"unhappy"

This is a Blob that contains information on the what the effects that will play when the animal is unhappy. It will commonly look like;

  "unhappy": {
    "emotes": [ "staxel.emote.farmAnimals.Unhappy_1"],
    "sounds": [ "staxel.sounds.farmAnimals.Chicken.unhappy_1"]
  },

"emotes"

Valid options (List of Strings): A list of strings each containing the code to a Emote file.

Default Value: No default value is specified. Always need to provide your own.


This is the list of emotes that will be randomly selected in when showing the animal is unhappy.


"sounds"

Valid options (List of Strings): A list of strings each containing the code to a Sound file.

Default Value: No default value is specified. Always need to provide your own.


This is the list of sounds that will be randomly selected in when showing the animal is unhappy.


"unhappyBehaviours"

Valid options (List of String ): A list of strings containing the name of a behaviour.

Default Value: No default value is specified. Always need to provide your own.


This is a list of behaviours that the animal will use when the player tries to perform an action while they are unhappy. These are used instead of milking and shearing behaviours when unhappy. The full list of Behaviour codes and what they do is listed under Animal Behaviours.


"velocityRandomizationFactor"

Valid options (Double): A positive decimal number.

Default Value: No default value is specified. Always need to provide your own.


This is the additional randomness added to movement. It will cause animals to move faster or slower while moving between destinations.


"wools"

Valid options (List of Blob ): A list of blobs containing Items.

Default Value: No default value is specified. Always need to provide your own.


This is the list of items you want the Animal to give when they are sheared. Each of these items will need to follow the Items#Universal Spawning Rules of normal items.




"merchant"

This is an optional Blob that contains information on the merchant that will stand nearby the stall. It will commonly look like;

"merchant" : {
  "name" : "Melissa",
  "dialogue" : "staxel.village.dialogue.FunStuffVendor",
  "offset" : { "x" : 2, "y" : 1.0, "z" : -5 },
  "outfit" : { //exclude for random
    "accessory" : "",
    "shirt" : "staxel.accessories.fullBodyOutfits.MagicMerchant",
    "trousers" : "",
    "shoes" : "",
    "hat" : "",
  }
}

"dialogue"

Valid options (String): A string containing the code to a Dialogue file.

Default Value: No default value is specified. Always need to provide your own.


This is the dialogue that the merchant will use.


"name"

Valid options (String): Any valid String.

Default Value: No default value is specified. Always need to provide your own.


This is the merchant's name.


"offset"

Valid options (Vector 3 - Double): { "x": 0, "y": 0, "z": 0 }

Default Value: No default value is specified. Always need to provide your own.


This is the Merchant NPC's offset compared to the location of the centre tile.


"outfit"

This is a Blob that contains information on the merchants outfit. It will commonly look like;

"outfit" : {
  "accessory" : "",
  "shirt" : "staxel.accessories.fullBodyOutfits.MagicMerchant",
  "trousers" : "",
  "shoes" : "",
  "hat" : "",
}

"accessory"

Valid options (String): A string containing the code to a Accessory file.

Default Value: If not specified, will not spawn any Accessory.


This is the accessory that will be spawned for the accessory slot of the merchant.


"accessoryPalette"

Valid options (String): A string containing the code to a Palette file.

Default Value: If not specified, will keep the default palette for the accessory.


This is the palette that will be used for the accessory.


"shirt"

Valid options (String): A string containing the code to a Accessory file.

Default Value: If not specified, will spawn a random shirt accessory. You can specify an empty string (e.g. "") to not have any accessory spawn.


This is the accessory that will be spawned for the shirt slot of the merchant.


"shirtPalette"

Valid options (String): A string containing the code to a Palette file.

Default Value: If not specified, will keep the default palette for the accessory.


This is the palette that will be used for the shirt.


"trousers"

Valid options (String): A string containing the code to a Accessory file.

Default Value: If not specified, will spawn a random trousers accessory. You can specify an empty string (e.g. "") to not have any accessory spawn.


This is the accessory that will be spawned for the trousers slot of the merchant.


"trousersPalette"

Valid options (String): A string containing the code to a Palette file.

Default Value: If not specified, will keep the default palette for the accessory.


This is the palette that will be used for the trousers.


"shoes"

Valid options (String): A string containing the code to a Accessory file.

Default Value: If not specified, will spawn a random shoes accessory. You can specify an empty string (e.g. "") to not have any accessory spawn.


This is the accessory that will be spawned for the shoes slot of the merchant.


"shoesPalette"

Valid options (String): A string containing the code to a Palette file.

Default Value: If not specified, will keep the default palette for the accessory.


This is the palette that will be used for the shoes.


"hat"

Valid options (String): A string containing the code to a Accessory file.

Default Value: If not specified, will not spawn any Accessory.


This is the accessory that will be spawned for the hat slot of the merchant.


"hatPalette"

Valid options (String): A string containing the code to a Palette file.

Default Value: If not specified, will keep the default palette for the accessory.


This is the palette that will be used for the hat.


"sellBox"

This is an optional Blob that contains information on the sell box. It will commonly look like;

"sellBox" : 
{
  "tile" : "staxel.merchants.SellBox",
  "offset" : { "x" : 1, "y" : 0, "z" : 3 }
},

"offset"

Valid options (Vector 3 - Integer): { "x": 0, "y": 0, "z": 0 }

Default Value: No default value is specified. Always need to provide your own.


This is the sell box's offset compared to the location of the centre tile.


"tile"

Valid options (String): A string containing the code to a Tile file.

Default Value: No default value is specified. Always need to provide your own.


This is the tile that will be used to act as the Sell Box. This tile should have a Dock Definition with a site that enables selling.


"stall"

This is a Blob that contains information on how the stall should look and what it should sell. It will commonly look like;

"stall" : 
{
    "tile" : "staxel.merchants.carts.BuildingMerchant",
    "treasurePool" : "staxel.treasure.funStuff"
},

"tile"

Valid options (String): A string containing the code to a Tile file.

Default Value: No default value is specified. Always need to provide your own.


This is the tile that will be used to act as the stall. This tile should have a Dock Definition with multiple sites.


"treasurePool"

Valid options (String): A string containing the code to a Treasure Pool file.

Default Value: If not specified, will not fill any docks. If #"treasurePools" is specified, this will act second.


This is the Treasure Pool that will be used in order to fill docks in the stall. Will keep going until either the Treasure Pool has no more entries, or all docks are filled.


"treasurePools"

This is a Blob that contains no specified variables. However, you do add more variables to this blob yourself.

Each variable in this file will have the name of the Docks#"siteName" as the property name. This property is then also a bool, which contains a single property. This single property is named "pool" which contains the treasure pool that should be used at this particular site.

This can commonly look like;

"treasurePools" : {
  "body" : {
    "pool" : "staxel.treasure.mannequin.dresses"
  },
  "site2" : {
    "pool" : "staxel.treasure.something"
  }
}

Which will fill the body site with dresses and the second site with something else.