Commit 22817dd 1 parent 5b2764e commit 22817dd Copy full SHA for 22817dd
File tree 36 files changed +155
-102
lines changed
scripts/data/integration_tests/test_lua_api
36 files changed +155
-102
lines changed Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadacti.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -49,9 +51,7 @@ namespace MWLua
49
51
record[" id" ]
50
52
= sol::readonly_property ([](const ESM::Activator& rec) -> std::string { return rec.mId .serializeText (); });
51
53
record[" name" ] = sol::readonly_property ([](const ESM::Activator& rec) -> std::string { return rec.mName ; });
52
- record[" model" ] = sol::readonly_property ([](const ESM::Activator& rec) -> std::string {
53
- return Misc::ResourceHelpers::correctMeshPath (rec.mModel );
54
- });
54
+ addModelProperty (record);
55
55
record[" mwscript" ] = sol::readonly_property ([](const ESM::Activator& rec) -> sol::optional<std::string> {
56
56
return LuaUtil::serializeRefId (rec.mScript );
57
57
});
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadappa.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -39,9 +41,7 @@ namespace MWLua
39
41
record[" id" ]
40
42
= sol::readonly_property ([](const ESM::Apparatus& rec) -> std::string { return rec.mId .serializeText (); });
41
43
record[" name" ] = sol::readonly_property ([](const ESM::Apparatus& rec) -> std::string { return rec.mName ; });
42
- record[" model" ] = sol::readonly_property ([](const ESM::Apparatus& rec) -> std::string {
43
- return Misc::ResourceHelpers::correctMeshPath (rec.mModel );
44
- });
44
+ addModelProperty (record);
45
45
record[" mwscript" ] = sol::readonly_property ([](const ESM::Apparatus& rec) -> sol::optional<std::string> {
46
46
return LuaUtil::serializeRefId (rec.mScript );
47
47
});
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadarmo.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -96,8 +98,7 @@ namespace MWLua
96
98
record[" id" ]
97
99
= sol::readonly_property ([](const ESM::Armor& rec) -> std::string { return rec.mId .serializeText (); });
98
100
record[" name" ] = sol::readonly_property ([](const ESM::Armor& rec) -> std::string { return rec.mName ; });
99
- record[" model" ] = sol::readonly_property (
100
- [](const ESM::Armor& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
101
+ addModelProperty (record);
101
102
record[" icon" ] = sol::readonly_property ([vfs](const ESM::Armor& rec) -> std::string {
102
103
return Misc::ResourceHelpers::correctIconPath (rec.mIcon , vfs);
103
104
});
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
- #include < components/misc/strings/algorithm.hpp>
4
- #include < components/misc/strings/lower.hpp>
3
+ #include " modelproperty.hpp"
5
4
6
5
#include < components/esm3/loadbook.hpp>
7
6
#include < components/esm3/loadskil.hpp>
8
7
#include < components/lua/luastate.hpp>
9
8
#include < components/lua/util.hpp>
10
9
#include < components/misc/resourcehelpers.hpp>
10
+ #include < components/misc/strings/algorithm.hpp>
11
+ #include < components/misc/strings/lower.hpp>
11
12
#include < components/resource/resourcesystem.hpp>
12
13
13
14
#include " apps/openmw/mwbase/environment.hpp"
@@ -104,8 +105,7 @@ namespace MWLua
104
105
record[" id" ]
105
106
= sol::readonly_property ([](const ESM::Book& rec) -> std::string { return rec.mId .serializeText (); });
106
107
record[" name" ] = sol::readonly_property ([](const ESM::Book& rec) -> std::string { return rec.mName ; });
107
- record[" model" ] = sol::readonly_property (
108
- [](const ESM::Book& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
108
+ addModelProperty (record);
109
109
record[" mwscript" ] = sol::readonly_property (
110
110
[](const ESM::Book& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId (rec.mScript ); });
111
111
record[" icon" ] = sol::readonly_property ([vfs](const ESM::Book& rec) -> std::string {
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadclot.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -91,8 +93,7 @@ namespace MWLua
91
93
record[" id" ]
92
94
= sol::readonly_property ([](const ESM::Clothing& rec) -> std::string { return rec.mId .serializeText (); });
93
95
record[" name" ] = sol::readonly_property ([](const ESM::Clothing& rec) -> std::string { return rec.mName ; });
94
- record[" model" ] = sol::readonly_property (
95
- [](const ESM::Clothing& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
96
+ addModelProperty (record);
96
97
record[" icon" ] = sol::readonly_property ([vfs](const ESM::Clothing& rec) -> std::string {
97
98
return Misc::ResourceHelpers::correctIconPath (rec.mIcon , vfs);
98
99
});
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadcont.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -49,9 +51,7 @@ namespace MWLua
49
51
record[" id" ]
50
52
= sol::readonly_property ([](const ESM::Container& rec) -> std::string { return rec.mId .serializeText (); });
51
53
record[" name" ] = sol::readonly_property ([](const ESM::Container& rec) -> std::string { return rec.mName ; });
52
- record[" model" ] = sol::readonly_property ([](const ESM::Container& rec) -> std::string {
53
- return Misc::ResourceHelpers::correctMeshPath (rec.mModel );
54
- });
54
+ addModelProperty (record);
55
55
record[" mwscript" ] = sol::readonly_property ([](const ESM::Container& rec) -> sol::optional<std::string> {
56
56
return LuaUtil::serializeRefId (rec.mScript );
57
57
});
Original file line number Diff line number Diff line change
1
+ #include " types.hpp"
2
+
1
3
#include " ../stats.hpp"
2
4
#include " actor.hpp"
3
- #include " types .hpp"
5
+ #include " modelproperty .hpp"
4
6
5
7
#include < components/esm3/loadcrea.hpp>
6
8
#include < components/lua/luastate.hpp>
@@ -37,8 +39,7 @@ namespace MWLua
37
39
record[" id" ]
38
40
= sol::readonly_property ([](const ESM::Creature& rec) -> std::string { return rec.mId .serializeText (); });
39
41
record[" name" ] = sol::readonly_property ([](const ESM::Creature& rec) -> std::string { return rec.mName ; });
40
- record[" model" ] = sol::readonly_property (
41
- [](const ESM::Creature& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
42
+ addModelProperty (record);
42
43
record[" mwscript" ] = sol::readonly_property ([](const ESM::Creature& rec) -> sol::optional<std::string> {
43
44
return LuaUtil::serializeRefId (rec.mScript );
44
45
});
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include " ../localscripts.hpp"
4
6
5
7
#include < components/esm3/loaddoor.hpp>
@@ -107,8 +109,7 @@ namespace MWLua
107
109
record[" id" ]
108
110
= sol::readonly_property ([](const ESM::Door& rec) -> std::string { return rec.mId .serializeText (); });
109
111
record[" name" ] = sol::readonly_property ([](const ESM::Door& rec) -> std::string { return rec.mName ; });
110
- record[" model" ] = sol::readonly_property (
111
- [](const ESM::Door& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
112
+ addModelProperty (record);
112
113
record[" mwscript" ] = sol::readonly_property (
113
114
[](const ESM::Door& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId (rec.mScript ); });
114
115
record[" openSound" ] = sol::readonly_property (
@@ -145,8 +146,7 @@ namespace MWLua
145
146
record[" id" ] = sol::readonly_property (
146
147
[](const ESM4::Door& rec) -> std::string { return ESM::RefId (rec.mId ).serializeText (); });
147
148
record[" name" ] = sol::readonly_property ([](const ESM4::Door& rec) -> std::string { return rec.mFullName ; });
148
- record[" model" ] = sol::readonly_property (
149
- [](const ESM4::Door& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
149
+ addModelProperty (record);
150
150
record[" isAutomatic" ] = sol::readonly_property (
151
151
[](const ESM4::Door& rec) -> bool { return rec.mDoorFlags & ESM4::Door::Flag_AutomaticDoor; });
152
152
}
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadalch.hpp>
4
6
#include < components/esm3/loadingr.hpp>
5
7
#include < components/lua/luastate.hpp>
@@ -31,9 +33,7 @@ namespace MWLua
31
33
record[" id" ]
32
34
= sol::readonly_property ([](const ESM::Ingredient& rec) -> std::string { return rec.mId .serializeText (); });
33
35
record[" name" ] = sol::readonly_property ([](const ESM::Ingredient& rec) -> std::string { return rec.mName ; });
34
- record[" model" ] = sol::readonly_property ([](const ESM::Ingredient& rec) -> std::string {
35
- return Misc::ResourceHelpers::correctMeshPath (rec.mModel );
36
- });
36
+ addModelProperty (record);
37
37
record[" mwscript" ] = sol::readonly_property ([](const ESM::Ingredient& rec) -> sol::optional<std::string> {
38
38
return LuaUtil::serializeRefId (rec.mScript );
39
39
});
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadligh.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -90,8 +92,7 @@ namespace MWLua
90
92
record[" id" ]
91
93
= sol::readonly_property ([](const ESM::Light& rec) -> std::string { return rec.mId .serializeText (); });
92
94
record[" name" ] = sol::readonly_property ([](const ESM::Light& rec) -> std::string { return rec.mName ; });
93
- record[" model" ] = sol::readonly_property (
94
- [](const ESM::Light& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
95
+ addModelProperty (record);
95
96
record[" icon" ] = sol::readonly_property ([vfs](const ESM::Light& rec) -> std::string {
96
97
return Misc::ResourceHelpers::correctIconPath (rec.mIcon , vfs);
97
98
});
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadlock.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -30,8 +32,7 @@ namespace MWLua
30
32
record[" id" ]
31
33
= sol::readonly_property ([](const ESM::Lockpick& rec) -> std::string { return rec.mId .serializeText (); });
32
34
record[" name" ] = sol::readonly_property ([](const ESM::Lockpick& rec) -> std::string { return rec.mName ; });
33
- record[" model" ] = sol::readonly_property (
34
- [](const ESM::Lockpick& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
35
+ addModelProperty (record);
35
36
record[" mwscript" ] = sol::readonly_property ([](const ESM::Lockpick& rec) -> sol::optional<std::string> {
36
37
return LuaUtil::serializeRefId (rec.mScript );
37
38
});
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadcrea.hpp>
4
6
#include < components/esm3/loadmisc.hpp>
5
7
#include < components/lua/luastate.hpp>
@@ -81,9 +83,7 @@ namespace MWLua
81
83
record[" id" ] = sol::readonly_property (
82
84
[](const ESM::Miscellaneous& rec) -> std::string { return rec.mId .serializeText (); });
83
85
record[" name" ] = sol::readonly_property ([](const ESM::Miscellaneous& rec) -> std::string { return rec.mName ; });
84
- record[" model" ] = sol::readonly_property ([](const ESM::Miscellaneous& rec) -> std::string {
85
- return Misc::ResourceHelpers::correctMeshPath (rec.mModel );
86
- });
86
+ addModelProperty (record);
87
87
record[" mwscript" ] = sol::readonly_property ([](const ESM::Miscellaneous& rec) -> sol::optional<std::string> {
88
88
return LuaUtil::serializeRefId (rec.mScript );
89
89
});
Original file line number Diff line number Diff line change
1
+ #ifndef OPENMW_APPS_OPENMW_MWLUA_TYPES_MODELPROPERTY_H
2
+ #define OPENMW_APPS_OPENMW_MWLUA_TYPES_MODELPROPERTY_H
3
+
4
+ #include < components/misc/resourcehelpers.hpp>
5
+ #include < components/vfs/pathutil.hpp>
6
+
7
+ #include < sol/property.hpp>
8
+ #include < sol/usertype.hpp>
9
+
10
+ namespace MWLua
11
+ {
12
+ template <class T >
13
+ void addModelProperty (sol::usertype<T>& recordType)
14
+ {
15
+ recordType[" model" ] = sol::readonly_property ([](const T& recordValue) -> std::string {
16
+ return Misc::ResourceHelpers::correctMeshPath (VFS::Path::Normalized (recordValue.mModel )).value ();
17
+ });
18
+ }
19
+ }
20
+
21
+ #endif
Original file line number Diff line number Diff line change 1
- #include " actor.hpp"
2
1
#include " types.hpp"
3
2
3
+ #include " actor.hpp"
4
+ #include " modelproperty.hpp"
5
+
4
6
#include < components/esm3/loadfact.hpp>
5
7
#include < components/esm3/loadnpc.hpp>
6
8
#include < components/lua/luastate.hpp>
@@ -93,8 +95,7 @@ namespace MWLua
93
95
= sol::readonly_property ([](const ESM::NPC& rec) -> int { return (int )rec.mNpdt .mDisposition ; });
94
96
record[" head" ]
95
97
= sol::readonly_property ([](const ESM::NPC& rec) -> std::string { return rec.mHead .serializeText (); });
96
- record[" model" ] = sol::readonly_property (
97
- [](const ESM::NPC& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
98
+ addModelProperty (record);
98
99
record[" isEssential" ]
99
100
= sol::readonly_property ([](const ESM::NPC& rec) -> bool { return rec.mFlags & ESM::NPC::Essential; });
100
101
record[" isMale" ] = sol::readonly_property ([](const ESM::NPC& rec) -> bool { return rec.isMale (); });
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadalch.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -76,8 +78,7 @@ namespace MWLua
76
78
record[" id" ]
77
79
= sol::readonly_property ([](const ESM::Potion& rec) -> std::string { return rec.mId .serializeText (); });
78
80
record[" name" ] = sol::readonly_property ([](const ESM::Potion& rec) -> std::string { return rec.mName ; });
79
- record[" model" ] = sol::readonly_property (
80
- [](const ESM::Potion& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
81
+ addModelProperty (record);
81
82
record[" icon" ] = sol::readonly_property ([vfs](const ESM::Potion& rec) -> std::string {
82
83
return Misc::ResourceHelpers::correctIconPath (rec.mIcon , vfs);
83
84
});
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadprob.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -30,8 +32,7 @@ namespace MWLua
30
32
record[" id" ]
31
33
= sol::readonly_property ([](const ESM::Probe& rec) -> std::string { return rec.mId .serializeText (); });
32
34
record[" name" ] = sol::readonly_property ([](const ESM::Probe& rec) -> std::string { return rec.mName ; });
33
- record[" model" ] = sol::readonly_property (
34
- [](const ESM::Probe& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
35
+ addModelProperty (record);
35
36
record[" mwscript" ] = sol::readonly_property (
36
37
[](const ESM::Probe& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId (rec.mScript ); });
37
38
record[" icon" ] = sol::readonly_property ([vfs](const ESM::Probe& rec) -> std::string {
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadrepa.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -30,8 +32,7 @@ namespace MWLua
30
32
record[" id" ]
31
33
= sol::readonly_property ([](const ESM::Repair& rec) -> std::string { return rec.mId .serializeText (); });
32
34
record[" name" ] = sol::readonly_property ([](const ESM::Repair& rec) -> std::string { return rec.mName ; });
33
- record[" model" ] = sol::readonly_property (
34
- [](const ESM::Repair& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
35
+ addModelProperty (record);
35
36
record[" mwscript" ] = sol::readonly_property (
36
37
[](const ESM::Repair& rec) -> sol::optional<std::string> { return LuaUtil::serializeRefId (rec.mScript ); });
37
38
record[" icon" ] = sol::readonly_property ([vfs](const ESM::Repair& rec) -> std::string {
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadstat.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/misc/resourcehelpers.hpp>
@@ -24,7 +26,6 @@ namespace MWLua
24
26
= [](const ESM::Static& rec) -> std::string { return " ESM3_Static[" + rec.mId .toDebugString () + " ]" ; };
25
27
record[" id" ]
26
28
= sol::readonly_property ([](const ESM::Static& rec) -> std::string { return rec.mId .serializeText (); });
27
- record[" model" ] = sol::readonly_property (
28
- [](const ESM::Static& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
29
+ addModelProperty (record);
29
30
}
30
31
}
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm4/loadterm.hpp>
4
6
#include < components/lua/utilpackage.hpp>
5
7
#include < components/misc/convert.hpp>
@@ -33,8 +35,6 @@ namespace MWLua
33
35
record[" resultText" ]
34
36
= sol::readonly_property ([](const ESM4::Terminal& rec) -> std::string { return rec.mResultText ; });
35
37
record[" name" ] = sol::readonly_property ([](const ESM4::Terminal& rec) -> std::string { return rec.mFullName ; });
36
- record[" model" ] = sol::readonly_property ([](const ESM4::Terminal& rec) -> std::string {
37
- return Misc::ResourceHelpers::correctMeshPath (rec.mModel );
38
- });
38
+ addModelProperty (record);
39
39
}
40
40
}
Original file line number Diff line number Diff line change 1
1
#include " types.hpp"
2
2
3
+ #include " modelproperty.hpp"
4
+
3
5
#include < components/esm3/loadweap.hpp>
4
6
#include < components/lua/luastate.hpp>
5
7
#include < components/lua/util.hpp>
@@ -129,8 +131,7 @@ namespace MWLua
129
131
record[" id" ]
130
132
= sol::readonly_property ([](const ESM::Weapon& rec) -> std::string { return rec.mId .serializeText (); });
131
133
record[" name" ] = sol::readonly_property ([](const ESM::Weapon& rec) -> std::string { return rec.mName ; });
132
- record[" model" ] = sol::readonly_property (
133
- [](const ESM::Weapon& rec) -> std::string { return Misc::ResourceHelpers::correctMeshPath (rec.mModel ); });
134
+ addModelProperty (record);
134
135
record[" icon" ] = sol::readonly_property ([vfs](const ESM::Weapon& rec) -> std::string {
135
136
return Misc::ResourceHelpers::correctIconPath (rec.mIcon , vfs);
136
137
});
You can’t perform that action at this time.
0 commit comments