Files
BH3/Assets/Plugins/Assembly-CSharp-firstpass/LuaInterface/LuaBase.cs
2025-08-13 09:26:42 +08:00

53 lines
820 B
C#

using System;
namespace LuaInterface
{
public abstract class LuaBase : IDisposable
{
private bool _Disposed;
protected int _Reference;
protected LuaState _Interpreter;
~LuaBase()
{
Dispose(false);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
public virtual void Dispose(bool disposeManagedResources)
{
if (!_Disposed)
{
if (disposeManagedResources && _Reference != 0)
{
_Interpreter.dispose(_Reference);
}
_Interpreter = null;
_Disposed = true;
}
}
public override bool Equals(object o)
{
if (o is LuaBase)
{
LuaBase luaBase = (LuaBase)o;
return _Interpreter.compareRef(luaBase._Reference, _Reference);
}
return false;
}
public override int GetHashCode()
{
return _Reference;
}
}
}