Skip to content

Commit 432f46f

Browse files
committed
Update to 1.21.4.
- Update to 1.21.4 - Improve armor trim compatibility with other mods * Loom 1.9 and Gradle 8.11 * Apply `ItemSettings.useBlockPrefixedTranslationKey()` * Add CinderscapesBlockFamilies * Datagen for models * Improve datagen for recipes * Now requires and includes Mixson
1 parent 9ab36fd commit 432f46f

File tree

540 files changed

+778
-8781
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

540 files changed

+778
-8781
lines changed

build.gradle

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ plugins {
33
id 'maven-publish'
44
id 'idea'
55
id 'eclipse'
6-
id 'fabric-loom' version '1.7.+'
6+
id 'fabric-loom' version '1.9.+'
77
}
88

99
apply from: 'https://raw.githubusercontent.com/TerraformersMC/GradleScripts/2.7/ferry.gradle'
@@ -24,6 +24,8 @@ dependencies {
2424

2525
includeMod "cloth-config", "me.shedaniel.cloth:cloth-config-fabric:${project.clothconfig_version}"
2626

27+
includeMod "mixson", "com.github.ramixin:mixson:${project.mixson_version}"
28+
2729
if (findProject(':cinderscapes-worldgen') != null) {
2830
includeMod "biolith", "com.terraformersmc:biolith-fabric:${biolith_version}"
2931
}
@@ -95,7 +97,19 @@ allprojects {
9597

9698
// Cloth Config
9799
maven {
98-
url = "https://maven.shedaniel.me"
100+
url = 'https://maven.shedaniel.me'
101+
}
102+
103+
// for Mixson
104+
exclusiveContent {
105+
forRepository {
106+
maven {
107+
url 'https://jitpack.io'
108+
}
109+
}
110+
filter {
111+
includeGroup "com.github.ramixin"
112+
}
99113
}
100114
}
101115
}
@@ -115,6 +129,8 @@ subprojects {
115129
modImplementation "com.terraformersmc.terraform-api:terraform-wood-api-v1:${project.terraform_wood_api_version}"
116130

117131
modImplementation "me.shedaniel.cloth:cloth-config-fabric:${project.clothconfig_version}"
132+
133+
modImplementation "com.github.ramixin:mixson:${project.mixson_version}"
118134
}
119135

120136
version = rootProject.version

client/src/main/java/com/terraformersmc/cinderscapes/CinderscapesClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.terraformersmc.cinderscapes;
22

3+
import com.terraformersmc.cinderscapes.init.CinderscapesArmorTrimItemModels;
34
import com.terraformersmc.cinderscapes.init.CinderscapesBlocks;
45
import net.fabricmc.api.ClientModInitializer;
56
import net.fabricmc.api.EnvType;
@@ -17,6 +18,7 @@ public class CinderscapesClient implements ClientModInitializer {
1718

1819
@Override
1920
public void onInitializeClient() {
21+
CinderscapesArmorTrimItemModels.init();
2022

2123
BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getTranslucent(),
2224
// Ashy Shoals
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
package com.terraformersmc.cinderscapes.init;
2+
3+
import com.google.gson.JsonArray;
4+
import com.google.gson.JsonElement;
5+
import com.google.gson.JsonObject;
6+
import com.terraformersmc.cinderscapes.Cinderscapes;
7+
import net.minecraft.util.Identifier;
8+
import net.ramixin.mixson.Mixson;
9+
import net.ramixin.mixson.events.ModificationEvent;
10+
import org.jetbrains.annotations.NotNull;
11+
12+
import java.util.List;
13+
14+
public final class CinderscapesArmorTrimItemModels {
15+
private static final List<String> ARMORS = List.of("helmet", "chestplate", "leggings", "boots");
16+
private static final List<String> ARMOR_MATERIALS = List.of("leather", "chainmail", "iron", "golden", "diamond", "netherite");
17+
18+
@SuppressWarnings("UnnecessaryReturnStatement")
19+
private CinderscapesArmorTrimItemModels() {
20+
return;
21+
}
22+
23+
public static void init() {
24+
/*
25+
* Add trim materials to each armor.
26+
*/
27+
ARMORS.forEach(armor -> ARMOR_MATERIALS.forEach(armorMaterial -> registerAddTrimsToArmor(armor, armorMaterial)));
28+
29+
// (dare to be different)
30+
registerAddTrimsToArmor("helmet", "turtle");
31+
32+
/*
33+
* Add trim materials to vanilla atlases.
34+
*/
35+
registerAddTrimsToAtlas("armor_trims");
36+
registerAddTrimsToAtlas("blocks");
37+
}
38+
39+
private static void registerAddTrimsToArmor(String armor, String armorMaterial) {
40+
Mixson.registerModificationEvent(
41+
Identifier.ofVanilla("items/" + armorMaterial + "_" + armor),
42+
Identifier.of(Cinderscapes.MOD_ID, "add_trims_to_" + armorMaterial + "_" + armor),
43+
new ModificationEvent() {
44+
@Override
45+
public @NotNull JsonElement run(JsonElement elem) {
46+
JsonObject root = elem.getAsJsonObject();
47+
JsonObject model = root.getAsJsonObject("model");
48+
JsonArray cases = model.getAsJsonArray("cases");
49+
JsonObject case0 = cases.get(0).getAsJsonObject();
50+
51+
CinderscapesArmorTrimMaterials.TRIM_MATERIALS.forEach(trim -> {
52+
JsonObject newCase = case0.deepCopy();
53+
54+
newCase.addProperty("when", trimMaterialId(trim).toString());
55+
newCase.getAsJsonObject("model")
56+
.addProperty("model", itemModelId(armor, armorMaterial, trim).toString());
57+
58+
cases.add(newCase);
59+
});
60+
61+
return elem;
62+
}
63+
64+
@Override
65+
public int ordinal() {
66+
return 0;
67+
}
68+
}
69+
);
70+
}
71+
72+
private static void registerAddTrimsToAtlas(String name) {
73+
Mixson.registerModificationEvent(
74+
Identifier.ofVanilla("atlases/" + name),
75+
Identifier.of(Cinderscapes.MOD_ID, "add_trims_to_" + name + "_atlas"),
76+
new ModificationEvent() {
77+
@Override
78+
public @NotNull JsonElement run(JsonElement elem) {
79+
JsonObject root = elem.getAsJsonObject();
80+
JsonArray sources = root.getAsJsonArray("sources");
81+
82+
for (int i = 0; i < sources.size(); ++i) {
83+
JsonObject source = sources.get(i).getAsJsonObject();
84+
85+
if ("paletted_permutations".equals(source.getAsJsonPrimitive("type").getAsString())) {
86+
JsonObject permutations = source.getAsJsonObject("permutations");
87+
88+
CinderscapesArmorTrimMaterials.TRIM_MATERIALS.forEach(trim ->
89+
permutations.addProperty(trim, paletteId(trim).toString())
90+
);
91+
92+
break;
93+
}
94+
}
95+
96+
return elem;
97+
}
98+
99+
@Override
100+
public int ordinal() {
101+
return 0;
102+
}
103+
}
104+
);
105+
}
106+
107+
private static Identifier trimMaterialId(String trim) {
108+
return Identifier.of(Cinderscapes.MOD_ID, trim);
109+
}
110+
111+
private static Identifier itemModelId(String armor, String armorMaterial, String trim) {
112+
return Identifier.of(Cinderscapes.MOD_ID, "item/" + armorMaterial + "_" + armor + "_" + trim + "_trim");
113+
}
114+
115+
private static Identifier paletteId(String trim) {
116+
return Identifier.of(Cinderscapes.MOD_ID, "trims/color_palettes/" + trim);
117+
}
118+
}

client/src/main/resources/assets/cinderscapes/atlases/armor_trims.json

Lines changed: 0 additions & 13 deletions
This file was deleted.

client/src/main/resources/assets/cinderscapes/blockstates/ash.json

Lines changed: 0 additions & 28 deletions
This file was deleted.

client/src/main/resources/assets/cinderscapes/blockstates/ash_block.json

Lines changed: 0 additions & 7 deletions
This file was deleted.

client/src/main/resources/assets/cinderscapes/blockstates/bramble_berry_bush.json

Lines changed: 0 additions & 16 deletions
This file was deleted.

client/src/main/resources/assets/cinderscapes/blockstates/chiseled_rose_quartz_block.json

Lines changed: 0 additions & 7 deletions
This file was deleted.

client/src/main/resources/assets/cinderscapes/blockstates/chiseled_smoky_quartz_block.json

Lines changed: 0 additions & 7 deletions
This file was deleted.

client/src/main/resources/assets/cinderscapes/blockstates/chiseled_sulfur_quartz_block.json

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)