From: hgn Date: Mon, 27 Nov 2023 13:39:13 +0000 (+0000) Subject: fixed time worldinfo X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=2c38f7b8f422374c4c46c5b636a7275b61876192;p=carveJwlIkooP6JGAAIwe30JlM.git fixed time worldinfo --- diff --git a/blender_export.py b/blender_export.py index 168f023..30b1fe9 100644 --- a/blender_export.py +++ b/blender_export.py @@ -484,7 +484,8 @@ class ent_worldinfo(Structure): ("pstr_author",c_uint32), # unused ("pstr_desc",c_uint32), # unused ("timezone",c_float), - ("pstr_skybox",c_uint32)] + ("pstr_skybox",c_uint32), + ("flags",c_uint32)] #} class ent_ccmd(Structure): @@ -1936,7 +1937,17 @@ def sr_compile( collection ): worldinfo.pstr_name = sr_compile_string( obj_data.name ) worldinfo.pstr_author = sr_compile_string( obj_data.author ) worldinfo.pstr_desc = sr_compile_string( obj_data.desc ) - worldinfo.timezone = obj_data.timezone + + flags = 0x00 + + if obj_data.fix_time:#{ + worldinfo.timezone = obj_data.fixed_time + flags |= 0x1 + #} + else: + worldinfo.timezone = obj_data.timezone + + worldinfo.flags = flags worldinfo.pstr_skybox = sr_compile_string( obj_data.skybox ) sr_ent_push( worldinfo ) #} @@ -3411,8 +3422,24 @@ class SR_OBJECT_ENT_WORLD_INFO(bpy.types.PropertyGroup): name: bpy.props.StringProperty(name="Name") desc: bpy.props.StringProperty(name="Description") author: bpy.props.StringProperty(name="Author") - timezone: bpy.props.FloatProperty(name="Timezone(hrs) (UTC0 +hrs)") skybox: bpy.props.StringProperty(name="Skybox") + + fix_time: bpy.props.BoolProperty(name="Fix Time") + timezone: bpy.props.FloatProperty(name="Timezone(hrs) (UTC0 +hrs)") + fixed_time: bpy.props.FloatProperty(name="Fixed Time (0-1)") + + @staticmethod + def sr_inspector( layout, data ):#{ + layout.prop( data[0], 'name' ) + layout.prop( data[0], 'desc' ) + layout.prop( data[0], 'author' ) + + layout.prop( data[0], 'fix_time' ) + if data[0].fix_time: + layout.prop( data[0], 'fixed_time' ) + else: + layout.prop( data[0], 'timezone' ) + #} #} class SR_OBJECT_ENT_CCMD(bpy.types.PropertyGroup): diff --git a/entity.h b/entity.h index 1033807..ce14816 100644 --- a/entity.h +++ b/entity.h @@ -407,6 +407,7 @@ struct ent_worldinfo{ u32 pstr_name, pstr_author, pstr_desc; f32 timezone; u32 pstr_skybox; + u32 flags; }; static ent_marker *ent_find_marker( mdl_context *mdl, diff --git a/world_load.c b/world_load.c index f196c26..3dce028 100644 --- a/world_load.c +++ b/world_load.c @@ -90,6 +90,7 @@ static void world_instance_load_mdl( u32 instance_id, const char *path ){ world->info.pstr_desc = 0; world->info.pstr_name = 0; world->info.timezone = 0.0f; + world->info.flags = 0; } time_t seconds = time(NULL) % ((u32)vg_maxf(1.0f,k_day_length)*60); diff --git a/world_render.c b/world_render.c index 2542ce3..990a1ab 100644 --- a/world_render.c +++ b/world_render.c @@ -852,6 +852,10 @@ static void world_prerender( world_instance *world ){ world->time = 0.834; } + if( world->info.flags & 0x1 ){ + world->time = world->info.timezone; + } + struct ub_world_lighting *state = &world->ub_lighting; state->g_time = world->time;