Skip to content

Commit 6409450

Browse files
committed
Bouncy Seats
- Fix seats not being bouncy
1 parent 300ed86 commit 6409450

File tree

8 files changed

+31
-10
lines changed

8 files changed

+31
-10
lines changed

src/main/java/com/simibubi/create/content/contraptions/actors/seat/SeatBlock.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import java.util.List;
44

5-
import org.jetbrains.annotations.Nullable;
65
import javax.annotation.ParametersAreNonnullByDefault;
76

7+
import org.jetbrains.annotations.Nullable;
8+
89
import com.google.common.base.Optional;
910
import com.simibubi.create.AllBlocks;
1011
import com.simibubi.create.AllShapes;
@@ -122,7 +123,7 @@ public VoxelShape getShape(BlockState p_220053_1_, BlockGetter p_220053_2_, Bloc
122123
@Override
123124
public VoxelShape getCollisionShape(BlockState p_220071_1_, BlockGetter p_220071_2_, BlockPos p_220071_3_,
124125
CollisionContext ctx) {
125-
if (ctx instanceof EntityCollisionContext ecc && ecc.getEntity() instanceof Player)
126+
if (ctx instanceof EntityCollisionContext ecc && ecc.getEntity() instanceof Player player)
126127
return AllShapes.SEAT_COLLISION_PLAYERS;
127128
return AllShapes.SEAT_COLLISION;
128129
}
Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,37 @@
11
package com.simibubi.create.foundation.mixin;
22

33
import org.spongepowered.asm.mixin.Mixin;
4+
import org.spongepowered.asm.mixin.Shadow;
45
import org.spongepowered.asm.mixin.injection.At;
56

7+
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
68
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
9+
import com.simibubi.create.content.contraptions.actors.seat.SeatBlock;
710
import com.simibubi.create.content.equipment.armor.NetheriteDivingHandler;
811

12+
import net.minecraft.core.BlockPos;
913
import net.minecraft.world.entity.Entity;
14+
import net.minecraft.world.level.Level;
15+
import net.minecraft.world.level.block.state.BlockState;
1016

1117
@Mixin(value = Entity.class, priority = 1500)
12-
public class EntityMixin {
18+
public abstract class EntityMixin {
19+
@Shadow
20+
public abstract BlockPos getOnPos();
21+
22+
@Shadow
23+
private Level level;
24+
25+
@Shadow
26+
public abstract BlockState getBlockStateOn();
27+
1328
@ModifyReturnValue(method = "fireImmune()Z", at = @At("RETURN"))
14-
public boolean create$onFireImmune(boolean original) {
29+
private boolean create$onFireImmune(boolean original) {
1530
return ((Entity) (Object) this).getPersistentData().getBoolean(NetheriteDivingHandler.FIRE_IMMUNE_KEY) || original;
1631
}
32+
33+
@ModifyExpressionValue(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/Entity;getOnPosLegacy()Lnet/minecraft/core/BlockPos;"))
34+
private BlockPos create$fixSeatBouncing(BlockPos original) {
35+
return getBlockStateOn().getBlock() instanceof SeatBlock ? getOnPos() : original;
36+
}
1737
}

src/main/java/com/simibubi/create/foundation/mixin/MapItemSavedDataMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public class MapItemSavedDataMixin implements StationMapData {
7676
method = "save",
7777
at = @At("RETURN")
7878
)
79-
public void create$onSave(CompoundTag tag, HolderLookup.Provider registries, CallbackInfoReturnable<CompoundTag> cir) {
79+
private void create$onSave(CompoundTag tag, HolderLookup.Provider registries, CallbackInfoReturnable<CompoundTag> cir) {
8080
ListTag listTag = new ListTag();
8181
for (StationMarker stationMarker : create$stationMarkers.values()) {
8282
listTag.add(stationMarker.save(registries));

src/main/java/com/simibubi/create/foundation/mixin/PlayerMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ protected PlayerMixin(EntityType<? extends LivingEntity> entityType, Level level
2222
}
2323

2424
@ModifyExpressionValue(method = "canPlayerFitWithinBlocksAndEntitiesWhen", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;noCollision(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/phys/AABB;)Z"))
25-
public boolean create$playerHidingAsBoxIsCrouchingNotSwimming(boolean original, @Local(argsOnly = true) Pose pose) {
25+
private boolean create$playerHidingAsBoxIsCrouchingNotSwimming(boolean original, @Local(argsOnly = true) Pose pose) {
2626
return original || (pose == Pose.CROUCHING && CardboardArmorHandler.testForStealth(this));
2727
}
2828

src/main/java/com/simibubi/create/foundation/mixin/client/CameraMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public abstract class CameraMixin {
1515
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Camera;getMaxZoom(F)F"),
1616
index = 0
1717
)
18-
public float create$modifyCameraOffset(float originalValue) {
18+
private float create$modifyCameraOffset(float originalValue) {
1919
return originalValue * CameraDistanceModifier.getMultiplier();
2020
}
2121
}

src/main/java/com/simibubi/create/foundation/mixin/compat/xaeros/XaeroFullscreenMapMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public abstract class XaeroFullscreenMapMixin {
1919

2020
@Inject(method = "render(Lnet/minecraft/client/gui/GuiGraphics;IIF)V", at = @At(value = "INVOKE",
2121
target = "Lnet/minecraft/client/gui/GuiGraphics;blit(Lnet/minecraft/resources/ResourceLocation;IIIIII)V"), require = 0)
22-
public void create$xaeroMapFullscreenRender(GuiGraphics graphics, int mouseX, int mouseY, float pt, CallbackInfo ci) {
22+
private void create$xaeroMapFullscreenRender(GuiGraphics graphics, int mouseX, int mouseY, float pt, CallbackInfo ci) {
2323
try {
2424
if (!create$failedToRenderTrainMap)
2525
XaeroTrainMap.onRender(graphics, (GuiMap) (Object) this, mouseX, mouseY, pt);

src/main/java/com/simibubi/create/foundation/mixin/compat/xaeros/XaeroPauseScreenOverrideMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public class XaeroPauseScreenOverrideMixin {
1515

1616
@Inject(method = "isPauseScreen", at = @At("HEAD"), cancellable = true)
17-
public void create$xaeroPauseScreenOverride(CallbackInfoReturnable<Boolean> cir) {
17+
private void create$xaeroPauseScreenOverride(CallbackInfoReturnable<Boolean> cir) {
1818
if (Mods.XAEROWORLDMAP.isLoaded()) {
1919
if (XaeroTrainMap.isMapOpen((Screen) (Object) this))
2020
cir.setReturnValue(false);

src/main/java/com/simibubi/create/foundation/mixin/datafixer/BlockPosFormatAndRenamesFixMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
@Mixin(BlockPosFormatAndRenamesFix.class)
2323
public abstract class BlockPosFormatAndRenamesFixMixin extends DataFix {
24-
public BlockPosFormatAndRenamesFixMixin(Schema outputSchema, boolean changesType) {
24+
private BlockPosFormatAndRenamesFixMixin(Schema outputSchema, boolean changesType) {
2525
super(outputSchema, changesType);
2626
}
2727

0 commit comments

Comments
 (0)