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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## 0.2.6.2603001

- Keep different crafting results on separate recipe-book buttons.
- Match BOP's wooden fuel rules, including hellbark pieces that cannot be used as fuel.


## 0.2.5.2603001

- BOP building pieces and recovered rocks now have individual block IDs. Existing builds and rock variants carry forward.
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Sky's Building Pieces — Biomes O' Plenty
# Sky's Building Pieces - Biomes O' Plenty

<img src="artwork/skysbuildingpieces-bop-logo.png" alt="Sky's Building Pieces – Biomes O' Plenty logo" width="256">
<img src="artwork/skysbuildingpieces-bop-logo.png" alt="Sky's Building Pieces - Biomes O' Plenty logo" width="256">

Bring Biomes O' Plenty materials into your builds with the same range of pieces
as Sky's Building Pieces. This add-on supplies missing slabs, steps, corners,
Expand Down Expand Up @@ -39,8 +39,8 @@ It doesn't accept unrelated items.
Use the versions for **Minecraft 26.3**, with **Forge 66.0.2** and
**Java 25**. You'll need:

- **Sky's Building Pieces 0.3.9.2603001** and this add-on.
- **Biomes O' Plenty 26.3.0.0.16**, **TerraBlender 26.3.0.0.2** and **GlitchCore 26.3.0.0.0**.
- **Sky's Building Pieces 0.3.10.2603001** and this add-on.
- **Biomes O' Plenty 26.3.0.0.16**, **TerraBlender 26.3.0.0.6** and **GlitchCore 26.3.0.0.1**.

Put all five main jars in `mods` on both the client and server.
Downloads are on [CurseForge](https://www.curseforge.com/minecraft/mc-mods/skysbuildingpiecesbop).
Expand Down
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -1036,3 +1036,5 @@ ext.coreDirectory = coreDirectory
ext.coreDevelopmentJar = coreDevelopmentJar
apply from: 'gradle/native-runtime-log.gradle'
apply from: 'gradle/native-bootstrap.gradle'

apply from: 'gradle/recipe-resource-sync.gradle'
2 changes: 1 addition & 1 deletion docs/BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ ForgeGradle 7.0.34 for Minecraft 26.3 and Forge 66.0.2.
The runtime log checks use Python 3.11 or later. If `python` is not on your
path, pass `-PpythonExecutable=<python executable>` to Gradle.

Check out Building Pieces 0.3.9.2603001 at the exact source commit in
Check out Building Pieces 0.3.10.2603001 at the exact source commit in
`gradle/core-dependency.properties`, then run its `gradlew assemble` task.
Build this add-on with:

Expand Down
2 changes: 1 addition & 1 deletion docs/RECIPES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Crafting

Use core 0.3.8.120011 for ordinary crafting recipes. No template or cutting tool
Use core 0.3.10.2603001 for ordinary crafting recipes. No template or cutting tool
is required. All ingredients must be the same material, including wood type.

- Three full blocks in a row make six horizontal slabs.
Expand Down
2 changes: 1 addition & 1 deletion docs/TRYING-THE-BETA.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Trying the beta

Install the Minecraft 26.3 main jars for Building Pieces 0.3.9.2603001,
Install the Minecraft 26.3 main jars for Building Pieces 0.3.10.2603001,
this add-on, BOP 26.3.0.0.16, TerraBlender 26.3.0.0.2 and GlitchCore 26.3.0.0.0 on
the client and server. Use a new world or a backup copy.

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ release_enabled=true
curseforge_project_id=1755976
mod_name=Sky's Building Pieces - Biomes O Plenty
mod_license=LGPL-2.1-only
mod_version=0.2.5.2603001
mod_version=0.2.6.2603001
mod_group=zone.moddev.mc.skysbuildingpiecesbop
mod_authors=SkyBlade1978
mod_description=Biomes O Plenty building pieces with ordinary crafting recipes and optional legacy recovery. No world generation.
Expand Down
2 changes: 1 addition & 1 deletion gradle/catalogue-checksums.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
materials=06ABD21E6A1722DED3306CECECCDB996D58D7B523C874CBD4972C4A2088AF53F
materials=26BBDEDA9C6DC8DDA5D59B3F992176FAF4E1E937F3C439B0E53672655F349DC6
palettes=804175ED9CAF2960F23A907628646A8790314637D1604CCE78FD23F8D21FECB0
10 changes: 5 additions & 5 deletions gradle/core-dependency.properties
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
repository=MinecraftModDevelopmentMods/SkysBuildingPieces
kind=local-candidate
commit=c4df80b09d366b293cd3d06b5b92b376b34fafe3
version=0.3.9.2603001
kind=release
commit=80865bc1ce045bd3f271f35b47415d9b3acbd99e
version=0.3.10.2603001
api=1
sha256=A21755D614D3953D08CE1545153800DA1722A63EEC330BC868C8C1A7DF76D298
development.sha256=A21755D614D3953D08CE1545153800DA1722A63EEC330BC868C8C1A7DF76D298
sha256=103D5B1DA1F123407DDEB453840AAE652F6F798D8CFB8E3ACCEA1F6FCB1E686D
development.sha256=103D5B1DA1F123407DDEB453840AAE652F6F798D8CFB8E3ACCEA1F6FCB1E686D
bop_modrinth_version=rGqDYMqM
bop_sha256=528FC66C9D70958B9E0476160F9C0F6D833DD297D518A4EF511AC08B10F40A49
terrablender_modrinth_version=XxuGDwFD
Expand Down
7 changes: 5 additions & 2 deletions gradle/native-bootstrap.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,15 @@ def compileBootstrap = tasks.register('compileNativeBootstrap', JavaCompile) {
source file('src/integrationTest/java/zone/moddev/mc/skysbuildingpiecesbop/probe/RetiredItemChecks.java')
source file(new File(coreDirectory, 'src/integrationTest/java/zone/moddev/mc/skysbuildingpieces/probe/RecipeChecks.java'))
source file(new File(coreDirectory, 'src/integrationTest/java/zone/moddev/mc/skysbuildingpieces/probe/RecipeBookChecks.java'))
source file(new File(coreDirectory, 'src/integrationTest/java/zone/moddev/mc/skysbuildingpieces/probe/RecipeUniquenessChecks.java'))
source file(new File(coreDirectory, 'src/integrationTest/java/zone/moddev/mc/skysbuildingpieces/probe/RecombinationChecks.java'))
source file(new File(coreDirectory, 'src/integrationTest/java/zone/moddev/mc/skysbuildingpieces/probe/FuelChecks.java'))
source file(new File(coreDirectory, 'src/integrationTest/java/zone/moddev/mc/skysbuildingpieces/probe/PersistenceRegistrationChecks.java'))
['NativeRecipeProbe', 'NativeLegacyChecks', 'DirtCoverageChecks', 'CoverageContributor', 'NativeProbeItems'].each { name ->
source file(new File(coreDirectory, 'src/integrationTest/java/zone/moddev/mc/skysbuildingpieces/probe/' + name + '.java'))
}
source fileTree(new File(coreDirectory, 'src/integrationTest/java/zone/moddev/mc/skysbuildingpieces/probe/legacy'))
['ClientProbe', 'ClientStatus', 'ConfigScreenChecks', 'ProbeProxy', 'RecipePreviewModels', 'PresentationChecks', 'GlassModelProbe'].each { name ->
['ClientProbe', 'ClientStatus', 'ConfigScreenChecks', 'ProbeProxy', 'RecipePreviewModels', 'RecipeBookGroupChecks', 'SnowCoverClientChecks', 'PresentationChecks', 'GlassModelProbe'].each { name ->
source file(new File(coreDirectory, 'src/integrationTest/java/zone/moddev/mc/skysbuildingpieces/probe/' + name + '.java'))
}
['BasketGuiClientChecks', 'BasketDisconnectClientChecks', 'BasketClientChecks', 'BopProbeItems'].each { name ->
Expand Down Expand Up @@ -315,12 +317,13 @@ tasks.register('nativeClientTest', JavaExec) {
dependsOn prepareClient
workingDir clientDirectory
systemProperty 'skysbuildingpieces.integrationPhase', clientPhase.get()
args '--accessToken', '0'
project.ext.configureRecipeBookRun(delegate, 'runClient')
doLast {
logger.lifecycle(providers.exec {
commandLine providers.gradleProperty('pythonExecutable').getOrElse('python'),
file('tools/native_client_log.py'), '--directory', clientDirectory.get().asFile,
'--phase', clientPhase.get() + (clientReload ? '-reload' : '')
'--phase', clientPhase.get() + (clientReload ? '-reload' : ''), '--offline-client'
}.standardOutput.asText.get().trim())
String log = new File(clientDirectory.get().asFile, 'logs/latest.log').getText('UTF-8')
String marker = clientPhase.get() == 'client-basket' ? 'BOP_BASKET_GUI_NETWORK_PASS'
Expand Down
8 changes: 4 additions & 4 deletions gradle/optional-runtime.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Optional Forge 66 jars for family checks.
grass.path=../../SkysGrassSlabs263/SkysGrassSlabs/build/libs/SkysGrassSlabs-1.2.0.2603001.jar
grass.sha256=20AE5DC12C97E8DC1D348282BE50697909E98BBCE8C3BD40E4CF910E7D85F7D9
grass.development.path=../../SkysGrassSlabs263/SkysGrassSlabs/build/libs/SkysGrassSlabs-1.2.0.2603001.jar
grass.development.sha256=20AE5DC12C97E8DC1D348282BE50697909E98BBCE8C3BD40E4CF910E7D85F7D9
grass.path=../../SkysGrassSlabs263/SkysGrassSlabs/build/libs/SkysGrassSlabs-1.2.1.2603001.jar
grass.sha256=55E417284B1F5982E88EF4B2B69F8B766A7EA473F3AE30DE9CE3AF8E2D988DFA
grass.development.path=../../SkysGrassSlabs263/SkysGrassSlabs/build/libs/SkysGrassSlabs-1.2.1.2603001.jar
grass.development.sha256=55E417284B1F5982E88EF4B2B69F8B766A7EA473F3AE30DE9CE3AF8E2D988DFA
orespawn.path=../../../MinecraftMineralogy/OS263/OreSpawn/build/libs/OreSpawn-4.1.0.2603001.jar
orespawn.sha256=A7FCDD626B9044091BFDB7277DA3169A5307EB5F97FCF88741A878401DCF1AEA
orespawn.development.path=../../../MinecraftMineralogy/OS263/OreSpawn/build/libs/OreSpawn-4.1.0.2603001.jar
Expand Down
65 changes: 65 additions & 0 deletions gradle/recipe-resource-sync.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// Keep removed recipes out of packaged resources and existing Eclipse outputs.
def recipeOwners = project.mod_id == 'skysbuildingpiecesbop'
? ['skysbuildingpieces', 'skysbuildingpiecesbop'] : [project.mod_id]
def recipeFolders = recipeOwners.collectMany { owner ->
["data/${owner}/recipe", "data/${owner}/advancement/recipes"]
}

def insideProject = { File directory ->
File resolved = directory.canonicalFile
if (!resolved.toPath().startsWith(projectDir.canonicalFile.toPath())
|| resolved == projectDir.canonicalFile) {
throw new GradleException("Recipe output is outside this checkout: ${resolved}")
}
resolved
}

def recipeFiles = { File root ->
Set<String> files = new TreeSet<>()
recipeFolders.each { relative ->
File folder = new File(root, relative)
fileTree(folder) { include '**/*.json' }.files.each { path ->
files.add(relative + '/' + folder.toPath().relativize(path.toPath()).toString().replace('\\', '/'))
}
}
files
}

tasks.named('processResources') {
doFirst {
File output = insideProject(destinationDir)
recipeFolders.each { relative ->
project.delete(insideProject(new File(output, relative)))
}
}
}

tasks.named('prepareEclipseResources') {
doLast {
File eclipseOutput = insideProject(file('bin/main'))
recipeFolders.each { relative ->
project.sync {
from(layout.buildDirectory.dir("resources/main/${relative}"))
into(insideProject(new File(eclipseOutput, relative)))
}
}
}
}

def verifyRecipeResourceOutputs = tasks.register('verifyRecipeResourceOutputs') {
group = 'verification'
description = 'Checks that processed and Eclipse recipes match the current source resources.'
dependsOn tasks.named('processResources'), tasks.named('prepareEclipseResources')
doLast {
Set<String> expected = new TreeSet<>()
sourceSets.main.resources.srcDirs.each { root -> expected.addAll(recipeFiles(root)) }
[layout.buildDirectory.dir('resources/main').get().asFile, file('bin/main')].each { output ->
Set<String> actual = recipeFiles(output)
if (actual != expected) {
throw new GradleException("Recipe output mismatch in ${output}: "
+ "missing=${expected - actual}, stale=${actual - expected}")
}
}
}
}
tasks.named('check') { dependsOn verifyRecipeResourceOutputs }
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ private void audit(net.minecraft.server.MinecraftServer server) {

try {
RegistrySnapshot.write();
zone.moddev.mc.skysbuildingpieces.probe.FuelChecks.run(server.getLevel(Level.OVERWORLD));
if (Boolean.getBoolean("skysbuildingpieces.bopBiomeFixerOnly")) {
NamedRecoveryChecks.nativeBiomeDatafix(server);
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ public void tick(TickEvent.ServerTickEvent.Post event) {
|| world.getGameRules().get(GameRules.FIRE_SPREAD_RADIUS_AROUND_PLAYER) != 0) {
throw new AssertionError("The disposable runtime rules were not applied");
}
FuelChecks.run(world);
recipes = new RecipeChecks.Audit(world);
}
if (combinations == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
@Mod(SkysBuildingPiecesBop.ID)
public final class SkysBuildingPiecesBop {
public static final String ID = "skysbuildingpiecesbop";
public static final String VERSION = "0.2.5.2603001";
public static final String VERSION = "0.2.6.2603001";

@SuppressWarnings("removal") // The screen must stay off the dedicated server classpath.
public SkysBuildingPiecesBop(FMLJavaModLoadingContext context) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/recipe-book/native-1.14-generated.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ side="BOTH"
[[dependencies.${mod_id}]]
modId="skysbuildingpieces"
mandatory=true
versionRange="[0.3.9.2603001,0.4)"
versionRange="[0.3.10.2603001,0.4)"
ordering="AFTER"
side="BOTH"
[[dependencies.${mod_id}]]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,7 @@
"name": "Hellbark Wood Planks",
"id": "biomesoplenty:planks_hellbark",
"type": "wood",
"cookingFuel": false,
"hardness": 2.0,
"resistance": 5.0,
"textures": "biomesoplenty:block/hellbark_planks",
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading