Skip to content

Commit 97e7958

Browse files
committed
move to mojmap
1 parent 862d739 commit 97e7958

37 files changed

+1316
-1294
lines changed

build.gradle

+5-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@ repositories {
5656

5757
dependencies {
5858
minecraft libs.minecraft
59-
mappings variantOf(libs.quilt.mappings) { classifier "intermediary-v2" }
59+
mappings(loom.layered {
60+
it.mappings variantOf(libs.quilt.mappings) { classifier 'intermediary-v2' }
61+
it.parchment("${libs.parchment.mappings.get()}@zip")
62+
it.officialMojangMappings { nameSyntheticMembers = false }
63+
})
6064

6165
modImplementation libs.quilt.loader
6266
modImplementation libs.quilted.fabric.api

gradle/libs.versions.toml

+5
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ quilt_mappings = "1.20.1+build.23"
77
quilt_loader = "0.22.0"
88

99
quilted_fabric_api = "7.4.0+0.90.0-1.20.1"
10+
11+
# The latest versions are available at https://parchmentmc.org/docs/getting-started
12+
parchment = "2023.09.03"
13+
1014
midnightlib = "1.4.1-quilt"
1115
modmenu = "7.2.2"
1216
lazydfu = "0.1.3"
@@ -23,6 +27,7 @@ fabric-permissions-api = "0.2-SNAPSHOT"
2327
[libraries]
2428
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
2529
quilt_mappings = { module = "org.quiltmc:quilt-mappings", version.ref = "quilt_mappings" }
30+
parchment_mappings = { module = "org.parchmentmc.data:parchment-1.20.1", version.ref = "parchment" }
2631
quilt_loader = { module = "org.quiltmc:quilt-loader", version.ref = "quilt_loader" }
2732

2833
quilted_fabric_api = { module = "org.quiltmc.quilted-fabric-api:quilted-fabric-api", version.ref = "quilted_fabric_api" }

src/main/java/dev/cammiescorner/camsbackpacks/CamsBackpacks.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@
99
import dev.cammiescorner.camsbackpacks.core.registry.ModBlocks;
1010
import dev.cammiescorner.camsbackpacks.core.registry.ModScreenHandlers;
1111
import eu.midnightdust.lib.config.MidnightConfig;
12-
import net.minecraft.util.Identifier;
12+
import net.minecraft.resources.ResourceLocation;
1313
import org.quiltmc.loader.api.ModContainer;
1414
import org.quiltmc.loader.api.QuiltLoader;
1515
import org.quiltmc.qsl.base.api.entrypoint.ModInitializer;
1616
import org.quiltmc.qsl.networking.api.ServerPlayNetworking;
1717

1818
public class CamsBackpacks implements ModInitializer {
19+
1920
public static final String MOD_ID = "camsbackpacks";
2021

2122
@Override
@@ -34,7 +35,7 @@ public void onInitialize(ModContainer mod) {
3435
UniversalGravesCompat.load();
3536
}
3637

37-
public static Identifier id(String path) {
38-
return new Identifier(MOD_ID, path);
38+
public static ResourceLocation id(String path) {
39+
return new ResourceLocation(MOD_ID, path);
3940
}
4041
}

src/main/java/dev/cammiescorner/camsbackpacks/client/CamsBackpacksClient.java

+17-28
Original file line numberDiff line numberDiff line change
@@ -9,43 +9,32 @@
99
import dev.cammiescorner.camsbackpacks.core.util.BackpackHelper;
1010
import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry;
1111
import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry;
12-
import net.minecraft.client.gui.screen.ingame.HandledScreens;
13-
import net.minecraft.client.render.RenderLayer;
14-
import net.minecraft.client.render.entity.model.EntityModelLayer;
12+
import net.minecraft.client.gui.screens.MenuScreens;
13+
import net.minecraft.client.model.geom.ModelLayerLocation;
14+
import net.minecraft.client.renderer.RenderType;
15+
import net.minecraft.core.registries.BuiltInRegistries;
16+
import net.minecraft.world.item.DyeColor;
17+
import net.minecraft.world.item.Item;
18+
import net.minecraft.world.level.block.Block;
1519
import org.quiltmc.loader.api.ModContainer;
1620
import org.quiltmc.qsl.base.api.entrypoint.client.ClientModInitializer;
1721
import org.quiltmc.qsl.block.extensions.api.client.BlockRenderLayerMap;
1822

1923
import static dev.cammiescorner.camsbackpacks.core.registry.ModBlocks.*;
2024

2125
public class CamsBackpacksClient implements ClientModInitializer {
22-
public static final EntityModelLayer BACKPACK = new EntityModelLayer(CamsBackpacks.id("backpack"), "main");
23-
public static boolean backpackScreenIsOpen = true;
26+
public static final ModelLayerLocation BACKPACK = new ModelLayerLocation(CamsBackpacks.id("backpack"), "main");
27+
public static boolean backpackScreenIsOpen = true;
2428

25-
@Override
26-
public void onInitializeClient(ModContainer mod) {
27-
//-----Screen Registry-----//
28-
HandledScreens.register(ModScreenHandlers.BACKPACK_SCREEN_HANDLER, BackpackScreen::new);
29+
@Override
30+
public void onInitializeClient(ModContainer mod) {
31+
MenuScreens.register(ModScreenHandlers.BACKPACK_SCREEN_HANDLER, BackpackScreen::new);
2932

30-
//-----Entity Model Layers Registry-----//
31-
EntityModelLayerRegistry.registerModelLayer(BACKPACK, BackpackModel::getTexturedModelData);
33+
EntityModelLayerRegistry.registerModelLayer(BACKPACK, BackpackModel::getTexturedModelData);
3234

33-
//-----Colour Registry-----//
34-
ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> BackpackHelper.dyeToDecimal(((BackpackBlock) state.getBlock()).getColour()),
35-
WHITE_BACKPACK, ORANGE_BACKPACK, MAGENTA_BACKPACK, LIGHT_BLUE_BACKPACK, YELLOW_BACKPACK, LIME_BACKPACK, PINK_BACKPACK,
36-
GRAY_BACKPACK, LIGHT_GRAY_BACKPACK, CYAN_BACKPACK, PURPLE_BACKPACK, BLUE_BACKPACK, BROWN_BACKPACK, GREEN_BACKPACK,
37-
RED_BACKPACK, BLACK_BACKPACK);
38-
ColorProviderRegistry.ITEM.register((stack, tintIndex) -> BackpackHelper.dyeToDecimal(((BackpackItem) stack.getItem()).getColour()),
39-
WHITE_BACKPACK.asItem(), ORANGE_BACKPACK.asItem(), MAGENTA_BACKPACK.asItem(), LIGHT_BLUE_BACKPACK.asItem(),
40-
YELLOW_BACKPACK.asItem(), LIME_BACKPACK.asItem(), PINK_BACKPACK.asItem(), GRAY_BACKPACK.asItem(),
41-
LIGHT_GRAY_BACKPACK.asItem(), CYAN_BACKPACK.asItem(), PURPLE_BACKPACK.asItem(), BLUE_BACKPACK.asItem(),
42-
BROWN_BACKPACK.asItem(), GREEN_BACKPACK.asItem(), RED_BACKPACK.asItem(), BLACK_BACKPACK);
35+
ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> BackpackHelper.dyeToDecimal(((BackpackBlock) state.getBlock()).getColour()), BuiltInRegistries.BLOCK.stream().filter(block -> block instanceof BackpackBlock backpack && (backpack.getColour() != DyeColor.WHITE || backpack == WHITE_BACKPACK)).toArray(Block[]::new));
36+
ColorProviderRegistry.ITEM.register((stack, tintIndex) -> BackpackHelper.dyeToDecimal(((BackpackItem) stack.getItem()).getColour()), BuiltInRegistries.ITEM.stream().filter(item -> item instanceof BackpackItem backpack && (backpack.getColour() != DyeColor.WHITE || backpack == WHITE_BACKPACK.asItem())).toArray(Item[]::new));
4337

44-
//-----Block Layers Registry-----//
45-
BlockRenderLayerMap.put(RenderLayer.getCutout(), WHITE_BACKPACK, ORANGE_BACKPACK, MAGENTA_BACKPACK,
46-
LIGHT_BLUE_BACKPACK, YELLOW_BACKPACK, LIME_BACKPACK, PINK_BACKPACK, GRAY_BACKPACK, LIGHT_GRAY_BACKPACK, CYAN_BACKPACK,
47-
PURPLE_BACKPACK, BLUE_BACKPACK, BROWN_BACKPACK, GREEN_BACKPACK, RED_BACKPACK, BLACK_BACKPACK, GAY_BACKPACK,
48-
LESBIAN_BACKPACK, QPOC_BACKPACK, BI_BACKPACK, PAN_BACKPACK, TRANS_BACKPACK, GENDERQUEER_BACKPACK,
49-
GENDERFLUID_BACKPACK, ENBY_BACKPACK, ACE_BACKPACK, DEMI_BACKPACK, ARO_BACKPACK, AGENDER_BACKPACK);
50-
}
38+
BlockRenderLayerMap.put(RenderType.cutout(), BuiltInRegistries.BLOCK.stream().filter(BackpackBlock.class::isInstance).toArray(Block[]::new));
39+
}
5140
}

src/main/java/dev/cammiescorner/camsbackpacks/client/models/BackpackModel.java

+50-46
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,53 @@
33
package dev.cammiescorner.camsbackpacks.client.models;
44

55
import com.google.common.collect.ImmutableList;
6-
import net.minecraft.client.model.*;
7-
import net.minecraft.client.render.entity.model.AnimalModel;
8-
import net.minecraft.entity.LivingEntity;
9-
10-
public class BackpackModel<T extends LivingEntity> extends AnimalModel<T> {
11-
private final ModelPart root;
12-
13-
public BackpackModel(ModelPart root) {
14-
this.root = root.getChild("root");
15-
}
16-
17-
public static TexturedModelData getTexturedModelData() {
18-
ModelData modelData = new ModelData();
19-
ModelPartData modelPartData = modelData.getRoot();
20-
ModelPartData modelPartData1 = modelPartData.addChild("root", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 0.0F, 0.0F));
21-
ModelPartData modelPartData2 = modelPartData1.addChild("straps", ModelPartBuilder.create().uv(0, 0).cuboid(-4.5F, -0.3F, -3.0F, 9.0F, 12.0F, 5.0F), ModelTransform.pivot(0.0F, 0.0F, 0.0F));
22-
ModelPartData modelPartData3 = modelPartData2.addChild("backpack", ModelPartBuilder.create().uv(28, 0).cuboid(-4.5F, -3.0F, 2.0F, 9.0F, 16.0F, 6.0F), ModelTransform.pivot(0.0F, 0.0F, 0.0F));
23-
modelPartData3.addChild("pocketRight", ModelPartBuilder.create().uv(0, 17).cuboid(3.5F, 7.0F, 3.0F, 3.0F, 5.0F, 4.0F), ModelTransform.pivot(0.0F, 0.0F, 0.0F));
24-
modelPartData3.addChild("pocketLeft", ModelPartBuilder.create().uv(0, 17).cuboid(-6.5F, 7.0F, 3.0F, 3.0F, 5.0F, 4.0F), ModelTransform.pivot(0.0F, 0.0F, 0.0F));
25-
modelPartData3.addChild("backPocket", ModelPartBuilder.create().uv(14, 20).cuboid(-3.0F, 1.0F, 8.0F, 6.0F, 8.0F, 2.0F), ModelTransform.pivot(0.0F, 0.0F, 0.0F));
26-
27-
return TexturedModelData.of(modelData, 64, 32);
28-
}
29-
30-
@Override
31-
public void setAngles(T entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {
32-
if(entity.isInSneakingPose()) {
33-
root.pitch = 0.5F;
34-
root.pivotY = 3.2F;
35-
}
36-
else {
37-
root.pitch = 0.0F;
38-
root.pivotY = 0.0F;
39-
}
40-
}
41-
42-
@Override
43-
protected Iterable<ModelPart> getHeadParts() {
44-
return ImmutableList.of();
45-
}
46-
47-
@Override
48-
protected Iterable<ModelPart> getBodyParts() {
49-
return ImmutableList.of(root);
50-
}
51-
}
6+
import net.minecraft.client.model.AgeableListModel;
7+
import net.minecraft.client.model.geom.ModelPart;
8+
import net.minecraft.client.model.geom.PartPose;
9+
import net.minecraft.client.model.geom.builders.CubeListBuilder;
10+
import net.minecraft.client.model.geom.builders.LayerDefinition;
11+
import net.minecraft.client.model.geom.builders.MeshDefinition;
12+
import net.minecraft.client.model.geom.builders.PartDefinition;
13+
import net.minecraft.world.entity.LivingEntity;
14+
15+
public class BackpackModel<T extends LivingEntity> extends AgeableListModel<T> {
16+
private final ModelPart root;
17+
18+
public BackpackModel(ModelPart root) {
19+
this.root = root.getChild("root");
20+
}
21+
22+
public static LayerDefinition getTexturedModelData() {
23+
MeshDefinition modelData = new MeshDefinition();
24+
PartDefinition modelPartData = modelData.getRoot();
25+
PartDefinition modelPartData1 = modelPartData.addOrReplaceChild("root", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F));
26+
PartDefinition modelPartData2 = modelPartData1.addOrReplaceChild("straps", CubeListBuilder.create().texOffs(0, 0).addBox(-4.5F, -0.3F, -3.0F, 9.0F, 12.0F, 5.0F), PartPose.offset(0.0F, 0.0F, 0.0F));
27+
PartDefinition modelPartData3 = modelPartData2.addOrReplaceChild("backpack", CubeListBuilder.create().texOffs(28, 0).addBox(-4.5F, -3.0F, 2.0F, 9.0F, 16.0F, 6.0F), PartPose.offset(0.0F, 0.0F, 0.0F));
28+
modelPartData3.addOrReplaceChild("pocketRight", CubeListBuilder.create().texOffs(0, 17).addBox(3.5F, 7.0F, 3.0F, 3.0F, 5.0F, 4.0F), PartPose.offset(0.0F, 0.0F, 0.0F));
29+
modelPartData3.addOrReplaceChild("pocketLeft", CubeListBuilder.create().texOffs(0, 17).addBox(-6.5F, 7.0F, 3.0F, 3.0F, 5.0F, 4.0F), PartPose.offset(0.0F, 0.0F, 0.0F));
30+
modelPartData3.addOrReplaceChild("backPocket", CubeListBuilder.create().texOffs(14, 20).addBox(-3.0F, 1.0F, 8.0F, 6.0F, 8.0F, 2.0F), PartPose.offset(0.0F, 0.0F, 0.0F));
31+
32+
return LayerDefinition.create(modelData, 64, 32);
33+
}
34+
35+
@Override
36+
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
37+
if (entity.isCrouching()) {
38+
root.xRot = 0.5F;
39+
root.y = 3.2F;
40+
} else {
41+
root.xRot = 0.0F;
42+
root.y = 0.0F;
43+
}
44+
}
45+
46+
@Override
47+
protected Iterable<ModelPart> headParts() {
48+
return ImmutableList.of();
49+
}
50+
51+
@Override
52+
protected Iterable<ModelPart> bodyParts() {
53+
return ImmutableList.of(root);
54+
}
55+
}

0 commit comments

Comments
 (0)