From da87ecb952a7f8d01605415b2812bdd74a86b011 Mon Sep 17 00:00:00 2001 From: IThundxr Date: Sat, 1 Mar 2025 14:01:18 -0500 Subject: [PATCH] Chaotic day - Publish slim jars - Allow cardboard swords to damage other arthropods - Update flywheel - Fix players getting forced into swim mode when using diving boots - Fix crash with re-packagers and stock links - Optional dep updates --- build.gradle | 13 +++- changelog.md | 13 ++++ gradle.properties | 5 +- .../render/ContraptionVisual.java | 26 +++---- .../equipment/tool/CardboardSwordItem.java | 39 +++++----- .../logistics/packager/PackagerBlock.java | 35 ++++----- .../mixin/client/HeavyBootsOnPlayerMixin.java | 2 +- src/main/resources/META-INF/mods.toml | 72 +++++++++---------- 8 files changed, 116 insertions(+), 89 deletions(-) diff --git a/build.gradle b/build.gradle index ff8ffa7d62..ef678b734e 100644 --- a/build.gradle +++ b/build.gradle @@ -176,7 +176,7 @@ dependencies { modCompileOnly("dev.engine-room.flywheel:flywheel-forge-api-${flywheel_minecraft_version}:${flywheel_version}") modRuntimeOnly("dev.engine-room.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") - modRuntimeOnly("dev.engine-room.vanillin:vanillin-forge-${flywheel_minecraft_version}:${flywheel_version}") + modRuntimeOnly("dev.engine-room.vanillin:vanillin-forge-${flywheel_minecraft_version}:${vanillin_version}") if (ponderInWorkspace) { implementation project(":ponder:Common") @@ -306,11 +306,22 @@ tasks.named("sourcesJar") { ]) } +final slimJar = tasks.register('slimJar', Jar) { + archiveClassifier = 'slim' + from sourceSets.main + manifest.attributes([ + "Git-Hash": gitHash + ]) +} +obfuscation.reobfuscate(slimJar, sourceSets.main) + project.publishing { publications { mavenJava(MavenPublication) { artifactId base.archivesName.get() from components.java + + artifact(tasks.slimJar) } } diff --git a/changelog.md b/changelog.md index bab0e30c5c..68f3686c05 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,16 @@ +------------------------------------------------------ +Create 6.0.1 +------------------------------------------------------ + +#### Bug Fixes + +- Fixed crash when using factory gauges +- Fixed debug info command not translating the graphics mode text +- Fixed cardboard sword not being able to damage arthropod mobs other than the spider +- Fixed a crash that occurred when placing a stock link on a re-packager +- Fixed an issue where wearing diving boots and sprinting would force you into the swim position and then out of it + right away + ------------------------------------------------------ Create 6.0.0 ------------------------------------------------------ diff --git a/gradle.properties b/gradle.properties index a32e86b568..999043cb42 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,12 +20,13 @@ use_parchment = true # dependency versions registrate_version = MC1.20-1.3.3 flywheel_minecraft_version = 1.20.1 -flywheel_version = 1.0.0-beta-212 +flywheel_version = 1.0.0-217 +vanillin_version = 1.0.0-beta-217 jei_minecraft_version = 1.20.1 jei_version = 15.19.0.85 curios_minecraft_version = 1.20.1 curios_version = 5.3.1 -ponder_version = 1.0.34 +ponder_version = 1.0.37 mixin_extras_version = 0.4.1 cc_tweaked_enable = true diff --git a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java b/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java index a1c401e310..9d0d3bc3c6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java +++ b/src/main/java/com/simibubi/create/content/contraptions/render/ContraptionVisual.java @@ -14,6 +14,8 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.foundation.utility.worldWrappers.WrappedBlockAndTintGetter; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; +import net.minecraftforge.client.model.data.ModelData; + import dev.engine_room.flywheel.api.material.CardinalLightingMode; import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.task.Plan; @@ -30,7 +32,7 @@ import dev.engine_room.flywheel.lib.instance.InstanceTypes; import dev.engine_room.flywheel.lib.instance.TransformedInstance; import dev.engine_room.flywheel.lib.material.SimpleMaterial; import dev.engine_room.flywheel.lib.model.ModelUtil; -import dev.engine_room.flywheel.lib.model.baked.ForgeMultiBlockModelBuilder; +import dev.engine_room.flywheel.lib.model.baked.ForgeBlockModelBuilder; import dev.engine_room.flywheel.lib.task.ForEachPlan; import dev.engine_room.flywheel.lib.task.NestedPlan; import dev.engine_room.flywheel.lib.task.PlanMap; @@ -48,8 +50,6 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; -import net.minecraftforge.client.model.data.ModelData; - public class ContraptionVisual extends AbstractEntityVisual implements DynamicVisual, TickableVisual, LightUpdatedVisual, ShaderLightVisual { protected static final int LIGHT_PADDING = 1; @@ -97,7 +97,7 @@ public class ContraptionVisual extends Abst } }; - model = new ForgeMultiBlockModelBuilder(modelWorld, blocks.positions()) + model = new ForgeBlockModelBuilder(modelWorld, blocks.positions()) .modelDataLookup(pos -> contraption.modelData.getOrDefault(pos, ModelData.EMPTY)) .materialFunc((renderType, aBoolean) -> SimpleMaterial.builderOf(ModelUtil.getMaterial(renderType, aBoolean)) .cardinalLightingMode(CardinalLightingMode.CHUNK)) @@ -135,7 +135,7 @@ public class ContraptionVisual extends Abst } @SuppressWarnings("unchecked") - protected void setupVisualizer(T be, float partialTicks) { + protected void setupVisualizer(T be, float partialTicks) { BlockEntityVisualizer visualizer = (BlockEntityVisualizer) VisualizerRegistry.getVisualizer(be.getType()); if (visualizer == null) { return; @@ -185,17 +185,17 @@ public class ContraptionVisual extends Abst @Override public Plan planTick() { return NestedPlan.of( - ForEachPlan.of(() -> actors, ActorVisual::tick), - tickableVisuals + ForEachPlan.of(() -> actors, ActorVisual::tick), + tickableVisuals ); } @Override public Plan planFrame() { return NestedPlan.of( - RunnablePlan.of(this::beginFrame), - ForEachPlan.of(() -> actors, ActorVisual::beginFrame), - dynamicVisuals + RunnablePlan.of(this::beginFrame), + ForEachPlan.of(() -> actors, ActorVisual::beginFrame), + dynamicVisuals ); } @@ -204,7 +204,7 @@ public class ContraptionVisual extends Abst setEmbeddingMatrices(partialTick); if (hasMovedSections()) { - sectionCollector.sections(collectLightSections()); + sectionCollector.sections(collectLightSections()); } if (hasMovedBlocks()) { @@ -285,13 +285,13 @@ public class ContraptionVisual extends Abst int maxY = maxLight(boundingBox.maxY); int maxZ = maxLight(boundingBox.maxZ); - return minBlock != BlockPos.asLong(minX, minY, minZ) || maxBlock != BlockPos.asLong(maxX, maxY, maxZ); + return minBlock != BlockPos.asLong(minX, minY, minZ) || maxBlock != BlockPos.asLong(maxX, maxY, maxZ); } protected boolean hasMovedSections() { var boundingBox = entity.getBoundingBox(); - var minSectionX = minLightSection(boundingBox.minX); + var minSectionX = minLightSection(boundingBox.minX); var minSectionY = minLightSection(boundingBox.minY); var minSectionZ = minLightSection(boundingBox.minZ); int maxSectionX = maxLightSection(boundingBox.maxX); diff --git a/src/main/java/com/simibubi/create/content/equipment/tool/CardboardSwordItem.java b/src/main/java/com/simibubi/create/content/equipment/tool/CardboardSwordItem.java index fcb47d7464..f881814143 100644 --- a/src/main/java/com/simibubi/create/content/equipment/tool/CardboardSwordItem.java +++ b/src/main/java/com/simibubi/create/content/equipment/tool/CardboardSwordItem.java @@ -10,24 +10,6 @@ import com.simibubi.create.AllPackets; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.util.Mth; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.MobCategory; -import net.minecraft.world.entity.ai.attributes.Attributes; -import net.minecraft.world.entity.monster.Spider; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.ItemStack.TooltipPart; -import net.minecraft.world.item.crafting.RecipeType; -import net.minecraft.world.item.SwordItem; -import net.minecraft.world.item.enchantment.Enchantment; -import net.minecraft.world.item.enchantment.EnchantmentHelper; -import net.minecraft.world.item.enchantment.Enchantments; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.extensions.common.IClientItemExtensions; @@ -39,6 +21,25 @@ import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.network.PacketDistributor; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.util.Mth; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.MobCategory; +import net.minecraft.world.entity.MobType; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ItemStack.TooltipPart; +import net.minecraft.world.item.SwordItem; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.item.enchantment.Enchantments; + @EventBusSubscriber public class CardboardSwordItem extends SwordItem { @@ -79,7 +80,7 @@ public class CardboardSwordItem extends SwordItem { Entity attacker = event.getSource() .getEntity(); LivingEntity target = event.getEntity(); - if (target == null || target instanceof Spider) + if (target == null || target.getMobType() == MobType.ARTHROPOD) return; if (!(attacker instanceof LivingEntity livingAttacker && AllItems.CARDBOARD_SWORD.isIn(livingAttacker.getItemInHand(InteractionHand.MAIN_HAND)))) diff --git a/src/main/java/com/simibubi/create/content/logistics/packager/PackagerBlock.java b/src/main/java/com/simibubi/create/content/logistics/packager/PackagerBlock.java index dff5c7f707..e5db9bf432 100644 --- a/src/main/java/com/simibubi/create/content/logistics/packager/PackagerBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/packager/PackagerBlock.java @@ -11,6 +11,11 @@ import com.simibubi.create.foundation.block.IBE; import com.simibubi.create.foundation.block.WrenchableDirectionalBlock; import com.simibubi.create.foundation.utility.CreateLang; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.FakePlayer; +import net.minecraftforge.items.IItemHandler; + import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.InteractionHand; @@ -32,10 +37,6 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.phys.BlockHitResult; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.common.util.FakePlayer; -import net.minecraftforge.items.IItemHandler; public class PackagerBlock extends WrenchableDirectionalBlock implements IBE, IWrenchable { @@ -55,7 +56,7 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE itemCap = ForgeCapabilities.ITEM_HANDLER; @@ -72,7 +73,7 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE { - boolean empty = pbe.inventory.getStackInSlot(0) - .isEmpty(); - if (pbe.animationTicks != 0) - empty = false; - return empty ? 0 : 15; - }) + boolean empty = pbe.inventory.getStackInSlot(0) + .isEmpty(); + if (pbe.animationTicks != 0) + empty = false; + return empty ? 0 : 15; + }) .orElse(0); } diff --git a/src/main/java/com/simibubi/create/foundation/mixin/client/HeavyBootsOnPlayerMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/client/HeavyBootsOnPlayerMixin.java index d4f3ebb022..03dfef36c1 100644 --- a/src/main/java/com/simibubi/create/foundation/mixin/client/HeavyBootsOnPlayerMixin.java +++ b/src/main/java/com/simibubi/create/foundation/mixin/client/HeavyBootsOnPlayerMixin.java @@ -18,6 +18,6 @@ public abstract class HeavyBootsOnPlayerMixin extends AbstractClientPlayer { @ModifyReturnValue(method = "isUnderWater()Z", at = @At("RETURN")) private boolean create$noSwimmingWithHeavyBootsOn(boolean original) { - return getPersistentData().contains("HeavyBoots") || original; + return original || !getPersistentData().contains("HeavyBoots"); } } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 0ed03babe7..ff1c06a322 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,52 +1,52 @@ -modLoader="javafml" -loaderVersion="[47,)" -issueTrackerURL="https://github.com/Creators-of-Create/Create/issues" -license="${mod_license}" +modLoader = "javafml" +loaderVersion = "[47,)" +issueTrackerURL = "https://github.com/Creators-of-Create/Create/issues" +license = "${mod_license}" [[mods]] -modId="create" +modId = "create" # The Implementation-Version property in the jar's MANIFEST.MF file will be used as the mod version at runtime -version="${file.jarVersion}" -displayName="${mod_name}" -displayURL="https://www.curseforge.com/minecraft/mc-mods/create" -logoFile="icon.png" +version = "${file.jarVersion}" +displayName = "${mod_name}" +displayURL = "https://www.curseforge.com/minecraft/mc-mods/create" +logoFile = "icon.png" #credits="" -authors="${mod_author}" -description=''' +authors = "${mod_author}" +description = ''' ${mod_description} ''' [[dependencies.create]] - modId="forge" - mandatory=true - versionRange="[47.1.3,)" - ordering="NONE" - side="BOTH" +modId = "forge" +mandatory = true +versionRange = "[47.1.3,)" +ordering = "NONE" +side = "BOTH" [[dependencies.create]] - modId="minecraft" - mandatory=true - versionRange="[1.20,1.21)" - ordering="NONE" - side="BOTH" +modId = "minecraft" +mandatory = true +versionRange = "[1.20.1]" +ordering = "NONE" +side = "BOTH" [[dependencies.create]] - modId="flywheel" - mandatory=true - versionRange="[1.0.0-alpha,2.0)" - ordering="AFTER" - side="CLIENT" +modId = "flywheel" +mandatory = true +versionRange = "[1.0.0,2.0)" +ordering = "AFTER" +side = "CLIENT" [[dependencies.create]] - modId="ponder" - mandatory=true - versionRange="[0.8,)" - ordering="AFTER" - side="BOTH" +modId = "ponder" +mandatory = true +versionRange = "[0.8,)" +ordering = "AFTER" +side = "BOTH" [[dependencies.create]] - modId="jei" - mandatory=false - versionRange="[15.19.0,)" - ordering="NONE" - side="CLIENT" +modId = "jei" +mandatory = false +versionRange = "[15.19.0,)" +ordering = "NONE" +side = "CLIENT"