Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
6f2fd81
Move to renderer design, send particles manually, use shader concept,…
sovdeeth Feb 13, 2026
afb36dc
cleanup,. docs, and some interfaces
sovdeeth Mar 6, 2026
eb631b6
Reorganization, use new modules, use registration api, clean up old c…
sovdeeth Mar 8, 2026
7766cbc
Update .gitignore
sovdeeth Mar 8, 2026
7aada01
Update .gitignore
sovdeeth Mar 8, 2026
94e0411
Update .gitignore
sovdeeth Mar 8, 2026
a80d9a7
Removed unwanted files marked in .gitignore
sovdeeth Mar 8, 2026
ecc5389
Clean up constructors a bit, make them all expression-sections (expr …
sovdeeth Mar 8, 2026
8d09899
shape constructor section complete
sovdeeth Mar 8, 2026
24e6c30
rework modifier api to accept generic inputs
sovdeeth Mar 9, 2026
211db74
Simplify gradients
sovdeeth Mar 9, 2026
f5714f7
Restore custom shader WIP: CustomSkriptModifier, point property expre…
sovdeeth Aug 8, 2026
7ee5577
Add custom point modifier section, run render modifiers on animated d…
sovdeeth Aug 8, 2026
3cef56f
Add automated Skript tests via skript-test plugin, fix API compat bugs
sovdeeth Aug 8, 2026
f0b9848
gradle update
sovdeeth Nov 11, 2026
0f1af35
Fix density issues, simplify cache
sovdeeth Nov 12, 2026
3758112
fix geometry bugs and provide better density estimates
sovdeeth Nov 12, 2026
f9d49f1
fix contains logic + optimizations
sovdeeth Nov 12, 2026
6b822b3
add distance from origin for spherical normalization
sovdeeth Nov 12, 2026
3d46bc1
Improve rendering code
sovdeeth Nov 12, 2026
2e3e151
fix issues with anchoring shapes
sovdeeth Nov 12, 2026
7e47b5a
Fix issues with skript syntaxes
sovdeeth Nov 12, 2026
db6b769
fix conflict with skript syntax
sovdeeth Nov 12, 2026
d6e23a9
Modernize wrt skript 2.15.0
sovdeeth Nov 12, 2026
616effc
hard point limit at 100k
sovdeeth Nov 12, 2026
a6db257
perf improvements
sovdeeth Nov 12, 2026
5c9ee77
bunch more tests
sovdeeth Nov 12, 2026
7305316
update all the examples and use type properties
sovdeeth Nov 12, 2026
fd4bdcd
Update build.gradle
sovdeeth Nov 12, 2026
fbdead2
Update gradle.yml
sovdeeth Nov 12, 2026
3556bc5
update github action + better handling for when skripttest isn't present
sovdeeth Nov 12, 2026
b6b0757
Update gradle.yml
sovdeeth Nov 12, 2026
4750747
limit, reach, bounds, and ordering
sovdeeth Nov 12, 2026
df8408c
add modifier property expressions
sovdeeth Nov 12, 2026
a76b346
clean up modifiers
sovdeeth Nov 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 31 additions & 15 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
# Builds both modules and runs their JUnit tests.
# The Skript tests (skriptTest) are not run here: the skript-test Gradle plugin is only published to mavenLocal for now.

name: Java CI with Gradle

Expand All @@ -12,6 +8,7 @@ on:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:

permissions:
contents: read
Expand All @@ -23,21 +20,40 @@ jobs:

steps:
- uses: actions/checkout@v6
- name: Set up JDK 17
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
java-version: '17'
java-version: '25'
distribution: 'temurin'
cache: gradle
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
run: chmod +x gradlew
# 'build' runs the JUnit tests of shapes-lib and skript-particle before packaging the plugin
- name: Build and test with Gradle
run: ./gradlew build
# Shows the results on the job's summary page and annotates failing tests. annotate_only skips creating a
# separate check run, which would need 'checks: write' (and is unavailable to PRs from forks).
- name: Publish test results
uses: mikepenz/action-junit-report@v5
if: always()
with:
arguments: build
report_paths: '*/build/test-results/test/TEST-*.xml'
annotate_only: true
detailed_summary: true
include_passed: true
group_suite: true
- name: Upload test reports
uses: actions/upload-artifact@v6
if: failure()
with:
name: test-reports
path: |
*/build/reports/tests/test/
*/build/test-results/test/*.xml
- name: Upload Nightly Build
uses: actions/upload-artifact@v6
if: success()
with:
name: skript-particle-nightly
path: build/libs/*
name: skript-particle-nightly
path: skript-particle/build/libs/*.jar
7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,8 @@
/src/test/skriptparticle/
CLAUDE.md
/.claude
/shapes-lib/build
/skript-particle/build
/shapes-lib/build/
/skript-particle/build/
/skript-particle/.gradle/
/net/minecraft/network
/benchmark
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# skript-particle
Skript addon for creating complex particle effects with minimal hassle.

**Requires Skript 2.14+, Java 21, Paper 1.21.1+**
**Requires Skript 2.16+, Java 21, Paper 1.21.1+**

Download at the [releases page.](https://github.com/sovdeeth/skript-particle/releases)

Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 3 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.9.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
50 changes: 32 additions & 18 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 23 additions & 19 deletions gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,2 +1,12 @@
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
maven {
url 'https://repo.papermc.io/repository/maven-public/'
}
}
}

rootProject.name = 'skript-particle-root'
include 'shapes-lib', 'skript-particle'
9 changes: 8 additions & 1 deletion shapes-lib/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,15 @@ repositories {

dependencies {
api "org.joml:joml:${jomlVersion}"
compileOnly 'org.jetbrains:annotations:24.0.1'
testImplementation 'org.junit.jupiter:junit-jupiter:5.10.0'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
useJUnitPlatform()
}

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
toolchain.languageVersion.set(JavaLanguageVersion.of(25))
}
18 changes: 18 additions & 0 deletions shapes-lib/src/main/java/com/sovdee/shapes/modifiers/Easable.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.sovdee.shapes.modifiers;

/**
* Something that has an {@link EasingFunction}.
*/
public interface Easable {

/**
* @return the easing function used to distribute rotation along the axis
*/
EasingFunction getEasing();

/**
* @param easing the easing function used to distribute rotation along the axis
*/
void setEasing(EasingFunction easing);

}
Loading
Loading