diff --git a/build.gradle b/build.gradle index 8a3f160..994b1f1 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '6.+', changing: true classpath group: 'org.spongepowered', name: 'mixingradle', version: '0.7-SNAPSHOT' classpath 'org.parchmentmc:librarian:1.+' } @@ -91,22 +91,25 @@ repositories { name 'Theillusivec4 Maven' url = "https://maven.theillusivec4.top/" } + maven{ + name 'CurseMaven' + url = "https://cursemaven.com" + } } dependencies { minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}" - implementation fg.deobf("top.theillusivec4.caelus:caelus-forge:${mc_version}-${caelus_version}") - implementation fg.deobf("io.github.edwinmindcraft:calio-forge:${mc_version}-${calio_version}") - implementation fg.deobf("io.github.edwinmindcraft:apoli-forge:${mc_version}-${apoli_version}") - implementation fg.deobf("io.github.edwinmindcraft:origins-forge:${mc_version}-${origins_version}") + implementation fg.deobf("curse.maven:caelus-308989:5281700") + implementation fg.deobf("curse.maven:calio-977891:5404005") + implementation fg.deobf("curse.maven:apoli-forge-975561:5404008") + implementation fg.deobf("curse.maven:origins-forge-474438:5314209") - runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") - compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:${mc_version}-${curios_version}:api") - runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:${mc_version}-${curios_version}") + runtimeOnly fg.deobf("curse.maven:jei-238222:5846810") + implementation fg.deobf("curse.maven:curios-309927:5843594") runtimeOnly fg.deobf("com.jozufozu.flywheel:flywheel-forge-${mc_version}:${flywheel_version}") runtimeOnly fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}") - implementation fg.deobf("com.simibubi.create:create-${mc_version}:${create_version}:slim") + implementation fg.deobf("curse.maven:create-328085:5838779") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' } diff --git a/gradle.properties b/gradle.properties index 34620b1..e0ccd9d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,18 +4,18 @@ org.gradle.daemon=false # Dependency Properties mappings_channel=parchment -mappings_version=2022.08.21 -mc_version=1.19.2 -forge_version=43.1.1 -caelus_version=3.0.0.6 -calio_version=1.6.0.3 -apoli_version=2.3.4.4 -origins_version=1.5.0.6 -jei_version=11.2.0.254 -curios_version=5.1.1.0 -flywheel_version=0.6.5-3 -registrate_version=MC1.19-1.1.5 -create_version=0.5.0.d-6 +mappings_version=2023.09.03 +mc_version=1.20.1 +forge_version=47.3.0 +caelus_version=3.2.0 +calio_version=1.11.0.5 +apoli_version=2.9.0.8 +origins_version=1.10.0.9 +jei_version=15.20.0.105 +curios_version=5.11.0 +flywheel_version=1.0.0-beta-88 +registrate_version=MC1.20-1.3.11 +create_version=0.5.1j-55 # Mod Properties maven_group=dev.limonblaze.oriacs @@ -23,7 +23,7 @@ archives_base_name=origins-accessbilities mod_version=1.1.1 mod_id=oriacs mod_author=LimonBlaze -fml_requirements = [43,) -forge_requirements=[43.1,) -mc_requirements=[1.19.2,1.20) -origins_requirements=[1.19.2-1.5,) \ No newline at end of file +fml_requirements = [47,) +forge_requirements=[47.1,) +mc_requirements=[1.20.1,1.21) +origins_requirements=[1.20.1-1.10,) \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e750102..e48eca5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/dev/limonblaze/oriacs/common/Oriacs.java b/src/main/java/dev/limonblaze/oriacs/common/Oriacs.java index 2c13cc9..04b73ec 100644 --- a/src/main/java/dev/limonblaze/oriacs/common/Oriacs.java +++ b/src/main/java/dev/limonblaze/oriacs/common/Oriacs.java @@ -3,7 +3,9 @@ import dev.limonblaze.oriacs.client.OriacsClient; import dev.limonblaze.oriacs.common.registry.*; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.CreativeModeTabs; import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.ModList; @@ -28,6 +30,7 @@ public Oriacs() { OriacsEnchantments.REGISTRY.register(modBus); OriacsItemConditions.REGISTRY.register(modBus); OriacsEntityConditions.REGISTRY.register(modBus); + modBus.addListener(this::addCreative); ModLoadingContext modLoadingContext = ModLoadingContext.get(); modLoadingContext.registerConfig(ModConfig.Type.SERVER, OriacsServerConfig.SPEC); CURIOS_LOADED = ModList.get().isLoaded("curios"); @@ -39,4 +42,18 @@ public static ResourceLocation asResource(String path) { return new ResourceLocation(ID, path); } + public void addCreative(BuildCreativeModeTabContentsEvent event) { + if (event.getTabKey() == CreativeModeTabs.TOOLS_AND_UTILITIES) { + event.accept(OriacsItems.UMBRELLA); + } + + if (event.getTabKey() == CreativeModeTabs.COMBAT) { + event.accept(OriacsItems.DIVING_HELMET); + event.accept(OriacsItems.LANDWALKING_HELMET); + event.accept(OriacsItems.CHAINMEMBRANE_HELMET); + event.accept(OriacsItems.CHAINMEMBRANE_CHESTPLATE); + event.accept(OriacsItems.CHAINMEMBRANE_LEGGINGS); + event.accept(OriacsItems.CHAINMEMBRANE_BOOTS); + } + } } diff --git a/src/main/java/dev/limonblaze/oriacs/common/apoli/condition/EquippedCurioCondition.java b/src/main/java/dev/limonblaze/oriacs/common/apoli/condition/EquippedCurioCondition.java index 04a41bf..92b9939 100644 --- a/src/main/java/dev/limonblaze/oriacs/common/apoli/condition/EquippedCurioCondition.java +++ b/src/main/java/dev/limonblaze/oriacs/common/apoli/condition/EquippedCurioCondition.java @@ -39,7 +39,7 @@ protected boolean check(Configuration configuration, Entity entity) { for(int slot = 0; slot < curioStacksHandler.getSlots(); ++slot) { if(ConfiguredItemCondition.check( configuration.condition, - entity.level, + entity.level(), curioStacksHandler.getStacks().getStackInSlot(slot)) ) return true; } diff --git a/src/main/java/dev/limonblaze/oriacs/common/enchantment/FlyingProtectionEnchantment.java b/src/main/java/dev/limonblaze/oriacs/common/enchantment/FlyingProtectionEnchantment.java index 2154d66..c385a3d 100644 --- a/src/main/java/dev/limonblaze/oriacs/common/enchantment/FlyingProtectionEnchantment.java +++ b/src/main/java/dev/limonblaze/oriacs/common/enchantment/FlyingProtectionEnchantment.java @@ -1,5 +1,6 @@ package dev.limonblaze.oriacs.common.enchantment; +import net.minecraft.tags.DamageTypeTags; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.ItemStack; @@ -23,10 +24,10 @@ public boolean canApplyAtEnchantingTable(ItemStack stack) { public boolean isTreasureOnly() { return true; } - + @Override public int getDamageProtection(int level, DamageSource source) { - if(!source.isBypassInvul() && source.getMsgId().contains("flyIntoWall")) { + if(!source.is(DamageTypeTags.BYPASSES_INVULNERABILITY) && source.getMsgId().contains("flyIntoWall")) { return level * 3; } return 0; diff --git a/src/main/java/dev/limonblaze/oriacs/common/item/DivingHelmetItem.java b/src/main/java/dev/limonblaze/oriacs/common/item/DivingHelmetItem.java index 66a0dee..f74158b 100644 --- a/src/main/java/dev/limonblaze/oriacs/common/item/DivingHelmetItem.java +++ b/src/main/java/dev/limonblaze/oriacs/common/item/DivingHelmetItem.java @@ -50,7 +50,7 @@ public class DivingHelmetItem extends OriacsArmorItem { public DivingHelmetItem(Properties properties) { - super(OriacsArmorMaterials.DIVING, EquipmentSlot.HEAD, properties); + super(OriacsArmorMaterials.DIVING, Type.HELMET, properties); CauldronInteraction.WATER.put(this, this::waterCauldronInteraction); } @@ -98,7 +98,7 @@ public boolean overrideOtherStackedOnMe(ItemStack stack, ItemStack other, Slot s handler.drain(bucket, IFluidHandler.FluidAction.EXECUTE); slot.set(this.transformToLandwalking(stack)); access.set(handler.getContainer()); - player.level.playLocalSound(player.getX(), player.getY(), player.getZ(), SoundEvents.BUCKET_EMPTY, SoundSource.PLAYERS, 1.0F, 1.0F, false); + player.level().playLocalSound(player.getX(), player.getY(), player.getZ(), SoundEvents.BUCKET_EMPTY, SoundSource.PLAYERS, 1.0F, 1.0F, false); return true; } return false; diff --git a/src/main/java/dev/limonblaze/oriacs/common/item/LandwalkingHelmetItem.java b/src/main/java/dev/limonblaze/oriacs/common/item/LandwalkingHelmetItem.java index 4b2a624..c1f458f 100644 --- a/src/main/java/dev/limonblaze/oriacs/common/item/LandwalkingHelmetItem.java +++ b/src/main/java/dev/limonblaze/oriacs/common/item/LandwalkingHelmetItem.java @@ -53,7 +53,7 @@ public class LandwalkingHelmetItem extends OriacsArmorItem { public LandwalkingHelmetItem(Properties properties) { - super(OriacsArmorMaterials.DIVING, EquipmentSlot.HEAD, properties); + super(OriacsArmorMaterials.DIVING, Type.HELMET, properties); CauldronInteraction.EMPTY.put(this, this::emptyCauldronInteraction); } @@ -125,7 +125,7 @@ public boolean overrideOtherStackedOnMe(ItemStack stack, ItemStack other, Slot s handler.fill(bucket, IFluidHandler.FluidAction.EXECUTE); slot.set(this.transformToDiving(stack)); access.set(handler.getContainer()); - player.level.playLocalSound(player.getX(), player.getY(), player.getZ(), SoundEvents.BUCKET_FILL, SoundSource.PLAYERS, 1.0F, 1.0F, false); + player.level().playLocalSound(player.getX(), player.getY(), player.getZ(), SoundEvents.BUCKET_FILL, SoundSource.PLAYERS, 1.0F, 1.0F, false); return true; } return false; diff --git a/src/main/java/dev/limonblaze/oriacs/common/item/OriacsArmorItem.java b/src/main/java/dev/limonblaze/oriacs/common/item/OriacsArmorItem.java index fa1be93..3dd86d5 100644 --- a/src/main/java/dev/limonblaze/oriacs/common/item/OriacsArmorItem.java +++ b/src/main/java/dev/limonblaze/oriacs/common/item/OriacsArmorItem.java @@ -13,7 +13,7 @@ public class OriacsArmorItem extends ArmorItem { public static final String TRANSFORM_PROGRESS = "TransformProgress"; - public OriacsArmorItem(ArmorMaterial material, EquipmentSlot slot, Properties properties) { + public OriacsArmorItem(ArmorMaterial material, Type slot, Properties properties) { super(material, slot, properties); } diff --git a/src/main/java/dev/limonblaze/oriacs/common/item/OriacsArmorMaterials.java b/src/main/java/dev/limonblaze/oriacs/common/item/OriacsArmorMaterials.java index 0aff980..77da1cd 100644 --- a/src/main/java/dev/limonblaze/oriacs/common/item/OriacsArmorMaterials.java +++ b/src/main/java/dev/limonblaze/oriacs/common/item/OriacsArmorMaterials.java @@ -4,6 +4,7 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.ArmorMaterial; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; @@ -66,15 +67,15 @@ public enum OriacsArmorMaterials implements ArmorMaterial { 11 * durabilityMultiplier }, armorValues, toughness, knockbackResistance, enchantmentValue, equipSound); } - + @Override - public int getDurabilityForSlot(EquipmentSlot slot) { - return durabilities[slot.getIndex()]; + public int getDurabilityForType(ArmorItem.Type type) { + return durabilities[type.getSlot().getIndex()]; } - + @Override - public int getDefenseForSlot(EquipmentSlot slot) { - return armorValues[slot.getIndex()]; + public int getDefenseForType(ArmorItem.Type type) { + return armorValues[type.getSlot().getIndex()]; } @Override diff --git a/src/main/java/dev/limonblaze/oriacs/common/item/UmbrellaItem.java b/src/main/java/dev/limonblaze/oriacs/common/item/UmbrellaItem.java index 18d277e..5220781 100644 --- a/src/main/java/dev/limonblaze/oriacs/common/item/UmbrellaItem.java +++ b/src/main/java/dev/limonblaze/oriacs/common/item/UmbrellaItem.java @@ -19,12 +19,11 @@ import net.minecraft.world.item.Vanishable; import net.minecraft.world.level.Level; import net.minecraftforge.event.entity.living.LivingEvent; -import net.minecraftforge.event.entity.living.LivingSpawnEvent; +import net.minecraftforge.event.entity.living.MobSpawnEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import javax.annotation.ParametersAreNonnullByDefault; -import java.util.Random; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault @@ -93,21 +92,21 @@ public int getMaxDamage(ItemStack stack) { @Override public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { - return ItemStack.isSameIgnoreDurability(oldStack, newStack); + return ItemStack.isSameItem(oldStack, newStack); } @SubscribeEvent public static void onLivingUpdate(LivingEvent.LivingTickEvent event) { LivingEntity entity = event.getEntity(); if(entity.tickCount % 20 != 0) return; - Level level = entity.level; + Level level = entity.level(); BlockPos pos = entity.blockPosition(); - boolean isInRain = level.isRainingAt(pos) || level.isRainingAt(new BlockPos(pos.getX(), entity.getBoundingBox().maxY, pos.getZ())); + boolean isInRain = level.isRainingAt(pos) || level.isRainingAt(new BlockPos(pos.getX(), (int) entity.getBoundingBox().maxY, pos.getZ())); for(ItemStack stack : entity.getHandSlots()) { if(stack.getItem() instanceof UmbrellaItem) { if(isInRain) { stack.setDamageValue(Mth.clamp(stack.getDamageValue() + 1, 0, stack.getMaxDamage())); - } else if(level.getBiome(pos).value().shouldSnowGolemBurn(pos)) { + } else if(level.getBiome(pos).value().getTemperature(pos) > 1.0F) { stack.setDamageValue(Mth.clamp(stack.getDamageValue() - 2, 0, stack.getMaxDamage())); } else { stack.setDamageValue(Mth.clamp(stack.getDamageValue() - 1, 0, stack.getMaxDamage())); @@ -117,10 +116,10 @@ public static void onLivingUpdate(LivingEvent.LivingTickEvent event) { } @SubscribeEvent - public static void onLivingSpawn(LivingSpawnEvent.SpecialSpawn event) { + public static void onLivingSpawn(MobSpawnEvent.FinalizeSpawn event) { if(event.getEntity() instanceof Zombie zombie) { RandomSource random = zombie.getRandom(); - if(zombie.level.getDifficulty() == Difficulty.HARD && + if(zombie.level().getDifficulty() == Difficulty.HARD && random.nextFloat() < OriacsServerConfig.CONFIG.UMBRELLA_SPAWN_WITH_ZOMBIE_CHANCE.get() && zombie.getItemInHand(InteractionHand.OFF_HAND).isEmpty() ) { diff --git a/src/main/java/dev/limonblaze/oriacs/common/registry/OriacsItems.java b/src/main/java/dev/limonblaze/oriacs/common/registry/OriacsItems.java index 613204d..8c67f26 100644 --- a/src/main/java/dev/limonblaze/oriacs/common/registry/OriacsItems.java +++ b/src/main/java/dev/limonblaze/oriacs/common/registry/OriacsItems.java @@ -3,6 +3,7 @@ import dev.limonblaze.oriacs.common.Oriacs; import dev.limonblaze.oriacs.common.item.*; import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraftforge.registries.DeferredRegister; @@ -14,40 +15,40 @@ public class OriacsItems { public static final DeferredRegister REGISTRY = DeferredRegister.create(ForgeRegistries.ITEMS, Oriacs.ID); public static final RegistryObject UMBRELLA = REGISTRY.register("umbrella", - () -> new UmbrellaItem(new Item.Properties().tab(CreativeModeTab.TAB_TOOLS))); + () -> new UmbrellaItem(new Item.Properties())); public static final RegistryObject DIVING_HELMET = REGISTRY.register("diving_helmet", - () -> new DivingHelmetItem(new Item.Properties().tab(CreativeModeTab.TAB_COMBAT))); + () -> new DivingHelmetItem(new Item.Properties())); public static final RegistryObject LANDWALKING_HELMET = REGISTRY.register("landwalking_helmet", - () -> new LandwalkingHelmetItem(new Item.Properties().tab(CreativeModeTab.TAB_COMBAT))); + () -> new LandwalkingHelmetItem(new Item.Properties())); public static final RegistryObject CHAINMEMBRANE_HELMET = REGISTRY.register("chainmembrane_helmet", () -> new OriacsArmorItem( OriacsArmorMaterials.CHAINMEMBRANE, - EquipmentSlot.HEAD, - new Item.Properties().tab(CreativeModeTab.TAB_COMBAT) + ArmorItem.Type.HELMET, + new Item.Properties() )); public static final RegistryObject CHAINMEMBRANE_CHESTPLATE = REGISTRY.register("chainmembrane_chestplate", () -> new OriacsArmorItem( OriacsArmorMaterials.CHAINMEMBRANE, - EquipmentSlot.CHEST, - new Item.Properties().tab(CreativeModeTab.TAB_COMBAT) + ArmorItem.Type.CHESTPLATE, + new Item.Properties() )); public static final RegistryObject CHAINMEMBRANE_LEGGINGS = REGISTRY.register("chainmembrane_leggings", () -> new OriacsArmorItem( OriacsArmorMaterials.CHAINMEMBRANE, - EquipmentSlot.LEGS, - new Item.Properties().tab(CreativeModeTab.TAB_COMBAT) + ArmorItem.Type.LEGGINGS, + new Item.Properties() )); public static final RegistryObject CHAINMEMBRANE_BOOTS = REGISTRY.register("chainmembrane_boots", () -> new OriacsArmorItem( OriacsArmorMaterials.CHAINMEMBRANE, - EquipmentSlot.FEET, - new Item.Properties().tab(CreativeModeTab.TAB_COMBAT) + ArmorItem.Type.BOOTS, + new Item.Properties() )); } diff --git a/src/main/java/dev/limonblaze/oriacs/core/mixin/AirCurrentMixin.java b/src/main/java/dev/limonblaze/oriacs/core/mixin/AirCurrentMixin.java index 163cd7e..1345496 100644 --- a/src/main/java/dev/limonblaze/oriacs/core/mixin/AirCurrentMixin.java +++ b/src/main/java/dev/limonblaze/oriacs/core/mixin/AirCurrentMixin.java @@ -1,7 +1,8 @@ package dev.limonblaze.oriacs.core.mixin; -import com.simibubi.create.content.contraptions.components.fan.IAirCurrentSource; -import com.simibubi.create.content.contraptions.processing.InWorldProcessing; +import com.simibubi.create.content.kinetics.fan.IAirCurrentSource; +import com.simibubi.create.content.kinetics.fan.processing.AllFanProcessingTypes; +import com.simibubi.create.content.kinetics.fan.processing.FanProcessingType; import com.simibubi.create.foundation.utility.VecHelper; import dev.limonblaze.oriacs.common.registry.OriacsMobEffects; import net.minecraft.world.effect.MobEffectInstance; @@ -15,26 +16,25 @@ import org.spongepowered.asm.mixin.injection.ModifyVariable; @Pseudo -@Mixin(targets = "com.simibubi.create.content.contraptions.components.fan.AirCurrent", remap = false) +@Mixin(targets = "com.simibubi.create.content.kinetics.fan.AirCurrent", remap = false) public abstract class AirCurrentMixin { - - @Shadow public abstract InWorldProcessing.Type getSegmentAt(float offset); - + + @Shadow public abstract FanProcessingType getTypeAt(float offset); + @Shadow @Final public IAirCurrentSource source; - + @ModifyVariable( - method = "tickAffectedEntities", - at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/Entity;setDeltaMovement(Lnet/minecraft/world/phys/Vec3;)V", remap = true), - name = "entity" + method = "tickAffectedEntities", + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/Entity;setDeltaMovement(Lnet/minecraft/world/phys/Vec3;)V", remap = true), + name = "entity" ) private Entity oriacs$applyFreshAirEffect(Entity entity) { if(entity.tickCount % 20 == 0 && entity instanceof LivingEntity living) { - InWorldProcessing.Type type = getSegmentAt((float) entity.position().distanceTo(VecHelper.getCenterOf(this.source.getAirCurrentPos())) - 0.5F); - if(type == null || type == InWorldProcessing.Type.NONE) { + FanProcessingType type = getTypeAt((float) entity.position().distanceTo(VecHelper.getCenterOf(this.source.getAirCurrentPos())) - 0.5F); + if(type == null || type == AllFanProcessingTypes.NONE) { living.addEffect(new MobEffectInstance(OriacsMobEffects.FRESH_AIR.get(), 30, 0, true, false, true)); } } return entity; } - -} +} \ No newline at end of file diff --git a/src/main/java/dev/limonblaze/oriacs/core/mixin/HumanoidArmorLayerMixin.java b/src/main/java/dev/limonblaze/oriacs/core/mixin/HumanoidArmorLayerMixin.java index 1f7cc3f..87cc6bb 100644 --- a/src/main/java/dev/limonblaze/oriacs/core/mixin/HumanoidArmorLayerMixin.java +++ b/src/main/java/dev/limonblaze/oriacs/core/mixin/HumanoidArmorLayerMixin.java @@ -23,15 +23,13 @@ @Mixin(HumanoidArmorLayer.class) public class HumanoidArmorLayerMixin { - + @Inject( - method = "renderArmorPiece", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/client/renderer/entity/layers/HumanoidArmorLayer;renderModel(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;IZLnet/minecraft/client/model/Model;FFFLnet/minecraft/resources/ResourceLocation;)V", - ordinal = 2, - remap = false - ) + method = "renderArmorPiece", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/renderer/entity/layers/HumanoidArmorLayer;renderModel(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;ILnet/minecraft/world/item/ArmorItem;Lnet/minecraft/client/model/Model;ZFFFLnet/minecraft/resources/ResourceLocation;)V" + ) ) private void oriacs$renderLandwalkingHelmet(PoseStack poseStack, MultiBufferSource buffer, LivingEntity living, EquipmentSlot slot, int light, HumanoidModel model, CallbackInfo ci) { ItemStack stack = living.getItemBySlot(slot); diff --git a/src/main/java/dev/limonblaze/oriacs/data/OriacsBlockTagProvider.java b/src/main/java/dev/limonblaze/oriacs/data/OriacsBlockTagProvider.java index 32d95f3..2e966a5 100644 --- a/src/main/java/dev/limonblaze/oriacs/data/OriacsBlockTagProvider.java +++ b/src/main/java/dev/limonblaze/oriacs/data/OriacsBlockTagProvider.java @@ -1,20 +1,22 @@ package dev.limonblaze.oriacs.data; import dev.limonblaze.oriacs.common.Oriacs; -import net.minecraft.data.DataGenerator; -import net.minecraft.data.tags.BlockTagsProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraftforge.common.data.BlockTagsProvider; import net.minecraftforge.common.data.ExistingFileHelper; import org.jetbrains.annotations.Nullable; +import java.util.concurrent.CompletableFuture; + public class OriacsBlockTagProvider extends BlockTagsProvider { - - public OriacsBlockTagProvider(DataGenerator generator, @Nullable ExistingFileHelper existingFileHelper) { - super(generator, Oriacs.ID, existingFileHelper); + + public OriacsBlockTagProvider(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { + super(output, lookupProvider, Oriacs.ID, existingFileHelper); } - + @Override - protected void addTags() { - + protected void addTags(HolderLookup.Provider provider) { + } - -} +} \ No newline at end of file diff --git a/src/main/java/dev/limonblaze/oriacs/data/OriacsData.java b/src/main/java/dev/limonblaze/oriacs/data/OriacsData.java index 6c8eec9..e2ada41 100644 --- a/src/main/java/dev/limonblaze/oriacs/data/OriacsData.java +++ b/src/main/java/dev/limonblaze/oriacs/data/OriacsData.java @@ -1,27 +1,34 @@ package dev.limonblaze.oriacs.data; import dev.limonblaze.oriacs.common.Oriacs; +import net.minecraft.core.HolderLookup; import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; +import java.util.concurrent.CompletableFuture; + @Mod.EventBusSubscriber(modid = Oriacs.ID, bus = Bus.MOD) public class OriacsData { - + @SubscribeEvent public static void runData(GatherDataEvent event) { DataGenerator generator = event.getGenerator(); + PackOutput packOutput = generator.getPackOutput(); ExistingFileHelper helper = event.getExistingFileHelper(); + CompletableFuture lookupProvider = event.getLookupProvider(); boolean assets = event.includeClient(); boolean data = event.includeServer(); - generator.addProvider(assets, new OriacsItemModelProvider(generator, helper)); - OriacsBlockTagProvider blockTags = new OriacsBlockTagProvider(generator, helper); + + generator.addProvider(assets, new OriacsItemModelProvider(packOutput, helper)); + OriacsBlockTagProvider blockTags = new OriacsBlockTagProvider(packOutput, lookupProvider, helper); generator.addProvider(data, blockTags); - generator.addProvider(data, new OriacsItemTagProvider(generator, blockTags, helper)); - generator.addProvider(data, new OriacsRecipeProvider(generator)); + generator.addProvider(data, new OriacsItemTagProvider(packOutput, lookupProvider, blockTags, helper)); + generator.addProvider(data, new OriacsRecipeProvider(packOutput)); } } diff --git a/src/main/java/dev/limonblaze/oriacs/data/OriacsItemModelProvider.java b/src/main/java/dev/limonblaze/oriacs/data/OriacsItemModelProvider.java index cafe1a5..b71f681 100644 --- a/src/main/java/dev/limonblaze/oriacs/data/OriacsItemModelProvider.java +++ b/src/main/java/dev/limonblaze/oriacs/data/OriacsItemModelProvider.java @@ -3,6 +3,7 @@ import dev.limonblaze.oriacs.common.Oriacs; import dev.limonblaze.oriacs.common.registry.OriacsItems; import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemNameBlockItem; @@ -16,7 +17,7 @@ public class OriacsItemModelProvider extends ItemModelProvider { - public OriacsItemModelProvider(DataGenerator generator, ExistingFileHelper existingFileHelper) { + public OriacsItemModelProvider(PackOutput generator, ExistingFileHelper existingFileHelper) { super(generator, Oriacs.ID, existingFileHelper); } diff --git a/src/main/java/dev/limonblaze/oriacs/data/OriacsItemTagProvider.java b/src/main/java/dev/limonblaze/oriacs/data/OriacsItemTagProvider.java index d664d66..1efa1f5 100644 --- a/src/main/java/dev/limonblaze/oriacs/data/OriacsItemTagProvider.java +++ b/src/main/java/dev/limonblaze/oriacs/data/OriacsItemTagProvider.java @@ -2,43 +2,47 @@ import dev.limonblaze.oriacs.common.Oriacs; import dev.limonblaze.oriacs.common.registry.OriacsItemTags; +import net.minecraft.core.HolderLookup; import net.minecraft.data.DataGenerator; -import net.minecraft.data.tags.BlockTagsProvider; +import net.minecraft.data.PackOutput; import net.minecraft.data.tags.ItemTagsProvider; import net.minecraft.world.item.Items; +import net.minecraftforge.common.data.BlockTagsProvider; import net.minecraftforge.common.data.ExistingFileHelper; +import java.util.concurrent.CompletableFuture; + public class OriacsItemTagProvider extends ItemTagsProvider { - - public OriacsItemTagProvider(DataGenerator generator, BlockTagsProvider blockTags, ExistingFileHelper existingFileHelper) { - super(generator, blockTags, Oriacs.ID, existingFileHelper); + + public OriacsItemTagProvider(PackOutput output, CompletableFuture lookupProvider, BlockTagsProvider blockTags, ExistingFileHelper existingFileHelper) { + super(output, lookupProvider, blockTags.contentsGetter(), Oriacs.ID, existingFileHelper); } - + + @Override - protected void addTags() { + protected void addTags(HolderLookup.Provider provider) { tag(OriacsItemTags.VEGETARIAN_DIET).add( - Items.APPLE, - Items.BAKED_POTATO, - Items.BEETROOT, - Items.BEETROOT_SOUP, - Items.BREAD, - Items.CAKE, - Items.CARROT, - Items.CHORUS_FRUIT, - Items.COOKIE, - Items.DRIED_KELP, - Items.ENCHANTED_GOLDEN_APPLE, - Items.GOLDEN_APPLE, - Items.GOLDEN_CARROT, - Items.MELON_SLICE, - Items.MUSHROOM_STEW, - Items.POISONOUS_POTATO, - Items.POTATO, - Items.PUMPKIN_PIE, - Items.SUSPICIOUS_STEW, - Items.SWEET_BERRIES, - Items.GLOW_BERRIES + Items.APPLE, + Items.BAKED_POTATO, + Items.BEETROOT, + Items.BEETROOT_SOUP, + Items.BREAD, + Items.CAKE, + Items.CARROT, + Items.CHORUS_FRUIT, + Items.COOKIE, + Items.DRIED_KELP, + Items.ENCHANTED_GOLDEN_APPLE, + Items.GOLDEN_APPLE, + Items.GOLDEN_CARROT, + Items.MELON_SLICE, + Items.MUSHROOM_STEW, + Items.POISONOUS_POTATO, + Items.POTATO, + Items.PUMPKIN_PIE, + Items.SUSPICIOUS_STEW, + Items.SWEET_BERRIES, + Items.GLOW_BERRIES ); } - } diff --git a/src/main/java/dev/limonblaze/oriacs/data/OriacsRecipeProvider.java b/src/main/java/dev/limonblaze/oriacs/data/OriacsRecipeProvider.java index bd0068f..801bcaa 100644 --- a/src/main/java/dev/limonblaze/oriacs/data/OriacsRecipeProvider.java +++ b/src/main/java/dev/limonblaze/oriacs/data/OriacsRecipeProvider.java @@ -1,8 +1,9 @@ package dev.limonblaze.oriacs.data; import dev.limonblaze.oriacs.common.registry.OriacsItems; -import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeProvider; import net.minecraft.data.recipes.ShapedRecipeBuilder; import net.minecraft.world.item.Items; @@ -13,86 +14,109 @@ @ParametersAreNonnullByDefault public class OriacsRecipeProvider extends RecipeProvider { - - public OriacsRecipeProvider(DataGenerator generator) { - super(generator); + + public OriacsRecipeProvider(PackOutput output) { + super(output); } - + @Override - protected void buildCraftingRecipes(Consumer consumer) { - ShapedRecipeBuilder.shaped(OriacsItems.UMBRELLA.get()) - .define('1', Items.STICK).define('m', Items.PHANTOM_MEMBRANE) - .pattern(" m ") - .pattern("m1m") - .pattern(" 1 ") - .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) - .save(consumer); - ShapedRecipeBuilder.shaped(OriacsItems.DIVING_HELMET.get()) - .define('g', Items.GLASS).define('c', Items.COPPER_INGOT).define('k', Items.DRIED_KELP) - .pattern("ccc") - .pattern("cgc") - .pattern("kkk") - .unlockedBy("enter_water", insideOf(Blocks.WATER)) - .save(consumer); - ShapedRecipeBuilder.shaped(OriacsItems.LANDWALKING_HELMET.get()) - .define('g', Items.GLASS).define('c', Items.COPPER_INGOT).define('k', Items.DRIED_KELP).define('w', Items.WATER_BUCKET) - .pattern("ccc") - .pattern("cgc") - .pattern("kwk") - .unlockedBy("enter_water", insideOf(Blocks.WATER)) - .save(consumer); - ShapedRecipeBuilder.shaped(OriacsItems.CHAINMEMBRANE_HELMET.get()) - .define('c', Items.CHAIN).define('m', Items.PHANTOM_MEMBRANE) - .pattern("ccc") - .pattern("m m") - .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) - .save(consumer); - ShapedRecipeBuilder.shaped(OriacsItems.CHAINMEMBRANE_CHESTPLATE.get()) - .define('c', Items.CHAIN).define('m', Items.PHANTOM_MEMBRANE) - .pattern("c c") - .pattern("mcm") - .pattern("mcm") - .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) - .save(consumer); - ShapedRecipeBuilder.shaped(OriacsItems.CHAINMEMBRANE_LEGGINGS.get()) - .define('c', Items.CHAIN).define('m', Items.PHANTOM_MEMBRANE) - .pattern("cmc") - .pattern("c c") - .pattern("m m") - .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) - .save(consumer); - ShapedRecipeBuilder.shaped(OriacsItems.CHAINMEMBRANE_BOOTS.get()) - .define('c', Items.CHAIN).define('m', Items.PHANTOM_MEMBRANE) - .pattern("m m") - .pattern("c c") - .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) - .save(consumer); - ShapedRecipeBuilder.shaped(Items.CHAINMAIL_HELMET) - .define('c', Items.CHAIN).define('i', Items.IRON_NUGGET) - .pattern("ccc") - .pattern("i i") - .unlockedBy("has_chain", has(Items.CHAIN)) - .save(consumer, "oriacs:chainmail_helmet"); - ShapedRecipeBuilder.shaped(Items.CHAINMAIL_CHESTPLATE) - .define('c', Items.CHAIN).define('i', Items.IRON_NUGGET) - .pattern("c c") - .pattern("ici") - .pattern("ici") - .unlockedBy("has_chain", has(Items.CHAIN)) - .save(consumer, "oriacs:chainmail_chestplate"); - ShapedRecipeBuilder.shaped(Items.CHAINMAIL_LEGGINGS) - .define('c', Items.CHAIN).define('i', Items.IRON_NUGGET) - .pattern("cic") - .pattern("c c") - .pattern("i i") - .unlockedBy("has_chain", has(Items.CHAIN)) - .save(consumer, "oriacs:chainmail_leggings"); - ShapedRecipeBuilder.shaped(Items.CHAINMAIL_BOOTS) - .define('c', Items.CHAIN).define('i', Items.IRON_NUGGET) - .pattern("i i") - .pattern("c c") - .unlockedBy("has_chain", has(Items.CHAIN)) - .save(consumer, "oriacs:chainmail_boots"); + protected void buildRecipes(Consumer consumer) { + ShapedRecipeBuilder.shaped(RecipeCategory.TOOLS, OriacsItems.UMBRELLA.get()) + .define('1', Items.STICK) + .define('m', Items.PHANTOM_MEMBRANE) + .pattern(" m ") + .pattern("m1m") + .pattern(" 1 ") + .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, OriacsItems.DIVING_HELMET.get()) + .define('g', Items.GLASS) + .define('c', Items.COPPER_INGOT) + .define('k', Items.DRIED_KELP) + .pattern("ccc") + .pattern("cgc") + .pattern("kkk") + .unlockedBy("enter_water", insideOf(Blocks.WATER)) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, OriacsItems.LANDWALKING_HELMET.get()) + .define('g', Items.GLASS) + .define('c', Items.COPPER_INGOT) + .define('k', Items.DRIED_KELP) + .define('w', Items.WATER_BUCKET) + .pattern("ccc") + .pattern("cgc") + .pattern("kwk") + .unlockedBy("enter_water", insideOf(Blocks.WATER)) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, OriacsItems.CHAINMEMBRANE_HELMET.get()) + .define('c', Items.CHAIN) + .define('m', Items.PHANTOM_MEMBRANE) + .pattern("ccc") + .pattern("m m") + .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, OriacsItems.CHAINMEMBRANE_CHESTPLATE.get()) + .define('c', Items.CHAIN) + .define('m', Items.PHANTOM_MEMBRANE) + .pattern("c c") + .pattern("mcm") + .pattern("mcm") + .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, OriacsItems.CHAINMEMBRANE_LEGGINGS.get()) + .define('c', Items.CHAIN) + .define('m', Items.PHANTOM_MEMBRANE) + .pattern("cmc") + .pattern("c c") + .pattern("m m") + .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, OriacsItems.CHAINMEMBRANE_BOOTS.get()) + .define('c', Items.CHAIN) + .define('m', Items.PHANTOM_MEMBRANE) + .pattern("m m") + .pattern("c c") + .unlockedBy("has_phantom_membrane", has(Items.PHANTOM_MEMBRANE)) + .save(consumer); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, Items.CHAINMAIL_HELMET) + .define('c', Items.CHAIN) + .define('i', Items.IRON_NUGGET) + .pattern("ccc") + .pattern("i i") + .unlockedBy("has_chain", has(Items.CHAIN)) + .save(consumer, "oriacs:chainmail_helmet"); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, Items.CHAINMAIL_CHESTPLATE) + .define('c', Items.CHAIN) + .define('i', Items.IRON_NUGGET) + .pattern("c c") + .pattern("ici") + .pattern("ici") + .unlockedBy("has_chain", has(Items.CHAIN)) + .save(consumer, "oriacs:chainmail_chestplate"); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, Items.CHAINMAIL_LEGGINGS) + .define('c', Items.CHAIN) + .define('i', Items.IRON_NUGGET) + .pattern("cic") + .pattern("c c") + .pattern("i i") + .unlockedBy("has_chain", has(Items.CHAIN)) + .save(consumer, "oriacs:chainmail_leggings"); + + ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, Items.CHAINMAIL_BOOTS) + .define('c', Items.CHAIN) + .define('i', Items.IRON_NUGGET) + .pattern("i i") + .pattern("c c") + .unlockedBy("has_chain", has(Items.CHAIN)) + .save(consumer, "oriacs:chainmail_boots"); } - -} +} \ No newline at end of file diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index e69de29..be92194 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -0,0 +1 @@ +public net.minecraft.world.level.biome.Biome m_47505_(Lnet/minecraft/core/BlockPos;)F # getTemperature \ No newline at end of file