From d7412bb750823b6103abfbbac4f487383535ed27 Mon Sep 17 00:00:00 2001 From: Corail31 Date: Mon, 29 Jul 2019 12:48:34 +0200 Subject: [PATCH 1/2] fix boat inputs allowing to move and also removes the import in the api --- .../biomesoplenty/api/entity/BOPEntities.java | 3 +-- .../common/entity/item/BoatEntityBOP.java | 19 ++++++++++++++++++- .../resources/META-INF/accesstransformer.cfg | 2 ++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/biomesoplenty/api/entity/BOPEntities.java b/src/main/java/biomesoplenty/api/entity/BOPEntities.java index f5d27ee78..9abe3b7f5 100644 --- a/src/main/java/biomesoplenty/api/entity/BOPEntities.java +++ b/src/main/java/biomesoplenty/api/entity/BOPEntities.java @@ -7,10 +7,9 @@ ******************************************************************************/ package biomesoplenty.api.entity; -import biomesoplenty.common.entity.item.BoatEntityBOP; import net.minecraft.entity.EntityType; public class BOPEntities { - public static EntityType boat_bop; + public static EntityType boat_bop; } diff --git a/src/main/java/biomesoplenty/common/entity/item/BoatEntityBOP.java b/src/main/java/biomesoplenty/common/entity/item/BoatEntityBOP.java index 6fb36264b..4e7ae689d 100644 --- a/src/main/java/biomesoplenty/common/entity/item/BoatEntityBOP.java +++ b/src/main/java/biomesoplenty/common/entity/item/BoatEntityBOP.java @@ -6,6 +6,7 @@ import biomesoplenty.api.item.BOPItems; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.LilyPadBlock; +import net.minecraft.client.entity.player.ClientPlayerEntity; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; @@ -37,12 +38,19 @@ import net.minecraft.world.GameRules; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.LogicalSide; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.network.FMLPlayMessages; import net.minecraftforge.fml.network.NetworkHooks; import javax.annotation.Nullable; import java.util.List; +import static biomesoplenty.core.BiomesOPlenty.MOD_ID; + +@Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE) public class BoatEntityBOP extends Entity { private static final DataParameter TIME_SINCE_HIT = EntityDataManager.createKey(BoatEntityBOP.class, DataSerializers.VARINT); private static final DataParameter FORWARD_DIRECTION = EntityDataManager.createKey(BoatEntityBOP.class, DataSerializers.VARINT); @@ -76,7 +84,7 @@ public class BoatEntityBOP extends Entity { private float rockingAngle; private float prevRockingAngle; - public BoatEntityBOP(EntityType p_i50129_1_, World p_i50129_2_) { + public BoatEntityBOP(EntityType p_i50129_1_, World p_i50129_2_) { super(p_i50129_1_, p_i50129_2_); this.preventEntitySpawning = true; } @@ -94,6 +102,15 @@ public class BoatEntityBOP extends Entity { this(BOPEntities.boat_bop, world); } + @SubscribeEvent + public static void onRidden(TickEvent.PlayerTickEvent event) { + if (event.side == LogicalSide.CLIENT && event.phase == TickEvent.Phase.START && event.player.getRidingEntity() instanceof BoatEntityBOP) { + ClientPlayerEntity player = (ClientPlayerEntity) event.player; + ((BoatEntityBOP)event.player.getRidingEntity()).updateInputs(player.movementInput.leftKeyDown, player.movementInput.rightKeyDown, player.movementInput.forwardKeyDown, player.movementInput.backKeyDown); + player.rowingBoat |= player.movementInput.leftKeyDown || player.movementInput.rightKeyDown || player.movementInput.forwardKeyDown || player.movementInput.backKeyDown; + } + } + /** * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to * prevent them from trampling crops diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index cde6def2c..8976f7b23 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -16,3 +16,5 @@ public-f net.minecraft.item.AxeItem field_203176_a # BLOCK_STRIPPING_MAP # server.properties world type hackery public-f net.minecraft.server.dedicated.ServerProperties * public net.minecraft.server.dedicated.PropertyManager * + +public net.minecraft.client.entity.player.ClientPlayerEntity field_184844_co # rowingBoat From c341b1d6877daf59a4fd1503713c44ced654f90c Mon Sep 17 00:00:00 2001 From: Corail31 Date: Mon, 29 Jul 2019 14:04:20 +0200 Subject: [PATCH 2/2] adapt without event --- .../common/entity/item/BoatEntityBOP.java | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/main/java/biomesoplenty/common/entity/item/BoatEntityBOP.java b/src/main/java/biomesoplenty/common/entity/item/BoatEntityBOP.java index 4e7ae689d..551de7e36 100644 --- a/src/main/java/biomesoplenty/common/entity/item/BoatEntityBOP.java +++ b/src/main/java/biomesoplenty/common/entity/item/BoatEntityBOP.java @@ -38,19 +38,12 @@ import net.minecraft.world.GameRules; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.LogicalSide; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.network.FMLPlayMessages; import net.minecraftforge.fml.network.NetworkHooks; import javax.annotation.Nullable; import java.util.List; -import static biomesoplenty.core.BiomesOPlenty.MOD_ID; - -@Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE) public class BoatEntityBOP extends Entity { private static final DataParameter TIME_SINCE_HIT = EntityDataManager.createKey(BoatEntityBOP.class, DataSerializers.VARINT); private static final DataParameter FORWARD_DIRECTION = EntityDataManager.createKey(BoatEntityBOP.class, DataSerializers.VARINT); @@ -102,15 +95,6 @@ public class BoatEntityBOP extends Entity { this(BOPEntities.boat_bop, world); } - @SubscribeEvent - public static void onRidden(TickEvent.PlayerTickEvent event) { - if (event.side == LogicalSide.CLIENT && event.phase == TickEvent.Phase.START && event.player.getRidingEntity() instanceof BoatEntityBOP) { - ClientPlayerEntity player = (ClientPlayerEntity) event.player; - ((BoatEntityBOP)event.player.getRidingEntity()).updateInputs(player.movementInput.leftKeyDown, player.movementInput.rightKeyDown, player.movementInput.forwardKeyDown, player.movementInput.backKeyDown); - player.rowingBoat |= player.movementInput.leftKeyDown || player.movementInput.rightKeyDown || player.movementInput.forwardKeyDown || player.movementInput.backKeyDown; - } - } - /** * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to * prevent them from trampling crops @@ -289,6 +273,15 @@ public class BoatEntityBOP extends Entity { */ @Override public void tick() { + if (this.world.isRemote) { + Entity rider = getControllingPassenger(); + if (rider instanceof PlayerEntity) { + ClientPlayerEntity player = (ClientPlayerEntity) rider; + updateInputs(player.movementInput.leftKeyDown, player.movementInput.rightKeyDown, player.movementInput.forwardKeyDown, player.movementInput.backKeyDown); + player.rowingBoat |= player.movementInput.leftKeyDown || player.movementInput.rightKeyDown || player.movementInput.forwardKeyDown || player.movementInput.backKeyDown; + } + } + this.previousStatus = this.status; this.status = this.getBoatStatus(); if (this.status != BoatEntityBOP.Status.UNDER_WATER && this.status != BoatEntityBOP.Status.UNDER_FLOWING_WATER) {