-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Config entry dependencies #195
base: v8
Are you sure you want to change the base?
Commits on Mar 1, 2023
-
Configuration menu - View commit details
-
Copy full SHA for c550f9f - Browse repository at this point
Copy the full SHA c550f9fView commit details -
Configuration menu - View commit details
-
Copy full SHA for c7f2e0a - Browse repository at this point
Copy the full SHA c7f2e0aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 539b93b - Browse repository at this point
Copy the full SHA 539b93bView commit details -
Breaking: remove colour codes from yes/no lang text
Adding the colour formatting programmatically allows us to use the same text in contexts where we don't want colour
Configuration menu - View commit details
-
Copy full SHA for 95d7457 - Browse repository at this point
Copy the full SHA 95d7457View commit details
Commits on Mar 4, 2023
-
Not functional yet, but can be set on fields
Configuration menu - View commit details
-
Copy full SHA for 46e5754 - Browse repository at this point
Copy the full SHA 46e5754View commit details
Commits on Mar 6, 2023
-
The sub-category implementation is pretty clean, but for some reason the root level needed a whole separate filter, because hidden entries were being added back at the wrong index...
Configuration menu - View commit details
-
Copy full SHA for 45995d6 - Browse repository at this point
Copy the full SHA 45995d6View commit details -
Implement disablement for lists and sub-categories
Configuration menu - View commit details
-
Copy full SHA for 6812905 - Browse repository at this point
Copy the full SHA 6812905View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9b0a8c4 - Browse repository at this point
Copy the full SHA 9b0a8c4View commit details
Commits on Mar 11, 2023
-
Introduce a "Dependency" class
To allow for having multiple dependencies and non-boolean dependencies, lets store dependencies in the form of a class. This allows any one entry to depend on multiple other entries. **All** dependencies must be met for the entry to be enabled. A dependency can be set to "hide when disabled", if one of the unmet dependencies has this set, the entry is not shown at all. A dependency can have multiple conditions defined, if **any** condition is met the dependency is satisfied.
Configuration menu - View commit details
-
Copy full SHA for e4d5da0 - Browse repository at this point
Copy the full SHA e4d5da0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3104296 - Browse repository at this point
Copy the full SHA 3104296View commit details
Commits on Mar 12, 2023
-
More cleanup, Dependency constructor->generators
Static dependency generator methods seem cleaner than having the user construct an object and then run setter methods on it. Similar UX to using builders.
Configuration menu - View commit details
-
Copy full SHA for ea9414f - Browse repository at this point
Copy the full SHA ea9414fView commit details -
- Move dependency generators to the base `Dependency` class. - Move all dependencies into the same package, to allow constructors to be package-private. - Add javadoc to `Dependency`'s methods.
Configuration menu - View commit details
-
Copy full SHA for ec59e44 - Browse repository at this point
Copy the full SHA ec59e44View commit details -
`SelectionDependency` allows entries to depend on a `SelectionListEntry` being set to a particular value. Multiple condition values can also be set. If any are met the dependency is satisfied. Sub-classes such as `EnumListEntry` are also supported.
Configuration menu - View commit details
-
Copy full SHA for 901ebc4 - Browse repository at this point
Copy the full SHA 901ebc4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9cca789 - Browse repository at this point
Copy the full SHA 9cca789View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5343bb2 - Browse repository at this point
Copy the full SHA 5343bb2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1b7226f - Browse repository at this point
Copy the full SHA 1b7226fView commit details -
Autoconfig annotation implementation
Untested, but hopefully mostly ok... Need to setup an Autoconfig demo that can be run in-game... TODO: Allow a single field to have multiple dependencies. Config fields can be annotated with `@DependsOn()` which can have the following parameters set: - `value` the i18n key of the field to be depended on - `hiddenWhenNotMet` whether the dependency should cause the dependent entry to become completely hidden - `conditions` an array of condition strings that will be parsed to the appropriate type and compared against the dependency's value.
Configuration menu - View commit details
-
Copy full SHA for b7ed907 - Browse repository at this point
Copy the full SHA b7ed907View commit details -
A wrapper annotation which contains a list of `@DependsOn` annotations. ConfigScreenProvider iterates over each DependsOn and adds multiple dependencies.
Configuration menu - View commit details
-
Copy full SHA for 4969451 - Browse repository at this point
Copy the full SHA 4969451View commit details
Commits on Mar 13, 2023
-
Move most of the implementation into the abstract class `ConfigEntryDependency`
Configuration menu - View commit details
-
Copy full SHA for ef53fed - Browse repository at this point
Copy the full SHA ef53fedView commit details -
Replace having multiple dependencies with groups
Instead of each config entry having a collection of dependencies, create a new special DependencyGroup that can contain multiple other dependencies. `DependencyGroup` implements `Dependency`, so it can be nested if desired. However, the annotation equivalent (`@DependsOnGroup`) cannot be nested due to annotation design limitations. In other words, Autoconfig can only have one group per field. Conditions are effectively logical operators, allowing for more advanced dependencies. E.g. `ALL` requires all dependencies be met, while `ANY` only requires one-or-more.
Configuration menu - View commit details
-
Copy full SHA for eed9e56 - Browse repository at this point
Copy the full SHA eed9e56View commit details -
Configuration menu - View commit details
-
Copy full SHA for a740fe9 - Browse repository at this point
Copy the full SHA a740fe9View commit details
Commits on Mar 14, 2023
-
`DependencyManager` is used to build and setup dependencies in Autoconfig. It needs to keep track of all config entries created/transformed. Made it so that GuiRegistryAccess can have a DependencyManager instance associated with it.
Configuration menu - View commit details
-
Copy full SHA for 3fba849 - Browse repository at this point
Copy the full SHA 3fba849View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2aafda3 - Browse repository at this point
Copy the full SHA 2aafda3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1255a24 - Browse repository at this point
Copy the full SHA 1255a24View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4eac7a0 - Browse repository at this point
Copy the full SHA 4eac7a0View commit details
Commits on Mar 17, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 44c7ebd - Browse repository at this point
Copy the full SHA 44c7ebdView commit details -
Changes were a mixture of debugging and cleanup of unrelated code.
Configuration menu - View commit details
-
Copy full SHA for c5b0284 - Browse repository at this point
Copy the full SHA c5b0284View commit details -
Simplify visibleChildren filter
`DynamicEntryListWidget.visibleChildren()` can return an unmodifiable List, if the list needs to be modified, `children()` can be used directly. This means we can simply use a filtered stream to remove hidden entries, rather than creating a semi-transparent `AbstractList` implementation.
Configuration menu - View commit details
-
Copy full SHA for 8a0eddc - Browse repository at this point
Copy the full SHA 8a0eddcView commit details -
Initial basic autoconfig demo to test out the current implementation. Noticed that the `ExampleConfig` doesn't have any translation strings, so it's more a code example than a full demo as things stand currently. Also, noticed that `@TransitiveObject` having a dependency doesn't currently work as expected. Intended behaviour would probably to add the defined dependency to all children of the object.
Configuration menu - View commit details
-
Copy full SHA for bfc87ea - Browse repository at this point
Copy the full SHA bfc87eaView commit details -
Add @dependsOn annotations to transitive children
Allow DependencyManager to register an "override" annotation, and use this to register each child entry with its parent's annotation.
Configuration menu - View commit details
-
Copy full SHA for fda6d1e - Browse repository at this point
Copy the full SHA fda6d1eView commit details -
TextListEntry should be visually disabled
Like other config entries, `TextListEntry` should render `DARK_GREY` when its dependencies are not met.
Configuration menu - View commit details
-
Copy full SHA for daee3c3 - Browse repository at this point
Copy the full SHA daee3c3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5dbee63 - Browse repository at this point
Copy the full SHA 5dbee63View commit details
Commits on Mar 18, 2023
-
Better handle one->many config entries
`GuiRegistry` often deals with a list of config entry GUIs when handling a specific field. E.g. when a `@PrefixText` is present, or when child GUIs are returned by providers/transformers such as `@TransitiveObject`. Rather than relying on the i18n key defined in `GuiRegistry`'s handlers, lets ask each GUI what it thinks its key is. Additionally, reworked how "dependency overrides" work; instead we introduce an "additional dependencies" concept. Also, made i18n prefix optional. Currently, the only optional part is the root config's i18n key.
Configuration menu - View commit details
-
Copy full SHA for 60a0272 - Browse repository at this point
Copy the full SHA 60a0272View commit details -
registerAdditionalDependency should take an entry
The i18n key is an internal detail of `DependencyManager`, so it makes more sense to register an additional dependency against a config entry rather than a i18n key.
Configuration menu - View commit details
-
Copy full SHA for d4a6d10 - Browse repository at this point
Copy the full SHA d4a6d10View commit details -
Cleanup registerAdditionalDependency
Just take a single `Collection`, rather than also trying to handle the field's annotations. The caller should simply add any field-annotations to the collection before calling.
Configuration menu - View commit details
-
Copy full SHA for af7d34d - Browse repository at this point
Copy the full SHA af7d34dView commit details -
Remove duplicates in combineDependencies()
Override `Object.equals()` and `Object.hashCode()` in `DependencyGroup` and `ConfigEntryDependency` to allow comparison between different `Dependency` instances. Ensure distinct annotations are used to construct dependencies - more efficient than ensuring all constructed dependencies are distinct. Ensure no matching dependency is present when adding "single" dependencies to the groups list.
Configuration menu - View commit details
-
Copy full SHA for 67252a2 - Browse repository at this point
Copy the full SHA 67252a2View commit details -
Configuration menu - View commit details
-
Copy full SHA for eb6f26e - Browse repository at this point
Copy the full SHA eb6f26eView commit details -
Refactor DependencyManager's registry
An entry's field was being overwritten by parent fields as `DependencyManager.register()` got called multiple times. Instead of keeping track of the field, we can simplify things be maintaining a list of dependency annotations that have been registered with the entry. This also means we can get rid of the separate `additionalDependencies` map and just have a list of annotations in the main `EntryRecord`. This greatly simplifies `buildDependencies()` This fixes outer fields being unable to depend on children of their siblings.
Configuration menu - View commit details
-
Copy full SHA for c2ee2e6 - Browse repository at this point
Copy the full SHA c2ee2e6View commit details -
Configuration menu - View commit details
-
Copy full SHA for b59baad - Browse repository at this point
Copy the full SHA b59baadView commit details
Commits on Mar 19, 2023
-
Initial stubbing out of complex conditions
Introduce a `Condition` class that can represent more complex conditions than simply `condition == value`. For example `NumberConditions` can check if `condition > value`. Split `ConfigEntryDependency` into Simple+Complex variants: - For `SimpleDependency`, the condition type is the same as the config entry type. E.g. `BooleanDependency` - For `ComplexDependency`, the condition is a `Condition` object, which relates to the same type as the config entry. We could completely remove the simple variant and instead introduce a `SimpleCondition` whose `check()` method is simply `condition.value == entry.value` if this is preferred?
Configuration menu - View commit details
-
Copy full SHA for 91b4701 - Browse repository at this point
Copy the full SHA 91b4701View commit details -
Convert Boolean & Selection to complex
Mostly playing with what the API would look like if all dependencies used "complex" `Condition`s, at least under the hood. Introduced `withCondition()` and `withSimpleCondition()` to try and provide low-boilerplate methods of having multiple/complex conditions. Fleshed out `Condition` a bit more, introduced `BooleanCondition` and `EnumCondition`. Reduced `SelectionDependency` in scope to only support `Enum` selections as that helped maintain type-safety with the generics.
Configuration menu - View commit details
-
Copy full SHA for b3544c8 - Browse repository at this point
Copy the full SHA b3544c8View commit details -
Use EnumListEntry in autoconfig
Since `SelectionDependency`'s scope was limited to just Enums, this is required. It also improves type safety and simplifies the `@EnumHandler` provider code greatly. Since we've already checked `field.getType().isEnum()` in the predicate we can safely cast `field.getType()` to `Class<Enum<?>>`;
Configuration menu - View commit details
-
Copy full SHA for f367b20 - Browse repository at this point
Copy the full SHA f367b20View commit details -
Configuration menu - View commit details
-
Copy full SHA for b455156 - Browse repository at this point
Copy the full SHA b455156View commit details -
Configuration menu - View commit details
-
Copy full SHA for a655f77 - Browse repository at this point
Copy the full SHA a655f77View commit details -
Configuration menu - View commit details
-
Copy full SHA for fcece1d - Browse repository at this point
Copy the full SHA fcece1dView commit details
Commits on Mar 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for a8d39a2 - Browse repository at this point
Copy the full SHA a8d39a2View commit details -
Removed the `APPROX` operator for now, couldn't come up with a simple way to implement it generically. Defined the generic type requirement `T extends Number & Comparable<T>` for `NumberCondition` values, allowing us to safely rely on `Comparable.compareTo()` when checking the condition is met. All boxed-type numbers can be compared against other instances of the same type using `compareTo()`, which suits us perfectly. This means `fromString()` can build a `NumberCondition` for any of the basic number classes instead of always using `Double`.
Configuration menu - View commit details
-
Copy full SHA for 880e938 - Browse repository at this point
Copy the full SHA 880e938View commit details -
Store dependency annotations in a set
Instead of filtering for `distinct()` annotations after the fact, it's better to store them in a `Set` to begin with.
Configuration menu - View commit details
-
Copy full SHA for c9483ca - Browse repository at this point
Copy the full SHA c9483caView commit details -
Remove usage of generic `Annotation` class, instead have methods accept separate collections of `@DependsOn` and `@DependsOnGroup` annotations. This removes a lot of runtime validations and allows us to use compile-time type checking instead.
Configuration menu - View commit details
-
Copy full SHA for bfe6197 - Browse repository at this point
Copy the full SHA bfe6197View commit details
Commits on Mar 21, 2023
-
Made the abstract dependency classes reference a new `ConfigEntry` interface which describes all the `AbstractConfigEntry` methods that dependencies care about. This allows for dependencies to not depend on any one specific config entry class, but instead an interface describing a set of config entry classes. For example the new `NumberConfigEntry` interface. `NumberConfigEntry` describes a `ConfigEntry` that uses a type extending `Number & Comparable`. It is implemented by both slider classes and also `AbstractNumberListEntry`. `BooleanDependency` and `EnumDependency` can still depend directly on `BooleanListEntry` and `EnumListEntry` respectively, unless you'd rather also use interfaces here to create a layer of abstraction between config entries and their dependencies...
Configuration menu - View commit details
-
Copy full SHA for 6dbc4ae - Browse repository at this point
Copy the full SHA 6dbc4aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for dc2a8fd - Browse repository at this point
Copy the full SHA dc2a8fdView commit details -
It is now possible to depend on other fields using a relative i18n reference. By starting the reference with a `.`, the referencing field's parent key will be inserted as a prefix. It's also possible to start a reference with multiple `.`s. For each `.`, one "generation" of parent is removed from the prefix, allowing you to reference "cousin" objects too.
Configuration menu - View commit details
-
Copy full SHA for 21a49c9 - Browse repository at this point
Copy the full SHA 21a49c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for ada0cfb - Browse repository at this point
Copy the full SHA ada0cfbView commit details -
Configuration menu - View commit details
-
Copy full SHA for c01a2f2 - Browse repository at this point
Copy the full SHA c01a2f2View commit details
Commits on Mar 22, 2023
-
Re-implement using actual boolean button text
Add the optional ability to use the actual boolean button text (usually "Yes" or "No") instead of "enabled"/"disabled.
Configuration menu - View commit details
-
Copy full SHA for fa27f2d - Browse repository at this point
Copy the full SHA fa27f2dView commit details -
Configuration menu - View commit details
-
Copy full SHA for f7fc913 - Browse repository at this point
Copy the full SHA f7fc913View commit details -
I think dependencies are starting to get complex enough that a builder actually simplifies things.
Configuration menu - View commit details
-
Copy full SHA for aee338f - Browse repository at this point
Copy the full SHA aee338fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 117774e - Browse repository at this point
Copy the full SHA 117774eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1699017 - Browse repository at this point
Copy the full SHA 1699017View commit details -
Configuration menu - View commit details
-
Copy full SHA for a865717 - Browse repository at this point
Copy the full SHA a865717View commit details
Commits on Mar 23, 2023
-
Make Condition code more generic
Have less similar code in implementing classes. Not sure if I like having internal/public versions of the same method though...
Configuration menu - View commit details
-
Copy full SHA for 778d4c2 - Browse repository at this point
Copy the full SHA 778d4c2View commit details
Commits on Mar 25, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 5507ceb - Browse repository at this point
Copy the full SHA 5507cebView commit details -
Move most stuff into `impl`, group dependency and builder implementations so that dependency constructors can be package-private instead of deprecated.
Configuration menu - View commit details
-
Copy full SHA for fa87293 - Browse repository at this point
Copy the full SHA fa87293View commit details
Commits on Mar 26, 2023
-
More comprehensive tooltip inversion
The various `getTooltip`, `getShortDescription`, `getConditionText`, `Condition#getText()` methods can now be passed an "inverted" parameter. If "inverted" is `true`, then the generated text should be logically inverted.
Configuration menu - View commit details
-
Copy full SHA for bcfbaa3 - Browse repository at this point
Copy the full SHA bcfbaa3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 85296cb - Browse repository at this point
Copy the full SHA 85296cbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 799c1ce - Browse repository at this point
Copy the full SHA 799c1ceView commit details -
Flatten group tooltips where possible
If child groups have matching condition/inversion then we can flatten them into the parent group's tooltip.
Configuration menu - View commit details
-
Copy full SHA for 8076475 - Browse repository at this point
Copy the full SHA 8076475View commit details -
Configuration menu - View commit details
-
Copy full SHA for 12901b0 - Browse repository at this point
Copy the full SHA 12901b0View commit details -
Make boolean conditions optional
`BooleanDependencyBuilder` can handle missing conditions, they default to `true`.
Configuration menu - View commit details
-
Copy full SHA for d457fdf - Browse repository at this point
Copy the full SHA d457fdfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 735a0b0 - Browse repository at this point
Copy the full SHA 735a0b0View commit details -
Configuration menu - View commit details
-
Copy full SHA for c6b0628 - Browse repository at this point
Copy the full SHA c6b0628View commit details
Commits on Mar 27, 2023
-
Separate hide behaviour from Dependency interface
Dependencies shouldn't need to know how dependent guis will behave when the dependency is met/unmet. Instead, we can define an "enable if" and a "show if" dependency on each gui. For autoconfig, we can handle that with separate annotations; `@EnableIf` and `@ShowIf` with corresponding `*Group` annotations. In `DependencyManager` we can simply map the annotation to a `DependencyRecord` and use this instead of the old `@DependsOn` annotation. In `FieldBuilder` we can split `withDependency()` into `setEnabledIf()` and `setShownIf()`.
Configuration menu - View commit details
-
Copy full SHA for 4b2d9ce - Browse repository at this point
Copy the full SHA 4b2d9ceView commit details -
Move condition parsing out of DependencyManager
Each condition class should handle its parsing. `DependencyManager` should simply call the class's `fromConditionString()` method.
Configuration menu - View commit details
-
Copy full SHA for 643839b - Browse repository at this point
Copy the full SHA 643839bView commit details -
Configuration menu - View commit details
-
Copy full SHA for b68d34b - Browse repository at this point
Copy the full SHA b68d34bView commit details -
We don't need to keep track of `baseI18n` in the record, since we can parse the relative i18n key during construction. This should also reduce the chance of getting effectively-equal duplicates.
Configuration menu - View commit details
-
Copy full SHA for aa14f86 - Browse repository at this point
Copy the full SHA aa14f86View commit details -
Configuration menu - View commit details
-
Copy full SHA for 797e98b - Browse repository at this point
Copy the full SHA 797e98bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 39d1b02 - Browse repository at this point
Copy the full SHA 39d1b02View commit details -
Move records into their own files
Keep them package-private and `@ApiStatus.Internal`
Configuration menu - View commit details
-
Copy full SHA for 6893b6b - Browse repository at this point
Copy the full SHA 6893b6bView commit details
Commits on Mar 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4addf3b - Browse repository at this point
Copy the full SHA 4addf3bView commit details
Commits on Mar 30, 2023
-
Condition requires that the depended-on entry matches another entry's current value ComparatorDependency is a holdover from early in the design. It might be removed, or perhaps re-worked into a "fallback" dependency for unsupported types? Still need to re-work tooltips to properly handle dynamic matcher conditions
Configuration menu - View commit details
-
Copy full SHA for d399713 - Browse repository at this point
Copy the full SHA d399713View commit details -
Avoid copying arrays or over-allocating memory by using a linked list
Configuration menu - View commit details
-
Copy full SHA for 28995b1 - Browse repository at this point
Copy the full SHA 28995b1View commit details -
Introduce builder methods in the Definition records to reduce code duplication.
Configuration menu - View commit details
-
Copy full SHA for 5293b8f - Browse repository at this point
Copy the full SHA 5293b8fView commit details
Commits on Mar 31, 2023
-
Let getEntry throw a runtime exception
Instead of returning an Optional and having the caller throw the exception, centralise the throw
Configuration menu - View commit details
-
Copy full SHA for 71d08ae - Browse repository at this point
Copy the full SHA 71d08aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7239844 - Browse repository at this point
Copy the full SHA 7239844View commit details -
Allow disabling tooltips + improve generation
Improve tooltip generation for groups and for dependencies with "dynamic" matcher conditions. Allow tooltip generation to be disabled, in-case the user wishes to define their own tooltip/label text manually.
Configuration menu - View commit details
-
Copy full SHA for b7b7fe9 - Browse repository at this point
Copy the full SHA b7b7fe9View commit details -
Stream tooltip lines instead of adding to a list
Allow the stream api to decide on an efficient way of building an array of lines instead of appending to a list manually and then converting to an array
Configuration menu - View commit details
-
Copy full SHA for c200159 - Browse repository at this point
Copy the full SHA c200159View commit details -
Configuration menu - View commit details
-
Copy full SHA for 801d2ce - Browse repository at this point
Copy the full SHA 801d2ceView commit details -
Configuration menu - View commit details
-
Copy full SHA for 71be351 - Browse repository at this point
Copy the full SHA 71be351View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0759a59 - Browse repository at this point
Copy the full SHA 0759a59View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e96d6d - Browse repository at this point
Copy the full SHA 4e96d6dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 26acecc - Browse repository at this point
Copy the full SHA 26aceccView commit details -
Move i18n parsing into its own util
Also apply the prefix when registering, instead of when building.
Configuration menu - View commit details
-
Copy full SHA for 72a56fd - Browse repository at this point
Copy the full SHA 72a56fdView commit details
Commits on Apr 1, 2023
-
Rather than applying the prefix if a key doesn't start with it, apply the prefix only when a lookup fails. This may be cheaper than doing string comparison. It also removes the edge-case where a prefix may need to be repeated in a poorly chosen i18n key.
Configuration menu - View commit details
-
Copy full SHA for 4baa76d - Browse repository at this point
Copy the full SHA 4baa76dView commit details -
Move annotations to their own Dependency class
Keep them separate from the various `GUI` annotations by introducing a `Dependency` class
Configuration menu - View commit details
-
Copy full SHA for e9fb765 - Browse repository at this point
Copy the full SHA e9fb765View commit details -
Configuration menu - View commit details
-
Copy full SHA for 62eaaff - Browse repository at this point
Copy the full SHA 62eaaffView commit details -
Configuration menu - View commit details
-
Copy full SHA for 558aaab - Browse repository at this point
Copy the full SHA 558aaabView commit details -
Allow depending on unsupported types
But only for dynamic matchers (for now)
Configuration menu - View commit details
-
Copy full SHA for 0f74b16 - Browse repository at this point
Copy the full SHA 0f74b16View commit details -
Configuration menu - View commit details
-
Copy full SHA for a29a0e2 - Browse repository at this point
Copy the full SHA a29a0e2View commit details -
Require allowGeneric being set explicitly
We don't want generic dependencies being built accidentally. They might be useful in some edge-cases, but type-specific dependencies are better.
Configuration menu - View commit details
-
Copy full SHA for 315b8c5 - Browse repository at this point
Copy the full SHA 315b8c5View commit details
Commits on Apr 2, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 3f223f3 - Browse repository at this point
Copy the full SHA 3f223f3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2ac2d26 - Browse repository at this point
Copy the full SHA 2ac2d26View commit details -
Configuration menu - View commit details
-
Copy full SHA for b8de536 - Browse repository at this point
Copy the full SHA b8de536View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4a648bf - Browse repository at this point
Copy the full SHA 4a648bfView commit details -
Remove MultiConditionDependencyBuilder
It had become redundant and could be merged into AbstractDependencyBuilder
Configuration menu - View commit details
-
Copy full SHA for 74fd183 - Browse repository at this point
Copy the full SHA 74fd183View commit details -
DependencyBuilder split into Start* and Finish*
`StartDependencyBuilder` is used to start the building process and select a `ConfigEntry` to depend on. `FinishDependencyBuilder` is used to finalise the process, implementors may provide additional implementation-specific methods that only make sense for their specific type. `ConfigEntryDependencyBuilder` and `DependencyGroupBuilder` are both `FinishDependencyBuilder` implementations. Non-type specific methods (such as `generateTooltip()`) should be declared on the most generic interface. Any values set on the `StartDependencyBuilder` should be handed-over to the `FinishDependencyBuilder`.
Configuration menu - View commit details
-
Copy full SHA for 24c4781 - Browse repository at this point
Copy the full SHA 24c4781View commit details -
Configuration menu - View commit details
-
Copy full SHA for f4676f2 - Browse repository at this point
Copy the full SHA f4676f2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 03e5417 - Browse repository at this point
Copy the full SHA 03e5417View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6c9884c - Browse repository at this point
Copy the full SHA 6c9884cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 47110ca - Browse repository at this point
Copy the full SHA 47110caView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6a0bcfe - Browse repository at this point
Copy the full SHA 6a0bcfeView commit details
Commits on Apr 3, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 6d7bb67 - Browse repository at this point
Copy the full SHA 6d7bb67View commit details -
Restructuring Conditions into interfaces
Each condition type has its own interface, e.g. Comparative for numeric comparison or Equality for simple `.equals()`, `MultiCondition` for dealing with collections. Additionally, there are interfaces that control how the value is provided. - `StaticCondition` has a constant value - `MatcherCondition` uses the value of another `ConfigEntry` This breaks tooltip generation _again_
Configuration menu - View commit details
-
Copy full SHA for 1ba7e53 - Browse repository at this point
Copy the full SHA 1ba7e53View commit details -
Stub out a MultiCondition that uses a sub-condition
This could be used for e.g. comparative checking on numeric list entries
Configuration menu - View commit details
-
Copy full SHA for 7b93cca - Browse repository at this point
Copy the full SHA 7b93ccaView commit details
Commits on Apr 9, 2023
-
Configuration menu - View commit details
-
Copy full SHA for eaf42a2 - Browse repository at this point
Copy the full SHA eaf42a2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 248e841 - Browse repository at this point
Copy the full SHA 248e841View commit details -
Move condition flags to autoconfig
The underlying cloth-config implementation shouldn't need flags
Configuration menu - View commit details
-
Copy full SHA for 1c43fcb - Browse repository at this point
Copy the full SHA 1c43fcbView commit details -
Apply GroupRequirement to conditions too
If a dependency has multiple conditions it may make sense to match "all" instead of "any"...
Configuration menu - View commit details
-
Copy full SHA for 79d00a9 - Browse repository at this point
Copy the full SHA 79d00a9View commit details -
Allow the predicate to take two dissimilar params, e.g. regex Pattern and String. Most of the time, both params will just be the Condition's <T>
Configuration menu - View commit details
-
Copy full SHA for 78736b1 - Browse repository at this point
Copy the full SHA 78736b1View commit details
Commits on Apr 10, 2023
-
Begin reworking conditions to use builders
Instead of implementing a whole bunch of condition implementations, lets have a single predicate-based condition and move all the complexity into various builders.
Configuration menu - View commit details
-
Copy full SHA for 11e6155 - Browse repository at this point
Copy the full SHA 11e6155View commit details -
Configuration menu - View commit details
-
Copy full SHA for 59d82d0 - Browse repository at this point
Copy the full SHA 59d82d0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 35e62f6 - Browse repository at this point
Copy the full SHA 35e62f6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6e40871 - Browse repository at this point
Copy the full SHA 6e40871View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3badb39 - Browse repository at this point
Copy the full SHA 3badb39View commit details -
Generate tooltips and descriptions when building rather than while rendering
Configuration menu - View commit details
-
Copy full SHA for 76acbcc - Browse repository at this point
Copy the full SHA 76acbccView commit details
Commits on Apr 19, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 0cd835b - Browse repository at this point
Copy the full SHA 0cd835bView commit details -
Configuration menu - View commit details
-
Copy full SHA for f600a04 - Browse repository at this point
Copy the full SHA f600a04View commit details -
Configuration menu - View commit details
-
Copy full SHA for cfe05dd - Browse repository at this point
Copy the full SHA cfe05ddView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8cae0b9 - Browse repository at this point
Copy the full SHA 8cae0b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 10d9861 - Browse repository at this point
Copy the full SHA 10d9861View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0877b00 - Browse repository at this point
Copy the full SHA 0877b00View commit details -
DependencyBuilder should build a Dependency
Instead of building a specific implementation of Dependency
Configuration menu - View commit details
-
Copy full SHA for 6493946 - Browse repository at this point
Copy the full SHA 6493946View commit details -
Remove overly-specific dependency implementations
They are redundant now that we use builders
Configuration menu - View commit details
-
Copy full SHA for a1e7357 - Browse repository at this point
Copy the full SHA a1e7357View commit details -
Configuration menu - View commit details
-
Copy full SHA for e8c936b - Browse repository at this point
Copy the full SHA e8c936bView commit details
Commits on May 5, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 11a9d82 - Browse repository at this point
Copy the full SHA 11a9d82View commit details
Commits on Jul 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for eec25fd - Browse repository at this point
Copy the full SHA eec25fdView commit details