From d70d2c06bb8fafdb72c6778b29fb050618015ab3 Mon Sep 17 00:00:00 2001 From: modmuss50 <modmuss50@gmail.com> Date: Wed, 18 Dec 2024 18:42:55 +0000 Subject: [PATCH] (Block)EntityType builders use @Nullable Booleans --- .../v1/block/entity/FabricBlockEntityTypeBuilder.java | 3 ++- .../impl/object/builder/ExtendedBlockEntityType.java | 11 +++++++---- .../impl/object/builder/FabricEntityTypeImpl.java | 4 ++-- .../mixin/object/builder/EntityTypeBuilderMixin.java | 2 ++ .../fabric/mixin/object/builder/EntityTypeMixin.java | 7 +++++-- 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/block/entity/FabricBlockEntityTypeBuilder.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/block/entity/FabricBlockEntityTypeBuilder.java index 0907551fb..600ed41bb 100644 --- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/block/entity/FabricBlockEntityTypeBuilder.java +++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/api/object/builder/v1/block/entity/FabricBlockEntityTypeBuilder.java @@ -38,7 +38,8 @@ import net.fabricmc.fabric.impl.object.builder.ExtendedBlockEntityType; public final class FabricBlockEntityTypeBuilder<T extends BlockEntity> { private final Factory<? extends T> factory; private final Set<Block> blocks = new HashSet<>(); - private boolean canPotentiallyExecuteCommands = false; + @Nullable + private Boolean canPotentiallyExecuteCommands = null; private FabricBlockEntityTypeBuilder(Factory<? extends T> factory) { this.factory = factory; diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/impl/object/builder/ExtendedBlockEntityType.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/impl/object/builder/ExtendedBlockEntityType.java index a6d01edb6..07b44c1e3 100644 --- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/impl/object/builder/ExtendedBlockEntityType.java +++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/impl/object/builder/ExtendedBlockEntityType.java @@ -18,22 +18,25 @@ package net.fabricmc.fabric.impl.object.builder; import java.util.Set; +import org.jetbrains.annotations.Nullable; + import net.minecraft.block.Block; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; public class ExtendedBlockEntityType<T extends BlockEntity> extends BlockEntityType<T> { - private final boolean canPotentiallyExecuteCommands; + @Nullable + private final Boolean canPotentiallyExecuteCommands; - public ExtendedBlockEntityType(BlockEntityFactory<? extends T> factory, Set<Block> blocks, boolean canPotentiallyExecuteCommands) { + public ExtendedBlockEntityType(BlockEntityFactory<? extends T> factory, Set<Block> blocks, @Nullable Boolean canPotentiallyExecuteCommands) { super(factory, blocks); this.canPotentiallyExecuteCommands = canPotentiallyExecuteCommands; } @Override public boolean canPotentiallyExecuteCommands() { - if (canPotentiallyExecuteCommands) { - return true; + if (canPotentiallyExecuteCommands != null) { + return canPotentiallyExecuteCommands; } return super.canPotentiallyExecuteCommands(); diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/impl/object/builder/FabricEntityTypeImpl.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/impl/object/builder/FabricEntityTypeImpl.java index e2c7f067d..8f0107066 100644 --- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/impl/object/builder/FabricEntityTypeImpl.java +++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/impl/object/builder/FabricEntityTypeImpl.java @@ -35,9 +35,9 @@ import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRe import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityType; public interface FabricEntityTypeImpl { - void fabric_setAlwaysUpdateVelocity(Boolean alwaysUpdateVelocity); + void fabric_setAlwaysUpdateVelocity(@Nullable Boolean alwaysUpdateVelocity); - void fabric_setCanPotentiallyExecuteCommands(Boolean canPotentiallyExecuteCommands); + void fabric_setCanPotentiallyExecuteCommands(@Nullable Boolean canPotentiallyExecuteCommands); interface Builder { void fabric_setLivingEntityBuilder(Living<? extends LivingEntity> livingBuilder); diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/EntityTypeBuilderMixin.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/EntityTypeBuilderMixin.java index fe8e896b5..eb1ecd8ba 100644 --- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/EntityTypeBuilderMixin.java +++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/EntityTypeBuilderMixin.java @@ -47,8 +47,10 @@ public abstract class EntityTypeBuilderMixin<T extends Entity> implements Fabric public abstract EntityType<T> build(RegistryKey<EntityType<?>> registryKey); @Unique + @Nullable private Boolean alwaysUpdateVelocity = null; @Unique + @Nullable private Boolean canPotentiallyExecuteCommands = null; @Unique diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/EntityTypeMixin.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/EntityTypeMixin.java index 00c945b5e..08644ddc8 100644 --- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/EntityTypeMixin.java +++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/EntityTypeMixin.java @@ -16,6 +16,7 @@ package net.fabricmc.fabric.mixin.object.builder; +import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -29,8 +30,10 @@ import net.fabricmc.fabric.impl.object.builder.FabricEntityTypeImpl; @Mixin(EntityType.class) public abstract class EntityTypeMixin implements FabricEntityTypeImpl { @Unique + @Nullable private Boolean alwaysUpdateVelocity; @Unique + @Nullable private Boolean canPotentiallyExecuteCommands; @Inject(method = "alwaysUpdateVelocity", at = @At("HEAD"), cancellable = true) @@ -48,12 +51,12 @@ public abstract class EntityTypeMixin implements FabricEntityTypeImpl { } @Override - public void fabric_setAlwaysUpdateVelocity(Boolean alwaysUpdateVelocity) { + public void fabric_setAlwaysUpdateVelocity(@Nullable Boolean alwaysUpdateVelocity) { this.alwaysUpdateVelocity = alwaysUpdateVelocity; } @Override - public void fabric_setCanPotentiallyExecuteCommands(Boolean canPotentiallyExecuteCommands) { + public void fabric_setCanPotentiallyExecuteCommands(@Nullable Boolean canPotentiallyExecuteCommands) { this.canPotentiallyExecuteCommands = canPotentiallyExecuteCommands; } }