mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00
Deprecate CalculateDistance() script function
This commit is contained in:
parent
34ff933e5b
commit
2c6331f583
3 changed files with 13 additions and 54 deletions
|
@ -121,10 +121,6 @@
|
||||||
<td class="summary">Determine if there is a clear line of sight between two positions.</td>
|
<td class="summary">Determine if there is a clear line of sight between two positions.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="name" ><a href="#CalculateDistance">CalculateDistance(posA, posB)</a></td>
|
|
||||||
<td class="summary">Calculate the distance between two positions.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="name" ><a href="#CalculateHorizontalDistance">CalculateHorizontalDistance(posA, posB)</a></td>
|
<td class="name" ><a href="#CalculateHorizontalDistance">CalculateHorizontalDistance(posA, posB)</a></td>
|
||||||
<td class="summary">Calculate the horizontal distance between two positions.</td>
|
<td class="summary">Calculate the horizontal distance between two positions.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -202,38 +198,6 @@
|
||||||
<span class="global">print</span>(Misc.HasLineOfSight(enemyHead:GetRoomNumber(), enemyHead:GetPosition(), flamePlinthPos))</pre>
|
<span class="global">print</span>(Misc.HasLineOfSight(enemyHead:GetRoomNumber(), enemyHead:GetPosition(), flamePlinthPos))</pre>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</dd>
|
|
||||||
<dt>
|
|
||||||
<a name = "CalculateDistance"></a>
|
|
||||||
<strong>CalculateDistance(posA, posB)</strong>
|
|
||||||
</dt>
|
|
||||||
<dd>
|
|
||||||
Calculate the distance between two positions.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Parameters:</h3>
|
|
||||||
<ul>
|
|
||||||
<li><span class="parameter">posA</span>
|
|
||||||
<span class="types"><a class="type" href="../3 primitive classes/Vec3.html#">Vec3</a></span>
|
|
||||||
First position.
|
|
||||||
</li>
|
|
||||||
<li><span class="parameter">posB</span>
|
|
||||||
<span class="types"><a class="type" href="../3 primitive classes/Vec3.html#">Vec3</a></span>
|
|
||||||
Second position.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Returns:</h3>
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<span class="types"><span class="type">float</span></span>
|
|
||||||
Distance between two positions.
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt>
|
<dt>
|
||||||
<a name = "CalculateHorizontalDistance"></a>
|
<a name = "CalculateHorizontalDistance"></a>
|
||||||
|
|
|
@ -298,7 +298,6 @@ static constexpr char ScriptReserved_GetSoundSourceByName[] = "GetSoundSourceB
|
||||||
static constexpr char ScriptReserved_GetVolumeByName[] = "GetVolumeByName";
|
static constexpr char ScriptReserved_GetVolumeByName[] = "GetVolumeByName";
|
||||||
static constexpr char ScriptReserved_GetRoomsByTag[] = "GetRoomsByTag";
|
static constexpr char ScriptReserved_GetRoomsByTag[] = "GetRoomsByTag";
|
||||||
static constexpr char ScriptReserved_GetRoomByName[] = "GetRoomByName";
|
static constexpr char ScriptReserved_GetRoomByName[] = "GetRoomByName";
|
||||||
static constexpr char ScriptReserved_CalculateDistance[] = "CalculateDistance";
|
|
||||||
static constexpr char ScriptReserved_CalculateHorizontalDistance[] = "CalculateHorizontalDistance";
|
static constexpr char ScriptReserved_CalculateHorizontalDistance[] = "CalculateHorizontalDistance";
|
||||||
static constexpr char ScriptReserved_PercentToScreen[] = "PercentToScreen";
|
static constexpr char ScriptReserved_PercentToScreen[] = "PercentToScreen";
|
||||||
static constexpr char ScriptReserved_ScreenToPercent[] = "ScreenToPercent";
|
static constexpr char ScriptReserved_ScreenToPercent[] = "ScreenToPercent";
|
||||||
|
|
|
@ -20,12 +20,12 @@
|
||||||
|
|
||||||
using TEN::Renderer::g_Renderer;
|
using TEN::Renderer::g_Renderer;
|
||||||
|
|
||||||
|
namespace TEN::Scripting::Util
|
||||||
|
{
|
||||||
/// Utility functions for various calculations.
|
/// Utility functions for various calculations.
|
||||||
// @tentable Util
|
// @tentable Util
|
||||||
// @pragma nostrip
|
// @pragma nostrip
|
||||||
|
|
||||||
namespace TEN::Scripting::Util
|
|
||||||
{
|
|
||||||
/// Determine if there is a clear line of sight between two positions.
|
/// Determine if there is a clear line of sight between two positions.
|
||||||
// NOTE: Limited to room geometry. Objects are ignored.
|
// NOTE: Limited to room geometry. Objects are ignored.
|
||||||
// @function HasLineOfSight()
|
// @function HasLineOfSight()
|
||||||
|
@ -43,18 +43,7 @@ namespace TEN::Scripting::Util
|
||||||
|
|
||||||
MESH_INFO* mesh = nullptr;
|
MESH_INFO* mesh = nullptr;
|
||||||
auto vector = Vector3i::Zero;
|
auto vector = Vector3i::Zero;
|
||||||
return (LOS(&vector0, &vector1) &&
|
return (LOS(&vector0, &vector1) && ObjectOnLOS2(&vector0, &vector1, &vector, &mesh) == NO_LOS_ITEM);
|
||||||
ObjectOnLOS2(&vector0, &vector1, &vector, &mesh) == NO_LOS_ITEM);
|
|
||||||
}
|
|
||||||
|
|
||||||
///Calculate the distance between two positions.
|
|
||||||
//@function CalculateDistance
|
|
||||||
//@tparam Vec3 posA First position.
|
|
||||||
//@tparam Vec3 posB Second position.
|
|
||||||
//@treturn float Distance between two positions.
|
|
||||||
static float CalculateDistance(const Vec3& posA, const Vec3& posB)
|
|
||||||
{
|
|
||||||
return posA.Distance(posB);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Calculate the horizontal distance between two positions.
|
/// Calculate the horizontal distance between two positions.
|
||||||
|
@ -192,13 +181,17 @@ namespace TEN::Scripting::Util
|
||||||
TENLog(message, level, LogConfig::All, USE_IF_HAVE(bool, allowSpam, false));
|
TENLog(message, level, LogConfig::All, USE_IF_HAVE(bool, allowSpam, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static float CalculateDistance(const Vec3& posA, const Vec3& posB)
|
||||||
|
{
|
||||||
|
return posA.Distance(posB);
|
||||||
|
}
|
||||||
|
|
||||||
void Register(sol::state* state, sol::table& parent)
|
void Register(sol::state* state, sol::table& parent)
|
||||||
{
|
{
|
||||||
auto tableUtil = sol::table(state->lua_state(), sol::create);
|
auto tableUtil = sol::table(state->lua_state(), sol::create);
|
||||||
parent.set(ScriptReserved_Util, tableUtil);
|
parent.set(ScriptReserved_Util, tableUtil);
|
||||||
|
|
||||||
tableUtil.set_function(ScriptReserved_HasLineOfSight, &HasLineOfSight);
|
tableUtil.set_function(ScriptReserved_HasLineOfSight, &HasLineOfSight);
|
||||||
tableUtil.set_function(ScriptReserved_CalculateDistance, &CalculateDistance);
|
|
||||||
tableUtil.set_function(ScriptReserved_CalculateHorizontalDistance, &CalculateHorizontalDistance);
|
tableUtil.set_function(ScriptReserved_CalculateHorizontalDistance, &CalculateHorizontalDistance);
|
||||||
tableUtil.set_function(ScriptReserved_GetDisplayPosition, &GetDisplayPosition);
|
tableUtil.set_function(ScriptReserved_GetDisplayPosition, &GetDisplayPosition);
|
||||||
tableUtil.set_function(ScriptReserved_PickMoveable, &PickMoveable);
|
tableUtil.set_function(ScriptReserved_PickMoveable, &PickMoveable);
|
||||||
|
@ -207,6 +200,9 @@ namespace TEN::Scripting::Util
|
||||||
tableUtil.set_function(ScriptReserved_ScreenToPercent, &ScreenToPercent);
|
tableUtil.set_function(ScriptReserved_ScreenToPercent, &ScreenToPercent);
|
||||||
tableUtil.set_function(ScriptReserved_PrintLog, &PrintLog);
|
tableUtil.set_function(ScriptReserved_PrintLog, &PrintLog);
|
||||||
|
|
||||||
|
// COMPATIBILITY
|
||||||
|
tableUtil.set_function("CalculateDistance", &CalculateDistance);
|
||||||
|
|
||||||
auto handler = LuaHandler(state);
|
auto handler = LuaHandler(state);
|
||||||
handler.MakeReadOnlyTable(tableUtil, ScriptReserved_LogLevel, LOG_LEVEL_IDS);
|
handler.MakeReadOnlyTable(tableUtil, ScriptReserved_LogLevel, LOG_LEVEL_IDS);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue