Skip to content
This repository was archived by the owner on Jan 5, 2024. It is now read-only.

Commit 4cd26b0

Browse files
authored
Merge pull request #567 from cortex-command-community/more-luabindings
BuyableMode, Buyable cleanup, ResetSensorTimer lua bindings
2 parents f71389b + 7b406bf commit 4cd26b0

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
101101

102102
- New `Scene` Lua functions `AddNavigatableArea(areaName)` and `ClearNavigatableAreas()`. This can be used to restrict pathfinding to only search a set of areas that have been added to the scene before via `Scene:SetArea(area)`.
103103

104+
- New `ADoor` Lua function `ResetSensorTimer()`. Resets the sensor timer for that door, making it take the full SensorInterval again for it to detect actors.
105+
106+
- Exposed `SceneObject` property `BuyableMode` to Lua (R).
107+
108+
- `Enum` binding for `SceneObject.BuyableMode`: `NORESTRICTIONS = 0, BUYMENUONLY = 1, OBJECTPICKERONLY = 2, SCRIPTONLY = 3`.
109+
104110
</details>
105111

106112
<details><summary><b>Changed</b></summary>
@@ -141,6 +147,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
141147

142148
- Script values, i.e `GetStringValue`, `RemoveStringValue`, `StringValueExists` and the associated functions for `GetNumberValue`/`GetObjectValue`, have been moved from MOSRotating to MovableObject, so now any object with script support can use these values.
143149

150+
- The `SceneObject` property `IsBuyable` has been renamed to `Buyable`.
151+
144152
</details>
145153

146154
<details><summary><b>Fixed</b></summary>

Entities/SceneObject.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,12 @@ class SceneObject : public Entity {
464464

465465
bool IsBuyable() const { return m_Buyable; }
466466

467+
/// <summary>
468+
/// Gets the BuyableMode of this SceneObject.
469+
/// </summary>
470+
/// <returns>The BuyableMode of this SceneObject</returns>
471+
BuyableMode GetBuyableMode() const { return m_BuyableMode; }
472+
467473
/// <summary>
468474
/// Gets whether this SceneObject is available only in the BuyMenu list when buyable.
469475
/// </summary>

Lua/LuaBindingsEntities.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,7 @@ namespace RTE {
371371
.def("OpenDoor", &ADoor::OpenDoor)
372372
.def("CloseDoor", &ADoor::CloseDoor)
373373
.def("StopDoor", &ADoor::StopDoor)
374+
.def("ResetSensorTimer", &ADoor::ResetSensorTimer)
374375
.def("SetClosedByDefault", &ADoor::SetClosedByDefault)
375376

376377
.enum_("DoorState")[
@@ -1337,16 +1338,24 @@ namespace RTE {
13371338
.property("RotAngle", &SceneObject::GetRotAngle, &SceneObject::SetRotAngle)
13381339
.property("Team", &SceneObject::GetTeam, &SceneObject::SetTeam)
13391340
.property("PlacedByPlayer", &SceneObject::GetPlacedByPlayer, &SceneObject::SetPlacedByPlayer)
1340-
.property("IsBuyable", &SceneObject::IsBuyable)
1341-
1341+
.property("Buyable", &SceneObject::IsBuyable)
1342+
.property("BuyableMode", &SceneObject::GetBuyableMode)
1343+
13421344
.def("IsOnScenePoint", &SceneObject::IsOnScenePoint)
13431345
.def("GetGoldValue", &SceneObject::GetGoldValueOld)
13441346
.def("GetGoldValue", &SceneObject::GetGoldValue)
13451347
.def("SetGoldValue", &SceneObject::SetGoldValue)
13461348
.def("GetGoldValueString", &SceneObject::GetGoldValueString)
13471349
.def("GetTotalValue", &SceneObject::GetTotalValue)
13481350

1349-
.def("GetTotalValue", &LuaAdaptersSceneObject::GetTotalValue);
1351+
.def("GetTotalValue", &LuaAdaptersSceneObject::GetTotalValue)
1352+
1353+
.enum_("BuyableMode")[
1354+
luabind::value("NORESTRICTIONS", SceneObject::BuyableMode::NoRestrictions),
1355+
luabind::value("BUYMENUONLY", SceneObject::BuyableMode::BuyMenuOnly),
1356+
luabind::value("OBJECTPICKERONLY", SceneObject::BuyableMode::ObjectPickerOnly),
1357+
luabind::value("SCRIPTONLY", SceneObject::BuyableMode::ScriptOnly)];
1358+
13501359
}
13511360

13521361
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)