Skip to content

Commit 5a20707

Browse files
Merge pull request #210 from CringeStar/1.21.8
1.21.8 Port
2 parents 50c5ff6 + 769c312 commit 5a20707

File tree

13 files changed

+72
-172
lines changed

13 files changed

+72
-172
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ library is distributed via [jitpack.io](https://jitpack.io/#CrimsonDawn45/Fabric
88

99
#### put this in gradle.properties
1010
```properties
11-
fabric_shield_lib_version=1.8.1-1.21.6
11+
fabric_shield_lib_version=1.8.3-1.21.8
1212
```
1313

1414
#### build.gradle under repositories just above dependencies
@@ -31,7 +31,7 @@ dependencies {
3131

3232
#### **build.gradle** under dependencies
3333
```gradle
34-
modImplementation "com.github.CrimsonDawn45:Fabric-Shield-Lib:v${project.fabric_shield_lib_version}"
34+
modImplementation "com.github.StellarWind22:Fabric-Shield-Lib:v${project.fabric_shield_lib_version}"
3535
```
3636

3737
- - - -

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import groovy.json.JsonSlurper
22
import groovy.json.JsonOutput
33

44
plugins {
5-
id 'fabric-loom' version '1.10-SNAPSHOT'
5+
id 'fabric-loom' version '1.11-SNAPSHOT'
66
id 'maven-publish'
77
}
88

gradle.properties

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ org.gradle.jvmargs=-Xmx1G
44

55
# Fabric Properties
66
# check these on https://fabricmc.net/develop/
7-
minecraft_version=1.21.6
8-
yarn_mappings=1.21.6+build.1
7+
minecraft_version=1.21.8
8+
yarn_mappings=1.21.8+build.1
99
loader_version=0.16.14
1010

1111
# Mod Properties
12-
mod_version=1.8.1-1.21.6
12+
mod_version=1.8.3-1.21.8
1313
maven_group=com.github.crimsondawn45
1414
archives_base_name=FabricShieldLib
1515

1616
# Dependencies
17-
fabric_version=0.127.0+1.21.6
17+
fabric_version=0.130.0+1.21.8
1818
mod_menu_version=15.0.0-beta.3
19-
midnightlib_version=1.7.4+1.21.6-fabric
19+
midnightlib_version=1.7.5+1.21.6-fabric
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
44
networkTimeout=10000
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

src/main/java/com/github/crimsondawn45/fabricshieldlib/initializers/FabricShieldLib.java

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,10 @@
11
package com.github.crimsondawn45.fabricshieldlib.initializers;
22

33
import com.github.crimsondawn45.fabricshieldlib.lib.config.FabricShieldLibConfig;
4-
import com.github.crimsondawn45.fabricshieldlib.lib.object.FabricShieldDecoratorRecipe;
54
import com.github.crimsondawn45.fabricshieldlib.tests.FabricShieldLibTests;
6-
75
import eu.midnightdust.lib.config.MidnightConfig;
86
import net.fabricmc.api.ModInitializer;
97
import net.fabricmc.loader.api.FabricLoader;
10-
import net.minecraft.recipe.RecipeType;
11-
import net.minecraft.recipe.ShieldDecorationRecipe;
12-
import net.minecraft.recipe.SpecialCraftingRecipe;
13-
import net.minecraft.registry.Registries;
14-
import net.minecraft.registry.Registry;
15-
import net.minecraft.util.Identifier;
16-
178
import org.slf4j.Logger;
189
import org.slf4j.LoggerFactory;
1910

@@ -31,27 +22,6 @@ public class FabricShieldLib implements ModInitializer {
3122
*/
3223
public static final Logger logger = LoggerFactory.getLogger(MOD_ID);
3324

34-
/**
35-
* Recipe type and serializer for banner decoration recipe.
36-
*/
37-
38-
public static final SpecialCraftingRecipe.SpecialRecipeSerializer<ShieldDecorationRecipe> FABRIC_SHIELD_DECORATION_SERIALIZER;
39-
public static final RecipeType<FabricShieldDecoratorRecipe> FABRIC_SHIELD_DECORATION;
40-
41-
static {
42-
// Registering Banner Recipe (Lib only)
43-
FABRIC_SHIELD_DECORATION = Registry.register(Registries.RECIPE_TYPE,
44-
Identifier.of(MOD_ID, "fabric_shield_decoration"), new RecipeType<FabricShieldDecoratorRecipe>() {
45-
@Override
46-
public String toString() {
47-
return "fabric_shield_decoration";
48-
}
49-
});
50-
FABRIC_SHIELD_DECORATION_SERIALIZER = Registry.register(Registries.RECIPE_SERIALIZER,
51-
Identifier.of(MOD_ID, "fabric_shield_decoration"),
52-
new SpecialCraftingRecipe.SpecialRecipeSerializer<>(FabricShieldDecoratorRecipe::new));
53-
}
54-
5525
@Override
5626
public void onInitialize() {
5727
// Register Config

src/main/java/com/github/crimsondawn45/fabricshieldlib/initializers/FabricShieldLibClient.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.github.crimsondawn45.fabricshieldlib.lib.object.FabricShieldModelRenderer;
55
import com.github.crimsondawn45.fabricshieldlib.lib.object.FabricShieldTags;
66
import com.github.crimsondawn45.fabricshieldlib.tests.FabricShieldLibClientTests;
7-
87
import net.fabricmc.api.ClientModInitializer;
98
import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback;
109
import net.fabricmc.loader.api.FabricLoader;

src/main/java/com/github/crimsondawn45/fabricshieldlib/lib/object/FabricShieldDecoratorRecipe.java

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

src/main/java/com/github/crimsondawn45/fabricshieldlib/lib/object/FabricShieldModelRenderer.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.mojang.serialization.MapCodec;
44
import com.mojang.serialization.codecs.RecordCodecBuilder;
5-
65
import net.fabricmc.api.EnvType;
76
import net.fabricmc.api.Environment;
87
import net.minecraft.client.model.ModelPart;
@@ -47,11 +46,11 @@ public ComponentMap getData(ItemStack itemStack) {
4746
}
4847

4948
public void render(
50-
@Nullable ComponentMap componentMap, ItemDisplayContext displayContext, MatrixStack matrixStack,
51-
VertexConsumerProvider vertexConsumerProvider, int i, int j, boolean bl
49+
@Nullable ComponentMap componentMap, ItemDisplayContext displayContext, MatrixStack matrixStack,
50+
VertexConsumerProvider vertexConsumerProvider, int i, int j, boolean bl
5251
) {
5352
BannerPatternsComponent bannerPatternsComponent = componentMap == null ? BannerPatternsComponent.DEFAULT:
54-
(BannerPatternsComponent) componentMap.getOrDefault(DataComponentTypes.BANNER_PATTERNS, BannerPatternsComponent.DEFAULT);
53+
(BannerPatternsComponent) componentMap.getOrDefault(DataComponentTypes.BANNER_PATTERNS, BannerPatternsComponent.DEFAULT);
5554

5655
DyeColor dyeColor = componentMap == null ? null : (DyeColor) componentMap.get(DataComponentTypes.BASE_COLOR);
5756

@@ -63,16 +62,16 @@ public void render(
6362
try {
6463
@SuppressWarnings("deprecation")
6564
SpriteIdentifier spriteIdentifier = bl2
66-
? new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE, this.baseModel)
67-
: new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE, this.baseModelNoPat);
65+
? new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE, this.baseModel)
66+
: new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE, this.baseModelNoPat);
6867
VertexConsumer vertexConsumer = spriteIdentifier.getSprite()
69-
.getTextureSpecificVertexConsumer(ItemRenderer.getItemGlintConsumer(vertexConsumerProvider,
70-
model.getLayer(spriteIdentifier.getAtlasId()), displayContext == ItemDisplayContext.GUI, bl));
68+
.getTextureSpecificVertexConsumer(ItemRenderer.getItemGlintConsumer(vertexConsumerProvider,
69+
model.getLayer(spriteIdentifier.getAtlasId()), displayContext == ItemDisplayContext.GUI, bl));
7170
model.getHandle().render(matrixStack, vertexConsumer, i, j);
7271
if (bl2) {
7372
BannerBlockEntityRenderer.renderCanvas(matrixStack, vertexConsumerProvider, i, j, model.getPlate(),
74-
spriteIdentifier, false, (DyeColor) Objects.requireNonNullElse(dyeColor, DyeColor.WHITE),
75-
bannerPatternsComponent, bl, false);
73+
spriteIdentifier, false, (DyeColor) Objects.requireNonNullElse(dyeColor, DyeColor.WHITE),
74+
bannerPatternsComponent, bl, false);
7675
} else {
7776
model.getPlate().render(matrixStack, vertexConsumer, i, j);
7877
}
@@ -90,11 +89,11 @@ public void collectVertices(Set<Vector3f> vertices) {
9089

9190
public record Unbaked(Identifier baseModel, Identifier baseModelNoPat) implements SpecialModelRenderer.Unbaked {
9291
public static final MapCodec<FabricShieldModelRenderer.Unbaked> CODEC = RecordCodecBuilder.mapCodec(
93-
instance -> instance.group(
94-
Identifier.CODEC.fieldOf("texture_banner").forGetter(FabricShieldModelRenderer.Unbaked::baseModel),
95-
Identifier.CODEC.fieldOf("texture_default").forGetter(FabricShieldModelRenderer.Unbaked::baseModelNoPat)
96-
)
97-
.apply(instance, FabricShieldModelRenderer.Unbaked::new)
92+
instance -> instance.group(
93+
Identifier.CODEC.fieldOf("texture_banner").forGetter(FabricShieldModelRenderer.Unbaked::baseModel),
94+
Identifier.CODEC.fieldOf("texture_default").forGetter(FabricShieldModelRenderer.Unbaked::baseModelNoPat)
95+
)
96+
.apply(instance, FabricShieldModelRenderer.Unbaked::new)
9897
);
9998

10099
@Override
@@ -107,9 +106,9 @@ public SpecialModelRenderer<?> bake(LoadedEntityModels entityModels) {
107106
ModelPart modelPart = entityModels.getModelPart(EntityModelLayers.SHIELD);
108107
ShieldEntityModel model = new ShieldEntityModel(modelPart);
109108
return new FabricShieldModelRenderer(
110-
this.baseModel,
111-
this.baseModelNoPat,
112-
model
109+
this.baseModel,
110+
this.baseModelNoPat,
111+
model
113112
);
114113
}
115114
}

src/main/java/com/github/crimsondawn45/fabricshieldlib/lib/object/FabricShieldTags.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.github.crimsondawn45.fabricshieldlib.lib.object;
22

33
import com.github.crimsondawn45.fabricshieldlib.initializers.FabricShieldLib;
4-
4+
import com.github.crimsondawn45.fabricshieldlib.mixin.RecipeMixin;
55
import net.minecraft.item.Item;
66
import net.minecraft.registry.RegistryKeys;
77
import net.minecraft.registry.tag.TagKey;
@@ -16,12 +16,10 @@ public class FabricShieldTags {
1616
* <p>
1717
* Add your modded shield to this tag if it supports banners.
1818
* <p>
19-
* {@link FabricShieldDecoratorRecipe} covers all shields with this tag,
20-
* with the exception of the vanilla shield (handled by
21-
* {@link net.minecraft.recipe.ShieldDecorationRecipe}
19+
* {@link RecipeMixin} covers includes all shields in this tag into {@link net.minecraft.recipe.ShieldDecorationRecipe}
2220
*/
2321
public static final TagKey<Item> SUPPORTS_BANNER =
24-
TagKey.of(RegistryKeys.ITEM, Identifier.of(FabricShieldLib.MOD_ID, "supports_banner"));
22+
TagKey.of(RegistryKeys.ITEM, Identifier.of(FabricShieldLib.MOD_ID, "supports_banner"));
2523

2624
/**
2725
* Explicitly disable advanced tooltip for a given set of shields.
@@ -35,5 +33,5 @@ public class FabricShieldTags {
3533
* Replaces `FabricShield::displayTooltip`
3634
*/
3735
public static final TagKey<Item> NO_TOOLTIP =
38-
TagKey.of(RegistryKeys.ITEM, Identifier.of(FabricShieldLib.MOD_ID, "no_tooltip"));
36+
TagKey.of(RegistryKeys.ITEM, Identifier.of(FabricShieldLib.MOD_ID, "no_tooltip"));
3937
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.github.crimsondawn45.fabricshieldlib.mixin;
2+
3+
import com.github.crimsondawn45.fabricshieldlib.lib.object.FabricShieldUtils;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
5+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
6+
import net.minecraft.item.Item;
7+
import net.minecraft.item.ItemStack;
8+
import net.minecraft.recipe.ShieldDecorationRecipe;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
12+
@Mixin(ShieldDecorationRecipe.class)
13+
public class RecipeMixin {
14+
15+
@WrapOperation(
16+
method = "matches(Lnet/minecraft/recipe/input/CraftingRecipeInput;Lnet/minecraft/world/World;)Z",
17+
at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isOf(Lnet/minecraft/item/Item;)Z")
18+
)
19+
private boolean wrapMatches(ItemStack itemstack, Item instance, Operation<Boolean> original) {
20+
return original.call(itemstack, instance) || FabricShieldUtils.supportsBanner(itemstack);
21+
}
22+
23+
24+
@WrapOperation(
25+
method = "craft(Lnet/minecraft/recipe/input/CraftingRecipeInput;Lnet/minecraft/registry/RegistryWrapper$WrapperLookup;)Lnet/minecraft/item/ItemStack;",
26+
at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isOf(Lnet/minecraft/item/Item;)Z")
27+
)
28+
private boolean wrapCraft(ItemStack itemstack, Item instance, Operation<Boolean> original) {
29+
return original.call(itemstack, instance) || FabricShieldUtils.supportsBanner(itemstack);
30+
}
31+
32+
33+
34+
}

0 commit comments

Comments
 (0)