Changes

4,116 bytes added ,  18:48, 4 November 2021
m
Text replacement - "tt>" to "samp>"
Line 1: Line 1:  
← [[Modding:Index|Index]]
 
← [[Modding:Index|Index]]
   −
{{Stub|Under Construction}}
+
{{stub}}
   −
This page explains how the game uses BluePrints for Buildings and Animals. This is an advanced guide for mod developers.
+
This page explains how the game uses blueprints to construct buildings. This is an advanced guide for mod developers.
   −
==Data==
+
==Raw data==
===Raw data===
+
Blueprint data is stored in <samp>Content\Data\Blueprints.xnb</samp>, which can be [[Modding:Editing XNB files#unpacking|unpacked for editing]]. Here's the raw data as of {{version|1.5.1}} for reference:
BluePrints are stored in <tt>Content\Data\Blueprints.xnb</tt>, which can be [[Modding:Creating an XNB mod#unpacking|unpacked using XNB Extract]]. Here's the raw data (as of 1.2) for reference:
     −
{| class="mw-collapsible mw-collapsed"
+
{{collapse|Data|content=<syntaxhighlight lang="json">
! style="text-align: left;" | '''Code'''&nbsp;
+
{
|-                           
+
  "Silo": "390 100 330 10 334 5/3/3/-1/-1/-2/-1/null/Silo/Allows you to cut and store grass for feed./Buildings/none/48/128/-1/null/Farm/100/false",
|<source lang="yaml">
+
  "Mill": "388 150 390 50 428 4/4/2/-1/-1/-2/-1/null/Mill/Allows you to mill wheat, beets and rice./Buildings/none/64/128/-1/null/Farm/2500/false",
content:  #!Dictionary<String,String>
+
  "Earth Obelisk": "337 10 86 10/3/2/-1/-1/-2/-1/null/Earth Obelisk/Warps you to the mountains./Buildings/none/48/128/-1/null/Farm/500000/true",
    Silo: "390 100 330 10 334 5/3/3/-1/-1/-2/-1/null/Silo/Allows you to cut and store grass for feed./Buildings/none/48/128/-1/null/Farm/100/false" #!String
+
  "Water Obelisk": "337 5 372 10 393 10/3/2/-1/-1/-2/-1/null/Water Obelisk/Warps you to the beach./Buildings/none/48/128/-1/null/Farm/500000/true",
    Mill: "388 150 390 50 428 4/4/2/-1/-1/-2/-1/null/Mill/Allows you to create flour from wheat and sugar from beets./Buildings/none/64/128/-1/null/Farm/2500/false" #!String
+
  "Desert Obelisk": "337 20 88 10 90 10/3/2/-1/-1/-2/-1/null/Desert Obelisk/Warps you to the desert./Buildings/none/48/128/-1/null/Farm/1000000/true",
    Earth Obelisk: "337 10 86 10/3/3/-1/-1/-2/-1/null/Earth Obelisk/Warps you to the mountains./Buildings/none/48/128/-1/null/Farm/1000000/true" #!String
+
  "Island Obelisk": "337 10 852 10 91 10/3/2/-1/-1/-2/-1/null/Island Obelisk/Warps you to Ginger Island./Buildings/none/48/128/-1/null/Farm/1000000/true",
    Water Obelisk: "337 5 372 10 393 10/3/3/-1/-1/-2/-1/null/Water Obelisk/Warps you to the beach./Buildings/none/48/128/-1/null/Farm/1000000/true" #!String
+
  "Junimo Hut": "390 200 268 9 771 100/3/2/-1/-1/-2/-1/null/Junimo Hut/Junimos will harvest crops around the hut for you./Buildings/none/48/64/-1/null/Farm/20000/true",
    Junimo Hut: "390 200 268 9 771 100/3/2/-1/-1/-2/-1/null/Junimo Hut/Junimos will harvest crops around the hut for you./Buildings/none/48/64/-1/null/Farm/20000/true" #!String
+
  "Gold Clock": "/3/2/-1/-1/-2/-1/null/Gold Clock/Prevents debris from appearing on your farm. Keeps fences from decaying./Buildings/none/48/80/-1/null/Farm/10000000/true",
    Gold Clock: "/3/2/-1/-1/-2/-1/null/Gold Clock/Prevents debris from appearing on your farm. Keeps fences from decaying./Buildings/none/48/80/-1/null/Farm/10000000/true" #!String
+
  "Stable": "709 100 335 5/4/2/-1/-1/-2/-1/null/Stable/Allows you to keep and ride a horse. Horse included./Buildings/none/64/96/-1/null/Farm/10000/false",
    Stable: "709 100 335 5/4/2/-1/-1/-2/-1/null/Stable/Allows you to keep and ride a horse. Horse included./Buildings/none/64/96/-1/null/Farm/10000/false" #!String
+
  "Well": "390 75/3/3/-1/-1/-1/-1/null/Well/Provides a place for you to refill your watering can./Buildings/none/32/32/-1/null/Farm/1000/false",
    Well: "390 75/3/3/-1/-1/-1/-1/null/Well/Provides a place for you to refill your watering can./Buildings/none/48/80/-1/null/Farm/1000/false" #!String
+
  "Shipping Bin": "388 150/2/1/-1/-1/-1/-1/null/Shipping Bin/Throw items inside to sell them overnight./Buildings/none/48/80/-1/null/Farm/250/false/0",
    Coop: "388 300 390 100/6/3/1/2/2/2/Coop/Coop/Houses 4 coop-dwelling animals./Buildings/none/64/96/4/null/Farm/4000/false" #!String
+
  "Coop": "388 300 390 100/6/3/1/2/2/2/Coop/Coop/Houses 4 coop-dwelling animals./Buildings/none/64/96/4/null/Farm/4000/false",
    Big Coop: "388 400 390 150/6/3/1/2/2/2/Coop2/Big Coop/Houses 8 coop-dwelling animals. Comes with an incubator. Unlocks ducks./Upgrades/Coop/64/96/8/null/Farm/10000/false" #!String
+
  "Big Coop": "388 400 390 150/6/3/1/2/2/2/Coop2/Big Coop/Houses 8 coop-dwelling animals. Comes with an incubator. Unlocks ducks./Upgrades/Coop/64/96/8/null/Farm/10000/false",
    Deluxe Coop: "388 500 390 200/6/3/1/2/2/2/Coop3/Deluxe Coop/Houses 12 coop-dwelling animals. Comes with an auto-feed system. Unlocks rabbits./Upgrades/Big Coop/64/96/12/null/Farm/20000/false" #!String
+
  "Deluxe Coop": "388 500 390 200/6/3/1/2/2/2/Coop3/Deluxe Coop/Houses 12 coop-dwelling animals. Comes with an auto-feed system. Unlocks rabbits./Upgrades/Big Coop/64/96/12/null/Farm/20000/false",
    Barn: "388 350 390 150/7/4/1/3/3/3/Barn/Barn/Houses 4 barn-dwelling animals./Buildings/none/96/96/4/null/Farm/6000/false" #!String
+
  "Barn": "388 350 390 150/7/4/1/3/3/3/Barn/Barn/Houses 4 barn-dwelling animals./Buildings/none/96/96/4/null/Farm/6000/false",
    Big Barn: "388 450 390 200/7/4/1/3/4/3/Barn2/Big Barn/Houses 8 barn-dwelling animals. Allows animals to give birth. Unlocks goats./Upgrades/Barn/96/96/8/null/Farm/12000/false" #!String
+
  "Big Barn": "388 450 390 200/7/4/1/3/4/3/Barn2/Big Barn/Houses 8 barn-dwelling animals. Allows animals to give birth. Unlocks goats./Upgrades/Barn/96/96/8/null/Farm/12000/false",
    Deluxe Barn: "388 550 390 300/7/4/1/3/4/3/Barn3/Deluxe Barn/Houses 12 barn-dwelling animals. Comes with an auto-feed system. Unlocks sheep and pigs./Upgrades/Big Barn/96/96/12/null/Farm/25000/false" #!String
+
  "Deluxe Barn": "388 550 390 300/7/4/1/3/4/3/Barn3/Deluxe Barn/Houses 12 barn-dwelling animals. Comes with an auto-feed system. Unlocks sheep and pigs./Upgrades/Big Barn/96/96/12/null/Farm/25000/false",
    Slime Hutch: "390 500 338 10 337 1/11/6/5/5/-1/-1/SlimeHutch/Slime Hutch/Raise up to 20 slimes. Fill water troughs and slimes will create slime balls./Buildings/none/96/96/20/null/Farm/10000/false" #!String
+
  "Slime Hutch": "390 500 338 10 337 1/11/6/5/5/-1/-1/SlimeHutch/Slime Hutch/Raise up to 20 slimes. Fill water troughs and slimes will create slime balls./Buildings/none/96/96/20/null/Farm/10000/false",
    Shed: "388 300/7/3/3/2/-1/-1/Shed/Shed/An empty building. Fill it with whatever you like! The interior can be decorated./Buildings/none/96/96/20/null/Farm/15000/false" #!String
+
  "Shed": "388 300/7/3/3/2/-1/-1/Shed/Shed/An empty building. Fill it with whatever you like! The interior can be decorated./Buildings/none/96/96/20/null/Farm/15000/false",
    Greenhouse: "388 500 390 200 337 1/4/2/2/1/-1/-1/FarmGreenHouse/Greenhouse/A place to grow crops from any season, year round!/Buildings/none/64/96/-1/null/Farm" #!String
+
  "Big Shed": "388 550 390 300/7/3/3/2/-1/-1/Shed2/Big Shed/Doubles the size of the shed. The interior can be decorated./Upgrades/Shed/96/96/20/null/Farm/20000/false",
    Mine Elevator: "388 30 390 15 334 5/4/2/1/1/-1/-1/null/Mine Elevator/Quickly travel between any mine elevators you construct. You can only build one per mine level./Buildings/none/64/64/-1/MineElevator/UndergroundMine" #!String
+
  "Stone Cabin": "390 10/5/3/2/1/-1/-1/Cabin/Cabin/A home for a friend! Subsidized by the town agricultural fund./Buildings/none/96/96/20/null/Farm/100/false/0",
    Chicken: "animal/500/64/64/Chicken/Lays delicious eggs. Comes in two colors./null/Farm" #!String
+
  "Plank Cabin": "388 5 771 10/5/3/2/1/-1/-1/Cabin/Cabin/A home for a friend! Subsidized by the town agricultural fund./Buildings/none/96/96/20/null/Farm/100/false/0",
    Duck: "animal/1000/64/64/Duck/Lays eggs and occasionally drops feathers./null/Farm" #!String
+
  "Log Cabin": "388 10/5/3/2/1/-1/-1/Cabin/Cabin/A home for a friend! Subsidized by the town agricultural fund./Buildings/none/96/96/20/null/Farm/100/false/0",
    Rabbit: "animal/1500/64/64/Rabbit/These are wooly rabbits!/null/Farm" #!String
+
  "Greenhouse": "/7/6/3/5/-1/-1/null/Greenhouse/A place to grow crops from any season, year round!/Buildings/none/64/96/-1/null/Farm/-1/false/0/2 6 3 6 4 6 2 7 3 7 4 7",
    Cow: "animal/1000/64/96/Cow/Produces rich, creamy milk./null/Farm" #!String
+
  "Mine Elevator": "388 30 390 15 334 5/4/2/1/1/-1/-1/null/Mine Elevator/Quickly travel between any mine elevators you construct. You can only build one per mine level./Buildings/none/64/64/-1/MineElevator/UndergroundMine",
    Sheep: "animal/1500/64/96/Sheep/Can be sheared for valuable wool./null/Farm" #!String
+
  "Fish Pond": "390 200 152 5 153 5/5/5/-1/-1/-2/-1/null/Fish Pond/Raise fish and harvest their produce. Fish multiply over time./Buildings/none/76/78/10/null/Farm/5000/false/2",
    Goat: "animal/1500/64/96/Goat/Produces tasty goat's milk!/null/Farm" #!String
+
  "Chicken": "animal/500/64/64/Chicken/Lays delicious eggs. Comes in two colors./null/Farm",
    Pig: "animal/2000/64/96/Pig/These are specially trained to find truffles./null/Farm" #!String
+
  "Duck": "animal/1000/64/64/Duck/Lays eggs and occasionally drops feathers./null/Farm",
</source>
+
  "Rabbit": "animal/1500/64/64/Rabbit/These are wooly rabbits!/null/Farm",
|}
+
  "Cow": "animal/1000/64/96/Cow/Produces rich, creamy milk./null/Farm",
 +
  "Sheep": "animal/1500/64/96/Sheep/Can be sheared for valuable wool./null/Farm",
 +
  "Goat": "animal/1500/64/96/Goat/Produces tasty goat's milk!/null/Farm",
 +
  "Pig": "animal/2000/64/96/Pig/These are specially trained to find truffles./null/Farm"
 +
}
 +
</syntaxhighlight>}}
   −
===Format===
+
==Format==
The file contains two types of data:
+
The file contains data fields delimited by <code>/</code>, with two formats:
    
<ul>
 
<ul>
<li>"Animal" type. These BluePrints start with <nowiki>animal</nowiki>. For example, consider this entry:
+
<li>Animal buildings (denoted by the first field being <samp>animal</samp>), like this entry:
   −
<source lang="yaml">
+
<syntaxhighlight lang="json">
Chicken: "animal/500/64/64/Chicken/Lays delicious eggs. Comes in two colors./null/Farm"
+
  "Chicken": "animal/500/64/64/Chicken/Lays delicious eggs. Comes in two colors./null/Farm"
</source>
+
</syntaxhighlight>
   −
This data means that....</li>
+
The fields for animal buildings are...
   −
<li>"Building" type. This is any other BluePrint other than an animal. Take a look at this BluePrint entry:
+
{| class="wikitable"
 +
|-
 +
! index
 +
! field
 +
! type
 +
! example
 +
! explanation
 +
|-
 +
| 0
 +
| <samp>null</samp>
 +
| string
 +
| ''animal''
 +
| Used by the code to denote it's an animal type BluePrint.
 +
|-
 +
| 1
 +
| <samp>moneyRequired</samp>
 +
| int
 +
| ''500''
 +
| The amount required to purchase.
 +
|-
 +
| 2
 +
| <samp>sourceRectForMenuView</samp>
 +
| int
 +
| ''64''
 +
|
 +
|-
 +
| 3
 +
| <samp>sourceRectForMenuView</samp>
 +
| int
 +
| ''64''
 +
|
 +
|-
 +
| 4
 +
| <samp>displayName</samp>
 +
| string
 +
| ''Chicken''
 +
|
 +
|-
 +
| 5
 +
| <samp>description</samp>
 +
| string
 +
| ''Lays delicious eggs. Comes in two colors.''
 +
| The description of the animal.
 +
|-
 +
| 6
 +
| <samp></samp>
 +
|
 +
| ''null''
 +
| Unused by the code.
 +
|-
 +
| 7
 +
| <samp></samp>
 +
|
 +
| ''Farm''
 +
| Unused by the code.
 +
|}</li>
   −
<source lang="yaml">
+
<li>Any other entry, like this one:
Barn: "388 350 390 150/7/4/1/3/3/3/Barn/Barn/Houses 4 barn-dwelling animals./Buildings/none/96/96/4/null/Farm/6000/false" #!String
  −
</source>
     −
Each entry item is separated by a <code>/</code> character (as the delimiter).
+
<syntaxhighlight lang="json">
 +
  "Barn": "388 350 390 150/7/4/1/3/3/3/Barn/Barn/Houses 4 barn-dwelling animals./Buildings/none/96/96/4/null/Farm/6000/false"
 +
</syntaxhighlight>
    
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Type
+
! index
! Example Entry
+
! field
! Explanation
+
! type
 +
! example
 +
! explanation
 +
|-
 +
| 0
 +
| <samp>itemsRequired</samp>
 +
| int int
 +
| ''388 350 390 150''
 +
| The items required for purchase, consisting of {{t|item ID}} {{t|amount}} pairs. The example specifies 350 Wood (item ID 388) and 150 Stone (item ID 390).
 +
|-
 +
| 1
 +
| <samp>tilesWidth</samp>
 +
| int
 +
| ''7''
 +
| The number of tiles ''wide''(''x'') the building will be when placed on a map. This does not change the size of the image placed, but rather the "walkable" area.
 +
|-
 +
| 2
 +
| <samp>tilesHeight</samp>
 +
| int
 +
| ''4''
 +
| The number of tiles ''high''(''y'') the building will be when placed on a map. This does not change the size of the image placed, but rather the "walkable" area.
 +
|-
 +
| 3
 +
| <samp>humanDoor</samp>
 +
| int
 +
| ''1''
 +
| ''x'' location, in tiles, of the clickable ''human'' door.
 +
|-
 +
| 4
 +
| <samp>humanDoor</samp>
 +
| int
 +
| ''3''
 +
| ''y'' location, in tiles, of the clickable ''human'' door.
 +
|-
 +
| 5
 +
| <samp>animalDoor</samp>
 +
| int
 +
| ''3''
 +
| ''x'' location, in tiles, of the clickable ''animal'' door.
 +
|-
 +
| 6
 +
| <samp>animalDoor</samp>
 +
| int
 +
| ''3''
 +
| ''y'' location, in tiles, of the clickable ''animal'' door.
 +
|-
 +
| 7
 +
| <samp>mapToWarpTo</samp>
 +
| string
 +
| ''Barn''
 +
|
 +
|-
 +
| 8
 +
| <samp>displayName</samp>
 +
| string
 +
| ''Barn''
 +
|
 +
|-
 +
| 9
 +
| <samp>description</samp>
 +
| string
 +
| ''Houses 4 barn-dwelling animals.''
 +
| The description of the building used in locations such as the ''Carpenter's Menu''.
 +
|-
 +
| 10
 +
| <samp>blueprintType</samp>
 +
| string
 +
| ''Buildings''
 +
| Type of BluePrint. The current (as of 1.2.29) types are: <code>Buildings</code>, <code>Upgrades</code>, <code>Decorations</code>, <code>Demolish</code>, <code>Animals</code> though (as of 1.2.29) only <code>Buildings</code>, <code>Upgrades</code>, and <code>Animals</code> are used in code.
 +
|-
 +
| 11
 +
| <samp>nameOfBuildingToUpgrade</samp>
 +
| string
 +
| ''none''
 +
| Only used for <code>Upgrades</code> BluePrint types. This allows you to choose which building/blueprint you want to replace/upgrade.
 
|-
 
|-
| itemsRequired
+
| 12
| 388 350 390 150
+
| <samp>sourceRectForMenuView</samp>
| These are the Items `required` for purchase. It goes <code>ingredientNumber amount</code>. In this case the items are 350 Wood(338) and 150 Stone(390)
+
| int
|}
+
| ''96''
 +
|
 +
|-
 +
| 13
 +
| <samp>sourceRectForMenuView</samp>
 +
| int
 +
| ''96''
 +
|  
 +
|-
 +
| 14
 +
| <samp>maxOccupants</samp>
 +
| int
 +
| ''4''
 +
| Max Number of Animals allowed to be placed in the building.
 +
|-
 +
| 15
 +
| <samp>actionBehavior</samp>
 +
| string
 +
| ''null''
 +
|
 +
|-
 +
| 16
 +
| <samp>namesOfOkBuildingLocations</samp>
 +
| string
 +
| ''Farm''
 +
| Game Locations where this building is allowed to build. The game only uses <code>Farm</code> and as far I can tell (as of 1.2.29) it's never used.
 +
|-
 +
| 17
 +
| <samp>moneyRequired</samp>
 +
| int
 +
| ''6000''
 +
| Amount of money required to purchase from the Carpenter.
 +
|-
 +
| 18
 +
| <samp>magical</samp>
 +
| boolean
 +
| ''false''
 +
| Allow the building to build instantly/magically.
 +
|}</li>
 +
</ul>
 +
 
 +
[[Category:Modding]]
 +
 
 +
[[ru:Модификации:Чертежи]]
105,831

edits