From c97cadeea227242f78c8bf93e9ad4b5973390cd1 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Mon, 26 Sep 2022 18:40:45 +0100 Subject: [PATCH] Update Fabric API and make use of its new features. --- .../src/main/java/reborncore/RebornCore.java | 13 +++++++++++++ .../mixin/common/MixinPlayerEntity.java | 15 --------------- RebornCore/src/main/resources/fabric.mod.json | 2 +- gradle.properties | 2 +- .../techreborn/datagen/TechRebornDataGen.groovy | 6 ++++++ .../java/techreborn/init/TRArmorMaterials.java | 5 ++++- .../textures/models/armor/bronze_layer_1.png | Bin .../textures/models/armor/bronze_layer_2.png | Bin .../models/armor/cloaking_device_layer_1.png | Bin .../models/armor/lapotronic_orbpack_layer_1.png | Bin .../models/armor/lithium_batpack_layer_1.png | Bin .../textures/models/armor/peridot_layer_1.png | Bin .../textures/models/armor/peridot_layer_2.png | Bin .../textures/models/armor/quantum_layer_1.png | Bin .../textures/models/armor/quantum_layer_2.png | Bin .../textures/models/armor/ruby_layer_1.png | Bin .../textures/models/armor/ruby_layer_2.png | Bin .../textures/models/armor/sapphire_layer_1.png | Bin .../textures/models/armor/sapphire_layer_2.png | Bin .../textures/models/armor/silver_layer_1.png | Bin .../textures/models/armor/silver_layer_2.png | Bin .../textures/models/armor/steel_layer_1.png | Bin .../textures/models/armor/steel_layer_2.png | Bin src/main/resources/fabric.mod.json | 2 +- 24 files changed, 26 insertions(+), 19 deletions(-) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/bronze_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/bronze_layer_2.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/cloaking_device_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/lapotronic_orbpack_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/lithium_batpack_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/peridot_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/peridot_layer_2.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/quantum_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/quantum_layer_2.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/ruby_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/ruby_layer_2.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/sapphire_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/sapphire_layer_2.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/silver_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/silver_layer_2.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/steel_layer_1.png (100%) rename src/main/resources/assets/{minecraft => techreborn}/textures/models/armor/steel_layer_2.png (100%) diff --git a/RebornCore/src/main/java/reborncore/RebornCore.java b/RebornCore/src/main/java/reborncore/RebornCore.java index 2b560bfd8..b44401b48 100644 --- a/RebornCore/src/main/java/reborncore/RebornCore.java +++ b/RebornCore/src/main/java/reborncore/RebornCore.java @@ -27,15 +27,21 @@ package reborncore; import net.fabricmc.api.EnvType; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerBlockEntityEvents; +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerEntityEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerWorldEvents; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage; import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import reborncore.api.ToolManager; import reborncore.api.blockentity.UnloadHandler; +import reborncore.api.items.ArmorRemoveHandler; import reborncore.common.RebornCoreCommands; import reborncore.common.RebornCoreConfig; import reborncore.common.blockentity.MachineBaseBlockEntity; @@ -110,6 +116,13 @@ public class RebornCore implements ModInitializer { ServerWorldEvents.LOAD.register((server, world) -> ChunkLoaderManager.get(world).onServerWorldLoad(world)); ServerTickEvents.START_WORLD_TICK.register(world -> ChunkLoaderManager.get(world).onServerWorldTick(world)); + ServerEntityEvents.EQUIPMENT_CHANGE.register((livingEntity, equipmentSlot, previousStack, currentStack) -> { + if (livingEntity instanceof PlayerEntity playerEntity + && previousStack.getItem() instanceof ArmorRemoveHandler armorRemoveHandler) { + armorRemoveHandler.onRemoved(playerEntity); + } + }); + FluidStorage.SIDED.registerFallback((world, pos, state, be, direction) -> { if (be instanceof MachineBaseBlockEntity machineBase) { return machineBase.getTank(); diff --git a/RebornCore/src/main/java/reborncore/mixin/common/MixinPlayerEntity.java b/RebornCore/src/main/java/reborncore/mixin/common/MixinPlayerEntity.java index 8f0fc6437..bb4ab5248 100644 --- a/RebornCore/src/main/java/reborncore/mixin/common/MixinPlayerEntity.java +++ b/RebornCore/src/main/java/reborncore/mixin/common/MixinPlayerEntity.java @@ -28,7 +28,6 @@ import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; -import net.minecraft.util.collection.DefaultedList; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -36,8 +35,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import reborncore.api.items.ArmorBlockEntityTicker; -import reborncore.api.items.ArmorRemoveHandler; -import reborncore.common.util.ItemUtils; @Mixin(PlayerEntity.class) public abstract class MixinPlayerEntity extends LivingEntity { @@ -49,21 +46,9 @@ public abstract class MixinPlayerEntity extends LivingEntity { super(type, world); } - private final DefaultedList reborncore_armorcache = DefaultedList.ofSize(4, ItemStack.EMPTY); - @Inject(method = "tick", at = @At("HEAD")) public void tick(CallbackInfo info) { - int i = 0; for (ItemStack stack : getArmorItems()) { - ItemStack cachedStack = reborncore_armorcache.get(i); - if (!ItemUtils.isItemEqual(cachedStack, stack, false, false)) { - if (cachedStack.getItem() instanceof ArmorRemoveHandler) { - ((ArmorRemoveHandler) cachedStack.getItem()).onRemoved((PlayerEntity) (Object) this); - } - reborncore_armorcache.set(i, stack.copy()); - } - i++; - if (!stack.isEmpty() && stack.getItem() instanceof ArmorBlockEntityTicker) { ((ArmorBlockEntityTicker) stack.getItem()).tickArmor(stack, (PlayerEntity) (Object) this); } diff --git a/RebornCore/src/main/resources/fabric.mod.json b/RebornCore/src/main/resources/fabric.mod.json index 0b35becb1..5b204e19e 100644 --- a/RebornCore/src/main/resources/fabric.mod.json +++ b/RebornCore/src/main/resources/fabric.mod.json @@ -29,7 +29,7 @@ ], "depends": { "fabricloader": ">=0.14.8", - "fabric-api": ">=0.60.0", + "fabric-api": ">=0.62.0", "team_reborn_energy": ">=2.2.0", "fabric-biome-api-v1": ">=3.0.0", "minecraft": "~1.19.2" diff --git a/gradle.properties b/gradle.properties index 841c6042a..14267a0ed 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ mod_version=5.3.4 minecraft_version=1.19.2 yarn_version=1.19.2+build.10 loader_version=0.14.9 -fapi_version=0.60.0+1.19.2 +fapi_version=0.62.0+1.19.2 # Dependencies energy_version=2.2.0 diff --git a/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy b/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy index 873dd7a63..5ba1068e9 100644 --- a/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy +++ b/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy @@ -26,6 +26,7 @@ package techreborn.datagen import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator +import techreborn.TechReborn import techreborn.datagen.models.ModelProvider import techreborn.datagen.recipes.crafting.CraftingRecipesProvider import techreborn.datagen.recipes.machine.assembling_machine.AssemblingMachineRecipesProvider @@ -65,4 +66,9 @@ class TechRebornDataGen implements DataGeneratorEntrypoint { fabricDataGenerator.addProvider(ModelProvider.&new) } + + @Override + String getEffectiveModId() { + return TechReborn.MOD_ID + } } diff --git a/src/main/java/techreborn/init/TRArmorMaterials.java b/src/main/java/techreborn/init/TRArmorMaterials.java index e28a40ee1..01471da65 100644 --- a/src/main/java/techreborn/init/TRArmorMaterials.java +++ b/src/main/java/techreborn/init/TRArmorMaterials.java @@ -69,6 +69,8 @@ public enum TRArmorMaterials implements ArmorMaterial { private final float knockbackResistance; private final Lazy repairMaterial; + private final String name; + TRArmorMaterials(int maxDamageFactor, int[] damageReductionAmountArray, int enchantability, SoundEvent soundEvent, float toughness, float knockbackResistance, Supplier repairMaterialIn) { this.maxDamageFactor = maxDamageFactor; @@ -78,6 +80,7 @@ public enum TRArmorMaterials implements ArmorMaterial { this.toughness = toughness; this.knockbackResistance = knockbackResistance; this.repairMaterial = new Lazy<>(repairMaterialIn); + this.name = "techreborn:" + this.toString().toLowerCase(Locale.ROOT); } TRArmorMaterials(int maxDamageFactor, int[] damageReductionAmountArray, int enchantability, @@ -112,7 +115,7 @@ public enum TRArmorMaterials implements ArmorMaterial { @Override public String getName() { - return this.toString().toLowerCase(Locale.ROOT); + return name; } @Override diff --git a/src/main/resources/assets/minecraft/textures/models/armor/bronze_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/bronze_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/bronze_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/bronze_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/bronze_layer_2.png b/src/main/resources/assets/techreborn/textures/models/armor/bronze_layer_2.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/bronze_layer_2.png rename to src/main/resources/assets/techreborn/textures/models/armor/bronze_layer_2.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/cloaking_device_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/cloaking_device_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/cloaking_device_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/cloaking_device_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/lapotronic_orbpack_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/lapotronic_orbpack_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/lapotronic_orbpack_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/lapotronic_orbpack_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/lithium_batpack_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/lithium_batpack_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/lithium_batpack_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/lithium_batpack_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/peridot_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/peridot_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/peridot_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/peridot_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/peridot_layer_2.png b/src/main/resources/assets/techreborn/textures/models/armor/peridot_layer_2.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/peridot_layer_2.png rename to src/main/resources/assets/techreborn/textures/models/armor/peridot_layer_2.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/quantum_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/quantum_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/quantum_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/quantum_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/quantum_layer_2.png b/src/main/resources/assets/techreborn/textures/models/armor/quantum_layer_2.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/quantum_layer_2.png rename to src/main/resources/assets/techreborn/textures/models/armor/quantum_layer_2.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/ruby_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/ruby_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/ruby_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/ruby_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/ruby_layer_2.png b/src/main/resources/assets/techreborn/textures/models/armor/ruby_layer_2.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/ruby_layer_2.png rename to src/main/resources/assets/techreborn/textures/models/armor/ruby_layer_2.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/sapphire_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/sapphire_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/sapphire_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/sapphire_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/sapphire_layer_2.png b/src/main/resources/assets/techreborn/textures/models/armor/sapphire_layer_2.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/sapphire_layer_2.png rename to src/main/resources/assets/techreborn/textures/models/armor/sapphire_layer_2.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/silver_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/silver_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/silver_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/silver_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/silver_layer_2.png b/src/main/resources/assets/techreborn/textures/models/armor/silver_layer_2.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/silver_layer_2.png rename to src/main/resources/assets/techreborn/textures/models/armor/silver_layer_2.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/steel_layer_1.png b/src/main/resources/assets/techreborn/textures/models/armor/steel_layer_1.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/steel_layer_1.png rename to src/main/resources/assets/techreborn/textures/models/armor/steel_layer_1.png diff --git a/src/main/resources/assets/minecraft/textures/models/armor/steel_layer_2.png b/src/main/resources/assets/techreborn/textures/models/armor/steel_layer_2.png similarity index 100% rename from src/main/resources/assets/minecraft/textures/models/armor/steel_layer_2.png rename to src/main/resources/assets/techreborn/textures/models/armor/steel_layer_2.png diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index c86f0b12d..771df8702 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -31,7 +31,7 @@ }, "depends": { "fabricloader": ">=0.14.8", - "fabric-api": ">=0.60.0", + "fabric-api": ">=0.62.0", "reborncore": "*", "team_reborn_energy": ">=2.2.0", "fabric-biome-api-v1": ">=3.0.0",