Skip to content

Commit

Permalink
Merge pull request #708 from ferriarnus/fix-conduit-upgrade-menu
Browse files Browse the repository at this point in the history
fix: conduit type in menu not updating
  • Loading branch information
ferriarnus authored Jun 25, 2024
2 parents 35abbe0 + 27da04f commit 2f09b62
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,7 @@ public ItemStack extractItem(int slot, int amount, boolean simulate) {

@Override
public int getSlotLimit(int slot) {
return slot % 3 == 2 ? 64 : 1;
return 1;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package com.enderio.conduits.common.menu;

import com.enderio.api.conduit.ConduitType;
import com.enderio.conduits.common.conduit.block.ConduitBlockEntity;
import com.enderio.conduits.common.conduit.ConduitBundle;
import com.enderio.api.conduit.SlotType;
import com.enderio.conduits.common.conduit.ConduitBundle;
import com.enderio.conduits.common.conduit.block.ConduitBlock;
import com.enderio.conduits.common.conduit.block.ConduitBlockEntity;
import com.enderio.conduits.common.init.ConduitMenus;
import com.enderio.conduits.common.init.EIOConduitTypes;
import com.enderio.conduits.common.network.ConduitSelectionPacket;
import com.enderio.core.common.menu.SyncedMenu;
import com.enderio.core.common.network.CoreNetwork;
import net.minecraft.core.Direction;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerPlayer;
Expand Down Expand Up @@ -114,6 +116,7 @@ public ConduitType<?> getConduitType() {

public void setConduitType(ConduitType<?> type) {
this.type = type;
CoreNetwork.sendToServer(new ConduitSelectionPacket(EIOConduitTypes.getConduitId(type)));
}

public Direction getDirection() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ public void updateVisibilityPosition() {
}
}

@Override
public int getMaxStackSize(@NotNull ItemStack stack) {
return getMaxStackSize();
}

private boolean isVisible() {
return visibleDirection.get() == visibleForDirection
&& visibleType.get() == visibleForType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public static void register() {
CoreNetwork.registerPacket(new CountFilterPacket.Handler(), CountFilterPacket.class);
CoreNetwork.registerPacket(new DoubleChannelPacket.Handler(), DoubleChannelPacket.class);
CoreNetwork.registerPacket(new TimerFilterPacket.Handler(), TimerFilterPacket.class);
CoreNetwork.registerPacket(new ConduitSelectionPacket.Handler(), ConduitSelectionPacket.class);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.enderio.conduits.common.network;

import com.enderio.conduits.common.init.EIOConduitTypes;
import com.enderio.conduits.common.menu.ConduitMenu;
import com.enderio.core.common.network.Packet;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.network.NetworkDirection;
import net.minecraftforge.network.NetworkEvent;

import java.util.Optional;

public record ConduitSelectionPacket(int type) implements Packet {

public ConduitSelectionPacket(FriendlyByteBuf buf) {
this(buf.readInt());
}

@Override
public boolean isValid(NetworkEvent.Context context) {
return context.getSender() != null;
}

@Override
public void handle(NetworkEvent.Context context) {
if (context.getSender().containerMenu instanceof ConduitMenu menu) {
menu.setConduitType(EIOConduitTypes.getById(this.type));
}
}

protected void write(FriendlyByteBuf writeInto) {
writeInto.writeInt(this.type);
}

public static class Handler extends Packet.PacketHandler<ConduitSelectionPacket> {

@Override
public ConduitSelectionPacket fromNetwork(FriendlyByteBuf buf) {
return new ConduitSelectionPacket(buf);
}

@Override
public void toNetwork(ConduitSelectionPacket packet, FriendlyByteBuf buf) {
packet.write(buf);
}

@Override
public Optional<NetworkDirection> getDirection() {
return Optional.of(NetworkDirection.PLAY_TO_SERVER);
}
}
}

0 comments on commit 2f09b62

Please sign in to comment.