snake5 icon

SGR Engine editor entity specifications

snake5 | PRO | 10/18/14 03:45:06 PM UTC | 0 ⭐ | 885 👁️ | Never ⏰ | []
JavaScript |

2.9 KB

|

None

|

0 👍

/

0 👎

EDITOR_ENTITY
({
    name = "env_global",
    label = "Global environment",
    params =
    [
        { name = "fog_color", label = "Fog color", type = "vec3", default = vec3(0.5,0.5,0.5) },
        { name = "fog_density", label = "Fog density", type = "float", default = 0.01 },
        { name = "fog_height_density", label = "Fog height density", type = "float", default = 0 },
        { name = "fog_start_height", label = "Fog start height", type = "float", default = 0 },
        { name = "fog_height_factor", label = "Fog height factor", type = "float", default = 0 },
        { name = "ambient_light_color", label = "Ambient light color", type = "vec3", default = vec3(0.1,0.1,0.1) },
    ],
    item_list = function( data )
    {
        fc = data.fog_color;
        alc = @data.ambient_light_color;
        return [{ type = "env",
            fog_color = vec3(fc.x,fc.y,fc.z),
            fog_density = data.fog_density,
            fog_height_density = data.fog_height_density,
            fog_start_height = data.fog_start_height,
            fog_height_factor = data.fog_height_factor,
            ambient_light_color = vec3(alc.x,alc.y,alc.z),
        }];
    },
});
 
EDITOR_ENTITY
({
    name = "static_mesh",
    label = "Static mesh",
    params =
    [
        { name = "position", type = "position" },
        { name = "mesh", type = "path.file.mesh" },
    ],
    item_list = function( data )
    {
        dp = data.position;
        return [{ type = "mesh", src = data.mesh, position = vec3(dp.x,dp.y,dp.z) }];
    },
});
 
EDITOR_ENTITY
({
    name = "point_light",
    label = "Point light",
    params =
    [
        { name = "position", type = "position" },
        { name = "color", type = "vec3", default = vec3(1,1,1) },
        { name = "range", type = "float", default = 100.0 },
        { name = "power", type = "float", default = 1.0 },
        { name = "enabled", type = "bool", default = true },
    ],
    render_wire = function( ctx, data )
    {
    },
    item_list = function( data )
    {
        dp = data.position;
        dc = data.color;
        return [{ type = "point_light", position = vec3(dp.x,dp.y,dp.z), color = vec3(dc.x,dc.y,dc.z), range = data.range, power = data.power, enabled = data.enabled }];
    },
});
 
EDITOR_ENTITY
({
    name = "portal",
    label = "Portal",
    params =
    [
        { name = "x", type = "position.x" },
        { name = "y", type = "position.y" },
        { name = "z", type = "position.z" },
        { name = "d", label = "Diameter", type = "float", default = 2.88 },
        { name = "h", label = "Height", type = "float", default = 18.432 },
    ],
    render_wire = function( ctx, data )
    {
        ctx.DrawCapsule( data.x, data.y, data.z - data.h * 0.5, data.x, data.y, data.z + data.h * 0.5, data.d * 0.5 );
        ctx.DrawLine( data.x, data.y, data.z - data.h * 0.5, data.x, data.y, data.z + data.h * 0.5 );
    },
    item_list = function( data )
    {
        r = data.d / 2;
        return
        [
            { type = "mesh", src = "portal", position = vec3(data.x,data.y,data.z-data.h*0.5), scale = vec3(r,r,1) },
            { type = "mesh", src = "portal", position = vec3(data.x,data.y,data.z+data.h*0.5), scale = vec3(r,r,1) },
        ];
    },
});

Comments