Malimbe: This removes the last remaining elements of Malimbe and whilst it does not cause any breaking changes within Zinnia, it removes Malimbe as a dependency which other projects that rely on Zinnia may piggy back off this Malimbe dependency so it will break any project like that.
The Malimbe custom inspector has been replaced with the new ZinniaInspector which performs pretty much the same task except instead of looking for the MemberChange attributes it now specifically expects OnBefore and OnAfter property methods to be explicityly named with the property name followed by the suffix of Change.
The dependency of Malimbe has also been removed as it is no longer used anywhere now. (4e38df2)
Features
Extension: add extension for setting LayerMask (19694ae)
> The LayerMask has now been extended to have a Set(int) and a Set(name) method that allows the layer mask to be set via the index value or the string literal value of the desired layer.
Malimbe: remove MemberChangeMethod attribute dependency (baef56b)
> The Malimbe MemberChangeMethod attribute has been removed as a dependency and instead every property now manually calls the OnBefore before the value is set and the OnAfter after the value is set.
>
> These are also wrapped in a check to ensure the application is playing and the component is active and enabled to copy the behaviour of how the Malimbe attribute worked.
Malimbe: remove MemberClearanceMethod attribute dependency (dbffb25)
> The Malimbe MemberClearanceMethod attribute has been removed as a dependency and instead every property that relied on the [Cleared] attribute now has a hard coded Clear<PropertyName> method that performs the same as the weaved Cleared code.
Malimbe: remove property serialization and xml documentation (80e86bd)
> The Malimbe PropertySerializationAttribute and XMLDocumentation attribute have been removed as a dependency and the property serialization is now done manually by providing a private backing field that is used within the related property in the same naming convention that Malimbe used so all references should be remembered.
>
> XML Documentation is now simply duplicated into the Unity Toolkit attribute.
>
> This commit may have some unwanted outcomes as the MemberChange attributes still exist and may not weave correctly with the hard coded property setters.
Malimbe: remove RequiresBehaviourState attribute dependency (e34b560)
> The Malimbe RequireBehaviourState attribute has been removed as a dependency and the hard coded check of if the gameobject is active in hierarchy and whether the component is enabled is now used in place in every method that utilized the RequiresBehaviourState attribute.
properties: ensure logic properties are marked as virtual (9e642fd)
> Properties that contain logic have now been marked as virtual so they can be overriden if needed.
Bug Fixes
Action: ensure sources field is serialized (389509f)
> The Sources field was not serialized meaning it was not showing up in the Unity inspector.
Malimbe: add UnityFlags attribute back for multi select enums (b219190)
> The UnityFlags attribute had been stripped off the multi select enums during the update process meaning these enum properties could only have a single value selected. Adding the UnityFlags attribute back means that multiple values can again be selected.
>
> Another quick fix in the Rule has been added to that sets a bool value if the rule is destroyed to ensure it cannot be checked when the object has already been destroyed.
Malimbe: remove underscore from backing fields (c4559b4)
> Malimbe did not create backing fields with an underscore so any existing references would have been lost. All of the fields now are the direct match of the property name just with a lowercase first letter as Malimbe would have created.
Malimbe: This removes the last remaining elements of Malimbe and whilst it does not cause any breaking changes within Zinnia, it removes Malimbe as a dependency which other projects that rely on Zinnia may piggy back off this Malimbe dependency so it will break any project like that.
The Malimbe custom inspector has been replaced with the new ZinniaInspector which performs pretty much the same task except instead of looking for the MemberChange attributes it now specifically expects OnBefore and OnAfter property methods to be explicityly named with the property name followed by the suffix of Change.
The dependency of Malimbe has also been removed as it is no longer used anywhere now. (4e38df2)
Features
Extension: add extension for setting LayerMask (19694ae)
> The LayerMask has now been extended to have a Set(int) and a Set(name) method that allows the layer mask to be set via the index value or the string literal value of the desired layer.
Malimbe: remove MemberChangeMethod attribute dependency (baef56b)
> The Malimbe MemberChangeMethod attribute has been removed as a dependency and instead every property now manually calls the OnBefore before the value is set and the OnAfter after the value is set.
>
> These are also wrapped in a check to ensure the application is playing and the component is active and enabled to copy the behaviour of how the Malimbe attribute worked.
Malimbe: remove MemberClearanceMethod attribute dependency (dbffb25)
> The Malimbe MemberClearanceMethod attribute has been removed as a dependency and instead every property that relied on the [Cleared] attribute now has a hard coded Clear<PropertyName> method that performs the same as the weaved Cleared code.
Malimbe: remove property serialization and xml documentation (80e86bd)
> The Malimbe PropertySerializationAttribute and XMLDocumentation attribute have been removed as a dependency and the property serialization is now done manually by providing a private backing field that is used within the related property in the same naming convention that Malimbe used so all references should be remembered.
>
> XML Documentation is now simply duplicated into the Unity Toolkit attribute.
>
> This commit may have some unwanted outcomes as the MemberChange attributes still exist and may not weave correctly with the hard coded property setters.
Malimbe: remove RequiresBehaviourState attribute dependency (e34b560)
> The Malimbe RequireBehaviourState attribute has been removed as a dependency and the hard coded check of if the gameobject is active in hierarchy and whether the component is enabled is now used in place in every method that utilized the RequiresBehaviourState attribute.
properties: ensure logic properties are marked as virtual (9e642fd)
> Properties that contain logic have now been marked as virtual so they can be overriden if needed.
Bug Fixes
Action: ensure sources field is serialized (389509f)
> The Sources field was not serialized meaning it was not showing up in the Unity inspector.
Malimbe: add UnityFlags attribute back for multi select enums (b219190)
> The UnityFlags attribute had been stripped off the multi select enums during the update process meaning these enum properties could only have a single value selected. Adding the UnityFlags attribute back means that multiple values can again be selected.
>
> Another quick fix in the Rule has been added to that sets a bool value if the rule is destroyed to ensure it cannot be checked when the object has already been destroyed.
Malimbe: remove underscore from backing fields (c4559b4)
> Malimbe did not create backing fields with an underscore so any existing references would have been lost. All of the fields now are the direct match of the property name just with a lowercase first letter as Malimbe would have created.
Commits
f2ab626 chore(release): set version to 2.0.0 [skip ci]
495ebe7 Merge pull request #565 from ExtendRealityLtd/feat/remove-malimbe
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps io.extendreality.zinnia.unity from 1.47.1 to 2.0.0.
Release notes
Sourced from io.extendreality.zinnia.unity's releases.
Changelog
Sourced from io.extendreality.zinnia.unity's changelog.
Commits
f2ab626
chore(release): set version to 2.0.0 [skip ci]495ebe7
Merge pull request #565 from ExtendRealityLtd/feat/remove-malimbe4e38df2
feat(Malimbe): remove Malimbe custom inspector389509f
fix(Action): ensure sources field is serialized9e642fd
feat(properties): ensure logic properties are marked as virtualb219190
fix(Malimbe): add UnityFlags attribute back for multi select enumsc4559b4
fix(Malimbe): remove underscore from backing fieldsbaef56b
feat(Malimbe): remove MemberChangeMethod attribute dependency80e86bd
feat(Malimbe): remove property serialization and xml documentationdbffb25
feat(Malimbe): remove MemberClearanceMethod attribute dependencyDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)