Skip to content

Commit b071de5

Browse files
authored
Fix MachineDefinition.getBlockEntityType()'s generic being too broad (#4903)
1 parent 66848b3 commit b071de5

3 files changed

Lines changed: 12 additions & 19 deletions

File tree

src/main/java/com/gregtechceu/gtceu/api/machine/MachineDefinition.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import net.minecraft.resources.ResourceLocation;
1919
import net.minecraft.world.item.ItemStack;
2020
import net.minecraft.world.level.block.Block;
21-
import net.minecraft.world.level.block.entity.BlockEntity;
2221
import net.minecraft.world.level.block.entity.BlockEntityType;
2322
import net.minecraft.world.level.block.state.BlockState;
2423
import net.minecraft.world.level.block.state.StateDefinition;
@@ -57,7 +56,7 @@ public class MachineDefinition implements Supplier<MetaMachineBlock> {
5756
@Setter
5857
private Supplier<? extends MetaMachineItem> itemSupplier;
5958
@Setter
60-
private Supplier<BlockEntityType<? extends BlockEntity>> blockEntityTypeSupplier;
59+
private Supplier<BlockEntityType<? extends MetaMachine>> blockEntityTypeSupplier;
6160
@Getter
6261
@Setter
6362
private GTRecipeType[] recipeTypes;
@@ -152,7 +151,7 @@ public MetaMachineItem getItem() {
152151
return itemSupplier.get();
153152
}
154153

155-
public BlockEntityType<? extends BlockEntity> getBlockEntityType() {
154+
public BlockEntityType<? extends MetaMachine> getBlockEntityType() {
156155
return blockEntityTypeSupplier.get();
157156
}
158157

src/main/java/com/gregtechceu/gtceu/api/registry/registrate/MachineBuilder.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import net.minecraft.world.item.ItemStack;
3939
import net.minecraft.world.level.block.Block;
4040
import net.minecraft.world.level.block.Blocks;
41-
import net.minecraft.world.level.block.entity.BlockEntity;
4241
import net.minecraft.world.level.block.entity.BlockEntityType;
4342
import net.minecraft.world.level.block.state.BlockBehaviour;
4443
import net.minecraft.world.level.block.state.BlockState;
@@ -118,7 +117,7 @@ public class MachineBuilder<DEFINITION extends MachineDefinition, MACHINE extend
118117
private Consumer<BlockBuilder<? extends Block, ?>> blockBuilder;
119118
@Nullable
120119
private Consumer<ItemBuilder<? extends MetaMachineItem, ?>> itemBuilder;
121-
private NonNullConsumer<BlockEntityType<BlockEntity>> onBlockEntityRegister = NonNullConsumer.noop();
120+
private NonNullConsumer<BlockEntityType<MACHINE>> onBlockEntityRegister = NonNullConsumer.noop();
122121
@Getter // getter for KJS
123122
private @NotNull GTRecipeType @NotNull [] recipeTypes = new GTRecipeType[0];
124123
@Getter // getter for KJS
@@ -241,7 +240,7 @@ public SELF itemBuilder(Consumer<ItemBuilder<? extends MetaMachineItem, ?>> item
241240
return getThis();
242241
}
243242

244-
public SELF onBlockEntityRegister(NonNullConsumer<BlockEntityType<BlockEntity>> onBlockEntityRegister) {
243+
public SELF onBlockEntityRegister(NonNullConsumer<BlockEntityType<MACHINE>> onBlockEntityRegister) {
245244
this.onBlockEntityRegister = onBlockEntityRegister;
246245
return getThis();
247246
}
@@ -691,7 +690,7 @@ public DEFINITION register() {
691690
var item = itemBuilder.register();
692691

693692
var blockEntityBuilder = registrate
694-
.blockEntity(
693+
.<MACHINE>blockEntity(
695694
(type, pos, state) -> instanceFactory
696695
.buildMachine(new BlockEntityCreationInfo(type, pos, state)))
697696
.onRegister(onBlockEntityRegister)

src/main/java/com/gregtechceu/gtceu/client/model/machine/MachineModel.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import net.minecraft.world.item.ItemDisplayContext;
3939
import net.minecraft.world.item.ItemStack;
4040
import net.minecraft.world.level.BlockAndTintGetter;
41-
import net.minecraft.world.level.block.entity.BlockEntity;
4241
import net.minecraft.world.level.block.entity.BlockEntityType;
4342
import net.minecraft.world.level.block.state.BlockState;
4443
import net.minecraft.world.phys.AABB;
@@ -61,7 +60,7 @@
6160
import java.util.stream.Collectors;
6261

6362
public final class MachineModel extends BaseBakedModel implements ICoverableRenderer,
64-
IBlockEntityRendererBakedModel<BlockEntity> {
63+
IBlockEntityRendererBakedModel<MetaMachine> {
6564

6665
public static final ResourceLocation PIPE_OVERLAY = GTCEu.id("block/overlay/machine/overlay_pipe");
6766
public static final ResourceLocation FLUID_OUTPUT_OVERLAY = GTCEu.id("block/overlay/machine/overlay_fluid_output");
@@ -432,10 +431,9 @@ public boolean isCustomRenderer() {
432431

433432
@SuppressWarnings({ "rawtypes", "unchecked" })
434433
@Override
435-
public void render(BlockEntity blockEntity, float partialTick,
434+
public void render(MetaMachine machine, float partialTick,
436435
PoseStack poseStack, MultiBufferSource buffer,
437436
int packedLight, int packedOverlay) {
438-
if (!(blockEntity instanceof MetaMachine machine)) return;
439437
if (machine.getDefinition() != getDefinition()) return;
440438
ICoverableRenderer.super.renderDynamicCovers(machine, partialTick, poseStack, buffer,
441439
packedLight,
@@ -463,10 +461,9 @@ public void renderByItem(ItemStack stack, ItemDisplayContext displayContext,
463461

464462
@SuppressWarnings({ "rawtypes", "unchecked" })
465463
@Override
466-
public AABB getRenderBoundingBox(BlockEntity blockEntity) {
467-
AABB bounds = IBlockEntityRendererBakedModel.super.getRenderBoundingBox(blockEntity);
464+
public AABB getRenderBoundingBox(MetaMachine machine) {
465+
AABB bounds = IBlockEntityRendererBakedModel.super.getRenderBoundingBox(machine);
468466

469-
if (!(blockEntity instanceof MetaMachine machine)) return bounds;
470467
if (machine.getDefinition() != getDefinition()) return bounds;
471468
if (dynamicRenders.isEmpty()) return bounds;
472469

@@ -478,8 +475,7 @@ public AABB getRenderBoundingBox(BlockEntity blockEntity) {
478475

479476
@SuppressWarnings({ "rawtypes", "unchecked" })
480477
@Override
481-
public boolean shouldRenderOffScreen(BlockEntity blockEntity) {
482-
if (!(blockEntity instanceof MetaMachine machine)) return false;
478+
public boolean shouldRenderOffScreen(MetaMachine machine) {
483479
if (machine.getDefinition() != getDefinition()) return false;
484480
if (dynamicRenders.isEmpty()) return false;
485481

@@ -491,8 +487,7 @@ public boolean shouldRenderOffScreen(BlockEntity blockEntity) {
491487

492488
@SuppressWarnings({ "rawtypes", "unchecked" })
493489
@Override
494-
public boolean shouldRender(BlockEntity blockEntity, Vec3 cameraPos) {
495-
if (!(blockEntity instanceof MetaMachine machine)) return false;
490+
public boolean shouldRender(MetaMachine machine, Vec3 cameraPos) {
496491
if (machine.getDefinition() != getDefinition()) return false;
497492
if (machine.getCoverContainer().hasDynamicCovers()) return true;
498493
if (dynamicRenders.isEmpty()) return false;
@@ -515,7 +510,7 @@ public int getViewDistance() {
515510
}
516511

517512
@Override
518-
public BlockEntityType<? extends BlockEntity> getBlockEntityType() {
513+
public BlockEntityType<? extends MetaMachine> getBlockEntityType() {
519514
return getDefinition().getBlockEntityType();
520515
}
521516
}

0 commit comments

Comments
 (0)