mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-03 16:35:50 +00:00
feat: more works
This commit is contained in:
parent
02a7363f01
commit
b29ba2db70
@ -29,6 +29,7 @@ public class AllayPlatform extends AbstractPlatform {
|
|||||||
@Override
|
@Override
|
||||||
public @NotNull WorldHandle getWorldHandle() {
|
public @NotNull WorldHandle getWorldHandle() {
|
||||||
// TODO
|
// TODO
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -39,5 +40,6 @@ public class AllayPlatform extends AbstractPlatform {
|
|||||||
@Override
|
@Override
|
||||||
public @NotNull ItemHandle getItemHandle() {
|
public @NotNull ItemHandle getItemHandle() {
|
||||||
// TODO
|
// TODO
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
package org.allaymc.terra.allay;
|
||||||
|
|
||||||
|
import org.allaymc.api.utils.Identifier;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public class JeBlockState {
|
||||||
|
protected final Identifier identifier;
|
||||||
|
protected final Map<String, String> properties;
|
||||||
|
|
||||||
|
public static JeBlockState fromString(String data) {
|
||||||
|
// TODO
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JeBlockState(Identifier identifier, Map<String, String> properties) {
|
||||||
|
this.identifier = identifier;
|
||||||
|
this.properties = properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(boolean includeProperties) {
|
||||||
|
if(!includeProperties) return identifier.toString();
|
||||||
|
StringBuilder builder = new StringBuilder(identifier.toString()).append(";");
|
||||||
|
properties.forEach((k, v) -> builder.append(k).append("=").append(v).append(";"));
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasProperty(String name) {
|
||||||
|
return properties.containsKey(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return toString(true);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package org.allaymc.terra.allay;
|
||||||
|
|
||||||
|
import org.allaymc.api.block.type.BlockState;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public final class Mapping {
|
||||||
|
|
||||||
|
public static void init() {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JeBlockState blockStateBeToJe(BlockState blockState) {
|
||||||
|
// TODO
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BlockState blockStateJeToBe(JeBlockState jeBlockState) {
|
||||||
|
// TODO
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String enchantmentIdBeToJe(String beEnchantmentId) {
|
||||||
|
// TODO
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -29,6 +29,6 @@ public class TerraAllayPlugin extends Plugin {
|
|||||||
|
|
||||||
// TODO: Adapt command manager
|
// TODO: Adapt command manager
|
||||||
|
|
||||||
|
Mapping.init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.world.biome.PlatformBiome;
|
||||||
|
import org.allaymc.api.world.biome.BiomeType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayBiome(BiomeType allayBiome) implements PlatformBiome {
|
||||||
|
@Override
|
||||||
|
public BiomeType getHandle() {
|
||||||
|
return allayBiome;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.block.BlockType;
|
||||||
|
import com.dfsek.terra.api.block.state.properties.Property;
|
||||||
|
|
||||||
|
import org.allaymc.api.block.type.BlockState;
|
||||||
|
import org.allaymc.api.block.type.BlockTypes;
|
||||||
|
import org.allaymc.terra.allay.JeBlockState;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayBlockState(BlockState allayBlockState, JeBlockState jeBlockState) implements com.dfsek.terra.api.block.state.BlockState {
|
||||||
|
|
||||||
|
public static final AllayBlockState AIR = new AllayBlockState(BlockTypes.AIR_TYPE.getDefaultState(), JeBlockState.fromString("minecraft:air"));
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean matches(com.dfsek.terra.api.block.state.BlockState other) {
|
||||||
|
return ((AllayBlockState) other).allayBlockState == this.allayBlockState;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends Comparable<T>> boolean has(Property<T> property) {
|
||||||
|
// TODO
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends Comparable<T>> T get(Property<T> property) {
|
||||||
|
// TODO
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends Comparable<T>> com.dfsek.terra.api.block.state.BlockState set(Property<T> property, T value) {
|
||||||
|
// TODO
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockType getBlockType() {
|
||||||
|
return new AllayBlockType(allayBlockState.getBlockType());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getAsString(boolean properties) {
|
||||||
|
return jeBlockState.toString(properties);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAir() {
|
||||||
|
return allayBlockState.getBlockType() == BlockTypes.AIR_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getHandle() {
|
||||||
|
return allayBlockState;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
|
|
||||||
|
import org.allaymc.api.block.type.BlockType;
|
||||||
|
import org.allaymc.api.block.type.BlockTypes;
|
||||||
|
import org.allaymc.terra.allay.Mapping;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayBlockType(BlockType<?> allayBlockType) implements com.dfsek.terra.api.block.BlockType {
|
||||||
|
@Override
|
||||||
|
public BlockState getDefaultState() {
|
||||||
|
return new AllayBlockState(allayBlockType.getDefaultState(), Mapping.blockStateBeToJe(allayBlockType.getDefaultState()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSolid() {
|
||||||
|
return allayBlockType.getMaterial().isSolid();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isWater() {
|
||||||
|
return allayBlockType == BlockTypes.WATER_TYPE || allayBlockType == BlockTypes.FLOWING_WATER_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockType<?> getHandle() {
|
||||||
|
return allayBlockType;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
|
import com.dfsek.terra.api.world.ServerWorld;
|
||||||
|
|
||||||
|
import org.allaymc.api.world.chunk.Chunk;
|
||||||
|
import org.allaymc.terra.allay.Mapping;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayChunk(ServerWorld world, Chunk allayChunk) implements com.dfsek.terra.api.world.chunk.Chunk {
|
||||||
|
@Override
|
||||||
|
public void setBlock(int x, int y, int z, BlockState data, boolean physics) {
|
||||||
|
allayChunk.setBlockState(x, y, z, ((AllayBlockState)data).allayBlockState());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull BlockState getBlock(int x, int y, int z) {
|
||||||
|
var blockState = allayChunk.getBlockState(x, y, z);
|
||||||
|
return new AllayBlockState(blockState, Mapping.blockStateBeToJe(blockState));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getX() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getZ() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ServerWorld getWorld() {
|
||||||
|
return world;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Chunk getHandle() {
|
||||||
|
return allayChunk;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.inventory.ItemStack;
|
||||||
|
import com.dfsek.terra.api.inventory.item.Enchantment;
|
||||||
|
|
||||||
|
import org.allaymc.api.item.enchantment.EnchantmentType;
|
||||||
|
import org.allaymc.terra.allay.Mapping;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayEnchantment(EnchantmentType allayEnchantment) implements Enchantment {
|
||||||
|
@Override
|
||||||
|
public boolean canEnchantItem(ItemStack itemStack) {
|
||||||
|
return ((AllayItemStack)itemStack).allayItemStack().checkEnchantmentCompatibility(allayEnchantment);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean conflictsWith(Enchantment other) {
|
||||||
|
return ((AllayEnchantment)other).allayEnchantment.checkCompatibility(allayEnchantment);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getID() {
|
||||||
|
return Mapping.enchantmentIdBeToJe(allayEnchantment.getIdentifier().toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxLevel() {
|
||||||
|
return allayEnchantment.getMaxLevel();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnchantmentType getHandle() {
|
||||||
|
return allayEnchantment;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.entity.EntityType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* 我们暂时不支持实体,因为端本身都没实体ai,生成实体没有意义
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayEntityTypeHandle(String id) implements EntityType {
|
||||||
|
@Override
|
||||||
|
public String getHandle() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.inventory.item.Enchantment;
|
||||||
|
import com.dfsek.terra.api.inventory.item.ItemMeta;
|
||||||
|
|
||||||
|
import org.allaymc.api.item.ItemStack;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* 物品元数据。在allay中物品元数据没有单独的类,故直接使用ItemStack代替
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayItemMeta(ItemStack allayItemStack) implements ItemMeta {
|
||||||
|
@Override
|
||||||
|
public void addEnchantment(Enchantment enchantment, int level) {
|
||||||
|
var allayEnchantment = ((AllayEnchantment) enchantment).allayEnchantment();
|
||||||
|
allayItemStack.addEnchantment(allayEnchantment, (short) level);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Enchantment, Integer> getEnchantments() {
|
||||||
|
Map<Enchantment, Integer> results = new HashMap<>();
|
||||||
|
for (var allayEnchantmentInstance : allayItemStack.getEnchantments()) {
|
||||||
|
results.put(new AllayEnchantment(allayEnchantmentInstance.getType()), (int) allayEnchantmentInstance.getLevel());
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getHandle() {
|
||||||
|
return allayItemStack;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.inventory.Item;
|
||||||
|
import com.dfsek.terra.api.inventory.item.ItemMeta;
|
||||||
|
|
||||||
|
import org.allaymc.api.item.ItemStack;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayItemStack(ItemStack allayItemStack) implements com.dfsek.terra.api.inventory.ItemStack{
|
||||||
|
@Override
|
||||||
|
public int getAmount() {
|
||||||
|
return allayItemStack.getCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setAmount(int i) {
|
||||||
|
allayItemStack.setCount(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Item getType() {
|
||||||
|
return new AllayItemType(allayItemStack.getItemType());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemMeta getItemMeta() {
|
||||||
|
return new AllayItemMeta(allayItemStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setItemMeta(ItemMeta meta) {
|
||||||
|
var targetItem = ((AllayItemMeta) meta).allayItemStack();
|
||||||
|
allayItemStack.removeAllEnchantments();
|
||||||
|
for (var enchantment : targetItem.getEnchantments()) {
|
||||||
|
allayItemStack.addEnchantment(enchantment.getType(), enchantment.getLevel());
|
||||||
|
}
|
||||||
|
allayItemStack.setLore(targetItem.getLore());
|
||||||
|
allayItemStack.setDurability(targetItem.getDurability());
|
||||||
|
allayItemStack.setCustomName(targetItem.getCustomName());
|
||||||
|
allayItemStack.setMeta(targetItem.getMeta());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getHandle() {
|
||||||
|
return allayItemStack;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.inventory.Item;
|
||||||
|
|
||||||
|
import org.allaymc.api.item.type.ItemType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public final class AllayItemType implements Item {
|
||||||
|
private final ItemType<?> allayItemType;
|
||||||
|
private final double maxDurability;
|
||||||
|
|
||||||
|
public AllayItemType(ItemType<?> allayItemType) {
|
||||||
|
this.allayItemType = allayItemType;
|
||||||
|
// TODO: 感觉不太优雅,应该有更好的办法
|
||||||
|
this.maxDurability = allayItemType.createItemStack().getItemAttributes().maxDamage();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public com.dfsek.terra.api.inventory.ItemStack newItemStack(int amount) {
|
||||||
|
return new AllayItemStack(allayItemType.createItemStack(amount));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxDurability() {
|
||||||
|
return maxDurability;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemType<?> getHandle() {
|
||||||
|
return allayItemType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemType<?> allayItemType() {
|
||||||
|
return allayItemType;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
|
import com.dfsek.terra.api.world.chunk.generation.ProtoChunk;
|
||||||
|
|
||||||
|
import org.allaymc.api.world.chunk.Chunk;
|
||||||
|
import org.allaymc.terra.allay.Mapping;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayProtoChunk(Chunk allayChunk) implements ProtoChunk {
|
||||||
|
@Override
|
||||||
|
public int getMaxHeight() {
|
||||||
|
return allayChunk.getDimensionInfo().maxHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBlock(int x, int y, int z, @NotNull BlockState blockState) {
|
||||||
|
allayChunk.setBlockState(x, y, z, ((AllayBlockState)blockState).allayBlockState());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull BlockState getBlock(int x, int y, int z) {
|
||||||
|
var blockState = allayChunk.getBlockState(x, y, z);
|
||||||
|
return new AllayBlockState(blockState, Mapping.blockStateBeToJe(blockState));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Chunk getHandle() {
|
||||||
|
return allayChunk;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.block.entity.BlockEntity;
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
|
import com.dfsek.terra.api.entity.Entity;
|
||||||
|
import com.dfsek.terra.api.entity.EntityType;
|
||||||
|
import com.dfsek.terra.api.world.ServerWorld;
|
||||||
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
|
||||||
|
import com.dfsek.terra.api.world.chunk.generation.ProtoWorld;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayProtoWorld(ServerWorld serverWorld, int centerChunkX, int centerChunkZ) implements ProtoWorld {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ServerWorld getWorld() {
|
||||||
|
return serverWorld;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBlockState(int x, int y, int z, BlockState data, boolean physics) {
|
||||||
|
serverWorld.setBlockState(x, y, z, data, physics);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Entity spawnEntity(double x, double y, double z, EntityType entityType) {
|
||||||
|
// TODO
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getBlockState(int x, int y, int z) {
|
||||||
|
return serverWorld.getBlockState(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockEntity getBlockEntity(int x, int y, int z) {
|
||||||
|
// TODO
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ChunkGenerator getGenerator() {
|
||||||
|
return serverWorld.getGenerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BiomeProvider getBiomeProvider() {
|
||||||
|
return serverWorld.getBiomeProvider();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ConfigPack getPack() {
|
||||||
|
return serverWorld.getPack();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getSeed() {
|
||||||
|
return serverWorld.getSeed();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxHeight() {
|
||||||
|
return serverWorld.getMaxHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMinHeight() {
|
||||||
|
return serverWorld.getMinHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ServerWorld getHandle() {
|
||||||
|
return serverWorld;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package org.allaymc.terra.allay.delegate;
|
||||||
|
|
||||||
|
import java.awt.Dimension;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public record AllayServerWorld(Dimension allayDimension) {
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package org.allaymc.terra.allay.handle;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
|
import com.dfsek.terra.api.entity.EntityType;
|
||||||
|
import com.dfsek.terra.api.handle.WorldHandle;
|
||||||
|
|
||||||
|
import org.allaymc.terra.allay.JeBlockState;
|
||||||
|
import org.allaymc.terra.allay.Mapping;
|
||||||
|
import org.allaymc.terra.allay.delegate.AllayBlockState;
|
||||||
|
import org.allaymc.terra.allay.delegate.AllayEntityTypeHandle;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terra Project 2024/6/16
|
||||||
|
*
|
||||||
|
* @author daoge_cmd
|
||||||
|
*/
|
||||||
|
public class AllayWorldHandle implements WorldHandle {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull BlockState createBlockState(@NotNull String data) {
|
||||||
|
var jeBlockState = JeBlockState.fromString(data);
|
||||||
|
return new AllayBlockState(Mapping.blockStateJeToBe(jeBlockState), jeBlockState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull BlockState air() {
|
||||||
|
return AllayBlockState.AIR;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull EntityType getEntity(@NotNull String id) {
|
||||||
|
return new AllayEntityTypeHandle(id);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user