Skip to content

Commit 2907683

Browse files
committed
Fishing rod works in water now
1 parent f96b673 commit 2907683

3 files changed

Lines changed: 37 additions & 9 deletions

File tree

common/src/main/java/com/oroarmor/netherite_plus/entity/NetheriteFishingBobberEntity.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,7 @@ private FishingBobberEntity.PositionType getPositionType(BlockPos pos) {
6767
}
6868

6969
private FishingBobberEntity.PositionType getPositionType(BlockPos start, BlockPos end) {
70-
return BlockPos.stream(start, end).map(this::getPositionType).reduce((positionType, positionType2) -> {
71-
return positionType == positionType2 ? positionType : FishingBobberEntity.PositionType.INVALID;
72-
}).orElse(FishingBobberEntity.PositionType.INVALID);
70+
return BlockPos.stream(start, end).map(this::getPositionType).reduce((positionType, positionType2) -> positionType == positionType2 ? positionType : PositionType.INVALID).orElse(FishingBobberEntity.PositionType.INVALID);
7371
}
7472

7573
@Override
@@ -122,6 +120,15 @@ private boolean removeIfInvalid(PlayerEntity playerEntity) {
122120

123121
@Override
124122
public void tick() {
123+
BlockPos blockPos = getBlockPos();
124+
FluidState fluidState = world.getFluidState(blockPos);
125+
if (fluidState.isIn(FluidTags.WATER)) {
126+
System.out.println("super tick");
127+
super.tick();
128+
return;
129+
}
130+
131+
125132
velocityRandom.setSeed(getUuid().getLeastSignificantBits() ^ world.getTime());
126133

127134
if (!leftOwner) {
@@ -149,8 +156,6 @@ public void tick() {
149156
}
150157

151158
float fluidHeight = 0.0F;
152-
BlockPos blockPos = getBlockPos();
153-
FluidState fluidState = world.getFluidState(blockPos);
154159
if (fluidState.isIn(FluidTags.LAVA)) {
155160
fluidHeight = fluidState.getHeight(world, blockPos);
156161
}
@@ -316,6 +321,12 @@ private void tickFishingLogic() {
316321

317322
@Override
318323
public int use(ItemStack usedItem) {
324+
BlockPos blockPos = getBlockPos();
325+
FluidState fluidState = world.getFluidState(blockPos);
326+
if (fluidState.isIn(FluidTags.WATER)) {
327+
return super.use(usedItem);
328+
}
329+
319330
PlayerEntity playerEntity = getPlayerOwner();
320331
if (!world.isClient && playerEntity != null) {
321332
int i = 0;
@@ -328,10 +339,8 @@ public int use(ItemStack usedItem) {
328339
LootTable lootTable = world.getServer().getLootManager().getTable(LAVA_FISHING_LOOT_TABLE);
329340
List<ItemStack> list = lootTable.generateLoot(builder.build(LootContextTypes.FISHING));
330341
Criteria.FISHING_ROD_HOOKED.trigger((ServerPlayerEntity) playerEntity, usedItem, this, list);
331-
Iterator<ItemStack> var7 = list.iterator();
332342

333-
while (var7.hasNext()) {
334-
ItemStack itemStack = var7.next();
343+
for (ItemStack itemStack : list) {
335344
ItemEntity itemEntity = new ItemEntity(world, getX(), getY(), getZ(), itemStack);
336345
double d = playerEntity.getX() - getX();
337346
double e = playerEntity.getY() - getY();
@@ -356,5 +365,4 @@ public int use(ItemStack usedItem) {
356365
return 0;
357366
}
358367
}
359-
360368
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.oroarmor.netherite_plus.mixin;
2+
3+
import com.oroarmor.netherite_plus.item.NetheritePlusItems;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.injection.At;
6+
import org.spongepowered.asm.mixin.injection.Redirect;
7+
8+
import net.minecraft.entity.projectile.FishingBobberEntity;
9+
import net.minecraft.item.Item;
10+
import net.minecraft.item.ItemStack;
11+
import net.minecraft.item.Items;
12+
13+
@Mixin(FishingBobberEntity.class)
14+
public class FishingBobberEntityMixin {
15+
@Redirect(method = "removeIfInvalid", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;"))
16+
private Item setFishingRodToNetherite(ItemStack stack){
17+
return stack.getItem() == NetheritePlusItems.NETHERITE_FISHING_ROD.get() ? Items.FISHING_ROD : stack.getItem();
18+
}
19+
}

fabric/src/main/resources/netherite-plus-mod-fabric.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"package": "com.oroarmor.netherite_plus.mixin",
55
"compatibilityLevel": "JAVA_8",
66
"mixins": [
7+
"FishingBobberEntityMixin",
78
"ShulkerBoxBlockEntityMixin",
89
"ShulkerBoxSlotMixin"
910
],

0 commit comments

Comments
 (0)