diff --git a/gradle.properties b/gradle.properties index 03036e3d..932d9f17 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.daemon=false mod_id=sophisticatedbackpacks mod_group_id=sophisticatedbackpacks -mod_version=3.19.8 +mod_version=3.20.0 sonar_project_key=sophisticatedbackpacks:SophisticatedBackpacks github_package_url=https://maven.pkg.github.com/P3pp3rF1y/SophisticatedBackpacks diff --git a/src/generated/resources/data/sophisticatedbackpacks/advancements/recipes/misc/copper_backpack.json b/src/generated/resources/data/sophisticatedbackpacks/advancements/recipes/misc/copper_backpack.json new file mode 100644 index 00000000..4c63e944 --- /dev/null +++ b/src/generated/resources/data/sophisticatedbackpacks/advancements/recipes/misc/copper_backpack.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_backpack": { + "conditions": { + "items": [ + { + "items": [ + "sophisticatedbackpacks:backpack" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "sophisticatedbackpacks:copper_backpack" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_backpack", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "sophisticatedbackpacks:copper_backpack" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/sophisticatedbackpacks/advancements/recipes/misc/iron_backpack_from_copper.json b/src/generated/resources/data/sophisticatedbackpacks/advancements/recipes/misc/iron_backpack_from_copper.json new file mode 100644 index 00000000..de109740 --- /dev/null +++ b/src/generated/resources/data/sophisticatedbackpacks/advancements/recipes/misc/iron_backpack_from_copper.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_backpack": { + "conditions": { + "items": [ + { + "items": [ + "sophisticatedbackpacks:copper_backpack" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "sophisticatedbackpacks:iron_backpack_from_copper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_copper_backpack", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "sophisticatedbackpacks:iron_backpack_from_copper" + ] + }, + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/sophisticatedbackpacks/loot_tables/blocks/copper_backpack.json b/src/generated/resources/data/sophisticatedbackpacks/loot_tables/blocks/copper_backpack.json new file mode 100644 index 00000000..1486548d --- /dev/null +++ b/src/generated/resources/data/sophisticatedbackpacks/loot_tables/blocks/copper_backpack.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "sophisticatedbackpacks:copper_backpack" + } + ], + "functions": [ + { + "function": "sophisticatedbackpacks:copy_backpack_data" + } + ], + "name": "main", + "rolls": 1.0 + } + ], + "random_sequence": "sophisticatedbackpacks:blocks/copper_backpack" +} \ No newline at end of file diff --git a/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/abandoned_mineshaft.json b/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/abandoned_mineshaft.json index 595a7335..16e838cc 100644 --- a/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/abandoned_mineshaft.json +++ b/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/abandoned_mineshaft.json @@ -7,6 +7,11 @@ { "type": "minecraft:item", "name": "sophisticatedbackpacks:backpack", + "weight": 7 + }, + { + "type": "minecraft:item", + "name": "sophisticatedbackpacks:copper_backpack", "weight": 5 }, { @@ -25,7 +30,7 @@ }, { "type": "minecraft:empty", - "weight": 89 + "weight": 84 } ], "name": "main", diff --git a/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/desert_pyramid.json b/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/desert_pyramid.json index 55038cb0..e90f5a50 100644 --- a/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/desert_pyramid.json +++ b/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/desert_pyramid.json @@ -6,7 +6,7 @@ "entries": [ { "type": "minecraft:item", - "name": "sophisticatedbackpacks:backpack", + "name": "sophisticatedbackpacks:copper_backpack", "weight": 5 }, { diff --git a/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/simple_dungeon.json b/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/simple_dungeon.json index fca16656..86c15b50 100644 --- a/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/simple_dungeon.json +++ b/src/generated/resources/data/sophisticatedbackpacks/loot_tables/inject/chests/simple_dungeon.json @@ -7,12 +7,12 @@ { "type": "minecraft:item", "name": "sophisticatedbackpacks:backpack", - "weight": 4 + "weight": 5 }, { "type": "minecraft:item", - "name": "sophisticatedbackpacks:iron_backpack", - "weight": 2 + "name": "sophisticatedbackpacks:copper_backpack", + "weight": 3 }, { "type": "minecraft:item", @@ -21,7 +21,7 @@ }, { "type": "minecraft:empty", - "weight": 92 + "weight": 90 } ], "name": "main", diff --git a/src/generated/resources/data/sophisticatedbackpacks/recipes/copper_backpack.json b/src/generated/resources/data/sophisticatedbackpacks/recipes/copper_backpack.json new file mode 100644 index 00000000..f2432950 --- /dev/null +++ b/src/generated/resources/data/sophisticatedbackpacks/recipes/copper_backpack.json @@ -0,0 +1,25 @@ +{ + "type": "sophisticatedbackpacks:backpack_upgrade", + "conditions": [ + { + "type": "sophisticatedcore:item_enabled", + "itemRegistryName": "sophisticatedbackpacks:copper_backpack" + } + ], + "key": { + "B": { + "item": "sophisticatedbackpacks:backpack" + }, + "C": { + "tag": "forge:ingots/copper" + } + }, + "pattern": [ + "CCC", + "CBC", + "CCC" + ], + "result": { + "item": "sophisticatedbackpacks:copper_backpack" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/sophisticatedbackpacks/recipes/iron_backpack_from_copper.json b/src/generated/resources/data/sophisticatedbackpacks/recipes/iron_backpack_from_copper.json new file mode 100644 index 00000000..8462cfe4 --- /dev/null +++ b/src/generated/resources/data/sophisticatedbackpacks/recipes/iron_backpack_from_copper.json @@ -0,0 +1,25 @@ +{ + "type": "sophisticatedbackpacks:backpack_upgrade", + "conditions": [ + { + "type": "sophisticatedcore:item_enabled", + "itemRegistryName": "sophisticatedbackpacks:iron_backpack" + } + ], + "key": { + "B": { + "item": "sophisticatedbackpacks:copper_backpack" + }, + "I": { + "tag": "forge:ingots/iron" + } + }, + "pattern": [ + " I ", + "IBI", + " I " + ], + "result": { + "item": "sophisticatedbackpacks:iron_backpack" + } +} \ No newline at end of file diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/Config.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/Config.java index c0661407..bd280980 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/Config.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/Config.java @@ -61,6 +61,7 @@ public static class Server { public final NoInteractionBlocks noInteractionBlocks; public final NoConnectionBlocks noConnectionBlocks; public final BackpackConfig leatherBackpack; + public final BackpackConfig copperBackpack; public final BackpackConfig ironBackpack; public final BackpackConfig goldBackpack; public final BackpackConfig diamondBackpack; @@ -136,6 +137,7 @@ private void clearCache() { noConnectionBlocks = new NoConnectionBlocks(builder); leatherBackpack = new BackpackConfig(builder, "Leather", 27, 1); + copperBackpack = new BackpackConfig(builder, "Copper", 45, 1); ironBackpack = new BackpackConfig(builder, "Iron", 54, 2); goldBackpack = new BackpackConfig(builder, "Gold", 81, 3); diamondBackpack = new BackpackConfig(builder, "Diamond", 108, 5); diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/ClientEventHandler.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/ClientEventHandler.java index b5b3c129..fabd5c08 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/ClientEventHandler.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/ClientEventHandler.java @@ -26,11 +26,7 @@ import net.p3pp3rf1y.sophisticatedbackpacks.SophisticatedBackpacks; import net.p3pp3rf1y.sophisticatedbackpacks.client.init.ModBlockColors; import net.p3pp3rf1y.sophisticatedbackpacks.client.init.ModItemColors; -import net.p3pp3rf1y.sophisticatedbackpacks.client.render.BackpackBlockEntityRenderer; -import net.p3pp3rf1y.sophisticatedbackpacks.client.render.BackpackDynamicModel; -import net.p3pp3rf1y.sophisticatedbackpacks.client.render.BackpackLayerRenderer; -import net.p3pp3rf1y.sophisticatedbackpacks.client.render.BackpackModel; -import net.p3pp3rf1y.sophisticatedbackpacks.client.render.ClientBackpackContentsTooltip; +import net.p3pp3rf1y.sophisticatedbackpacks.client.render.*; import net.p3pp3rf1y.sophisticatedbackpacks.init.ModBlocks; import net.p3pp3rf1y.sophisticatedbackpacks.network.BlockPickMessage; import net.p3pp3rf1y.sophisticatedbackpacks.network.SBPPacketHandler; diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/init/ModBlockColors.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/init/ModBlockColors.java index 66cb3a78..3f625e7a 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/init/ModBlockColors.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/init/ModBlockColors.java @@ -18,7 +18,7 @@ public static void registerBlockColorHandlers(RegisterColorHandlersEvent.Block e return WorldHelper.getBlockEntity(blockDisplayReader, pos, BackpackBlockEntity.class) .map(te -> tintIndex == 0 ? te.getBackpackWrapper().getMainColor() : te.getBackpackWrapper().getAccentColor()) .orElse(getDefaultColor(tintIndex)); - }, BACKPACK.get(), IRON_BACKPACK.get(), GOLD_BACKPACK.get(), DIAMOND_BACKPACK.get(), NETHERITE_BACKPACK.get()); + }, BACKPACK.get(), COPPER_BACKPACK.get(), IRON_BACKPACK.get(), GOLD_BACKPACK.get(), DIAMOND_BACKPACK.get(), NETHERITE_BACKPACK.get()); } private static int getDefaultColor(int tintIndex) { diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/init/ModItemColors.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/init/ModItemColors.java index 59b3d358..de401c42 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/init/ModItemColors.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/init/ModItemColors.java @@ -23,6 +23,6 @@ public static void registerItemColorHandlers(RegisterColorHandlersEvent.Item eve } return -1; }).orElse(BackpackWrapper.DEFAULT_CLOTH_COLOR); - }, BACKPACK.get(), IRON_BACKPACK.get(), GOLD_BACKPACK.get(), DIAMOND_BACKPACK.get(), NETHERITE_BACKPACK.get()); + }, BACKPACK.get(), COPPER_BACKPACK.get(), IRON_BACKPACK.get(), GOLD_BACKPACK.get(), DIAMOND_BACKPACK.get(), NETHERITE_BACKPACK.get()); } } diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/render/BackpackModel.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/render/BackpackModel.java index 7fa741b4..dadbb75b 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/render/BackpackModel.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/client/render/BackpackModel.java @@ -9,11 +9,7 @@ import net.minecraft.client.model.EntityModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.CubeDeformation; -import net.minecraft.client.model.geom.builders.CubeListBuilder; -import net.minecraft.client.model.geom.builders.LayerDefinition; -import net.minecraft.client.model.geom.builders.MeshDefinition; -import net.minecraft.client.model.geom.builders.PartDefinition; +import net.minecraft.client.model.geom.builders.*; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.texture.OverlayTexture; @@ -38,13 +34,7 @@ import net.p3pp3rf1y.sophisticatedcore.upgrades.IRenderedTankUpgrade; import javax.annotation.Nonnull; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; +import java.util.*; public class BackpackModel extends AgeableListModel implements IBackpackModel { private static final Map, Vec3> entityTranslations; @@ -240,25 +230,25 @@ public static LayerDefinition createBodyLayer() { ); partDefinition.addOrReplaceChild(FABRIC_FRONT_PART, CubeListBuilder.create() - .texOffs(0, 55).addBox(-0.75F, 3.0F, 1.0F, 8.0F, 1.0F, 2.0F, true) + .texOffs(12, 58).addBox(-0.75F, 3.0F, 1.0F, 8.0F, 1.0F, 2.0F, true) , PartPose.offset(-3.25F, 16.0F, -6.0F) ); partDefinition.addOrReplaceChild(FABRIC_RIGHT_PART, CubeListBuilder.create() .texOffs(32, 49).addBox(8.25F, -2.0F, 3.5F, 1.0F, 1.0F, 5.0F, true) - .texOffs(8, 45).addBox(8.25F, 3.0F, 3.5F, 2.0F, 1.0F, 5.0F, true) + .texOffs(8, 48).addBox(8.25F, 3.0F, 3.5F, 2.0F, 1.0F, 5.0F, true) , PartPose.offset(-3.25F, 16.0F, -6.0F) ); partDefinition.addOrReplaceChild(FABRIC_LEFT_PART, CubeListBuilder.create() .texOffs(32, 49).addBox(-2.75F, -2.0F, 3.5F, 1.0F, 1.0F, 5.0F) - .texOffs(8, 45).addBox(-3.75F, 3.0F, 3.5F, 2.0F, 1.0F, 5.0F) + .texOffs(8, 48).addBox(-3.75F, 3.0F, 3.5F, 2.0F, 1.0F, 5.0F) , PartPose.offset(-3.25F, 16.0F, -6.0F) ); partDefinition.addOrReplaceChild(FABRIC_PART, CubeListBuilder.create() .texOffs(54, 0).addBox(1.25F, -4.75F, 5.75F, 1.0F, 1.0F, 1.0F) .texOffs(58, 0).addBox(4.25F, -4.75F, 5.75F, 1.0F, 1.0F, 1.0F) .texOffs(44, 0).addBox(1.25F, -5.75F, 5.75F, 4.0F, 1.0F, 1.0F, true) - .texOffs(16, 44).addBox(0.0F, -5.5F, 2.5F, 1.0F, 4.0F, 7.0F) - .texOffs(0, 44).addBox(5.5F, -5.5F, 2.5F, 1.0F, 4.0F, 7.0F) + .texOffs(16, 47).addBox(0.0F, -5.5F, 2.5F, 1.0F, 4.0F, 7.0F) + .texOffs(0, 47).addBox(5.5F, -5.5F, 2.5F, 1.0F, 4.0F, 7.0F) , PartPose.offset(-3.25F, 16.0F, -6.0F) ); @@ -311,7 +301,7 @@ public static LayerDefinition createBodyLayer() { for (int pixels = 1; pixels < 5; pixels++) { partDefinition.addOrReplaceChild(BATTERY_CHARGE_PART + pixels, CubeListBuilder.create() - .texOffs(18, 55).addBox(-2.0F, 21F, -6.01F, pixels, 1.0F, 1.0F) + .texOffs(30, 58).addBox(-2.0F, 21F, -6.01F, pixels, 1.0F, 1.0F) , PartPose.ZERO ); } @@ -328,10 +318,11 @@ public static LayerDefinition createBodyLayer() { private static Map getBackpackItems() { return new LinkedHashMap<>(Map.of( 0, ModItems.BACKPACK.get(), - 1, ModItems.IRON_BACKPACK.get(), - 2, ModItems.GOLD_BACKPACK.get(), - 3, ModItems.DIAMOND_BACKPACK.get(), - 4, ModItems.NETHERITE_BACKPACK.get() + 1, ModItems.COPPER_BACKPACK.get(), + 2, ModItems.IRON_BACKPACK.get(), + 3, ModItems.GOLD_BACKPACK.get(), + 4, ModItems.DIAMOND_BACKPACK.get(), + 5, ModItems.NETHERITE_BACKPACK.get() )); } @@ -507,9 +498,13 @@ public int hashCode() { } private static void addBodyClips(PartDefinition partDefinition, Item backpackItem, int yTextureOffset) { + addBodyClips(partDefinition, backpackItem, 0, yTextureOffset); + } + + private static void addBodyClips(PartDefinition partDefinition, Item backpackItem, int xTextureOffset, int yTextureOffset) { partDefinition.addOrReplaceChild(getTierPartName(backpackItem, BODY_CLIPS_PART), CubeListBuilder.create() - .texOffs(22, yTextureOffset).addBox(-3.25F, -9.5F, -3.5F, 1.0F, 2.0F, 1.0F) - .texOffs(25, yTextureOffset).addBox(2.25F, -9.5F, -3.5F, 1.0F, 2.0F, 1.0F) + .texOffs(22 + xTextureOffset, yTextureOffset).addBox(-3.25F, -9.5F, -3.5F, 1.0F, 2.0F, 1.0F) + .texOffs(25 + xTextureOffset, yTextureOffset).addBox(2.25F, -9.5F, -3.5F, 1.0F, 2.0F, 1.0F) , PartPose.offset(0.0F, 24.0F, 0.0F) ); } diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/common/EntityBackpackAdditionHandler.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/common/EntityBackpackAdditionHandler.java index 7a830712..f41f6a92 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/common/EntityBackpackAdditionHandler.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/common/EntityBackpackAdditionHandler.java @@ -7,11 +7,7 @@ import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.*; import net.minecraft.world.entity.ai.attributes.AttributeInstance; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; @@ -20,11 +16,7 @@ import net.minecraft.world.entity.monster.Monster; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.raid.Raider; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.RecordItem; -import net.minecraft.world.item.SpawnEggItem; +import net.minecraft.world.item.*; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; @@ -85,6 +77,7 @@ private EntityBackpackAdditionHandler() {} private static final Map dropChanceMultiplier = Map.of( ModItems.BACKPACK.get(), 1F, + ModItems.COPPER_BACKPACK.get(), 1.25F, ModItems.IRON_BACKPACK.get(), 1.5F, ModItems.GOLD_BACKPACK.get(), 3F, ModItems.DIAMOND_BACKPACK.get(), 4.5F, @@ -100,6 +93,8 @@ private EntityBackpackAdditionHandler() {} HELMET_CHANCES.subList(1, 3), LEGGINGS_CHANCES.subList(1, 3), BOOTS_CHANCES.subList(1, 3))), new WeightedElement<>(125, new BackpackAddition(ModItems.IRON_BACKPACK.get(), 1, HELMET_CHANCES.subList(2, 4), LEGGINGS_CHANCES.subList(2, 4), BOOTS_CHANCES.subList(2, 4))), + new WeightedElement<>(250, new BackpackAddition(ModItems.COPPER_BACKPACK.get(), 1, + HELMET_CHANCES.subList(2, 4), LEGGINGS_CHANCES.subList(3, 5), BOOTS_CHANCES.subList(3, 5))), new WeightedElement<>(625, new BackpackAddition(ModItems.BACKPACK.get(), 0, HELMET_CHANCES.subList(3, 5), LEGGINGS_CHANCES.subList(3, 5), BOOTS_CHANCES.subList(3, 5))) ); diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/compat/curios/CuriosCompat.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/compat/curios/CuriosCompat.java index b3c447d1..8e5747d9 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/compat/curios/CuriosCompat.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/compat/curios/CuriosCompat.java @@ -90,6 +90,7 @@ public LazyOptional getCapability(Capability cap, @Nullable Direction public void setup() { DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { CuriosRendererRegistry.register(ModItems.BACKPACK.get(), BackpackCurioRenderer::new); + CuriosRendererRegistry.register(ModItems.COPPER_BACKPACK.get(), BackpackCurioRenderer::new); CuriosRendererRegistry.register(ModItems.IRON_BACKPACK.get(), BackpackCurioRenderer::new); CuriosRendererRegistry.register(ModItems.GOLD_BACKPACK.get(), BackpackCurioRenderer::new); CuriosRendererRegistry.register(ModItems.DIAMOND_BACKPACK.get(), BackpackCurioRenderer::new); diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/compat/jei/SBPPlugin.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/compat/jei/SBPPlugin.java index 84a55c51..883ae80d 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/compat/jei/SBPPlugin.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/compat/jei/SBPPlugin.java @@ -8,11 +8,7 @@ import mezz.jei.api.helpers.IStackHelper; import mezz.jei.api.ingredients.subtypes.IIngredientSubtypeInterpreter; import mezz.jei.api.recipe.transfer.IRecipeTransferHandlerHelper; -import mezz.jei.api.registration.IGuiHandlerRegistration; -import mezz.jei.api.registration.IRecipeCatalystRegistration; -import mezz.jei.api.registration.IRecipeRegistration; -import mezz.jei.api.registration.IRecipeTransferRegistration; -import mezz.jei.api.registration.ISubtypeRegistration; +import mezz.jei.api.registration.*; import net.minecraft.client.renderer.Rect2i; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -53,6 +49,7 @@ public void registerItemSubtypes(ISubtypeRegistration registration) { .map(wrapper -> "{clothColor:" + wrapper.getMainColor() + ",borderColor:" + wrapper.getAccentColor() + "}") .orElse(IIngredientSubtypeInterpreter.NONE); registration.registerSubtypeInterpreter(VanillaTypes.ITEM_STACK, ModItems.BACKPACK.get(), backpackNbtInterpreter); + registration.registerSubtypeInterpreter(VanillaTypes.ITEM_STACK, ModItems.COPPER_BACKPACK.get(), backpackNbtInterpreter); registration.registerSubtypeInterpreter(VanillaTypes.ITEM_STACK, ModItems.IRON_BACKPACK.get(), backpackNbtInterpreter); registration.registerSubtypeInterpreter(VanillaTypes.ITEM_STACK, ModItems.GOLD_BACKPACK.get(), backpackNbtInterpreter); registration.registerSubtypeInterpreter(VanillaTypes.ITEM_STACK, ModItems.DIAMOND_BACKPACK.get(), backpackNbtInterpreter); diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBInjectLootSubProvider.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBInjectLootSubProvider.java index ebcab3dd..8f27bbdb 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBInjectLootSubProvider.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBInjectLootSubProvider.java @@ -30,17 +30,18 @@ public class SBInjectLootSubProvider implements LootTableSubProvider { @Override public void generate(BiConsumer tables) { - tables.accept(SIMPLE_DUNGEON, getLootTable(92, - getItemLootEntry(ModItems.BACKPACK.get(), 4), - getItemLootEntry(ModItems.IRON_BACKPACK.get(), 2), - getItemLootEntry(ModItems.PICKUP_UPGRADE.get(), 2))); - tables.accept(ABANDONED_MINESHAFT, getLootTable(89, + tables.accept(SIMPLE_DUNGEON, getLootTable(90, getItemLootEntry(ModItems.BACKPACK.get(), 5), + getItemLootEntry(ModItems.COPPER_BACKPACK.get(), 3), + getItemLootEntry(ModItems.PICKUP_UPGRADE.get(), 2))); + tables.accept(ABANDONED_MINESHAFT, getLootTable(84, + getItemLootEntry(ModItems.BACKPACK.get(), 7), + getItemLootEntry(ModItems.COPPER_BACKPACK.get(), 5), getItemLootEntry(ModItems.IRON_BACKPACK.get(), 3), getItemLootEntry(ModItems.GOLD_BACKPACK.get(), 1), getItemLootEntry(ModItems.MAGNET_UPGRADE.get(), 2))); tables.accept(DESERT_PYRAMID, getLootTable(89, - getItemLootEntry(ModItems.BACKPACK.get(), 5), + getItemLootEntry(ModItems.COPPER_BACKPACK.get(), 5), getItemLootEntry(ModItems.IRON_BACKPACK.get(), 3), getItemLootEntry(ModItems.GOLD_BACKPACK.get(), 1), getItemLootEntry(ModItems.MAGNET_UPGRADE.get(), 2))); diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPBlockLootProvider.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPBlockLootProvider.java new file mode 100644 index 00000000..e69de29b diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPBlockLootSubProvider.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPBlockLootSubProvider.java index 3e67564d..5503b0aa 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPBlockLootSubProvider.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPBlockLootSubProvider.java @@ -25,6 +25,7 @@ protected SBPBlockLootSubProvider() { @Override public void generate() { add(ModBlocks.BACKPACK.get(), dropBackpackWithContents(ModItems.BACKPACK.get())); + add(ModBlocks.COPPER_BACKPACK.get(), dropBackpackWithContents(ModItems.COPPER_BACKPACK.get())); add(ModBlocks.IRON_BACKPACK.get(), dropBackpackWithContents(ModItems.IRON_BACKPACK.get())); add(ModBlocks.GOLD_BACKPACK.get(), dropBackpackWithContents(ModItems.GOLD_BACKPACK.get())); add(ModBlocks.DIAMOND_BACKPACK.get(), dropBackpackWithContents(ModItems.DIAMOND_BACKPACK.get())); diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPRecipeProvider.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPRecipeProvider.java index bc49a393..efac9367 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPRecipeProvider.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/data/SBPRecipeProvider.java @@ -76,6 +76,24 @@ protected void buildRecipes(Consumer consumer) { .unlockedBy("has_backpack", has(ModItems.BACKPACK.get())) .save(consumer); + ShapeBasedRecipeBuilder.shaped(ModItems.IRON_BACKPACK.get(), ModItems.BACKPACK_UPGRADE_RECIPE_SERIALIZER.get()) + .pattern(" I ") + .pattern("IBI") + .pattern(" I ") + .define('I', Tags.Items.INGOTS_IRON) + .define('B', ModItems.COPPER_BACKPACK.get()) + .unlockedBy("has_copper_backpack", has(ModItems.COPPER_BACKPACK.get())) + .save(consumer, new ResourceLocation(SophisticatedBackpacks.getRegistryName("iron_backpack_from_copper"))); + + ShapeBasedRecipeBuilder.shaped(ModItems.COPPER_BACKPACK.get(), ModItems.BACKPACK_UPGRADE_RECIPE_SERIALIZER.get()) + .pattern("CCC") + .pattern("CBC") + .pattern("CCC") + .define('C', Tags.Items.INGOTS_COPPER) + .define('B', ModItems.BACKPACK.get()) + .unlockedBy("has_backpack", has(ModItems.BACKPACK.get())) + .save(consumer); + ShapeBasedRecipeBuilder.shaped(ModItems.PICKUP_UPGRADE.get()) .pattern(" P ") .pattern("SBS") diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/init/ModBlocks.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/init/ModBlocks.java index 2e611668..e32bed1a 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/init/ModBlocks.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/init/ModBlocks.java @@ -19,6 +19,7 @@ public class ModBlocks { private ModBlocks() {} public static final RegistryObject BACKPACK = BLOCKS.register("backpack", BackpackBlock::new); + public static final RegistryObject COPPER_BACKPACK = BLOCKS.register("copper_backpack", BackpackBlock::new); public static final RegistryObject IRON_BACKPACK = BLOCKS.register("iron_backpack", BackpackBlock::new); public static final RegistryObject GOLD_BACKPACK = BLOCKS.register("gold_backpack", BackpackBlock::new); public static final RegistryObject DIAMOND_BACKPACK = BLOCKS.register("diamond_backpack", BackpackBlock::new); diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/init/ModItems.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/init/ModItems.java index 06837a6a..b0a38d21 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/init/ModItems.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/init/ModItems.java @@ -154,6 +154,8 @@ private ModItems() { public static final RegistryObject BACKPACK = ITEMS.register("backpack", () -> new BackpackItem(Config.SERVER.leatherBackpack.inventorySlotCount::get, Config.SERVER.leatherBackpack.upgradeSlotCount::get, ModBlocks.BACKPACK)); + public static final RegistryObject COPPER_BACKPACK = ITEMS.register("copper_backpack", + () -> new BackpackItem(Config.SERVER.copperBackpack.inventorySlotCount::get, Config.SERVER.copperBackpack.upgradeSlotCount::get, ModBlocks.COPPER_BACKPACK)); public static final RegistryObject IRON_BACKPACK = ITEMS.register("iron_backpack", () -> new BackpackItem(Config.SERVER.ironBackpack.inventorySlotCount::get, Config.SERVER.ironBackpack.upgradeSlotCount::get, ModBlocks.IRON_BACKPACK)); public static final RegistryObject GOLD_BACKPACK = ITEMS.register("gold_backpack", diff --git a/src/main/resources/assets/sophisticatedbackpacks/blockstates/copper_backpack.json b/src/main/resources/assets/sophisticatedbackpacks/blockstates/copper_backpack.json new file mode 100644 index 00000000..2a78bb8e --- /dev/null +++ b/src/main/resources/assets/sophisticatedbackpacks/blockstates/copper_backpack.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "sophisticatedbackpacks:block/copper_backpack", + "y": 90 + }, + "facing=north": { + "model": "sophisticatedbackpacks:block/copper_backpack" + }, + "facing=south": { + "model": "sophisticatedbackpacks:block/copper_backpack", + "y": 180 + }, + "facing=west": { + "model": "sophisticatedbackpacks:block/copper_backpack", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/sophisticatedbackpacks/lang/en_us.json b/src/main/resources/assets/sophisticatedbackpacks/lang/en_us.json index c5a3dfea..ec319880 100644 --- a/src/main/resources/assets/sophisticatedbackpacks/lang/en_us.json +++ b/src/main/resources/assets/sophisticatedbackpacks/lang/en_us.json @@ -2,10 +2,12 @@ "itemGroup.sophisticatedbackpacks": "Sophisticated Backpacks", "item.sophisticatedbackpacks.backpack": "Backpack", "block.sophisticatedbackpacks.backpack": "Backpack", + "item.sophisticatedbackpacks.copper_backpack": "Copper Backpack", "item.sophisticatedbackpacks.iron_backpack": "Iron Backpack", "item.sophisticatedbackpacks.gold_backpack": "Gold Backpack", "item.sophisticatedbackpacks.diamond_backpack": "Diamond Backpack", "item.sophisticatedbackpacks.netherite_backpack": "Netherite Backpack", + "block.sophisticatedbackpacks.copper_backpack": "Copper Backpack", "block.sophisticatedbackpacks.iron_backpack": "Iron Backpack", "block.sophisticatedbackpacks.gold_backpack": "Gold Backpack", "block.sophisticatedbackpacks.diamond_backpack": "Diamond Backpack", diff --git a/src/main/resources/assets/sophisticatedbackpacks/models/block/copper_backpack.json b/src/main/resources/assets/sophisticatedbackpacks/models/block/copper_backpack.json new file mode 100644 index 00000000..4fb36ec0 --- /dev/null +++ b/src/main/resources/assets/sophisticatedbackpacks/models/block/copper_backpack.json @@ -0,0 +1,4 @@ +{ + "loader": "sophisticatedbackpacks:backpack", + "clipsTexture": "sophisticatedbackpacks:block/copper_clips" +} \ No newline at end of file diff --git a/src/main/resources/assets/sophisticatedbackpacks/models/item/copper_backpack.json b/src/main/resources/assets/sophisticatedbackpacks/models/item/copper_backpack.json new file mode 100644 index 00000000..e0e0e4b1 --- /dev/null +++ b/src/main/resources/assets/sophisticatedbackpacks/models/item/copper_backpack.json @@ -0,0 +1,3 @@ +{ + "parent": "sophisticatedbackpacks:block/copper_backpack" +} \ No newline at end of file diff --git a/src/main/resources/assets/sophisticatedbackpacks/textures/block/copper_clips.png b/src/main/resources/assets/sophisticatedbackpacks/textures/block/copper_clips.png new file mode 100644 index 00000000..a43bc978 Binary files /dev/null and b/src/main/resources/assets/sophisticatedbackpacks/textures/block/copper_clips.png differ diff --git a/src/main/resources/assets/sophisticatedbackpacks/textures/entity/backpack.png b/src/main/resources/assets/sophisticatedbackpacks/textures/entity/backpack.png index d7bc8fc9..54df5645 100644 Binary files a/src/main/resources/assets/sophisticatedbackpacks/textures/entity/backpack.png and b/src/main/resources/assets/sophisticatedbackpacks/textures/entity/backpack.png differ diff --git a/src/main/resources/data/curios/tags/items/back.json b/src/main/resources/data/curios/tags/items/back.json index 277481df..03031576 100644 --- a/src/main/resources/data/curios/tags/items/back.json +++ b/src/main/resources/data/curios/tags/items/back.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "sophisticatedbackpacks:backpack", + "sophisticatedbackpacks:copper_backpack", "sophisticatedbackpacks:iron_backpack", "sophisticatedbackpacks:gold_backpack", "sophisticatedbackpacks:diamond_backpack",