BlockState -> BlockEntity

This commit is contained in:
dfsek
2021-06-25 19:12:23 -07:00
parent d880d95637
commit 3386570439
20 changed files with 43 additions and 43 deletions
@@ -1,7 +1,7 @@
package com.dfsek.terra.bukkit.world;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.terra.api.vector.Vector3;
@@ -10,7 +10,7 @@ import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.bukkit.BukkitEntity;
import com.dfsek.terra.bukkit.generator.BukkitChunkGenerator;
import com.dfsek.terra.bukkit.world.block.state.BukkitBlockState;
import com.dfsek.terra.bukkit.world.block.state.BukkitBlockEntity;
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
import java.io.File;
@@ -66,8 +66,8 @@ public class BukkitWorld implements World {
}
@Override
public BlockState getBlockState(int x, int y, int z) {
return BukkitBlockState.newInstance(delegate.getBlockAt(x, y, z).getState());
public BlockEntity getBlockState(int x, int y, int z) {
return BukkitBlockEntity.newInstance(delegate.getBlockAt(x, y, z).getState());
}
public File getWorldFolder() {
@@ -1,7 +1,7 @@
package com.dfsek.terra.bukkit.world.block.state;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
@@ -9,18 +9,18 @@ import org.bukkit.block.Container;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.block.Sign;
public class BukkitBlockState implements BlockState {
public class BukkitBlockEntity implements BlockEntity {
private final org.bukkit.block.BlockState delegate;
protected BukkitBlockState(org.bukkit.block.BlockState block) {
protected BukkitBlockEntity(org.bukkit.block.BlockState block) {
this.delegate = block;
}
public static BukkitBlockState newInstance(org.bukkit.block.BlockState block) {
public static BukkitBlockEntity newInstance(org.bukkit.block.BlockState block) {
if(block instanceof Container) return new BukkitContainer((Container) block);
if(block instanceof Sign) return new BukkitSign((Sign) block);
if(block instanceof CreatureSpawner) return new BukkitMobSpawner((CreatureSpawner) block);
return new BukkitBlockState(block);
return new BukkitBlockEntity(block);
}
@Override
@@ -4,7 +4,7 @@ import com.dfsek.terra.api.block.state.Container;
import com.dfsek.terra.api.inventory.Inventory;
import com.dfsek.terra.bukkit.world.inventory.BukkitInventory;
public class BukkitContainer extends BukkitBlockState implements Container {
public class BukkitContainer extends BukkitBlockEntity implements Container {
protected BukkitContainer(org.bukkit.block.Container block) {
super(block);
@@ -7,7 +7,7 @@ import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
import org.bukkit.block.CreatureSpawner;
import org.jetbrains.annotations.NotNull;
public class BukkitMobSpawner extends BukkitBlockState implements MobSpawner {
public class BukkitMobSpawner extends BukkitBlockEntity implements MobSpawner {
protected BukkitMobSpawner(CreatureSpawner block) {
super(block);
}
@@ -5,7 +5,7 @@ import com.dfsek.terra.api.block.state.Sign;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("deprecation")
public class BukkitSign extends BukkitBlockState implements Sign {
public class BukkitSign extends BukkitBlockEntity implements Sign {
protected BukkitSign(org.bukkit.block.Sign block) {
super(block);
}
@@ -1,9 +1,8 @@
package com.dfsek.terra.fabric.mixin.implementations.block;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.fabric.util.FabricAdapter;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable;
@@ -14,8 +13,8 @@ import org.spongepowered.asm.mixin.Intrinsic;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@Mixin(BlockEntity.class)
@Implements(@Interface(iface = BlockState.class, prefix = "terra$", remap = Interface.Remap.NONE))
@Mixin(net.minecraft.block.entity.BlockEntity.class)
@Implements(@Interface(iface = BlockEntity.class, prefix = "terra$", remap = Interface.Remap.NONE))
public abstract class BlockEntityMixin {
@Final
@Shadow
@@ -52,7 +51,7 @@ public abstract class BlockEntityMixin {
}
public boolean terra$update(boolean applyPhysics) {
if(hasWorld()) world.getChunk(pos).setBlockEntity((BlockEntity) (Object) this);
if(hasWorld()) world.getChunk(pos).setBlockEntity((net.minecraft.block.entity.BlockEntity) (Object) this);
return true;
}
}
@@ -1,6 +1,7 @@
package com.dfsek.terra.fabric.mixin.implementations.world;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.terra.api.vector.Vector3;
@@ -58,7 +59,7 @@ public abstract class ChunkRegionMixin {
return (Chunk) ((ChunkRegion) (Object) this).getChunk(x, z);
}
public com.dfsek.terra.api.block.state.BlockState terraWorld$getBlockState(int x, int y, int z) {
public BlockEntity terraWorld$getBlockState(int x, int y, int z) {
return FabricUtil.createState((WorldAccess) this, new BlockPos(x, y, z));
}
@@ -1,6 +1,7 @@
package com.dfsek.terra.fabric.mixin.implementations.world;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.terra.api.vector.Vector3;
@@ -40,7 +41,7 @@ public abstract class ServerWorldMixin {
return (Chunk) ((ServerWorld) (Object) this).getChunk(x, z);
}
public com.dfsek.terra.api.block.state.BlockState terra$getBlockState(int x, int y, int z) {
public BlockEntity terra$getBlockState(int x, int y, int z) {
return FabricUtil.createState((WorldAccess) this, new BlockPos(x, y, z));
}
@@ -1,6 +1,6 @@
package com.dfsek.terra.fabric.util;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.api.block.state.Container;
import com.dfsek.terra.api.block.state.MobSpawner;
import com.dfsek.terra.api.block.state.Sign;
@@ -13,7 +13,6 @@ import com.dfsek.terra.fabric.config.PostLoadCompatibilityOptions;
import com.dfsek.terra.fabric.config.PreLoadCompatibilityOptions;
import com.dfsek.terra.fabric.mixin.access.BiomeEffectsAccessor;
import com.mojang.serialization.Lifecycle;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.block.entity.LootableContainerBlockEntity;
import net.minecraft.block.entity.MobSpawnerBlockEntity;
import net.minecraft.block.entity.SignBlockEntity;
@@ -141,8 +140,8 @@ public final class FabricUtil {
}
}
public static BlockState createState(WorldAccess worldAccess, BlockPos pos) {
BlockEntity entity = worldAccess.getBlockEntity(pos);
public static BlockEntity createState(WorldAccess worldAccess, BlockPos pos) {
net.minecraft.block.entity.BlockEntity entity = worldAccess.getBlockEntity(pos);
if(entity instanceof SignBlockEntity) {
return (Sign) entity;
} else if(entity instanceof MobSpawnerBlockEntity) {
@@ -1,10 +1,10 @@
package com.dfsek.terra.platform;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.api.vector.Vector3;
public class DirectBlockState implements BlockState {
public class DirectBlockEntity implements BlockEntity {
@Override
public Vector3 getPosition() {
return null;
@@ -2,7 +2,7 @@ package com.dfsek.terra.platform;
import com.dfsek.terra.DirectUtils;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.terra.api.vector.Vector3;
@@ -67,7 +67,7 @@ public class DirectWorld implements World {
}
@Override
public BlockState getBlockState(int x, int y, int z) {
public BlockEntity getBlockState(int x, int y, int z) {
return null;
}