diff --git a/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/SugarStickBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/SugarStickBlock.java index d7ca7a4fca..6847d9cb3f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/SugarStickBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/SugarStickBlock.java @@ -1,5 +1,6 @@ package de.dafuqs.spectrum.blocks.rock_candy; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.blocks.*; import de.dafuqs.spectrum.helpers.ColorHelper; import de.dafuqs.spectrum.particle.effect.*; @@ -108,9 +109,17 @@ public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random List itemEntities = world.getNonSpectatingEntities(ItemEntity.class, Box.of(Vec3d.ofCenter(pos), ITEM_SEARCH_RANGE, ITEM_SEARCH_RANGE, ITEM_SEARCH_RANGE)); Collections.shuffle(itemEntities); for (ItemEntity itemEntity : itemEntities) { - // is the item also submerged? - // lazy, but mostly accurate and performant way to check if it's the same liquid pool - if (!itemEntity.isSubmergedIn(SpectrumFluidTags.LIQUID_CRYSTAL)) { + + // This implements checking if the item is submerged at eye level. This is necessary as the mixin went haywire + // in a connector environment (TLDR: isSubmergedIn() breaks though mixin transmog with Connector, this fixes it + var currentFluidHeight = itemEntity.getBlockStateAtPos().getFluidState().getHeight(); + var eyePosY = itemEntity.getEyePos().y; + var entityPosFloorY = Math.floor(itemEntity.getEyePos().y); + var entityEyeFloorOffset = eyePosY - entityPosFloorY; + + // Checks to see if the checked item is submerged and in liquid crystal, if one of these are false (making this true), continue to next to aiterate. + // This is to replace the submerge mixin check, given connector was screwing with its check + if (!itemEntity.getBlockStateAtPos().isOf(SpectrumBlocks.LIQUID_CRYSTAL)|| entityEyeFloorOffset > currentFluidHeight) { continue; } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/EntityApplyFluidsMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/EntityApplyFluidsMixin.java index d35f70e620..d4baec64a9 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/EntityApplyFluidsMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/EntityApplyFluidsMixin.java @@ -29,12 +29,13 @@ public abstract class EntityApplyFluidsMixin implements TouchingWaterAware { @Override public void spectrum$setActuallyTouchingWater(boolean actuallyTouchingWater) { this.actuallyTouchingWater = actuallyTouchingWater; } - @Inject(method = "isSubmergedIn", at = @At("RETURN"), cancellable = true) - public void spectrum$isSubmergedIn(TagKey fluidTag, CallbackInfoReturnable cir) { - if (!cir.getReturnValue() && fluidTag == FluidTags.WATER) { - cir.setReturnValue(this.submergedFluidTag.contains(SpectrumFluidTags.SWIMMABLE_FLUID)); - } - } + //This breaks in a connector enviorment for some reason. -Shibva + //@Inject(method = "isSubmergedIn", at = @At("RETURN"), cancellable = true) + //public void spectrum$isSubmergedIn(TagKey fluidTag, CallbackInfoReturnable cir) { + // if (!cir.getReturnValue() && fluidTag == FluidTags.WATER) { + // cir.setReturnValue(this.submergedFluidTag.contains(SpectrumFluidTags.SWIMMABLE_FLUID)); + // } + //} @Inject(method = "isSubmergedInWater", at = @At("RETURN"), cancellable = true) public void spectrum$isSubmergedInWater(CallbackInfoReturnable cir) { diff --git a/src/main/resources/data/spectrum/weapon_attributes/draconic_twinsword.json b/src/main/resources/data/spectrum/weapon_attributes/draconic_twinsword.json new file mode 100644 index 0000000000..b521a4bece --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/draconic_twinsword.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:twin_blade" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/dragon_talon.json b/src/main/resources/data/spectrum/weapon_attributes/dragon_talon.json new file mode 100644 index 0000000000..daafc473ce --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/dragon_talon.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:dagger" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/knotted_sword.json b/src/main/resources/data/spectrum/weapon_attributes/knotted_sword.json new file mode 100644 index 0000000000..c8bb11ed16 --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/knotted_sword.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:sword" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/nectar_lance.json b/src/main/resources/data/spectrum/weapon_attributes/nectar_lance.json new file mode 100644 index 0000000000..c8bb11ed16 --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/nectar_lance.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:sword" +} \ No newline at end of file