Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More cleanup for 1.20.4 #1914

Merged
merged 4 commits into from
Jan 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions core/src/main/java/mrtjp/projectred/core/CoreNetwork.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import codechicken.lib.packet.ICustomPacketHandler;
import codechicken.lib.packet.PacketCustom;
import codechicken.lib.packet.PacketCustomChannelBuilder;
import mrtjp.projectred.core.tile.IPacketReceiverTile;
import mrtjp.projectred.core.tile.IPacketReceiverBlockEntity;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.ClientPacketListener;
import net.minecraft.resources.ResourceLocation;
Expand Down Expand Up @@ -34,14 +34,14 @@ public static void init() {
.build();
}

public static PacketCustom createTileClientPacket(IPacketReceiverTile tile, byte key) {
public static PacketCustom createTileClientPacket(IPacketReceiverBlockEntity tile, byte key) {
PacketCustom packet = new PacketCustom(NET_CHANNEL, NET_TILE_PACKET_TO_CLIENT);
packet.writePos(tile.getBlockPosition());
packet.writeByte(key);
return packet;
}

public static PacketCustom createTileServerPacket(IPacketReceiverTile tile, byte key) {
public static PacketCustom createTileServerPacket(IPacketReceiverBlockEntity tile, byte key) {
PacketCustom packet = new PacketCustom(NET_CHANNEL, NET_TILE_PACKET_TO_SERVER);
packet.writePos(tile.getBlockPosition());
packet.writeByte(key);
Expand All @@ -65,8 +65,8 @@ public void handlePacket(PacketCustom packet, Minecraft mc, ClientPacketListener
private void handleTilePacket(Level world, MCDataInput data) {
BlockEntity tile = world.getBlockEntity(data.readPos());
int key = data.readUByte();
if (tile instanceof IPacketReceiverTile)
((IPacketReceiverTile) tile).receiveUpdateFromServer(key, data);
if (tile instanceof IPacketReceiverBlockEntity)
((IPacketReceiverBlockEntity) tile).receiveUpdateFromServer(key, data);
}
}

Expand All @@ -87,8 +87,8 @@ public void handlePacket(PacketCustom packet, ServerPlayer sender, ServerGamePac
private void handleTilePacket(Level world, MCDataInput data, ServerPlayer sender) {
BlockEntity tile = world.getBlockEntity(data.readPos());
int key = data.readUByte();
if (tile instanceof IPacketReceiverTile)
((IPacketReceiverTile) tile).receiveUpdateFromClient(key, data, sender);
if (tile instanceof IPacketReceiverBlockEntity)
((IPacketReceiverBlockEntity) tile).receiveUpdateFromClient(key, data, sender);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import codechicken.lib.vec.Rotation;
import mrtjp.projectred.core.init.CoreBlocks;
import mrtjp.projectred.core.tile.ElectrotineGeneratorTile;
import mrtjp.projectred.core.tile.ElectrotineGeneratorBlockEntity;
import net.minecraft.core.BlockPos;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.block.Block;
Expand All @@ -22,12 +22,12 @@ public ElectrotineGeneratorBlock() {
@Nullable
@Override
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
return new ElectrotineGeneratorTile(pos, state);
return new ElectrotineGeneratorBlockEntity(pos, state);
}

@Override
protected BlockEntityType<?> getBlockEntityType() {
return CoreBlocks.ELECTROTINE_GENERATOR_TILE.get();
return CoreBlocks.ELECTROTINE_GENERATOR_BLOCK_ENTITY.get();
}

@Nullable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package mrtjp.projectred.core.block;

import mrtjp.projectred.core.tile.IBlockEventTile;
import mrtjp.projectred.core.tile.IBlockEventBlockEntity;
import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
Expand Down Expand Up @@ -45,7 +45,7 @@ public ProjectRedBlock(BlockBehaviour.Properties properties) {
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level level, BlockState state, BlockEntityType<T> type) {
if (type != getBlockEntityType()) return null;
return (level1, pos, state1, tile) -> {
if (tile instanceof IBlockEventTile t) {
if (tile instanceof IBlockEventBlockEntity t) {
t.tick();
}
};
Expand All @@ -54,30 +54,30 @@ public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level level, Block
@Override
public void neighborChanged(BlockState state, Level world, BlockPos pos, Block blockIn, BlockPos neighbor, boolean isMoving) {
BlockEntity tile = world.getBlockEntity(pos);
if (tile instanceof IBlockEventTile) ((IBlockEventTile) tile).onNeighborBlockChanged(neighbor);
if (tile instanceof IBlockEventBlockEntity) ((IBlockEventBlockEntity) tile).onNeighborBlockChanged(neighbor);
}

@Override
public void onNeighborChange(BlockState state, LevelReader world, BlockPos pos, BlockPos neighbor) {
BlockEntity tile = world.getBlockEntity(pos);
if (tile instanceof IBlockEventTile) ((IBlockEventTile) tile).onNeighborTileChanged(neighbor);
if (tile instanceof IBlockEventBlockEntity) ((IBlockEventBlockEntity) tile).onNeighborTileChanged(neighbor);
}

@Override
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
BlockEntity tile = world.getBlockEntity(pos);
if (tile instanceof IBlockEventTile) return ((IBlockEventTile) tile).onBlockActivated(player, hand, hit);
if (tile instanceof IBlockEventBlockEntity) return ((IBlockEventBlockEntity) tile).onBlockActivated(player, hand, hit);
return InteractionResult.FAIL; //TODO pass?
}

@Override
public void onRemove(BlockState oldState, Level world, BlockPos pos, BlockState newState, boolean isMoving) {
BlockEntity tile = world.getBlockEntity(pos);
if (tile instanceof IBlockEventTile) {
if (tile instanceof IBlockEventBlockEntity) {
if (oldState.is(newState.getBlock())) {
((IBlockEventTile) tile).onBlockStateReplaced(newState);
((IBlockEventBlockEntity) tile).onBlockStateReplaced(newState);
} else {
((IBlockEventTile) tile).onBlockRemoved();
((IBlockEventBlockEntity) tile).onBlockRemoved();
}
}
super.onRemove(oldState, world, pos, newState, isMoving); // Removes tile if no longer valid for new state
Expand All @@ -86,6 +86,6 @@ public void onRemove(BlockState oldState, Level world, BlockPos pos, BlockState
@Override
public void setPlacedBy(Level world, BlockPos pos, BlockState state, @Nullable LivingEntity player, ItemStack stack) {
BlockEntity tile = world.getBlockEntity(pos);
if (tile instanceof IBlockEventTile) ((IBlockEventTile) tile).onBlockPlaced(player, stack);
if (tile instanceof IBlockEventBlockEntity) ((IBlockEventBlockEntity) tile).onBlockPlaced(player, stack);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package mrtjp.projectred.core.gui.screen.inventory;

import mrtjp.projectred.core.inventory.container.ElectrotineGeneratorContainer;
import mrtjp.projectred.core.inventory.container.ElectrotineGeneratorMenu;
import mrtjp.projectred.lib.GuiLib;
import mrtjp.projectred.lib.Point;
import mrtjp.projectred.redui.RedUIContainerScreen;
Expand All @@ -11,11 +11,11 @@

import static mrtjp.projectred.core.ProjectRedCore.MOD_ID;

public class ElectrotineGeneratorScreen extends RedUIContainerScreen<ElectrotineGeneratorContainer> {
public class ElectrotineGeneratorScreen extends RedUIContainerScreen<ElectrotineGeneratorMenu> {

public static final ResourceLocation BACKGROUND = new ResourceLocation(MOD_ID, "textures/gui/electrotine_generator.png");

public ElectrotineGeneratorScreen(ElectrotineGeneratorContainer container, Inventory playerInventory, Component title) {
public ElectrotineGeneratorScreen(ElectrotineGeneratorMenu container, Inventory playerInventory, Component title) {
super(176, 171, container, playerInventory, title);

inventoryLabelX = 8;
Expand Down
6 changes: 3 additions & 3 deletions core/src/main/java/mrtjp/projectred/core/init/CoreBlocks.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package mrtjp.projectred.core.init;

import mrtjp.projectred.core.block.ElectrotineGeneratorBlock;
import mrtjp.projectred.core.tile.ElectrotineGeneratorTile;
import mrtjp.projectred.core.tile.ElectrotineGeneratorBlockEntity;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
Expand All @@ -19,7 +19,7 @@ public class CoreBlocks {
public static RegistryObject<Block> ELECTROTINE_GENERATOR_BLOCK;

// Tile
public static RegistryObject<BlockEntityType<ElectrotineGeneratorTile>> ELECTROTINE_GENERATOR_TILE;
public static RegistryObject<BlockEntityType<ElectrotineGeneratorBlockEntity>> ELECTROTINE_GENERATOR_BLOCK_ENTITY;


public static void register() {
Expand All @@ -31,6 +31,6 @@ public static void register() {
ITEMS.register(ID_ELECTROTINE_GENERATOR, () -> new BlockItem(ELECTROTINE_GENERATOR_BLOCK.get(), new Item.Properties()));

// Tiles
ELECTROTINE_GENERATOR_TILE = BLOCK_ENTITY_TYPES.register(ID_ELECTROTINE_GENERATOR, () -> BlockEntityType.Builder.of(ElectrotineGeneratorTile::new, ELECTROTINE_GENERATOR_BLOCK.get()).build(null));
ELECTROTINE_GENERATOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register(ID_ELECTROTINE_GENERATOR, () -> BlockEntityType.Builder.of(ElectrotineGeneratorBlockEntity::new, ELECTROTINE_GENERATOR_BLOCK.get()).build(null));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;

import static mrtjp.projectred.core.ProjectRedCore.MOD_ID;
import static mrtjp.projectred.core.init.CoreMenus.ELECTROTINE_GENERATOR_CONTAINER;
import static mrtjp.projectred.core.init.CoreMenus.ELECTROTINE_GENERATOR_MENU;

@SuppressWarnings("NotNullFieldNotInitialized")
public class CoreClientInit {
Expand All @@ -31,7 +31,7 @@ public static void init() {
private static void clientSetup(final FMLClientSetupEvent event) {

// Register screens
MenuScreens.register(ELECTROTINE_GENERATOR_CONTAINER.get(), ElectrotineGeneratorScreen::new);
MenuScreens.register(ELECTROTINE_GENERATOR_MENU.get(), ElectrotineGeneratorScreen::new);

// Init Halo Renderer
HaloRenderer.init();
Expand Down
6 changes: 3 additions & 3 deletions core/src/main/java/mrtjp/projectred/core/init/CoreMenus.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package mrtjp.projectred.core.init;

import codechicken.lib.inventory.container.ICCLContainerType;
import mrtjp.projectred.core.inventory.container.ElectrotineGeneratorContainer;
import mrtjp.projectred.core.inventory.container.ElectrotineGeneratorMenu;
import net.minecraft.world.inventory.MenuType;
import net.minecraftforge.registries.RegistryObject;

Expand All @@ -11,10 +11,10 @@
@SuppressWarnings("NotNullFieldNotInitialized")
public class CoreMenus {

public static RegistryObject<MenuType<ElectrotineGeneratorContainer>> ELECTROTINE_GENERATOR_CONTAINER;
public static RegistryObject<MenuType<ElectrotineGeneratorMenu>> ELECTROTINE_GENERATOR_MENU;

public static void register() {

ELECTROTINE_GENERATOR_CONTAINER = MENU_TYPES.register(ID_ELECTROTINE_GENERATOR, () -> ICCLContainerType.create(ElectrotineGeneratorContainer.FACTORY));
ELECTROTINE_GENERATOR_MENU = MENU_TYPES.register(ID_ELECTROTINE_GENERATOR, () -> ICCLContainerType.create(ElectrotineGeneratorMenu.FACTORY));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
* Simple extension of default vanilla Inventory class that allows for proper saving and loading
* to a CompoundNBT. Default implementation does not load items back into their original slots.
* <p>
* Use {@link BaseInventory#save} and {@link BaseInventory#load} instead of Inventory#createTag and Inventory#fromTag
* Use {@link BaseContainer#save} and {@link BaseContainer#load} instead of Inventory#createTag and Inventory#fromTag
*/
public class BaseInventory extends SimpleContainer {
public class BaseContainer extends SimpleContainer {

private static final String TAG_ITEMS = "items";
private static final String TAG_SLOT = "slot";
private static final String TAG_ITEM_COUNT = "item_count";

public BaseInventory(int size) {
public BaseContainer(int size) {
super(size);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
package mrtjp.projectred.core.inventory.container;

import mrtjp.projectred.core.tile.BasePoweredTile;
import mrtjp.projectred.core.tile.BasePoweredBlockEntity;
import net.minecraft.world.Container;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.MenuType;

import javax.annotation.Nullable;

public abstract class BasePoweredTileContainer extends AbstractContainerMenu {
public abstract class BasePoweredBlockEntityMenu extends AbstractContainerMenu {

private final BasePoweredTile tile;
private final BasePoweredBlockEntity tile;

protected int condCharge;
protected int condFlow;

public BasePoweredTileContainer(@Nullable MenuType<?> containerType, int windowId, BasePoweredTile tile) {
public BasePoweredBlockEntityMenu(@Nullable MenuType<?> containerType, int windowId, BasePoweredBlockEntity tile) {
super(containerType, windowId);
this.tile = tile;

Expand All @@ -23,12 +24,10 @@ public BasePoweredTileContainer(@Nullable MenuType<?> containerType, int windowI
addDataSlot(new SimpleDataSlot(() -> tile.getConductorFlow() >> 16 & 0xFFFF, value -> condFlow = condFlow & 0xFFFF | value << 16));
}

// Needs to be implemented by subclass due to reobf bug
// TODO revisit in 1.20
// @Override
// public boolean stillValid(Player player) {
// return !tile.isRemoved();
// }
@Override
public boolean stillValid(Player pPlayer) {
return Container.stillValidBlockEntity(tile, pPlayer);
}

public int getChargeScaled(int scale) {
return Math.min(scale, scale * condCharge / 1000);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package mrtjp.projectred.core.inventory.container;

import codechicken.lib.inventory.container.ICCLContainerFactory;
import mrtjp.projectred.core.tile.ElectrotineGeneratorTile;
import mrtjp.projectred.core.tile.ElectrotineGeneratorBlockEntity;
import mrtjp.projectred.lib.InventoryLib;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
Expand All @@ -10,25 +10,25 @@
import net.minecraft.world.level.block.entity.BlockEntity;

import static mrtjp.projectred.core.init.CoreItems.ELECTROTINE_DUST_ITEM;
import static mrtjp.projectred.core.init.CoreMenus.ELECTROTINE_GENERATOR_CONTAINER;
import static mrtjp.projectred.core.init.CoreMenus.ELECTROTINE_GENERATOR_MENU;

public class ElectrotineGeneratorContainer extends BasePoweredTileContainer {
public class ElectrotineGeneratorMenu extends BasePoweredBlockEntityMenu {

public static final ICCLContainerFactory<ElectrotineGeneratorContainer> FACTORY = (windowId, inventory, packet) -> {
public static final ICCLContainerFactory<ElectrotineGeneratorMenu> FACTORY = (windowId, inventory, packet) -> {
BlockEntity tile = inventory.player.level().getBlockEntity(packet.readPos());
if (!(tile instanceof ElectrotineGeneratorTile)) return null;
if (!(tile instanceof ElectrotineGeneratorBlockEntity)) return null;

return new ElectrotineGeneratorContainer(inventory, (ElectrotineGeneratorTile) tile, windowId);
return new ElectrotineGeneratorMenu(inventory, (ElectrotineGeneratorBlockEntity) tile, windowId);
};

private final Inventory playerInventory;
private final ElectrotineGeneratorTile tile;
private final ElectrotineGeneratorBlockEntity tile;

private int burnTimeRemaining = 0;
private int powerStored = 0;

public ElectrotineGeneratorContainer(Inventory playerInventory, ElectrotineGeneratorTile tile, int windowId) {
super(ELECTROTINE_GENERATOR_CONTAINER.get(), windowId, tile);
public ElectrotineGeneratorMenu(Inventory playerInventory, ElectrotineGeneratorBlockEntity tile, int windowId) {
super(ELECTROTINE_GENERATOR_MENU.get(), windowId, tile);

this.playerInventory = playerInventory;
this.tile = tile;
Expand All @@ -49,12 +49,6 @@ public boolean mayPlace(ItemStack stack) {
});
}

@Override
public boolean stillValid(Player player) {
//TODO move to superclass once reobf bug is fixed
return !tile.isRemoved();
}

@Override
public ItemStack quickMoveStack(Player player, int slotIndex) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@

import javax.annotation.Nullable;

public abstract class BaseConnectableTile extends ProjectRedTile implements IConnectableTile, IPacketReceiverTile {
public abstract class BaseConnectableBlockEntity extends ProjectRedBlockEntity implements IConnectableBlockEntity, IPacketReceiverBlockEntity {

public static final int PACKET_CONN_MAP = 2;

private long connMap = 0L;

public BaseConnectableTile(BlockEntityType<?> type, BlockPos pos, BlockState state) {
public BaseConnectableBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@
import java.util.LinkedList;
import java.util.List;

public abstract class BasePoweredTile extends BaseConnectableTile implements IPoweredTile {
public abstract class BasePoweredBlockEntity extends BaseConnectableBlockEntity implements IPoweredBlockEntity {

private final List<PowerConductor> connectedConductors = new LinkedList<>();
private boolean cacheInvalid = true;

public BasePoweredTile(BlockEntityType<?> type, BlockPos pos, BlockState state) {
public BasePoweredBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}

Expand Down Expand Up @@ -53,14 +53,14 @@ private void recacheConductors() {
// Edge connections
for (int s = 0; s < 6; s++) {
for (int r = 0; r < 4; r++) {
PowerConductor c = IPoweredTile.getExternalConductorForFaceConn(this, s, r);
PowerConductor c = IPoweredBlockEntity.getExternalConductorForFaceConn(this, s, r);
if (c != null) connectedConductors.add(c);
}
}

// Center connections
for (int s = 0; s < 6; s++) {
PowerConductor c = IPoweredTile.getExternalConductorForCenterConn(this, s);
PowerConductor c = IPoweredBlockEntity.getExternalConductorForCenterConn(this, s);
if (c != null) connectedConductors.add(c);
}
}
Expand Down
Loading
Loading