Box in the vents

- Make the player hitbox smaller when hiding as a box and allow them to go into 1x1 spaces
This commit is contained in:
IThundxr 2024-11-24 11:46:20 -05:00
parent 37134bd6ae
commit d92b47d0ef
Failed to generate hash of commit
5 changed files with 32 additions and 4 deletions

View file

@ -85,10 +85,11 @@ minecraft {
property 'forge.logging.markers', ''
property 'forge.logging.console.level', 'info'
jvmArgs '-XX:+IgnoreUnrecognizedVMOptions', '-XX:+AllowEnhancedClassRedefinition' // uncomment with jbr
jvmArgs '-XX:+IgnoreUnrecognizedVMOptions', '-XX:+AllowEnhancedClassRedefinition'
//jvmArgs("-XX:-OmitStackTraceInFastThrow") // uncomment when you get exceptions with null messages etc
//jvmArgs '-XX:+UnlockCommercialFeatures' // uncomment for profiling
property 'mixin.debug.export', 'true'
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
@ -234,6 +235,10 @@ dependencies {
jarJar.ranged(it, '[0.7.5,)')
}
implementation(jarJar("io.github.llamalad7:mixinextras-forge:${mixin_extras_version}")) {
jarJar.ranged(it, "[${mixin_extras_version},)")
}
implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}")
compileOnly fg.deobf("dev.engine_room.flywheel:flywheel-forge-api-${flywheel_minecraft_version}:${flywheel_version}")
@ -253,6 +258,8 @@ dependencies {
implementation fg.deobf("net.createmod.ponder:Ponder-Forge-${minecraft_version}:${ponder_version}")
}
compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixin_extras_version}"))
compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-common-api:${jei_version}")
compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-forge-api:${jei_version}")
runtimeOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-forge:${jei_version}")

View file

@ -30,6 +30,7 @@ curios_minecraft_version = 1.20.1
curios_version = 5.3.1
catnip_version = 0.8.20
ponder_version = 0.8.12
mixin_extras_version = 0.4.1
cc_tweaked_enable = true
cc_tweaked_minecraft_version = 1.20.1

View file

@ -6,6 +6,7 @@ import com.simibubi.create.AllItems;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Mob;
@ -13,15 +14,23 @@ import net.minecraft.world.entity.NeutralMob;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.ai.goal.target.TargetGoal;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.event.entity.EntityEvent;
import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent;
import net.minecraftforge.event.entity.living.LivingEvent.LivingVisibilityEvent;
import net.minecraftforge.event.level.NoteBlockEvent.Play;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
@EventBusSubscriber
public class CardboardArmorHandler {
@SubscribeEvent
public static void playerHitboxChangesWhenHidingAsBox(EntityEvent.Size event) {
if (event.getEntity().isAddedToWorld() && testForStealth(event.getEntity())) {
event.setNewSize(EntityDimensions.fixed(0.8F, 0.8F));
event.setNewEyeHeight(0.6F);
}
}
@SubscribeEvent
public static void playersStealthWhenWearingCardboard(LivingVisibilityEvent event) {
LivingEntity entity = event.getEntity();

View file

@ -1,5 +1,12 @@
package com.simibubi.create.foundation.mixin;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.sugar.Local;
import com.simibubi.create.content.equipment.armor.CardboardArmorHandler;
import net.minecraft.world.entity.Pose;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@ -11,7 +18,11 @@ import net.minecraft.world.entity.Entity;
@Mixin(value = Entity.class, priority = 900)
public class EntityMixin {
@ModifyExpressionValue(method = "canEnterPose", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;noCollision(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/phys/AABB;)Z"))
public boolean create$playerHidingAsBoxIsCrouchingNotSwimming(boolean original, @Local(argsOnly = true) Pose pose) {
return original || (pose == Pose.CROUCHING && CardboardArmorHandler.testForStealth((Entity) (Object) this));
}
@Inject(method = "fireImmune()Z", at = @At("RETURN"), cancellable = true)
public void create$onFireImmune(CallbackInfoReturnable<Boolean> cir) {
if (!cir.getReturnValueZ()) {
@ -21,5 +32,4 @@ public class EntityMixin {
cir.setReturnValue(immune);
}
}
}

View file

@ -15,6 +15,7 @@
"LavaSwimmingMixin",
"MainMixin",
"MapItemSavedDataMixin",
"PlayerMixin",
"TestCommandMixin",
"WaterWheelFluidSpreadMixin",
"accessor.AbstractProjectileDispenseBehaviorAccessor",