Releases: The-Chest/TheChest.Core
Releases · The-Chest/TheChest.Core
v0.15.1
What's Changed
- XML docs improved on the classes and interfaces
What's Fixed
StackContainer<T>.Containsmethods are now virtual.
What's Next
Full Changelog: v0.15.0...v0.15.1
v0.15.0
What's Added
.editorconfigwith code style rulesNullableenabled for the project
- Slots now have a private field named
content- It can stores the content from constructor and be
nullable
- It can stores the content from constructor and be
- Attribute for unit tests (
[IgnoreIfReferenceType],[IgnoreIfValueType]and[IgnoreIfPrimitive]) - Slots now have static Validation methods to be used in constructors
StackSlot<T>ValidateContent(T[] items, int maxAmount)- Validates thatitemsarray is not null or empty and does not exceedmaxAmount.ValidateAmount(int amount, int maxAmount)- Validates thatamountis within the allowed range from zero tomaxAmount.
LazyStackSlot<T>ValidateAmount(int amount, int maxAmount)- Validates thatamountis within the allowed range from zero tomaxAmount.
MaxAmountandAmountnow calls the static Validation methods in its constructors
What's Changed
- Slots now supports reference and value types.
Known issues
- Unit test project is still a mess...
What's Next
- #127 - More ways to instantiate the Container classes
- Some validations might be useful too
- #122 - XML docs descriptions of the interfaces and some properties are not describing improvements
- #123 - Export the build project to .dll files
Full Changelog: v0.14.0...v0.15.0
v0.14.0
What's Removed
- Removed
this[index]fromIContainer,IStackContainereILazyStackContainer - Removed
this[index]fromContainer,StackContainereLazyStackContainer
What's next
- Aiming to release
TheChest.Corev1.0.0 on the next release
Full Changelog: v0.13.0...v0.14.0
v0.13.0
What's Changed
- Improve tests by separating interfaces and implementation
- Improve the package building
Known Issues
- No better way to instantiate the classes (Thinking about adding a Factory)
What's Next
- Maybe the Container structure can be unified (the interface part at least) and the implementation can decide about how to handle it
- Check how this would affect
TheChest.Inventories
- Check how this would affect
Full Changelog: v0.12.1...v0.13.0
v0.12.1
What's Removed
IStackContainerExtensionsfile removed (wasn't on the last version)
Known issues
- #100 - Interfaces and implementations are sharing the same test scenarios
- No better way to instantiate the classes (Thinking about adding a Factory)
What's next
- Maybe the Container structure can be unified (the interface part at least) and the implementation can decide about how to handle it
- Check how this would affect
TheChest.Inventories
- Check how this would affect
Full Changelog: v0.11.0...v0.12.0
v0.12.0
What's Changed
Containsmethods for all Inventory classes are now part of its interfaces contracts
What's Fixed
Containsmethods in all Slot classes are now marked asvirtual
Known issues
- #100 - Interfaces and implementations are sharing the same test scenarios
- No better way to instantiate the classes (Thinking about adding a Factory)
What's next
- Maybe the Container structure can be unified (the interface part at least) and the implementation can decide about how to handle it
- Check how this would affect
TheChest.Inventories
- Check how this would affect
Full Changelog: v0.11.0...v0.12.0
v0.11.0
What's Added
ILazyStackSlot<T>andILazyStackContainer<T>interfaces- Separated unit tests for both
- Docs also added to it
Known issues
- #100 - Interfaces and implementations are sharing the same test scenarios
- #101 - Slots
Containsmethod not marked asvirtual - #94 - Containers
Containsmethod not inside interface contract
What's next
- Maybe the Container structure can be unified (the interface part at least) and the implementation can decide about how to handle it
- Check how this would affect
TheChest.Inventories
- Check how this would affect
Full Changelog: v0.10.0...v0.11.0
v0.10.0
What's Added
- Protected field
amountthat is initialized as a result of checking which contents from theitemsparameter are notnull
What's Changed
- The API properties
StackAmountandMaxStackAmountfromIStackSlot<T>now do not have theStackpart of it Amountreturns the value fromamountand cannot be bigger thanMaxAmountor less than zeroStackSlot<T>.IsFullnow checks forAmountandMaxAmountproperties instead of the protected fields
Known issues
- #87 -
LazyStackSlotstructure needs some adjustments - #100 - Interfaces and implementations are sharing the same test scenarios
Full Changelog: v0.9.1...v0.10.0
v0.9.1
What's Fixed
readonlyremoved from the fieldcontentin Slot, StackSlot and LazyStackSlot classes
Known issues
- #20 -
StackSlotconstructor with no validation - #87 -
LazyStackSlotstructure needs some adjustments
Full Changelog: v0.9.0...v0.9.1
v0.9.0
What's Added
StackSlot.Contains(T[] items)method- Obsolete methods (do not use it)
LazyStackSlot.Contains(T[] items)- UseLazyStackSlot.Contains(T item, int amount)StackSlot.Contains(T item, int amount)- UseStackSlot.Contains(T[] items)
- Slot classes now have
contentprotected field
What's Changed
LazyStackSlotis now holding only one itemIStackSlotandISlotare now contravariantContainsextensions methods moved to interface and its class implementationsContains(T item, int amount)extension method moved toIStackSlotContains(T item)extension method moved toISlot
What's Removed
Slotsproperty fromContainerinterfaces and classesContentproperty fromSlotinterfaces and classes
Known issues
- #20 -
StackSlotconstructor with no validation - #87 -
LazyStackSlotstructure needs some adjustments
Full Changelog: v0.8.0...v0.9.0