Confirmedusers
536
edits
CreativeMD (talk | contribs) (→Shape) |
m (Updated navbox to new content navbox.) |
||
(17 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
__FORCETOC__ | __FORCETOC__ | ||
We highly recommend to read | {{GameVersion|uknown}} | ||
<languages/><translate> | |||
<!--T:1--> | |||
We highly recommend to read about {{ll|Modding:Asset_System#Domains|domains}} first. This tutorial will cover the basics of adding an entity to the game using JSON files. There is a full list of all properties which can be defined inside the json file {{ll|Modding:Entity Json Properties|here}}. | |||
= Little Figure = | = Little Figure = <!--T:2--> | ||
<!--T:3--> | |||
The idea is create a little passive figure, made out of wood. The modid of our mod will be <code>figure</code>. | The idea is create a little passive figure, made out of wood. The modid of our mod will be <code>figure</code>. | ||
== EntityType == | == EntityType == <!--T:4--> | ||
=== Common === | === Common === <!--T:5--> | ||
<!--T:6--> | |||
So first of all we have to create the entity type file <code>assets/figure/entities/land/littlefigure.json</code>. Now we go through all the properties: | So first of all we have to create the entity type file <code>assets/figure/entities/land/littlefigure.json</code>. Now we go through all the properties: | ||
<!--T:7--> | |||
<code>code</code>: The unique identifier for your entity. A prefix of your mod id will be added automatically. Our case its <code>figure:littlefigure</code>. | <code>code</code>: The unique identifier for your entity. A prefix of your mod id will be added automatically. Our case its <code>figure:littlefigure</code>. | ||
<!--T:8--> | |||
<code>class</code>: The class of the entity, it can be used to program special features for it. We don't need it at the moment, so we set it to <code>EntityAgent</code>. | <code>class</code>: The class of the entity, it can be used to program special features for it. We don't need it at the moment, so we set it to <code>EntityAgent</code>. | ||
<!--T:9--> | |||
<code>hitboxSize</code>: The size of the hitbox. | <code>hitboxSize</code>: The size of the hitbox. | ||
<syntaxhighlight lang=" | <!--T:10--> | ||
<syntaxhighlight lang="json"> | |||
"hitboxSize": { | "hitboxSize": { | ||
"x": 0.4, | "x": 0.4, | ||
Line 26: | Line 35: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:11--> | |||
<code>deadHitboxSize</code>: The size of the hitbox when the entity has died. | <code>deadHitboxSize</code>: The size of the hitbox when the entity has died. | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="json"> | ||
"deadHitboxSize": { | "deadHitboxSize": { | ||
"x": 0.4, | "x": 0.4, | ||
Line 34: | Line 44: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:12--> | |||
<code>eyeHeight</code>: The height of the eyes, which is <code>0.4</code> for the little figure. | <code>eyeHeight</code>: The height of the eyes, which is <code>0.4</code> for the little figure. | ||
<!--T:13--> | |||
<code>drops</code>: A list of items to be dropped (can also include chances). We leave it empty for now: <code>[]</code>. | <code>drops</code>: A list of items to be dropped (can also include chances). We leave it empty for now: <code>[]</code>. | ||
<!--T:14--> | |||
<code>sounds</code>: Set the sounds for the entity | <code>sounds</code>: Set the sounds for the entity | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="json"> | ||
"hurt": "creature/figure-hurt", | "hurt": "creature/figure-hurt", | ||
"death": "creature/figure-death", | "death": "creature/figure-death", | ||
Line 45: | Line 58: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Client === | === Client === <!--T:15--> | ||
The client type has different properties for client and server. This will cover the client side (rendering, shape, texture) | <!--T:16--> | ||
The client type has different properties for client and server. This will cover the client side (rendering, shape, texture) | |||
<!--T:17--> | |||
(please note that // comments are actually not a valid json syntax, so if you want to use this json code in your projects, you'd have to remove these first) | |||
</translate> | |||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
"client": { | "client": { | ||
Line 123: | Line 140: | ||
"chance": 0.2, | "chance": 0.2, | ||
"slot": 0, | "slot": 0, | ||
" | "priority": 1, | ||
"accumType": "max" | "accumType": "max" | ||
} | } | ||
Line 247: | Line 264: | ||
"chance": 0.2, | "chance": 0.2, | ||
"slot": 0, | "slot": 0, | ||
" | "priority": 1, | ||
"accumType": "max" | "accumType": "max" | ||
} | } | ||
Line 296: | Line 313: | ||
If you want to know how to create the shape for the entity I suggest you checkout [[VS Model Creator]]. | If you want to know how to create the shape for the entity I suggest you checkout [[VS Model Creator]]. | ||
== Item == | |||
In order to spawn the entity we can create an item to do so: | |||
<syntaxhighlight lang="c#"> | |||
{ | |||
"code": "creature", | |||
"class": "ItemCreature", | |||
"maxstacksize": 64, | |||
"variantgroups": [ | |||
{ | |||
"code": "type", | |||
"states": [ "littlefigure" ] | |||
} | |||
], | |||
"shape": { | |||
"base": "figure:entity/land/littlefigure" | |||
}, | |||
"texture": { "base": "game:block/wood/planks/birch1" }, | |||
"creativeinventory": { | |||
"general": [ "*" ], | |||
"items": [ "*" ], | |||
"creatures": [ "*" ] | |||
}, | |||
"materialDensity": 600, | |||
"guiTransform": { | |||
"rotation": { | |||
"x": 0, | |||
"y": -90, | |||
"z": -180 | |||
}, | |||
"origin": { | |||
"x": 0.5, | |||
"y": 0.15, | |||
"z": 0.5 | |||
}, | |||
"scale": 6 | |||
}, | |||
"fpHandTransform": { | |||
"rotation": { | |||
"x": 0, | |||
"y": -90, | |||
"z": 0 | |||
}, | |||
"origin": { | |||
"x": 0.5, | |||
"y": 0.15, | |||
"z": 0.5 | |||
}, | |||
"scale": 6 | |||
}, | |||
"groundTransform": { | |||
"translation": { | |||
"x": 0, | |||
"y": 0.15, | |||
"z": 0 | |||
}, | |||
"rotation": { | |||
"x": 0, | |||
"y": -90, | |||
"z": 0 | |||
}, | |||
"origin": { | |||
"x": 0.5, | |||
"y": 0.15, | |||
"z": 0.5 | |||
}, | |||
"scale": 6 | |||
} | |||
} | |||
</syntaxhighlight> | |||
== Testing/ Distribution == | == Testing/ Distribution == | ||
<youtube>Ci9CB0fnK7U</youtube> | |||
Download [https://wiki.vintagestory.at/images/d/d8/Figure_v1.0.0.zip Figure v1.0.0] for VintageStory 1.8 | |||
{{Navbox/ | {{Navbox/contentmodding}} |