Additions:
- Added Challenge completion tracking to the mod challenges menu
- Added localization code support
- Added settings to change unifont rendering size
- Add Update callbacks for GridEntityTNT
- Add Render callbacks for GridEntityLock and GridEntityTeleporter
- LayerState:
- Get/SetWrapSMode
- Get/SetWrapTMode
- these play some currently unknown role in allowing sprites to wrap around, and is required for Beam sprites
- Beam and Point have recieved some reworks in preparation for a future cord reimplementation
- The Sprite used in the Beam must be in the same "scope" as the Beam. For example, a global Sprite and local Beam works, but local Sprite` and global Beam won't. They can also both be global/local or in the same table.
- Point no longer has a Color object for the time being to save some space. It should hopefully return later, pending finding a good way to optimize it.
- Added PRE_PLAYERHUD_RENDER_HEARTS(Vector Offset(?), Sprite HeartsSprite, Vector Position, float Unknown) callback, returning true cancels hearts HUD rendering
- Added support for custom items in the items attr on players.xml by using their name instead of id.
- Added support for modded startitems,playertype and starttrinkets in challenges.xml.
- Added support for custom achievements in the achievement attribute for items.xml(cant lock items yet tho...)
- Added MC_POST_HUD_RENDER callback (good for rendering on top of the HUD)
- Added WeightedOutcomePicker:RemoveOutcome(int Value) and WeightedOutcomePicker:GetOutcomes()
- Added Entity Get/Set methods related to status effects countdown
- Added challenges.xml param unlocksachievement attribute, which tells which achievement is unlocked on the modded challenge completion.
- Added MC_POST_PRE_CHALLENGE_DONE to do stuff when a challenge is completed, on POST, or prevent its completion on PRE.
- Added the challenge functions Isaac.GetModChallengeClearCount, Isaac.ClearChallenge, Isaac.MarkChallengeAsNotDone and Isaac.IsChallengeDone.
- Changed the PRESS E FOR CHALLENGES MENU note, on the challenges menu, to follow you around and not be left at the top.
- Entity:ForceCollide() now works for EntityLasers
- ModsMenu.GetSelectedElement() and ModsMenu.SetSelectedElement() now start at 1 to be more intuitive
- ModsMenu.SetSelectedElement() clamps values below and above the amount of mods the player has
- The mods menu can now be scrubbed through! Left/Right will scroll three mods at a time. Page Up/PageDown on keyboard and Left/Right Trigger on controller will scroll ten mods at a time.
- Added WeightedOutcomePicker:AddOutcomeFloat(), WeightedOutcomePicker:Clear() and WeightedOutcomePicker:GetNumOutcomes()
Fixes:
- Fix GridEntity render callbacks being massively broken
- Fix PRE_GRID_ENTITY_SPAWN not accepting a table
- Fix potential crash with SpawnGridEntity(GridEntityDesc)
- main_ex.lua typechecking on this is temporarily disabled
- Will silently fail if returning an invalid type to prevent crashes
- Fix Entity:AddWeakness duration being incorrect
- Fix Beam:Add(Point) override
- Fix nomarks players.xml attribute
- Fix GetAchievementIdByName not working until Slot selection
- Fix XmlData.GetByName and GetById returning the input instead of nil when not finding anything
- Fix several XMLData Achievement SourceId clownery when mods set ids for their achievements
- Fix XMLData GetNumEntries being inconsistent
- Fix binder for Familiar:UpdateDirtColor
- Fix FlatPatch spam in repentogon.log by reworking Quick Room Clear patch
- Fix GridEntityDoor vanilla variables PreviousState/PreviousVaraint returning unusable userdata instead of integer
- Fix Weapon:SetFireDelay() not working
- Fix ModsMenu.SetSelectedElement() only having a cosmetic effect