Fixed identifier error when damage player;
Added addSeason(SeasonObject)
and removeSeason(SeasonObject)
in WeatherObject;
Full Changelog: https://github.com/kochkaev/seasons-api/compare/1.2-BETA-1...1.2-BETA-2
Added Events for mod developers
Full Changelog: https://github.com/kochkaev/seasons-api/compare/1.2-BETA-0...1.2-BETA-1
Fixed known issues
- Now you can skip the thunder by sleeping in a bed;
Full Changelog: https://github.com/kochkaev/seasons-api/compare/1.0...1.1
Seasons now can cycle!
Seasons changes
All seasons are now stored in a Tree
structure consisting of a TreeBranch
. Each branch can have many branches but only one parent, can store only one SeasonObject
, but one season can be stored in several branches at once and have many parents. Seasons that have no parents (located at the root of the tree) are called highest (first) order seasons. The longer the “path” to a season - the lower its order.
Configs changes
The config system was completely rewritten and optimized. Now all config files are described in ConfigFileObject
and their contents are stored in ConfigContentObject
. All values in configs are now automatically typed depending on the default value. Added methods to create a selection from some list. All values are now stored in ConfigValueObject
(or ConfigSelectionObject
if it is a list).
Methods
addHeader
- add header.addValue
- add parameter.addDynamicSelectionButton
- add a selection from a list (as a button in the interface) obtained from the supplier.addStaticSelectionButton
- add a selection from the list (as a button in the interface) passed in the method call.addDynamicSelectionDropdown
- add a selection from the list (as a dropdown list in the interface) received from the suppler.addStaticSelectionDropdown
- add a selection from the list (as a dropdown list in the interface) passed in the method call.addDynamicSelectionSuggestion
- add a selection from the list (as a prompt when entering text in the interface), received from the suppler.addStaticSelectionSuggestion
- add a selection from the list (in the form of prompts when entering text in the interface), passed when calling the method.
Parameters
- key - key, used to get the value.
- value - default value, further typing of the changed value depends on the type of this value.
- header - header (mostly decoration), specify “” if you want to inherit it from the previous added value or header.
- description - description of the parameter.
- consumer - lambda expression executed when the value is changed, receiving the old and new value as input.
- list - list containing possible values for the parameter.
- supplier - lambda expression that returns the list.
Challenges Ticker
The ChallengesTicker
now ticks not every secondsPerTick seconds, but every ticksPerChallengeTick Minecraft ticks (1 second = 20 Minecraft ticks)
Full Changelog: https://github.com/kochkaev/seasons-api/compare/1.0-RC-4.3...1.0-RC-5
Update ModMenu integration
Full Changelog: https://github.com/kochkaev/seasons-api/compare/1.0-RC-4.2...1.0-RC-4.3
Fixed config update using Cloth Config. Optimized TXTConfigObject and ClothConfigClient
Fixed server crashes. Added new config features.
Added client-side supporting!
Added Cloth Config and Mod Menu client integration.
current.json
moved to world directory as seasons-current.json
Added auto creating GUI for all config files (except langs).
Added new features to config generation:
addHeader(String header)
- add header to file ("# * Header") and Cloth Config entries.addTypedValue(String key, Object value)
- add auto parsing value (required to correct entry creating in Cloth Config; in following format: 'key: "value" # | type: "Type"')addTypedValueAndCommentDefault(String key, Object value)
- add auto parsing value and comment with default value (in Cloth Config works similarly toaddTypedValue(String key, Object value)
; in following format: 'key: "value" # | type: "Type" | default: "value"')
Full Changelog: https://github.com/kochkaev/seasons-api/compare/1.0-RC-3.3...1.0-RC-4
Fixes execution of new logic in tasks
Adds getTaskKey(ServerPlayerEntity player, String taskName) in ChallengeObject to quick get unique key for task.
Update Tasks and Frozen effect Now key can be any Object, lambda expression and list of args for them is now saving to new Map1Key2Values collector. Frozen is now automaticly gives and removes for particular player (when you calls some protected methods in ChallengeObject)
Split Config.java to Config service and ConfigObject. Add getFloat(String) and getDouble(String) to TXTConfigObject