Confirmedusers, editor, Administrators
886
edits
CreativeMD (talk | contribs) No edit summary |
CreativeMD (talk | contribs) No edit summary |
||
Line 47: | Line 47: | ||
=== Client === | === Client === | ||
The client type has different properties for client and server. This will cover the client side: | The client type has different properties for client and server. This will cover the client side (rendering, shape, texture): | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
"client": { | "client": { | ||
"renderer": "Shape", // | "renderer": "Shape", // How the entity will be rendered, "Shape" is the right one in almost all cases. | ||
"shape": { "base": "entity/land/littlefigure" }, // a path to our shape | "shape": { "base": "entity/land/littlefigure" }, // a path to our shape | ||
"texture": { "base": "game:block/wood/planks/birch1" }, // the figure should have the texture of birch wood. Therefore the prefix "game" is needed | "texture": { "base": "game:block/wood/planks/birch1" }, // the figure should have the texture of birch wood. Therefore the prefix "game" is needed | ||
Line 57: | Line 57: | ||
{ "code": "repulseagents" }, | { "code": "repulseagents" }, | ||
{ | { | ||
"code": "controlledphysics", | "code": "controlledphysics", // Adds physics to the entity | ||
"stepHeight": 0.2 | "stepHeight": 0.2 | ||
}, | }, | ||
{ | { | ||
"code": "floatupwhenstuck", | "code": "floatupwhenstuck", // Fixes corpse get stuck in ground | ||
"onlyWhenDead": true | "onlyWhenDead": true | ||
}, | }, | ||
{ "code": "interpolateposition" } | { "code": "interpolateposition" } // Smooths out movement of entity | ||
], | ], | ||
"animations": [ | "animations": [ // Animations which have to be implemented by the shape as well | ||
{ | { | ||
"code": "hurt", | "code": "hurt", | ||
Line 87: | Line 87: | ||
=== Server === | === Server === | ||
The server side handles the "brain" of the entity. | |||
<syntaxhighlight lang="c#"> | |||
"server": { | "server": { | ||
"behaviors": [ | "behaviors": [ | ||
{ "code": "repulseagents" }, | { "code": "repulseagents" }, | ||
{ | { | ||
"code": "controlledphysics", | "code": "controlledphysics", // Adds physic interaction | ||
"stepHeight": 0.2 | "stepHeight": 0.2 | ||
}, | }, | ||
{ | { | ||
"code": "health", | "code": "health", // Adds a health bar to the entity | ||
"currenthealth": 4, | "currenthealth": 4, | ||
"maxhealth": 4 | "maxhealth": 4 | ||
}, | }, | ||
{ | { | ||
"code": "deaddecay", | "code": "deaddecay", // Makes the dead entity stay for one hour | ||
"hoursToDecay": 1 | "hoursToDecay": 1 | ||
}, | }, | ||
{ | { | ||
"code": "floatupwhenstuck", | "code": "floatupwhenstuck", // Fixes corpse get stuck in ground | ||
"onlyWhenDead": true | "onlyWhenDead": true | ||
}, | }, | ||
{ | { | ||
"code": "despawn", | "code": "despawn", // Makes the entity despawn if there is no player within 48 blocks | ||
"minPlayerDistance": 48, | "minPlayerDistance": 48, | ||
"minSeconds": 5 | "minSeconds": 5 | ||
}, | }, | ||
{ | { | ||
"code": "emotionstates", | "code": "emotionstates", // Adds different emotion states | ||
"states": [ | "states": [ | ||
{ | { | ||
"code": "fleeondamage", | "code": "fleeondamage", // After the entity is hit it will try to flee for 10 seconds | ||
"duration": 10, | "duration": 10, | ||
"chance": 0.2, | "chance": 0.2, | ||
Line 126: | Line 129: | ||
}, | }, | ||
{ | { | ||
"code": "taskai", | "code": "taskai", // Handles what the entity does, a task will be processed one at a time | ||
"aitasks": [ | "aitasks": [ | ||
{ | { | ||
"code": "idle", | "code": "idle", // the figure will stand still and think | ||
"priority": 1.2, | "priority": 1.2, | ||
"priorityForCancel": 1.35, | "priorityForCancel": 1.35, | ||
Line 143: | Line 146: | ||
}, | }, | ||
{ | { | ||
"code": "wander", | "code": "wander", // The entity will walk around | ||
"priority": 1.0, | "priority": 1.0, | ||
"movespeed": 0.008, | "movespeed": 0.008, | ||
Line 151: | Line 154: | ||
}, | }, | ||
{ | { | ||
"code": "lookaround", | "code": "lookaround", // The entity will look around | ||
"priority": 0.5 | "priority": 0.5 | ||
} | } | ||
Line 158: | Line 161: | ||
] | ] | ||
}, | }, | ||
</syntaxhighlight> | |||
=== Result === | === Result === | ||
If we put everything together it should look like this: | |||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> |