Releases: TheNexusAvenger/Nexus-Instance
Releases · TheNexusAvenger/Nexus-Instance
V.4.1.1
V.4.1.0
V.4.0.0
Changes
- Rewrote Nexus Instance for better typing.
- Added
CreateEvent
that creates events that get cleared whenDestroy
is called. - Added
ToInstance
static method for preparing classes. - Removed
NexusObject
. GetPropertyChangedSignal
now respects hidden properties.- Renamed
AddGenericPropertyValidator
toAddGenericPropertyTransform
. - Renamed
AddPropertyValidator
toAddPropertyTransform
. - Renamed
AddGenericPropertyFinalizer
toOnAnyPropertyChanged
. - Renamed
AddPropertyFinalizer
toOnPropertyChanged
. - Removed class extending in favor of direct metatables.
- Removed support for legacy property validators.
- Removed
LockProperty
. - Removed native
IsA
and class names. - Removed default
__tostring
replacement.
- Added
- Replaced
NexusEvent
withTypedEvent
.
V.3.0.1
Changes
- Corrected types.
V.3.0.0
This update contains breaking changes that will break most uses of Nexus Instance. Changes are required to upgrade.
Changes
- Removed
super
structure from objects due to performance cost and difficult-to-follow execution when referencing super functions.self:IntializeSuper(...)
has been removed. UseSomeSuperClass.__new(self, ...)
instead.sefl.super:SomeFunction(...)
has been removed. UseSomeSuperClass.SomeFunction(self, ...)
instead.self.object
has been removed.self
will always be that object.__createindexmethod
has been removed. The metatables of the object should be modified in the constructor instead.
- Removed deprecated
NexusEventCreator
. UseNexusEvent
directly instead.
V.2.1.0
Changes
- Added strict typing.
- Deprecated object-based property validators for
AddGenericPropertyValidator
andAddPropertyValidator
in favor of function-based property validators likeAddGenericPropertyFinalizer
andAddPropertyFinalizer
. SetClassName
now returns the class it was called on instead ofnil
to allow for chaining.
V.2.0.1
Changes
- Fixed memory leak with events.
V.2.0.0
Changes
- Changed internals of Nexus Instance to mostly use tables for metatables instead of functions.
- Improved creation time of
NexusObject
is ~90% faster andNexusInstance
is ~75% faster: https://devforum.roblox.com/t/nexus-instance-object-oriented-library-for-roblox/229645/16 __createindexmethod
no longer is used byNexusObject
.NexusInstance
still uses it.- Metatable function passthrough still works, but not dynamically. If you change a metatable of a class after an object is created or another class is extended, it changing for that object or class is not supported.
- Improved creation time of
- Removed
NexusInterface
. - Removed
LuaEvent
.RobloxEvent
was renamed toNexusEvent
andNexusEventCreator
is now deprecated. - When an index is made in
self.super
, it will attempt to get the next unique value instead of the value at that level.- Example: If you have
Class1
,Class2
(extendsClass1
), andClass3
(extendsClass2
) where the methodMyFunction
is defined inClass1
andClass2
but notClass3
,Class3.new().MyFunction
will returnClass2.MyFunction
andClass3.new().super.MyFunction
will returnClass1.MyFunction
. Before, both would beClass2.MyFunction
.
- Example: If you have
V.1.4.1
Changes
- Fixed memory leak with events that have no listeners.
V.1.4.0
Changes
- Added generic property validators.
- Added property and generic property finalizers for after a property being set.
- Fixed events not passing correct arguments with deferred events.