UltimateZoneBuilder/Source/Plugins/UDBScript/API/BlockEntryWrapper.cs
biwa 5b2b149b40
UDBScript version 5 (#819)
Improved UDBScript to version 5:

- Added Plane class
- Added BlockMap, BlockEntry, and BlackMapQueryResult classes
- Sector class
  - Added getLabelPositions method to get the position of sector labels (where tags, effects etc. are displayed)
- Added support for JavaScript BigInt for UDMF fields. This means it's not necessary anymore to use UniValue to assign integers to new UDMF fields. Instead it can be done like this: sector.fields.my_int_field = 1n;
- Added type information file (udbscript.d.ts)
2022-11-13 01:15:17 +01:00

96 lines
2.4 KiB
C#

#region ================== Copyright (c) 2022 Boris Iwanski
/*
* This program is free software: you can redistribute it and/or modify
*
* it under the terms of the GNU General Public License as published by
*
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
*
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
*
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.If not, see<http://www.gnu.org/licenses/>.
*/
#endregion
#region ================== Namespaces
using CodeImp.DoomBuilder.Map;
#endregion
namespace CodeImp.DoomBuilder.UDBScript.Wrapper
{
/// <summary>
/// A `BlockEntry` is a single block in a `BlockMap`. It has methods to retrieve the linedefs, things, sectors, and vertices that are in this block.
/// </summary>
class BlockEntryWrapper : BlockMapContentBase
{
#region ================== Variables
private BlockEntry entry;
#endregion
#region ================== Constructors
internal BlockEntryWrapper(BlockEntry entry)
{
this.entry = entry;
}
#endregion
#region ================== Methods
/// <summary>
/// Gets all `Linedef`s in the blockmap entry.
/// </summary>
/// <returns>`Array` of `Linedef`s</returns>
[UDBScriptSettings(MinVersion = 5)]
public override LinedefWrapper[] getLinedefs()
{
return GetArray(entry.Lines, ref wrappedlines);
}
/// <summary>
/// Gets all `Thing`s in the blockmap entry.
/// </summary>
/// <returns>`Array` of `Thing`s</returns>
[UDBScriptSettings(MinVersion = 5)]
public override ThingWrapper[] getThings()
{
return GetArray(entry.Things, ref wrappedthings);
}
/// <summary>
/// Gets all `Sector`s in the blockmap entry.
/// </summary>
/// <returns>`Array` of `Sector`s</returns>
[UDBScriptSettings(MinVersion = 5)]
public override SectorWrapper[] getSectors()
{
return GetArray(entry.Sectors, ref wrappedsectors);
}
/// <summary>
/// Gets all `Vertex` in the blockmap entry.
/// </summary>
/// <returns>`Array` of `Vertex`</returns>
[UDBScriptSettings(MinVersion = 5)]
public override VertexWrapper[] getVertices()
{
return GetArray(entry.Vertices, ref wrappedvertices);
}
#endregion
}
}