On this page I'll tell you what all the different pieces of code in the main .xml do and mean :)
Header
<BFTypedBinder binderType="Aardvark" abstract="true">
We can see the codename in this line, as you can see I used the Aardvark as an example.
Types
<types>
<entity>
<actor>
<animal>
<Mammalia>
<Tubulidentata>
<Orycteropodidae>
<Aardvark />
</Orycteropodidae>
</Tubulidentata>
</Mammalia>
</animal>
</actor>
</entity>
</types>
This code gives you information about the animal. In this case it tells us we're dealing with a mammal from the Tubelidentata order and Orycteropodidae family. Also known as.... the Aardvark!
It's important to know that you can't just change the order and family to anything you want here. Tubulidentata and Orycteropodidae refer to a specific .xml in entities --> units --> animals --ai. If you replace them with an order or a family that doesn't have an xml, your animal will be bugged!
Instance
<instance> <BFGEntity entityVersion="1"> <physObjParenting> <parentObj parent="mainObj" child="shadowObj" rottype="use" postype="ignore" attachnode="link" /> <parentObj parent="mainObj" child="shadowObj2" rottype="use" postype="ignore" attachnode="link" /> </physObjParenting> </BFGEntity> </instance>
This piece of codes contains two references to shadow objects. So this code makes sure your animals have shadows ingame.
Shared
<shared>
<UIToggleButton template="adopt">
<UIAspect>
<default image="entities\units\animals\Aardvark\Aardvark_Adult_F_icon.dds" />
</UIAspect>
<UIHelpInfo ids="entityname:Aardvark" />
<on>
<event msg="ZT_SETPLACEMENTOBJECT" data="BFString" string="Aardvark_Adult_F" />
</on>
</UIToggleButton>
This piece of code contains the reference to the icon.
<ZTPlacementData waterPlacement="true" icon3Doffset="0 0.0 1.10" icon3Dscale=".69" />
The ZTPlacementData contains all information regarding placement of the animal. Piece of code you can find add here include:
waterPlacement="true" --> Animal can be placed in water
landPlacement="true" --> Animal can be placed on land
tankPlacement ="true" --> Animal can be placed in tanks
icon3Doffset="0 0.0 1.10" --> Position of the animal in that little placement box which appears when you select an animal before placement. Numbers probably represent X,Y,Z coordinates.
icon3Dscale=".69" --> Scale of the displayed animal in that same box
iconAnim="Swim_Ahead" --> This means the displayed animal will play the swim animation. You can replace 'Swim_Ahead' to another animation.
minimumDepth="0.6" --> This means you can only place the animal if the depth of the water is more than 0.6. You can change the number to 0.0 if you want to be able to place it in really shallow water.
minimumHeadroom="3.0" --> This means you can't place the animal beneath an elevated path, unless it's height 3. Change it to 0.0 if you want to place it under the lowest elevated path.
deletable="false" --> If you change it to 'true' the animal or object can be deleted.
moveable="true" --> If you change it to false the animal or object can not be moved.
gridSnap="true" --> If you change it to false the gridSnap disappears. Which means you can place an object much closer to other objects
randomRotate="false" --> If you change it to true the animal or object will be rotated randomly upon placement.