feat/1.0 #19

Open
Sylv wants to merge 145 commits from feat/1.0 into 1.21.8
Owner

This is the Pull Request for the official 1.0 release of Silicate. The API has been completely overhauled along with many terms used in previous versions of Silicate.

The new terminology is as follows:

  • Condition Type => Predicate
    • This is more in line with how Java views the Predicate functional interface.
  • Condition Template => Condition
  • Condition => Condition (instance)
    • Because inline usages of Predicates are called Condition Templates, they are now called Conditions. This also includes references to other Conditions.
  • Parameter Type => Parameter Key

Value Types

A ValueType is a representation of a Class<T> object and (optionally) a Codec<T>. This is used when defining predicates and adds distinction between parameters and types.

DynamicValue

A value whose type is resolved at test-time.

Deferred

A value with a static ValueType that is resolved at test-time. This can also be called a 'Deferred Value', but Deferred is how it's referenced in code for brevity.

This is the Pull Request for the official 1.0 release of Silicate. The API has been completely overhauled along with many terms used in previous versions of Silicate. The new terminology is as follows: - Condition Type => Predicate - This is more in line with how Java views the `Predicate` functional interface. - Condition Template => Condition - Condition => Condition (instance) - Because inline usages of Predicates are called Condition Templates, they are now called Conditions. This also includes references to other Conditions. - Parameter Type => Parameter Key ## Value Types A `ValueType` is a representation of a `Class<T>` object and (optionally) a `Codec<T>`. This is used when defining predicates and adds distinction between parameters and types. ## `DynamicValue` A value whose type is resolved at test-time. ## `Deferred` A value with a static `ValueType` that is resolved at test-time. This can also be called a 'Deferred Value', but `Deferred` is how it's referenced in code for brevity.
Sylv added this to the 1.0 milestone 2025-11-03 05:22:50 +00:00
Sylv self-assigned this 2025-11-03 05:22:50 +00:00
Sylv added 11 commits 2025-11-03 05:22:51 +00:00
refactor!: type field -> predicate
Some checks are pending
Build / build (push) Waiting to run
Test Fabric / build (push) Waiting to run
Test NeoForge / build (push) Waiting to run
56c2df80bf
fix(ci): set runner label to supported runner
Some checks failed
Test NeoForge / build (push) Waiting to run
Build / build (push) Has been cancelled
Test Fabric / build (push) Has been cancelled
8fdbe9afef
fix(ci): remove github settings in setup-java with
Some checks failed
Test Fabric / build (push) Failing after 23m41s
Build / build (push) Failing after 23m55s
Test NeoForge / build (push) Failing after 18m46s
3a6fd43d7f
Sylv requested review from Calico 2025-11-03 05:32:27 +00:00
@ -34,2 +34,4 @@
annotationProcessor("io.github.llamalad7:mixinextras-common:${Versions.MIXIN_EXTRAS}")
compileOnly("net.fabricmc:sponge-mixin:${Versions.FABRIC_MIXIN}")
implementation("dev.lukebemish:codecextras:${Versions.CODEC_EXTRAS}")
Author
Owner

btw this dependency is version-agnostic, so we don't have to worry about it.

btw this dependency is version-agnostic, so we don't have to worry about it.
Sylv marked this conversation as resolved
Author
Owner

for future sylv: something I forgot is figuring out how to set Holder's default namespace to silicate. make sure that happens before 1.0 please, or reconsider doing that at all.

for future sylv: something I forgot is figuring out how to set `Holder`'s default namespace to `silicate`. make sure that happens before 1.0 please, or reconsider doing that at all.
Author
Owner

I have an idea: we can replace the minecraft namespace with silicate when convenient. It is slightly hacky, but it makes sense. Minecraft does not and will never define its own predicates or parameters.

I have an idea: we can replace the `minecraft` namespace with `silicate` when convenient. It is slightly hacky, but it makes sense. Minecraft does not and will never define its own predicates or parameters.
how the hell did that happen lol
Sylv added 19 commits 2025-11-04 22:19:56 +00:00
`PlayerGameTypePredicate#eitherGameType`
doing this since Mojang changed `ResourceLocation` to `Identifier` in the latest snapshot.
Sylv added 20 commits 2025-11-06 10:52:38 +00:00
Author
Owner

Almost done! Just need a few more changes now.

Almost done! Just need a few more changes now.
Calico closed this pull request 2025-11-10 03:46:50 +00:00
Sylv reopened this pull request 2025-11-10 03:47:35 +00:00
# Conflicts:
#	common/src/test/java/lgbt/greenhouse/silicate/test/instance/ConditionsTestInstance.java
#	common/src/test/java/lgbt/greenhouse/silicate/test/instance/ContextParamMapTestInstance.java
#	common/src/test/java/lgbt/greenhouse/silicate/test/instance/ContextParamTestinstance.java
#	common/src/test/resources/data/silicate_test/test_instance/context_param.json
#	common/src/test/resources/data/silicate_test/test_instance/context_param_map.json
#	xplat/src/main/java/lgbt/greenhouse/silicate/api/condition/meta/ValueDispatched.java.disabled
#	xplat/src/test/java/lgbt/greenhouse/silicate/test/instance/ConditionsTestInstance.java
#	xplat/src/test/java/lgbt/greenhouse/silicate/test/instance/ContextParamMapTestInstance.java
#	xplat/src/test/java/lgbt/greenhouse/silicate/test/instance/ContextParamTestinstance.java
#	xplat/src/test/java/lgbt/greenhouse/silicate/test/instance/ParameterKeyTestInstance.java
#	xplat/src/test/java/lgbt/greenhouse/silicate/test/instance/ParameterMapTestInstance.java
#	xplat/src/test/java/lgbt/greenhouse/silicate/test/instance/PredicatesTestInstance.java
#	xplat/src/test/resources/data/silicate_test/silicate/condition_template/riding_only.json
#	xplat/src/test/resources/data/silicate_test/silicate/condition_template/true.json
#	xplat/src/test/resources/data/silicate_test/test_instance/condition_templates.json
#	xplat/src/test/resources/data/silicate_test/test_instance/context_param.json
#	xplat/src/test/resources/data/silicate_test/test_instance/context_param_map.json
#	xplat/src/test/resources/data/silicate_test/test_instance/parameter_key.json
#	xplat/src/test/resources/data/silicate_test/test_instance/parameter_map.json
#	xplat/src/test/resources/data/silicate_test/test_instance/predicates.json
Sylv changed title from WIP: feat/1.0 to feat/1.0 2025-11-11 00:50:17 +00:00
Merge remote-tracking branch 'origin/1.21.8' into feat/1.0
Some checks are pending
Build / build (push) Waiting to run
Test Fabric / build (push) Waiting to run
Test NeoForge / build (push) Waiting to run
49a52e788c
# Conflicts:
#	.github/workflows/gradle-build.yml
#	.github/workflows/gradle-publish-github.yml
#	.github/workflows/gradle-publish-maven.yml
#	.github/workflows/gradle-publish-modrinth.yml
#	.github/workflows/test-fabric.yml
#	.github/workflows/test-neoforge.yml
Author
Owner

oops, we need to remove Test NeoForge

oops, we need to remove Test NeoForge
@ -19,2 +19,4 @@
const val FORGEJO_REPO = "Modding/silicate"
const val FORGEJO_COMITISH = Versions.MINECRAFT
val JAVAC_ARGS = listOf<String>(
Author
Owner

wat

wat
feat!: PredicateCodecBuilder#withReference
Some checks are pending
Build / build (push) Waiting to run
Test Fabric / build (push) Waiting to run
Test NeoForge / build (push) Waiting to run
60b6cb1b13
refactor!: finalize ParameterMap
Some checks are pending
Build / build (push) Waiting to run
Test Fabric / build (push) Waiting to run
Test NeoForge / build (push) Waiting to run
bf753acc9c
refactor!: Nuke ParameterSet for simplicity's sake
Some checks failed
Test Fabric / build (push) Has been cancelled
Test NeoForge / build (push) Has been cancelled
Build / build (push) Has been cancelled
abee05ce96
Merge branch '1.21.8' into feat/1.0
Some checks failed
Build / build (push) Failing after 1m26s
Test Fabric / build (push) Failing after 1m25s
033bf88e58
fix(build): skipLocalJars = true
Some checks failed
Test Fabric / build (push) Failing after 1m16s
Build / build (push) Failing after 1m19s
f49390e2cd
fix(build): re-enable skipLocalJars
Some checks failed
Test Fabric / build (push) Failing after 1m17s
Build / build (push) Failing after 1m24s
8edf45ece9
fix(build): use /releases/ in terraformersmc because we need to break everything don't we?
Some checks failed
Test Fabric / build (push) Failing after 4m46s
Build / build (push) Failing after 4m51s
fc026009da
Author
Owner

common un-cached CI fail
cope
skill issue

common un-cached CI fail cope skill issue
refactor!: EntityTypePredicate -> EntityIsTypePredicate
Some checks failed
Test Fabric / build (push) Failing after 4m59s
Build / build (push) Failing after 5m1s
9cabac1147
docs: clarify in pushTestPop that immediate returns are also okay
Some checks failed
Test Fabric / build (push) Failing after 4m23s
Build / build (push) Failing after 3m29s
f3cf3b15d5
chore(build): remove println
Some checks failed
Build / build (push) Failing after 3m7s
Test Fabric / build (push) Failing after 4m34s
934a81e2f9
chore: update to 1.21.10
Some checks failed
Build / build (push) Failing after 3m25s
Test Fabric / build (push) Failing after 4m52s
d97b1be7a4
Merge branch '1.21.8' into feat/1.0
Some checks failed
Build / build (push) Failing after 5m59s
Test Fabric / build (push) Failing after 6m32s
0b75ea48c3
fix(build): skipLocalJars in all buildscripts
Some checks failed
Build / build (push) Failing after 6m13s
Test Fabric / build (push) Failing after 5m53s
3c41c04c8c
docs(README): make users use xplat for modCompileOnly
Some checks failed
Build / build (push) Failing after 1m41s
Test Fabric / build (push) Failing after 1m40s
72928ff4e3
fix(ci): properly continue on error in dummy build with gradle run
Some checks failed
Test Fabric / build (push) Failing after 1m28s
Build / build (push) Failing after 1m32s
b4ab20af6c
fix(build): extra java module info for neoform jar
Some checks failed
Test Fabric / build (push) Failing after 1m27s
Build / build (push) Failing after 1m28s
ac5d894eb5
fix(build): also include non-merged neoform jar since it thinks that's a thing
Some checks failed
Build / build (push) Failing after 1m27s
Test Fabric / build (push) Failing after 1m26s
10d34264f6
fix(build): maybe we can try putting it before the neoForge thing?
Some checks failed
Test Fabric / build (push) Failing after 1m26s
Build / build (push) Failing after 1m30s
81b5f3261f
fix(build): attempt nonsense specific to the actions
Some checks failed
Test Fabric / build (push) Failing after 1m15s
Build / build (push) Failing after 1m18s
ca5b145da1
fix(build): nonsense part 2 let's go
Some checks failed
Build / build (push) Failing after 5m36s
Test Fabric / build (push) Failing after 6m3s
0d95dd5416
fix(build): JankPMS
Some checks failed
Test Fabric / build (push) Failing after 5m56s
Build / build (push) Failing after 6m8s
328e4f2287
fix(build): no modules byebye
Some checks failed
Build / build (push) Failing after 5m30s
Test Fabric / build (push) Failing after 5m56s
c7b66cc9c9
fix(build): remove hack
Some checks failed
Test Fabric / build (push) Failing after 1m37s
Build / build (push) Failing after 1m40s
7b8a033691
Revert "fix(build): remove hack"
Some checks failed
Test Fabric / build (push) Failing after 6m39s
Build / build (push) Failing after 6m51s
0df9f362e3
This reverts commit 7b8a033691.
fix(build): disable JPMS fuck off
All checks were successful
Build / build (push) Successful in 7m31s
Test Fabric / build (push) Successful in 7m50s
46896def61
chore: update changelog
All checks were successful
Build / build (push) Successful in 7m13s
Test Fabric / build (push) Successful in 7m38s
fe147b7c63
fix(ci): publishGithub -> publishForgejo
All checks were successful
Test Fabric / build (push) Successful in 1m44s
Build / build (push) Successful in 6m19s
2d9bd9f6f6
All checks were successful
Test Fabric / build (push) Successful in 1m44s
Build / build (push) Successful in 6m19s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/1.0:feat/1.0
git switch feat/1.0

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch 1.21.8
git merge --no-ff feat/1.0
git switch feat/1.0
git rebase 1.21.8
git switch 1.21.8
git merge --ff-only feat/1.0
git switch feat/1.0
git rebase 1.21.8
git switch 1.21.8
git merge --no-ff feat/1.0
git switch 1.21.8
git merge --squash feat/1.0
git switch 1.21.8
git merge --ff-only feat/1.0
git switch 1.21.8
git merge feat/1.0
git push origin 1.21.8
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Modding/silicate!19
No description provided.