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