Engine 263.0.0 released

Breaking changes

  • Fully removed some non-Entity<T> container methods.

New features

  • IMidiRenderer.LoadSoundfont has been split into LoadSoundfontResource and LoadSoundfontUser, the original now being deprecated.
  • Client command execution now properly catches errors instead of letting them bubble up through the input stack.
  • Added CompletionHelper.PrototypeIdsLimited API to allow commands to autocomplete entity prototype IDs.
  • Added spawn:in Toolshed command.
  • Added MapLoaderSystem.TryLoadGeneric overload to load from a Stream.
  • Added OutputPanel.GetMessage() and OutputPanel.SetMessage() to allow replacing individual messages.

Bugfixes

  • Fixed debug asserts when using MIDI on Windows.
  • Fixed an error getting logged on startup on macOS related to window icons.
  • CC-BY-NC-ND-4.0 is now a valid license for the RGA validator.
  • Fixed TabContainer.CurrentTab clamping against the wrong value.
  • Fix culture-based parsing in TimespanSerializer.
  • Fixed grid rendering blowing up on tile IDs that aren’t registered.
  • Fixed debug assert when loading MIDI soundfonts on Windows.
  • Make ColorSelectorSliders properly update the dropdown when changing SelectorType.
  • Fixed tpto allowing teleports to oneself, thereby causing them to be deleted.
  • Fix OpenAL extensions being requested incorrectly, causing an error on macOS.
  • Fixed horizontal measuring of markup controls in rich text.

Other

  • Improved logging for some audio entity errors.
  • Avoided more server stutters when using csci.
  • Improved physics performance.
  • Made various localization functions like GENDER() not throw if passed a string instead of an EntityUid.
  • The generic clause on EntitySystem.AddComp<T> has been changed to IComponent (from Component) for consistency with IEntityManager.AddComponent<T>.
  • DataDefinitionAnalyzer has been optimized somewhat.
  • Improved assert logging error message when static data fields are encountered.

Internal

  • Warning cleanup.
  • Added more tests for DataDefinitionAnalyzer.
  • Consistently use EntitySystem proxy methods in engine.
1 Like

the spawn:in toolshed command allows spawning a entity within a entity’s container. eg: ent <bagid> spawn:in "storagebase" MaterialWebSilk which would spawn a single piece of spider silk into the bag (I am totally biased)