Skip to content

Releases: The-Chest/TheChest.Core

v0.15.1

05 Jan 18:55
59c784d

Choose a tag to compare

What's Changed

  • XML docs improved on the classes and interfaces

What's Fixed

  • StackContainer<T>.Contains methods are now virtual.

What's Next

  • #127 - More ways to instantiate the Container classes
  • #123 - DLL file to release

Full Changelog: v0.15.0...v0.15.1

v0.15.0

05 Jan 16:50
3d5dd3d

Choose a tag to compare

What's Added

  • .editorconfig with code style rules
    • Nullable enabled for the project
  • Slots now have a private field named content
    • It can stores the content from constructor and be nullable
  • 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 that items array is not null or empty and does not exceed maxAmount.
      • ValidateAmount(int amount, int maxAmount) - Validates that amount is within the allowed range from zero to maxAmount.
    • LazyStackSlot<T>
      • ValidateAmount(int amount, int maxAmount) - Validates that amount is within the allowed range from zero to maxAmount.
  • MaxAmount and Amount now 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

20 Nov 21:16

Choose a tag to compare

What's Removed

  • Removed this[index] from IContainer,IStackContainer e ILazyStackContainer
  • Removed this[index] from Container,StackContainer e LazyStackContainer

What's next

  • Aiming to release TheChest.Core v1.0.0 on the next release

Full Changelog: v0.13.0...v0.14.0

v0.13.0

09 Nov 22:13

Choose a tag to compare

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

Full Changelog: v0.12.1...v0.13.0

v0.12.1

20 Sep 21:53

Choose a tag to compare

What's Removed

  • IStackContainerExtensions file 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

Full Changelog: v0.11.0...v0.12.0

v0.12.0

20 Sep 21:42
8b0a501

Choose a tag to compare

What's Changed

  • Contains methods for all Inventory classes are now part of its interfaces contracts

What's Fixed

  • Contains methods in all Slot classes are now marked as virtual

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

Full Changelog: v0.11.0...v0.12.0

v0.11.0

20 Sep 20:39
734de3c

Choose a tag to compare

What's Added

  • ILazyStackSlot<T> and ILazyStackContainer<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 Contains method not marked as virtual
  • #94 - Containers Contains method 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

Full Changelog: v0.10.0...v0.11.0

v0.10.0

26 Aug 21:20
e53ef0e

Choose a tag to compare

What's Added

  • Protected field amount that is initialized as a result of checking which contents from the items parameter are not null

What's Changed

  • The API properties StackAmount and MaxStackAmount from IStackSlot<T> now do not have the Stack part of it
  • Amount returns the value from amount and cannot be bigger than MaxAmount or less than zero
  • StackSlot<T>.IsFull now checks for Amount and MaxAmount properties instead of the protected fields

Known issues

  • #87 - LazyStackSlot structure needs some adjustments
  • #100 - Interfaces and implementations are sharing the same test scenarios

Full Changelog: v0.9.1...v0.10.0

v0.9.1

14 Aug 17:16

Choose a tag to compare

What's Fixed

  • readonly removed from the field content in Slot, StackSlot and LazyStackSlot classes

Known issues

  • #20 - StackSlot constructor with no validation
  • #87 - LazyStackSlot structure needs some adjustments

Full Changelog: v0.9.0...v0.9.1

v0.9.0

12 Aug 03:46
dc6cfa6

Choose a tag to compare

What's Added

  • StackSlot.Contains(T[] items) method
  • Obsolete methods (do not use it)
    • LazyStackSlot.Contains(T[] items) - Use LazyStackSlot.Contains(T item, int amount)
    • StackSlot.Contains(T item, int amount) - Use StackSlot.Contains(T[] items)
  • Slot classes now have content protected field

What's Changed

  • LazyStackSlot is now holding only one item
  • IStackSlot and ISlot are now contravariant
  • Contains extensions methods moved to interface and its class implementations
    • Contains(T item, int amount) extension method moved to IStackSlot
    • Contains(T item) extension method moved to ISlot

What's Removed

  • Slots property from Container interfaces and classes
  • Content property from Slot interfaces and classes

Known issues

  • #20 - StackSlot constructor with no validation
  • #87 - LazyStackSlot structure needs some adjustments

Full Changelog: v0.8.0...v0.9.0