mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
Updated terrain/river/road schema, added docs
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
"shortIdentifier" :
|
"shortIdentifier" :
|
||||||
{
|
{
|
||||||
"type" : "string",
|
"type" : "string",
|
||||||
"description" : "Two-letters unique indentifier for this road. Used in map format"
|
"description" : "Two-letters unique indentifier for this river. Used in map format"
|
||||||
},
|
},
|
||||||
"text" :
|
"text" :
|
||||||
{
|
{
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
},
|
},
|
||||||
"paletteAnimation" : {
|
"paletteAnimation" : {
|
||||||
"type" : "array",
|
"type" : "array",
|
||||||
"description" : "If defined, terrain will be animated using palette color cycling effect",
|
"description" : "If defined, river will be animated using palette color cycling effect",
|
||||||
"items" :
|
"items" :
|
||||||
{
|
{
|
||||||
"type" : "object",
|
"type" : "object",
|
||||||
|
@@ -22,7 +22,7 @@
|
|||||||
"description" : "Type of this terrain. Can be land, water, subterranean or rock",
|
"description" : "Type of this terrain. Can be land, water, subterranean or rock",
|
||||||
"items" :
|
"items" :
|
||||||
{
|
{
|
||||||
"enum" : ["LAND", "WATER", "SUB", "ROCK", "SURFACE"],
|
"enum" : ["WATER", "SUB", "ROCK", "SURFACE"],
|
||||||
"type" : "string"
|
"type" : "string"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
"battleFields" :
|
"battleFields" :
|
||||||
{
|
{
|
||||||
"type" : "array",
|
"type" : "array",
|
||||||
"description" : "array of battleFields for this terrain",
|
"description" : "List of battleFields that can be used on this terrain",
|
||||||
"items" :
|
"items" :
|
||||||
{
|
{
|
||||||
"type" : "string"
|
"type" : "string"
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
"minimapUnblocked" :
|
"minimapUnblocked" :
|
||||||
{
|
{
|
||||||
"type" : "array",
|
"type" : "array",
|
||||||
"description" : "Color of terrain on minimap without unpassable objects",
|
"description" : "Color of terrain on minimap without unpassable objects. RGB triplet, 0-255 range",
|
||||||
"minItems" : 3,
|
"minItems" : 3,
|
||||||
"maxItems" : 3,
|
"maxItems" : 3,
|
||||||
"items" :
|
"items" :
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
"minimapBlocked" :
|
"minimapBlocked" :
|
||||||
{
|
{
|
||||||
"type" : "array",
|
"type" : "array",
|
||||||
"description" : "Color of terrain on minimap with unpassable objects",
|
"description" : "Color of terrain on minimap with unpassable objects. RGB triplet, 0-255 range",
|
||||||
"minItems" : 3,
|
"minItems" : 3,
|
||||||
"maxItems" : 3,
|
"maxItems" : 3,
|
||||||
"items" :
|
"items" :
|
||||||
@@ -104,14 +104,14 @@
|
|||||||
"sounds" :
|
"sounds" :
|
||||||
{
|
{
|
||||||
"type" : "object",
|
"type" : "object",
|
||||||
"description" : "list of sounds for this terrain",
|
"description" : "List of sounds for this terrain",
|
||||||
"additionalProperties" : false,
|
"additionalProperties" : false,
|
||||||
"properties" :
|
"properties" :
|
||||||
{
|
{
|
||||||
"ambient" :
|
"ambient" :
|
||||||
{
|
{
|
||||||
"type" : "array",
|
"type" : "array",
|
||||||
"description" : "list of ambient sounds for this terrain",
|
"description" : "List of ambient sounds for this terrain",
|
||||||
"items" :
|
"items" :
|
||||||
{
|
{
|
||||||
"type" : "string",
|
"type" : "string",
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
"prohibitTransitions" :
|
"prohibitTransitions" :
|
||||||
{
|
{
|
||||||
"type" : "array",
|
"type" : "array",
|
||||||
"description" : "array or terrain names, which is prohibited to make transition from/to",
|
"description" : "List or terrain names, which is prohibited to make transition from/to",
|
||||||
"items" :
|
"items" :
|
||||||
{
|
{
|
||||||
"type" : "string"
|
"type" : "string"
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
"terrainViewPatterns" :
|
"terrainViewPatterns" :
|
||||||
{
|
{
|
||||||
"type" : "string",
|
"type" : "string",
|
||||||
"description" : "Can be normal, dirt, water, rock"
|
"description" : "Represents layout of tile orientations in terrain tiles file"
|
||||||
},
|
},
|
||||||
"index" :
|
"index" :
|
||||||
{
|
{
|
||||||
|
@@ -1,3 +1,31 @@
|
|||||||
< [Documentation](../../Readme.md) / [Modding](../Readme.md) / Entities Format / River Format
|
< [Documentation](../../Readme.md) / [Modding](../Readme.md) / Entities Format / River Format
|
||||||
|
|
||||||
TODO
|
## Format
|
||||||
|
|
||||||
|
```jsonc
|
||||||
|
"newRiver" :
|
||||||
|
{
|
||||||
|
// Two-letters unique indentifier for this river. Used in map format
|
||||||
|
"shortIdentifier" : "mr",
|
||||||
|
|
||||||
|
// Human-readable name of the river
|
||||||
|
"text" : "My Road",
|
||||||
|
|
||||||
|
// Name of file with river graphics
|
||||||
|
"tilesFilename" : "myRiver.def"
|
||||||
|
|
||||||
|
// Name of file with river delta graphics
|
||||||
|
// TODO: describe how exactly to use this tricky field
|
||||||
|
"delta" : "",
|
||||||
|
|
||||||
|
// If defined, river will be animated using palette color cycling effect
|
||||||
|
// Game will cycle "length" colors starting from "start" (zero-based index) on each animation update every 180ms
|
||||||
|
// Color numbering uses palette color indexes, as seen in image editor
|
||||||
|
// Note that some tools for working with .def files may reorder palette.
|
||||||
|
// To avoid this, it is possible to use json with indexed png images instead of def files
|
||||||
|
"paletteAnimation" : [
|
||||||
|
{ "start" : 10, "length" : 5 },
|
||||||
|
...
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
@@ -1,3 +1,20 @@
|
|||||||
< [Documentation](../../Readme.md) / [Modding](../Readme.md) / Entities Format / Road Format
|
< [Documentation](../../Readme.md) / [Modding](../Readme.md) / Entities Format / Road Format
|
||||||
|
|
||||||
TODO
|
## Format
|
||||||
|
|
||||||
|
```jsonc
|
||||||
|
"newRoad" :
|
||||||
|
{
|
||||||
|
// Two-letters unique indentifier for this road. Used in map format
|
||||||
|
"shortIdentifier" : "mr",
|
||||||
|
|
||||||
|
// Human-readable name of the road
|
||||||
|
"text" : "My Road",
|
||||||
|
|
||||||
|
// Name of file with road graphics
|
||||||
|
"tilesFilename" : "myRoad.def"
|
||||||
|
|
||||||
|
// How many movement points needed to move hero
|
||||||
|
"moveCost" : 66
|
||||||
|
}
|
||||||
|
```
|
@@ -1,3 +1,78 @@
|
|||||||
< [Documentation](../../Readme.md) / [Modding](../Readme.md) / Entities Format / Terrain Format
|
< [Documentation](../../Readme.md) / [Modding](../Readme.md) / Entities Format / Terrain Format
|
||||||
|
|
||||||
TODO
|
## Format
|
||||||
|
|
||||||
|
```jsonc
|
||||||
|
"newTerrain" :
|
||||||
|
{
|
||||||
|
// Two-letters unique indentifier for this terrain. Used in map format
|
||||||
|
"shortIdentifier" : "mt",
|
||||||
|
|
||||||
|
// Human-readable name of the terrain
|
||||||
|
"text" : "My Road",
|
||||||
|
|
||||||
|
// Type(s) of this terrain.
|
||||||
|
// WATER - this terrain is water-like terrains that requires boat for movement
|
||||||
|
// ROCK - this terrain is unpassable "rock" terrain that is used for inacessible parts of underground layer
|
||||||
|
// SUB - this terrain can be placed in underground map layer by RMG
|
||||||
|
// SURFACE - this terrain can be placed in surface map layer by RMG
|
||||||
|
"type" : [ "WATER", "SUB", "ROCK", "SURFACE" ],
|
||||||
|
|
||||||
|
// Name of file with road graphics
|
||||||
|
"tiles" : "myRoad.def",
|
||||||
|
|
||||||
|
// How many movement points needed to move hero on this terrain
|
||||||
|
"moveCost" : 150,
|
||||||
|
|
||||||
|
// The name of rock type terrain which will be used as borders in the underground
|
||||||
|
// By default, H3 terrain "rock" will be used
|
||||||
|
"rockTerrain" : "rock",
|
||||||
|
|
||||||
|
// River type which should be used for that terrain
|
||||||
|
"river" : "",
|
||||||
|
|
||||||
|
// If defined, terrain will be animated using palette color cycling effect
|
||||||
|
// Game will cycle "length" colors starting from "start" (zero-based index) on each animation update every 180ms
|
||||||
|
// Color numbering uses palette color indexes, as seen in image editor
|
||||||
|
// Note that some tools for working with .def files may reorder palette.
|
||||||
|
// To avoid this, it is possible to use json with indexed png images instead of def files
|
||||||
|
"paletteAnimation" : [
|
||||||
|
{ "start" : 10, "length" : 5 },
|
||||||
|
...
|
||||||
|
],
|
||||||
|
|
||||||
|
// List of battleFields that can be used on this terrain
|
||||||
|
"battleFields" : [ ]
|
||||||
|
|
||||||
|
// Color of terrain on minimap without unpassable objects. RGB triplet, 0-255 range
|
||||||
|
"minimapUnblocked" : [ 150, 100, 50 ],
|
||||||
|
|
||||||
|
// Color of terrain on minimap with unpassable objects. RGB triplet, 0-255 range
|
||||||
|
"minimapBlocked" : [ 150, 100, 50 ],
|
||||||
|
|
||||||
|
// Music filename to play on this terrain on adventure map
|
||||||
|
"music" : "",
|
||||||
|
|
||||||
|
"sounds" : {
|
||||||
|
// List of ambient sounds for this terrain
|
||||||
|
"ambient" : [ "" ]
|
||||||
|
},
|
||||||
|
|
||||||
|
// Hero movement sound for this terrain, version for moving on tiles with road
|
||||||
|
"horseSound" : "",
|
||||||
|
|
||||||
|
// Hero movement sound for this terrain, version for moving on tiles without road
|
||||||
|
"horseSoundPenalty" : "",
|
||||||
|
|
||||||
|
// List or terrain names, which is prohibited to make transition from/to
|
||||||
|
"prohibitTransitions" : [ "" ],
|
||||||
|
|
||||||
|
// If sand/dirt transition required from/to other terrains
|
||||||
|
"transitionRequired" : false,
|
||||||
|
|
||||||
|
// Represents layout of tile orientations in terrain tiles file
|
||||||
|
// Can be normal, dirt, water, rock, or hota
|
||||||
|
"terrainViewPatterns" : "",
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
@@ -58,7 +58,6 @@ TerrainType * TerrainTypeHandler::loadFromJson( const std::string & scope, const
|
|||||||
{
|
{
|
||||||
//Set bits
|
//Set bits
|
||||||
const auto & s = node.String();
|
const auto & s = node.String();
|
||||||
if (s == "LAND") info->passabilityType |= TerrainType::PassabilityType::LAND;
|
|
||||||
if (s == "WATER") info->passabilityType |= TerrainType::PassabilityType::WATER;
|
if (s == "WATER") info->passabilityType |= TerrainType::PassabilityType::WATER;
|
||||||
if (s == "ROCK") info->passabilityType |= TerrainType::PassabilityType::ROCK;
|
if (s == "ROCK") info->passabilityType |= TerrainType::PassabilityType::ROCK;
|
||||||
if (s == "SURFACE") info->passabilityType |= TerrainType::PassabilityType::SURFACE;
|
if (s == "SURFACE") info->passabilityType |= TerrainType::PassabilityType::SURFACE;
|
||||||
|
@@ -44,7 +44,7 @@ class DLL_LINKAGE TerrainType : public EntityT<TerrainId>
|
|||||||
|
|
||||||
enum PassabilityType : ui8
|
enum PassabilityType : ui8
|
||||||
{
|
{
|
||||||
LAND = 1,
|
//LAND = 1,
|
||||||
WATER = 2,
|
WATER = 2,
|
||||||
SURFACE = 4,
|
SURFACE = 4,
|
||||||
SUBTERRANEAN = 8,
|
SUBTERRANEAN = 8,
|
||||||
|
Reference in New Issue
Block a user