You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Both `Actor` and `HeldDevice` have the following functions:
64
64
`HotkeyActionIsActivated(hotkeyType)` returns whether a certain hotkey action is being activated or not.
65
65
`ActivateHotkeyAction(hotkeyType)` activates a certain hotkey action.
66
66
`DeactivateHotkeyAction(hotkeyType)` deactivates a certain hotkey action.
67
+
68
+
- New `Controller` state `WEAPON_RELOADHELD`, which is true every frame reload input is held (as opposed to `WEAPON_RELOAD` which is only true once when pressed).
67
69
68
70
- New `GAScripted` Lua script method `IsCompatibleScene(scene)` to allow Activities to generically decide which Scenes are eligible by returning a boolean value.
69
71
New `GAScripted` INI enumerating property `AddRequiredArea`, replacing Lua file scanning, to allow Activities to explicitly state which areas are strictly required.
@@ -79,8 +81,28 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
79
81
80
82
- New `Attachable` INI and Lua (R/W) properties `InheritsVelWhenDetached` and `InheritsAngularVelWhenDetached`, which determine how much of these velocities an attachable inherits from its parent when detached. Defaults to 1.
81
83
84
+
- Added Lua-accessible bitmap manipulation functions to `MOSprite`s:
85
+
```
86
+
GetSpritePixelIndex(int x, int y, int whichFrame) - Returns the color index of the pixel at the given coordinate on the given frame of the sprite ((0, 0) is the upper left corner!)
87
+
88
+
SetSpritePixelIndex(int x, int y, int whichFrame, int colorIndex, int ignoreIndex, bool invert) - Sets the color of the pixel at the given coordinate on the given frame of the sprite, skipping if the pixel has same color index as given in "ignoreIndex". If "invert" is set to true, only pixels of that color index are set.
89
+
90
+
GetAllSpritePixelPositions(const Vector& origin, float angle, bool hflipped, int whichFrame, int ignoreIndex, bool invert, bool includeChildren) - Returns a list of vectors pointing to the absolute positions of all pixels in the given frame of the sprite, rotated to match "angle", flipped to match "hflipped" and positioned around "origin", providing a full silhouette of the MOSprite. "IgnoreIndex" and "invert" are like above, "includeChildren" denotes whether or not to include all children of the MOSprite (no effect if not at least an MOSRotating).
91
+
92
+
GetAllVisibleSpritePixelPositions(bool includeChildren) - Simplified version of the above, returning a list of absolute positions of the visible pixels of the current frame of the sprite as it is currently drawn.
93
+
94
+
SetAllSpritePixelIndexes(int whichFrame, int colorIndex, int ignoreIndex, bool invert) - Sets all pixels in the given frame of the sprite to the given color index, ignoring and inverting as above.
95
+
96
+
SetAllVisibleSpritePixelIndexes(int colorIndex) - Simplified version of the above, sets all visible pixels of the currently visible sprite to the given color index.
97
+
```
98
+
- Added `Material` Lua function `GetColorIndex()`, which returns the color index of the calling material.
99
+
82
100
- New `ACraft` INI and Lua (R/W) property `CanEnterOrbit`, which determines whether a craft can enter orbit (and refund gold appropriately) or not. If false, default out-of-bounds deletion logic applies.
83
101
102
+
- New `MovableMan` function `GetMOsAtPosition(posX, posY, ignoreTeam, getsHitByMOsOnly)` that will return an iterator with all the `MovableObject`s that intersect that exact position with their sprite.
103
+
104
+
- New `SceneMan` function `CastAllMOsRay(startVector, rayVector, table ignoreMOIDs, ignoreTeam, ignoreMaterial, bool ignoreAllTerrain, int skip)` which returns an iterator with pointers to all the non-ignored MOs met along the ray.
105
+
84
106
</details>
85
107
86
108
<details><summary><b>Changed</b></summary>
@@ -125,6 +147,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
125
147
126
148
-`Scene` Lua functions `AddNavigatableArea(areaName)` and `ClearNavigatableAreas()` have been renamed/corrected to `AddNavigableArea(areaName)` and `ClearNavigableAreas()`, respectively.
127
149
150
+
-`MOSRotating` Lua function `AddWound` now additionally accepts the format `MOSRotating:AddWound(AEmitter* woundToAdd, const Vector& parentOffsetToSet, bool checkGibWoundLimit, bool isEntryWound, bool isExitWound)`, allowing modders to specify added wounds as entry- or exit wounds, for the purpose of not playing multiple burst sounds on the same frame. These new arguments are optional.
151
+
152
+
-`SceneMan` function `CastFindMORay` now has an extra bool parameter `findChildMOIDs` that denotes whether it also triggers on child MOIDs or not, which defaults to true for the same default behavior as before.
153
+
154
+
-`SceneMan` function `CastMORay` now can also accept a table of MOIDs instead of a single MOID, letting you ignore any arbitrary set of MOIDs.
155
+
156
+
- Techion Laser Rifle now has a constant range rather than being dependent on game resolution.
157
+
158
+
- Various performance improvements.
159
+
128
160
</details>
129
161
130
162
<details><summary><b>Fixed</b></summary>
@@ -145,6 +177,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
145
177
146
178
- Fixed an issue where internal Lua functions OriginalDoFile, OriginalLoadFile, and OriginalRequire were polluting the global namespace. They have now been made inaccessible.
147
179
180
+
- Fixed `MOSprite:UnRotateOffset()` giving the wrong results on HFLipped sprites.
181
+
182
+
- Various fixes and improvements to inventory management when dual-wielding or carrying a shield, to stop situations where the actor unexpectedly puts their items away.
183
+
184
+
- Fixed issue where MOSR `Gib`s, `AEmitter` or `PEmitter``Emission`s, and MetaMan `Player`s were not correctly accessible from script.
185
+
186
+
- Fixed a crash on launch when the `SupportedGameVersion` INI property was not set.
187
+
188
+
- Fixed several issues with the way pie menus and aiming interacts between players, such as opening the pie menu always resetting the M&KB player's aim and pie selection, as well as another issue where the pie menu would fail to appear entirely for some players.
189
+
148
190
</details>
149
191
150
192
<details><summary><b>Removed</b></summary>
@@ -2675,7 +2717,7 @@ This can be accessed via the new Lua (R/W) `SettingsMan` property `AIUpdateInter
2675
2717
2676
2718
-`TDExplosive.ActivatesWhenReleased` now works properly.
2677
2719
2678
-
- Various bug fixed related to all the Attachable and Emitter changes, so they can now me affected reliably and safely with lua.
2720
+
- Various bugs fixed related to all the Attachable and Emitter changes, so they can again be affected reliably and safely with lua.
2679
2721
2680
2722
- Various minor other things that have gotten lost in the shuffle.
0 commit comments