|
@@ -990,6 +990,11 @@ laPropContainer* tnsget_ObjectType(tnsObject* o){
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+tnsObject* tnsget_ObjectRetarget(tnsObject* o, void* unused){
|
|
|
+ if(o && o->PlayDuplicate) return o->PlayDuplicate;
|
|
|
+ return o;
|
|
|
+}
|
|
|
+
|
|
|
void laget_AnimationActionHolderCategory(void* a_unused, laActionHolder* ah, char* copy, char** ptr){
|
|
|
if(ah->CategoryTitle&&ah->CategoryTitle->Ptr) *ptr=ah->CategoryTitle->Ptr;
|
|
|
}
|
|
@@ -1167,6 +1172,8 @@ void la_RegisterTNSProps(){
|
|
|
p = laAddPropertyContainer("tns_world", "World", "3D World Structure", 0,0,sizeof(tnsWorld),tnspost_World,0,1);{
|
|
|
sp = laAddSubGroup(p, "root_objects", "Root Objects", "List of all root objects", "tns_object",0,0,0,-1,0,0,0,0,0,0,offsetof(tnsWorld, RootObjects), 0);
|
|
|
laSubGroupDetachable(sp, tnsget_detached_FirstRootObject, laget_ListNext);
|
|
|
+ sp = laAddSubGroup(p, "root_objects_as_root", "Root Objects", "List of all root objects (in type tns_root_object)", "tns_root_object",0,0,0,-1,0,0,0,0,0,0,offsetof(tnsWorld, RootObjects), LA_UDF_IGNORE);
|
|
|
+ laSubGroupDetachable(sp, tnsget_detached_FirstRootObject, laget_ListNext);
|
|
|
laAddSubGroup(p, "active_root", "Active Root Object", "Global active root object", "tns_object",0,0,0,offsetof(tnsWorld,ActiveRoot),tnsget_detached_FirstRootObject,0,laget_ListNext,0,0,0,0,LA_UDF_REFER);
|
|
|
sp = laAddSubGroup(p, "objects", "Objects", "List of all objects", "tns_object",tnsget_ObjectType, 0,0,-1,0,0,0,0,0,0,offsetof(tnsWorld, AllObjects), 0);
|
|
|
laSubGroupExtraFunctions(sp,tnsfilter_SavableObject,tnsfilter_SavableObject,0,0,0);
|
|
@@ -1221,6 +1228,7 @@ void la_RegisterTNSProps(){
|
|
|
p = laAddPropertyContainer("tns_object", "Object", "3D Object Item", 0,tnsui_BaseObjectProperties,sizeof(tnsObject), tnspost_Object, 0,2);{
|
|
|
TNS_PC_OBJECT_GENERIC=p;
|
|
|
laAddSubGroup(p, "base", "Base", "Object base", "tns_object",0,0,0,-1,laget_Self,0,0,0,0,0,0,LA_UDF_REFER|LA_UDF_IGNORE);
|
|
|
+ laAddSubGroup(p, "__action_retarget__", "Action Retarget", "Get action retargeted instance (play duplicate)", "tns_object",0,0,0,-1,tnsget_ObjectRetarget,0,0,0,0,0,0,LA_UDF_IGNORE);
|
|
|
laAddStringProperty(p, "name", "Object Name", "The Name Of The Object", 0,0,0,0,1, offsetof(tnsObject, Name), 0,0,0,0,LA_AS_IDENTIFIER);
|
|
|
laAddIntProperty(p,"flags","Flags","Flags",0,0,0,0,0,0,0,0,offsetof(tnsObject,Flags),0,0,0,0,0,0,0,0,0,0,LA_READ_ONLY);
|
|
|
ep = laAddEnumProperty(p, "show", "Show", "Show object in the viewport", 0,0,0,0,0,offsetof(tnsObject, Show), 0,0,0,0,0,0,0,0,0,0);{
|
|
@@ -1279,6 +1287,7 @@ void la_RegisterTNSProps(){
|
|
|
laAddEnumItemAs(ep, "2D", "2D", "Root object is in 2D", 1, 0);
|
|
|
}
|
|
|
laAddOperatorProperty(p, "remove_root", "Remove root", "Remove the root node","M_remove_root",L'🗴',0);
|
|
|
+ //laAddSubGroup(p, "as_root_object", "As Root Object", "As root object", "tns_root_object",0,0,0,-1,0,tnsget_ObjectAsRoot,0,0,0,0,0,LA_UDF_REFER|LA_READ_ONLY|LA_UDF_IGNORE);
|
|
|
}
|
|
|
p = laAddPropertyContainer("tns_instancer", "Instancer", "Instance placeholder object", U'📎', tnsui_InstancerObjectProperties,sizeof(tnsInstancer), 0,0,2);{
|
|
|
laPropContainerExtraFunctions(p,0,0,tnstouched_Object,0/*tnspropagate_Object*/,0);
|
|
@@ -2021,6 +2030,10 @@ void la_RegisterInternalProps(){
|
|
|
laAddEnumItemAs(ep, "NONE", "None", "Play this action with", 0,0);
|
|
|
laAddEnumItemAs(ep, "SOLO", "Solo", "Solo play", 1,0);
|
|
|
}
|
|
|
+ ep = laAddEnumProperty(p, "play_by_default", "Auto Play", "Automatically play this animation when player starts", 0,0,0,0,0,offsetof(laAction, PlayByDefault),0,0,0,0,0,0,0,0,0,0);{
|
|
|
+ laAddEnumItemAs(ep, "NONE", "Stop", "Player initialize the animation in stopped state", 0,0);
|
|
|
+ laAddEnumItemAs(ep, "PLAY", "Play", "Animation automatically plays when player starts", 1,0);
|
|
|
+ }
|
|
|
ep = laAddEnumProperty(p, "play_mode", "Play Mode", "How to play this action", 0,0,0,0,0,offsetof(laAction, PlayMode),0,0,0,0,0,0,0,0,0,0);{
|
|
|
laAddEnumItemAs(ep, "REPEAT", "Repeat", "Play action in repeat", LA_ANIMATION_PLAY_MODE_REPEAT, U'⮆');
|
|
|
laAddEnumItemAs(ep, "HOLD", "Hold", "Hold end values when time is outside time range", LA_ANIMATION_PLAY_MODE_HOLD,U'⭲');
|