Commit Graph

1288 Commits

Author SHA1 Message Date
Collin Smith
79a9409a75 Fixed and issue where StatList#ensureCapacity(int,int) was only shifting next list
Added int index to StatList#ensureCapacity so that it shifts after index
Added additional validation within StatList#ensureCapacity
Added assertion that clearList does not result in a negative size
StatList#copy(int,StatList,int) now copies #maxLists as well
Added additional logging for StatList#copy
2020-09-04 15:51:49 -07:00
Collin Smith
e892970ef8 Added constants and getters for encoded and grouped stats 2020-09-04 15:47:47 -07:00
Collin Smith
ecd6946ffe Fixed StatList#add where stat did not exist 2020-09-03 21:20:53 -07:00
Collin Smith
61ba1248e1 Fixed bug where adding stat that didn't exist resulted in an IOOBE 2020-09-03 20:52:14 -07:00
Collin Smith
04b9ed785c Created StatFormatter and tests, testing as-needed 2020-09-03 20:43:28 -07:00
Collin Smith
8b06f92f54 Added getter and checker for stat ids 2020-09-03 18:53:13 -07:00
Collin Smith
fa7e066ee1 Created StatList#isEmpty() to check if there are any stats in any list 2020-09-03 18:37:30 -07:00
Collin Smith
948f1a189c Added static getter Stat#index(String) to get stat id from String name 2020-09-03 18:34:34 -07:00
Collin Smith
a3b3840b20 Added support for iterating over StatList lists 2020-09-03 18:33:55 -07:00
Collin Smith
b17f528611 Changed signatures for StatListBuilder#add(StatGetter) and #addAll(StatListGetter)
Changed signatures for StatListBuilder#add(StatGetter) and #addAll(StatListGetter) to match sibling methods
Changed StatList#addAll(int,StatList,int) to return the last index added
Above change is so that StatListBuilder index remains valid and calling #addAll does not result in undefined behavior
2020-09-03 18:02:05 -07:00
Collin Smith
bf5b0677cc Moved modification functions #add(StatGetter) and #addAll(StatListGetter)
Moved modification functions #add(StatGetter) and #addAll(StatListGetter) from StatListGetter to StatListBuilder
StatListGetter should contain read-only operations
2020-09-03 17:57:20 -07:00
Collin Smith
4c96af70d3 Changed Attriutes#remaining() to return StatListGetter instead of StatList
Changed Attriutes#remaining() to return StatListGetter instead of StatList
Unsure if this will change, but all calls require #first()
Attribute returns are all asserted to be StatLists of numLists = 1
Creation of StatList delegated, or in the case of AggregateAttributes, lazily initialized
2020-09-03 17:54:24 -07:00
Collin Smith
bd278e3c82 Changed Attriutes#base() to return StatListGetter instead of StatList
Changed Attriutes#base() to return StatListGetter instead of StatList
Unsure if this will change, but all calls require #first()
Attribute returns are all asserted to be StatLists of numLists = 1
StatList is by default delegated, or in the case of AggregatedAttributes, lazily initialized
Added support for retrieving StatListGetter parent StatList
Added support for creating a StatListBuilder from StatListGetter
Added support for clearing a StatList list from StatListGetter
2020-09-03 17:52:36 -07:00
Collin Smith
5d9420a659 Moved aggregate list creation to Attributes#aggregate() to lazily init 2020-09-03 17:47:57 -07:00
Collin Smith
e26b22c1ba Changed Attriutes#aggregate() to return StatListGetter instead of StatList
Changed Attriutes#aggregate() to return StatListGetter instead of StatList
Unsure if this will change, but all calls require #first()
Attribute returns are all asserted to be StatLists of numLists = 1
2020-09-03 17:32:58 -07:00
Collin Smith
eddd0e9b0a Created StatList#add(int,StatGetter) to add stats 2020-09-03 17:14:11 -07:00
Collin Smith
cac5236225 Added support for using StatGetter on StatListGetter operations
Added support for using StatGetter on StatListGetter operations
Created StatList#contains(int,short,int) to check a specific stat with param
2020-09-03 14:26:35 -07:00
Collin Smith
07ad2d4af2 Created package-private StatList#forceClear() to allow clearing frozen list
StatList#clear() did not allow clearing when frozen for external APIs
Attributes re-uses stat lists, and requires the ability to force clear
Renamed Attributes#resetToBase() to #reset() (functionality is documented)
Attributes#reset() no longer clears Attributes#list
2020-09-03 14:08:17 -07:00
Collin Smith
2b07fcc3d0 Added logged warning when StatListGetter#get(short) returns null 2020-09-03 03:12:04 -07:00
Collin Smith
61eca6070f Changed return type of Attributes#resetToBase() to support chaining 2020-09-03 03:11:22 -07:00
Collin Smith
534df98623 Renamed StatListBuilder#list() to #build() 2020-09-03 02:16:38 -07:00
Collin Smith
f929a99ab4 Renamed StatListBuilder#build() to #index() 2020-09-03 02:16:06 -07:00
Collin Smith
5313629f27 Committing item writer test cases 2020-09-02 20:34:15 -07:00
Collin Smith
2193040a6d Added println to help differentiate between hex dumps 2020-09-02 20:33:43 -07:00
Collin Smith
f0ea202ff3 Implemented character save writing and tests 2020-09-02 20:31:21 -07:00
Collin Smith
3e5a49943c Additional tests to validate StatListWriter
Validation that a reasonable number of item stat lists write correctly
2020-09-02 20:13:51 -07:00
Collin Smith
e8601ec692 Fixed case where item prop lists was empty (stat termination required) 2020-09-02 20:11:09 -07:00
Collin Smith
6b9a97949a Changed access to static package from public local 2020-09-02 20:10:37 -07:00
Collin Smith
d3cbca6b6f Added boolean parameter to read/write StatList functions
entry.Saved was not appropriate for determining this feature
Implemented prop list flags into StatListWriterTest tests
Added additional logging to help with organizing encoded stats
2020-09-02 19:47:05 -07:00
Collin Smith
57c12bd781 Renamed StatListFlags constants and added getter for gem property list names 2020-09-02 19:29:49 -07:00
Collin Smith
ddd7b7d07f Implemented MDC property for propList name 2020-09-02 18:57:55 -07:00
Collin Smith
da9acd5977 Created StatListFlags to store stat list flags (copied from Item) 2020-09-02 18:55:35 -07:00
Collin Smith
ca829a4025 Created StatListWriter and tests
Additional testing required, but workable code
2020-09-02 18:20:30 -07:00
Collin Smith
e6f4a8b222 Changed to skip bits only (bytes included) 2020-09-02 18:19:22 -07:00
Collin Smith
4ed61438db Added bit mask for Long#Size
Reverted previous change
writeRaw performs logical-and with bit mask to ensure cache correctness
2020-09-02 18:18:26 -07:00
Collin Smith
63e3cc0e8b Fixed issue where flush would write more bits than cached 2020-09-02 18:03:15 -07:00
Collin Smith
4ccce1dabf StatListGetter now implements iterator to iterate over stat list 2020-09-02 17:30:48 -07:00
Collin Smith
c3693a8761 Added put method in StatList to put a stat with all fields filled 2020-09-02 17:30:01 -07:00
Collin Smith
9bcf4e2693 Added util for encoding stat params and values 2020-09-02 17:29:23 -07:00
Collin Smith
1932c0fcd2 Added getter for StatGetter stat entry 2020-09-02 17:28:00 -07:00
Collin Smith
4397ee742a Removed extra test case 2020-09-02 17:09:28 -07:00
Collin Smith
0daa272752 Fixed formatting 2020-09-02 17:08:35 -07:00
Collin Smith
8cbcb814d1 inlined NUM_GEMPROPS so Item can remain unchanged for the time being 2020-09-02 16:27:55 -07:00
Collin Smith
d4102d7fa7 Removed specific stat value getters (should use #get(short) instead) 2020-09-02 16:25:55 -07:00
Collin Smith
1872c3e00c Documented parent methods 2020-09-02 16:25:02 -07:00
Collin Smith
a5b90dc868 Added test case for decoding grief stat list 2020-09-02 16:20:34 -07:00
Collin Smith
1a6a522d37 Additional logging 2020-09-02 16:20:11 -07:00
Collin Smith
ca170f7cfb Added documentation regarding method intended use-case 2020-09-02 16:19:58 -07:00
Collin Smith
251a691bd5 Added support for retrieving first entry of a stat regardless of params 2020-09-02 16:18:59 -07:00
Collin Smith
03503a8f79 Added basic check for if stat required params 2020-09-02 16:13:14 -07:00