Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,9 @@ jobs:
if-no-files-found: error
retention-days: 30
path: |
build/libs/SkysGrassSlabs-1.1.2.2603001.jar
build/libs/SkysGrassSlabs-1.1.2.2603001-sources.jar
build/libs/SkysGrassSlabs-1.1.2.2603001-javadoc.jar
build/libs/SkysGrassSlabs-1.2.0.2603001.jar
build/libs/SkysGrassSlabs-1.2.0.2603001-sources.jar
build/libs/SkysGrassSlabs-1.2.0.2603001-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.md

Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

## 1.2.0.2603001 - Minecraft 26.3

- Craft two matching dirt or grass slabs back into a full block.
- Change Grass Slabs settings from Forge’s Mods menu.
- Let Terrain Smoother handle generation when installed. Grass Slabs still controls whether it includes grass.
- Protect existing chunks and structures, and keep small plants where a new grass slab fits below them.

## 1.1.2.2603001 - Minecraft 26.3

- Ported the complete feature set to Minecraft 26.3 and Forge 66.
Expand Down
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ thin layer of turf. Grass spreads naturally between full blocks and slabs,
while new Overworld terrain uses grass slabs to soften suitable one block
steps.

This branch is for Minecraft 26.3. Version `1.1.2.2603001` requires Forge
66.0.0 or a compatible Forge 66 build and Java 25.
This branch is for Minecraft 26.3. Version `1.2.0.2603001` requires Forge
66.0.2 or a compatible Forge 66 build and Java 25.

## Installation

Expand All @@ -17,7 +17,8 @@ or updating world changing mods.
## Highlights

- Place dirt, grass and dirt path slabs in either half of a block.
- Combine two matching slabs into the corresponding vanilla block.
- Combine two matching slabs into the corresponding vanilla block,
or craft them back into a block.
- Let grass spread between full blocks, slabs and turf.
- Use a shovel on dirt or grass slabs to create lowered dirt path slabs.
- Cut turf from grass without consuming the shovel.
Expand All @@ -29,12 +30,15 @@ or updating world changing mods.
- Recover selected grass slabs and grass carpet when replacing a compatible
older mod.

Sky's Terrain Smoother handles generation when installed. Grass Slabs' own
generation setting still decides whether grass is included.

## Guides

- [Gameplay and recipes](docs/GAMEPLAY.md)
- [Configuration](docs/CONFIGURATION.md)
- [Upgrading an older world](docs/WORLD-UPGRADES.md)
- [Release notes](docs/RELEASE-1.1.2.2603001.md)
- [Release notes](docs/RELEASE-1.2.0.2603001.md)

## License

Expand Down
18 changes: 10 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ def mavenizerLicense = mavenizerToolsDirectory.file('LICENSE-MAVENIZER.txt')
def mavenizerReadme = mavenizerToolsDirectory.file('README.md')
def mavenizerFixtureChecksums = [
(mavenizerCompatibilityJar.asFile):
'4150926F33A696B2088AB2675C1C3B45745CE4F9F2DEB31CCD88C9ADC834062F',
'9DA1F44821D89B16B3E181CA89057F44CD3FC3F3383EA5A16442872E67E30F35',
(mavenizerRuleManifest.asFile):
'829400D74ECB1BF0CC6107D9980B8328365E3F56D9A5342002D8DF340571BDB7',
'C765A5F65FB9CD176F3CE08CB0CFCA814D06E649940E2BF169CD8943AFC30B26',
(mavenizerSourcePatch.asFile):
'9F0C34529D41C9CD5804C32608FE548D09A0AC3A95D337EE2EF4377680C1B2DD',
'BBD82C6BD96206DEA2FE2673F4D7E76FBA92884032455BBFD5CCD59045C5E271',
(mavenizerLicense.asFile):
'20C17D8B8C48A600800DFD14F95D5CB9FF47066A9641DDEAB48DC54AEC96E331',
(mavenizerReadme.asFile):
'A35B80BA8D7557A31E0378787C06FE86C8C627061BF313A6886205F62A46C09F'
'A611E2BF14E29761B99BF7D3F0FD44AF151DD09A69968C0CFAEC384BD0E7A666'
]

// ForgeGradle invokes Mavenizer while configuring the project. Verify the
Expand Down Expand Up @@ -550,7 +550,7 @@ def verifyMavenizerCompatibilityFixture = tasks.register('verifyMavenizerCompati
}

def parsed = new JsonSlurper().parse(mavenizerRuleManifest.asFile)
String target = 'net.minecraftforge:forge:26.3-66.0.0'
String target = 'net.minecraftforge:forge:26.3-66.0.2'
if (parsed.schema != 1 || parsed.targets.keySet() != [target] as Set) {
throw new GradleException('Mavenizer target-rule manifest has unexpected targets or schema')
}
Expand Down Expand Up @@ -605,7 +605,7 @@ def verifyMavenizerCompatibilityFixture = tasks.register('verifyMavenizerCompati
String licenseText = mavenizerLicense.asFile.getText('UTF-8')
if (!readme.contains('6968241ce7a0a902cdc1c534b976e8373a423091')
|| !readme.contains('Temurin `25.0.3+9`')
|| !readme.contains('26.3-66.0.0')) {
|| !readme.contains('26.3-66.0.2')) {
throw new GradleException('Mavenizer provenance, target, or Java 25 build instructions are incomplete')
}
if (!patchText.contains('SourceCompatibilityPatcher.java')
Expand Down Expand Up @@ -686,7 +686,7 @@ def releaseFiles = provider {
tasks.register('verifyReleaseMetadata') {
group = 'verification'
doLast {
if (project.minecraft_version != '26.3' || project.forge_version != '66.0.0' ||
if (project.minecraft_version != '26.3' || project.forge_version != '66.0.2' ||
project.mapping_channel != 'official' || project.mapping_version != '26.3' ||
project.loader_name != 'forge' || project.loader_code != '1' ||
project.java_version != '25' || project.java_toolchain_version != '25.0.3+9' ||
Expand Down Expand Up @@ -770,7 +770,7 @@ tasks.register('verifyReleaseArtifacts') {
String metadata = zip.getInputStream(zip.getEntry('META-INF/mods.toml'))
.getText(StandardCharsets.UTF_8.name())
if (!metadata.contains('versionRange="[26.3,26.4,)"') ||
!metadata.contains('versionRange="[66,)"')) {
!metadata.contains('versionRange="[66.0.2,67)"')) {
throw new GradleException('Packaged Forge metadata targets the wrong version')
}

Expand Down Expand Up @@ -802,6 +802,7 @@ tasks.register('writeReleaseChecksums') {
group = 'verification'
dependsOn tasks.named('verifyReleaseArtifacts')
def output = layout.buildDirectory.file('release/SHA256SUMS')
inputs.files(releaseFiles.map { names -> names.collect { layout.buildDirectory.file("libs/${it}") } })
outputs.file(output)
doLast {
File libs = layout.buildDirectory.dir('libs').get().asFile
Expand Down Expand Up @@ -1174,6 +1175,7 @@ tasks.named('eclipse').configure {
}

tasks.withType(AbstractArchiveTask).configureEach {
includeEmptyDirs = false
preserveFileTimestamps = false
reproducibleFileOrder = true
}
8 changes: 4 additions & 4 deletions ci-fixtures/tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This directory contains a build-only derivative of MinecraftForge's
MinecraftMavenizer `0.5.21`. It is used only while ForgeGradle prepares the
exact Forge `26.3-66.0.0` development dependency and is excluded from every
exact Forge `26.3-66.0.2` development dependency and is excluded from every
OreSpawn publication artifact.

## Provenance and licence
Expand All @@ -21,13 +21,13 @@ declaration and one accessor in that record. Missing, partial, duplicate or
ambiguous states fail preparation. Targets without an explicit rule set are
left unchanged.

Forge `26.3-66.0.0` compiles without source compatibility edits. Its explicit
Forge `26.3-66.0.2` compiles without source compatibility edits. Its explicit
zero-rule entry proves that result is intentional and target-qualified rather
than an accidental fall-through. A marker beside Mavenizer's output records
the target and manifest SHA-256. Reprocessing the same source is idempotent.

The derivative also propagates Gradle offline mode when the build sets
`ORESPAWN_MAVENIZER_OFFLINE=true`. Mavenizer, Sky's Grass Slabs and Minecraft 26.3 all
`ORESPAWN_MAVENIZER_OFFLINE=true`. Mavenizer, IronAgeFurniture and Minecraft 26.3 all
run and compile with Java 25.

## Rebuild
Expand All @@ -39,7 +39,7 @@ run and compile with Java 25.
4. Run `./gradlew clean build --no-daemon` (or `gradlew.bat` on Windows).
5. Copy `build/libs/minecraft-mavenizer-0.5.21.jar` to
`minecraft-mavenizer-0.5.21-orespawn-compat.jar`.
6. Run OreSpawn's `verifyMavenizerCompatibilityFixture` task. The build script
6. Run IronAgeFurniture's `verifyMavenizerCompatibilityFixture` task. The build script
contains the authoritative checksums and also verifies the embedded
manifest, Java class version and licence/provenance files.

Expand Down
Binary file modified ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -371,12 +371,11 @@ index 0000000..3451901
+{
+ "schema": 1,
+ "targets": {
+ "net.minecraftforge:forge:26.3-66.0.0": {
+ "net.minecraftforge:forge:26.3-66.0.2": {
+ "expectedApplications": 0,
+ "rules": []
+ }
+ }
+}
--
2.55.0.windows.3

2 changes: 1 addition & 1 deletion ci-fixtures/tools/minecraft-source-compatibility.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"schema": 1,
"targets": {
"net.minecraftforge:forge:26.3-66.0.0": {
"net.minecraftforge:forge:26.3-66.0.2": {
"expectedApplications": 0,
"rules": []
}
Expand Down
5 changes: 5 additions & 0 deletions docs/CONFIGURATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,14 @@ kept. An existing TOML file always takes priority.

`worldgen.generateGrassSlabs=true`

In the Mods list, select Sky’s Grass Slabs and open Config to edit these
choices. They take effect the next time Minecraft starts.

When enabled, suitable one block slopes in newly generated Overworld chunks
may receive grass slabs. Set this to `false` to leave new terrain unchanged.
The setting never adds or removes slabs in chunks that already exist.
If Sky’s Terrain Smoother is installed, it handles generation for both mods.
This setting still controls whether that smoother places grass pieces.

## Legacy slab replacement

Expand Down
1 change: 1 addition & 0 deletions docs/GAMEPLAY.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ enabled is removed without dropping an item.

- Three dirt blocks in a horizontal row make six dirt slabs.
- Three grass blocks in a horizontal row make six grass slabs.
- Two matching dirt or grass slabs side by side make their original block.
- A dirt block and a recognised seed make a grass block.
- A dirt slab and a recognised seed make a grass slab.
- A grass block or grass slab together with a compatible shovel makes one
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sky's Grass Slabs 1.1.0 for Minecraft 26.1.2
# Sky's Grass Slabs 1.1.1 for Minecraft 26.1.2

Sky's Grass Slabs adds dirt, grass and lowered dirt path slabs, together with
a thin layer of turf. Grass moves naturally between full blocks, slabs and
Expand All @@ -15,6 +15,7 @@ grass slab for a smoother slope.
- Grass spreading between full blocks, slabs and turf.
- Optional recovery for supported blocks and items from older worlds.
- Names in 18 supported language variants.
- Corrected translated names for all four items.

World smoothing changes only newly generated chunks and can be disabled in
the common configuration. Make a complete backup before upgrading an existing
Expand Down
11 changes: 11 additions & 0 deletions docs/RELEASE-1.1.2.2601021.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Sky's Grass Slabs 1.1.2 for Minecraft 26.1.2

This update corrects the snowy appearance of grass slabs. When a grass slab
shows snowy side edges, its exposed top now uses the matching snow texture
instead of remaining green.

All blocks, recipes, configuration options and world data remain compatible
with the previous Forge 26.1.2 release.

Requires Minecraft 26.1.2, Forge 64.0.9 or a compatible Forge 64 build, and
Java 25.
10 changes: 10 additions & 0 deletions docs/RELEASE-1.2.0.2601021.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Sky's Grass Slabs 1.2.0.2601021

This version is for Minecraft 26.1.2 with Forge 64.0.9 and Java 25.

Open Config from the Mods list to change the settings, then restart Minecraft.
Two matching grass or dirt slabs can be crafted back into a full block.

Grass can spread between these slabs and grass pieces from Sky's Building Pieces.
If Sky's Terrain Smoother is installed, it handles new terrain for both mods.
The grass setting still controls whether it places grass pieces. Existing chunks stay as they are.
12 changes: 12 additions & 0 deletions docs/RELEASE-1.2.0.2603001.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Sky's Grass Slabs 1.2.0.2603001

This version is for Minecraft 26.3 with Forge 66.0.2 and Java 25.

Open Config from the Mods list to change the settings, then restart Minecraft.
Two matching grass or dirt slabs can be crafted back into a full block.

Grass can spread between these slabs and grass pieces from Sky's Building Pieces.
If Sky's Terrain Smoother is installed, it handles new terrain for both mods.
The grass setting still controls whether it places grass pieces. Existing chunks stay as they are.

Grass slabs already saved in a world stay in place when trees generate across a chunk border.
2 changes: 1 addition & 1 deletion docs/WORLD-UPGRADES.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ world has been checked in game.

## Sky's Grass Slabs content

Install `SkysGrassSlabs-1.1.2.2603001.jar` before opening a world that used an
Install `SkysGrassSlabs-1.2.0.2603001.jar` before opening a world that used an
earlier release. The permanent dirt slab, grass slab, path slab and turf IDs
are unchanged.

Expand Down
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ minecraft_version=26.3
# as they do not follow standard versioning conventions.
minecraft_version_range=[26.3,26.4,)
# The Forge version must agree with the Minecraft version to get a valid artifact
forge_version=66.0.0
forge_version=66.0.2
# The Forge version range can use any version of Forge as bounds or match the loader version range
forge_version_range=[66,)
forge_version_range=[66.0.2,67)
# The loader version range can only use the major version of Forge/FML as bounds
loader_version_range=[66,)
# The mapping channel to use for mappings.
Expand Down Expand Up @@ -61,7 +61,7 @@ mod_name=Sky's Grass Slabs
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=LGPL-2.1-only
# The mod version. See https://semver.org/
mod_version=1.1.2.2603001
mod_version=1.2.0.2603001
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
Expand Down
Loading
Loading