Fix EntityType.Builder for 1.20.5

This commit is contained in:
modmuss50 2024-04-10 22:24:01 +01:00
parent 44e6689f3c
commit 6793dde117
4 changed files with 12 additions and 6 deletions
fabric-object-builder-api-v1/src
main/java/net/fabricmc/fabric
test/java/net/fabricmc/fabric/test/object/builder

View file

@ -23,6 +23,7 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.SpawnGroup;
import net.minecraft.entity.SpawnLocation;
import net.minecraft.entity.SpawnRestriction;
import net.minecraft.entity.attribute.DefaultAttributeContainer;
import net.minecraft.entity.mob.MobEntity;
@ -111,7 +112,7 @@ public interface FabricEntityType {
*
* @return this builder for chaining.
*/
Mob<T> spawnRestriction(SpawnRestriction.Location location, Heightmap.Type heightmap, SpawnRestriction.SpawnPredicate<T> spawnPredicate);
Mob<T> spawnRestriction(SpawnLocation location, Heightmap.Type heightmap, SpawnRestriction.SpawnPredicate<T> spawnPredicate);
/**
* Sets the default attributes for a type of mob entity.

View file

@ -314,7 +314,7 @@ public class FabricEntityTypeBuilder<T extends Entity> {
.allowSpawningInside(specificSpawnBlocks.toArray(Block[]::new))
.maxTrackingRange(this.trackRange)
.trackingTickInterval(this.trackedUpdateRate)
.setDimensions(this.dimensions.width, this.dimensions.height);
.dimensions(this.dimensions.width(), this.dimensions.height());
if (!this.saveable) {
builder = builder.disableSaving();

View file

@ -25,6 +25,7 @@ import org.jetbrains.annotations.Nullable;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.SpawnGroup;
import net.minecraft.entity.SpawnLocation;
import net.minecraft.entity.SpawnRestriction;
import net.minecraft.entity.attribute.DefaultAttributeContainer;
import net.minecraft.entity.mob.MobEntity;
@ -76,12 +77,12 @@ public interface FabricEntityTypeImpl {
}
final class Mob<T extends MobEntity> extends Living<T> implements FabricEntityType.Builder.Mob<T> {
private SpawnRestriction.Location restrictionLocation;
private SpawnLocation restrictionLocation;
private Heightmap.Type restrictionHeightmap;
private SpawnRestriction.SpawnPredicate<T> spawnPredicate;
@Override
public FabricEntityType.Builder.Mob<T> spawnRestriction(SpawnRestriction.Location location, Heightmap.Type heightmap, SpawnRestriction.SpawnPredicate<T> spawnPredicate) {
public FabricEntityType.Builder.Mob<T> spawnRestriction(SpawnLocation location, Heightmap.Type heightmap, SpawnRestriction.SpawnPredicate<T> spawnPredicate) {
this.restrictionLocation = Objects.requireNonNull(location, "Location cannot be null.");
this.restrictionHeightmap = Objects.requireNonNull(heightmap, "Heightmap type cannot be null.");
this.spawnPredicate = Objects.requireNonNull(spawnPredicate, "Spawn predicate cannot be null.");

View file

@ -20,6 +20,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import net.minecraft.entity.SpawnLocation;
import net.minecraft.entity.SpawnLocationTypes;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@ -69,12 +73,12 @@ public class FabricEntityTypeTest {
@Test
void buildMobEntityType() {
EntityType<MobEntity> type = FabricEntityType.Builder.createMob((t, w) -> null, SpawnGroup.MISC, mob -> mob
.spawnRestriction(SpawnRestriction.Location.ON_GROUND, Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, PigEntity::canMobSpawn)
.spawnRestriction(SpawnLocationTypes.ON_GROUND, Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, PigEntity::canMobSpawn)
.defaultAttributes(FabricEntityTypeTest::createAttributes)
).build();
assertNotNull(type);
assertEquals(SpawnRestriction.Location.ON_GROUND, SpawnRestriction.getLocation(type));
assertEquals(SpawnLocationTypes.ON_GROUND, SpawnRestriction.getLocation(type));
assertNotNull(DefaultAttributeRegistry.get(type));
}