mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-03 08:25:31 +00:00
Successful default config load in Fabric
This commit is contained in:
parent
a3add9b20f
commit
2c15a9fc0c
@ -1,31 +1,34 @@
|
||||
package com.dfsek.terra.api.gaea.lang;
|
||||
|
||||
|
||||
import com.dfsek.tectonic.config.Configuration;
|
||||
import com.dfsek.terra.api.generic.CommandSender;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class Language {
|
||||
private final Configuration configuration;
|
||||
public Language(File file) throws IOException {
|
||||
load(file);
|
||||
}
|
||||
public void load(@NotNull File file) throws IOException {
|
||||
configuration = new Configuration(new FileInputStream(file));
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
public Message getMessage(String id) {
|
||||
Object m = null;
|
||||
Message temp;
|
||||
if(m instanceof List) {
|
||||
temp = new MultiLineMessage((List<String>) m);
|
||||
} else if(m instanceof String) {
|
||||
temp = new SingleLineMessage((String) m);
|
||||
} else return new SingleLineMessage("message:" + id + ":translation_undefined");
|
||||
if(temp.isEmpty()) return new SingleLineMessage("message:" + id + ":translation_undefined");
|
||||
Message temp = null;
|
||||
if(configuration.contains(id)) {
|
||||
Object m = configuration.get(id);
|
||||
|
||||
if(m instanceof List) {
|
||||
temp = new MultiLineMessage((List<String>) m);
|
||||
} else if(m instanceof String) {
|
||||
temp = new SingleLineMessage((String) m);
|
||||
} else return new SingleLineMessage("message:" + id + ":translation_undefined");
|
||||
}
|
||||
if(temp == null || temp.isEmpty()) return new SingleLineMessage("message:" + id + ":translation_undefined");
|
||||
return temp;
|
||||
}
|
||||
public void log(String messageID, Level level, Logger logger, String... args) {
|
||||
|
@ -29,7 +29,10 @@ public final class LangUtil {
|
||||
Debug.error("Report this to Terra!");
|
||||
}
|
||||
try {
|
||||
language = new Language(new File(main.getDataFolder(), "lang" + File.separator + langID + ".yml"));
|
||||
File file1 = new File(file, langID + ".yml");
|
||||
logger.info(file1.getAbsolutePath());
|
||||
language = new Language(file1);
|
||||
logger.info("Loaded language " + langID);
|
||||
} catch(IOException e) {
|
||||
logger.severe("Unable to load language: " + langID);
|
||||
e.printStackTrace();
|
||||
|
@ -37,12 +37,14 @@ dependencies {
|
||||
implementation("com.dfsek:Tectonic:1.0.3")
|
||||
implementation("net.jafama:jafama:2.3.2")
|
||||
|
||||
compileOnly("com.googlecode.json-simple:json-simple:1.1")
|
||||
implementation("com.googlecode.json-simple:json-simple:1.1")
|
||||
|
||||
implementation("com.google.guava:guava:30.0-jre")
|
||||
|
||||
compileOnly("org.jetbrains:annotations:20.1.0")
|
||||
|
||||
implementation("org.yaml:snakeyaml:1.27")
|
||||
|
||||
// To change the versions see the gradle.properties file
|
||||
minecraft("com.mojang:minecraft:1.16.4")
|
||||
mappings("net.fabricmc:yarn:1.16.4+build.6:v2")
|
||||
|
@ -2,17 +2,23 @@ package com.dfsek.terra.fabric;
|
||||
|
||||
import com.dfsek.tectonic.loading.TypeRegistry;
|
||||
import com.dfsek.terra.TerraWorld;
|
||||
import com.dfsek.terra.api.GenericLoaders;
|
||||
import com.dfsek.terra.api.gaea.lang.Language;
|
||||
import com.dfsek.terra.api.generic.TerraPlugin;
|
||||
import com.dfsek.terra.api.generic.inventory.ItemHandle;
|
||||
import com.dfsek.terra.api.generic.world.World;
|
||||
import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||
import com.dfsek.terra.config.base.PluginConfig;
|
||||
import com.dfsek.terra.config.lang.LangUtil;
|
||||
import com.dfsek.terra.fabric.inventory.FabricItemHandle;
|
||||
import com.dfsek.terra.fabric.mixin.GeneratorTypeAccessor;
|
||||
import com.dfsek.terra.fabric.world.FabricBiome;
|
||||
import com.dfsek.terra.fabric.world.FabricWorldHandle;
|
||||
import com.dfsek.terra.registry.ConfigRegistry;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.minecraft.client.world.GeneratorType;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
@ -23,7 +29,7 @@ import net.minecraft.world.gen.chunk.FlatChunkGeneratorConfig;
|
||||
import net.minecraft.world.gen.chunk.StructuresConfig;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URISyntaxException;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.Optional;
|
||||
import java.util.logging.Logger;
|
||||
@ -38,10 +44,13 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
return new FlatChunkGenerator(config);
|
||||
}
|
||||
};
|
||||
|
||||
private final GenericLoaders genericLoaders = new GenericLoaders(this);
|
||||
private final Logger logger = Logger.getLogger("Terra");
|
||||
private final ItemHandle itemHandle = new FabricItemHandle();
|
||||
private final WorldHandle worldHandle = new FabricWorldHandle();
|
||||
private final ConfigRegistry registry = new ConfigRegistry();
|
||||
private File config;
|
||||
|
||||
@Override
|
||||
public WorldHandle getWorldHandle() {
|
||||
@ -70,12 +79,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
|
||||
@Override
|
||||
public File getDataFolder() {
|
||||
try {
|
||||
return new File(new File(TerraFabricPlugin.class.getProtectionDomain().getCodeSource().getLocation()
|
||||
.toURI()), "terra");
|
||||
} catch(URISyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return config;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -85,7 +89,11 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
|
||||
@Override
|
||||
public Language getLanguage() {
|
||||
return null;
|
||||
try {
|
||||
return new Language(new File(getDataFolder(), "lang/en_us/yml"));
|
||||
} catch(IOException e) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -105,14 +113,19 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
|
||||
@Override
|
||||
public void register(TypeRegistry registry) {
|
||||
|
||||
genericLoaders.register(registry);
|
||||
registry
|
||||
.registerLoader(BlockData.class, (t, o, l) -> worldHandle.createBlockData((String) o))
|
||||
.registerLoader(MaterialData.class, (t, o, l) -> worldHandle.createMaterialData((String) o))
|
||||
.registerLoader(com.dfsek.terra.api.generic.world.Biome.class, (t, o, l) -> new FabricBiome());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
config = new File(FabricLoader.getInstance().getConfigDir().toFile(), "Terra");
|
||||
LangUtil.load("en_us", this);
|
||||
logger.info("Initializing Terra...");
|
||||
GeneratorTypeAccessor.getValues().add(TERRA);
|
||||
GeneratorTypeAccessor.accessor$getValues().add(TERRA);
|
||||
registry.loadAll(this);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import java.util.List;
|
||||
@Mixin(GeneratorType.class)
|
||||
public interface GeneratorTypeAccessor {
|
||||
@Accessor("VALUES")
|
||||
static List<GeneratorType> getValues() {
|
||||
static List<GeneratorType> accessor$getValues() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,10 @@
|
||||
package com.dfsek.terra.fabric.world;
|
||||
|
||||
import com.dfsek.terra.api.generic.world.Biome;
|
||||
|
||||
public class FabricBiome implements Biome {
|
||||
@Override
|
||||
public Object getHandle() {
|
||||
return null;
|
||||
}
|
||||
}
|
@ -5,6 +5,9 @@ import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||
import com.dfsek.terra.api.generic.world.block.Block;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||
import com.mojang.brigadier.StringReader;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import net.minecraft.command.argument.BlockArgumentParser;
|
||||
|
||||
public class FabricWorldHandle implements WorldHandle {
|
||||
@Override
|
||||
@ -23,13 +26,18 @@ public class FabricWorldHandle implements WorldHandle {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockData createBlockData(String data) {
|
||||
return null;
|
||||
public FabricBlockData createBlockData(String data) {
|
||||
BlockArgumentParser parser = new BlockArgumentParser(new StringReader(data), true);
|
||||
try {
|
||||
return new FabricBlockData(parser.parse(true).getBlockState());
|
||||
} catch(CommandSyntaxException e) {
|
||||
throw new IllegalArgumentException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialData createMaterialData(String data) {
|
||||
return null;
|
||||
return new FabricMaterialData(createBlockData(data).getHandle().getMaterial());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,10 +4,10 @@
|
||||
"package": "com.dfsek.terra.fabric.mixin",
|
||||
"compatibilityLevel": "JAVA_8",
|
||||
"mixins": [],
|
||||
"client": [],
|
||||
"server": [
|
||||
"client": [
|
||||
"GeneratorTypeAccessor"
|
||||
],
|
||||
"server": [],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
|
@ -1,50 +0,0 @@
|
||||
plugins {
|
||||
java
|
||||
maven
|
||||
id("org.spongepowered.plugin").version("0.9.0")
|
||||
id("com.github.johnrengelman.shadow")
|
||||
}
|
||||
|
||||
group = "com.dfsek.terra"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
jcenter()
|
||||
maven { url = uri("https://repo.codemc.org/repository/maven-public") }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile("org.spongepowered:spongeapi:7.2.0")
|
||||
|
||||
testImplementation("org.junit.jupiter:junit-jupiter-api:5.7.0")
|
||||
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.7.0")
|
||||
|
||||
implementation("org.apache.commons:commons-rng-core:1.3")
|
||||
|
||||
implementation("com.scireum:parsii:1.2.1")
|
||||
implementation("com.dfsek:Tectonic:1.0.3")
|
||||
implementation("net.jafama:jafama:2.3.2")
|
||||
|
||||
compileOnly("com.googlecode.json-simple:json-simple:1.1")
|
||||
|
||||
implementation("com.google.guava:guava:30.0-jre")
|
||||
|
||||
compileOnly("org.jetbrains:annotations:20.1.0")
|
||||
|
||||
implementation(project(":common"))
|
||||
}
|
||||
|
||||
tasks.named<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar>("shadowJar") {
|
||||
|
||||
archiveClassifier.set("")
|
||||
archiveBaseName.set("Terra")
|
||||
setVersion(project.version)
|
||||
relocate("org.apache.commons", "com.dfsek.terra.lib.commons")
|
||||
relocate("org.bstats.bukkit", "com.dfsek.terra.lib.bstats")
|
||||
relocate("parsii", "com.dfsek.terra.lib.parsii")
|
||||
relocate("io.papermc.lib", "com.dfsek.terra.lib.paperlib")
|
||||
relocate("net.jafama", "com.dfsek.terra.lib.jafama")
|
||||
relocate("com.dfsek.tectonic", "com.dfsek.terra.lib.tectonic")
|
||||
relocate("net.jafama", "com.dfsek.terra.lib.jafama")
|
||||
minimize()
|
||||
}
|
@ -1,112 +0,0 @@
|
||||
package com.dfsek.terra.sponge;
|
||||
|
||||
import com.dfsek.tectonic.loading.TypeRegistry;
|
||||
import com.dfsek.terra.TerraWorld;
|
||||
import com.dfsek.terra.api.gaea.lang.Language;
|
||||
import com.dfsek.terra.api.generic.TerraPlugin;
|
||||
import com.dfsek.terra.api.generic.inventory.ItemHandle;
|
||||
import com.dfsek.terra.api.generic.world.World;
|
||||
import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||
import com.dfsek.terra.config.base.PluginConfig;
|
||||
import com.dfsek.terra.registry.ConfigRegistry;
|
||||
import com.dfsek.terra.sponge.world.SpongeWorldHandle;
|
||||
import com.google.inject.Inject;
|
||||
import org.spongepowered.api.GameRegistry;
|
||||
import org.spongepowered.api.config.ConfigDir;
|
||||
import org.spongepowered.api.event.Listener;
|
||||
import org.spongepowered.api.event.game.state.GameStartedServerEvent;
|
||||
import org.spongepowered.api.plugin.Plugin;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@Plugin(id = "terra", name = "Terra", version = "@VERSION", description = "Terra world generator")
|
||||
public class TerraSpongePlugin implements TerraPlugin {
|
||||
|
||||
private final ConfigRegistry registry = new ConfigRegistry();
|
||||
|
||||
private final WorldHandle worldHandle = new SpongeWorldHandle(this);
|
||||
|
||||
@Inject
|
||||
private Logger logger;
|
||||
private boolean enabled = false;
|
||||
|
||||
@Inject
|
||||
@ConfigDir(sharedRoot = false)
|
||||
private File configDir;
|
||||
|
||||
@Inject
|
||||
private GameRegistry gameRegistry;
|
||||
|
||||
public GameRegistry getGameRegistry() {
|
||||
return gameRegistry;
|
||||
}
|
||||
|
||||
@Listener
|
||||
public void serverStart(GameStartedServerEvent event) {
|
||||
logger.info("Hello Sponge!");
|
||||
logger.info("Config dir is: " + configDir);
|
||||
registry.loadAll(this);
|
||||
enabled = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorldHandle getWorldHandle() {
|
||||
return worldHandle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TerraWorld getWorld(World world) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Logger getLogger() {
|
||||
return logger;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PluginConfig getTerraConfig() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getDataFolder() {
|
||||
return configDir;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDebug() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Language getLanguage() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigRegistry getRegistry() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reload() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemHandle getItemHandle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(TypeRegistry registry) {
|
||||
|
||||
}
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
package com.dfsek.terra.sponge.mixin;
|
||||
|
||||
public class BlockStateParserMixin {
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
package com.dfsek.terra.sponge.world;
|
||||
|
||||
import com.dfsek.terra.api.generic.world.Chunk;
|
||||
import com.dfsek.terra.api.generic.world.World;
|
||||
import com.dfsek.terra.api.generic.world.block.Block;
|
||||
|
||||
public class SpongeChunk implements Chunk {
|
||||
private final org.spongepowered.api.world.Chunk delegate;
|
||||
|
||||
public SpongeChunk(org.spongepowered.api.world.Chunk delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getX() {
|
||||
return delegate.getPosition().getX();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getZ() {
|
||||
return delegate.getPosition().getZ();
|
||||
}
|
||||
|
||||
@Override
|
||||
public World getWorld() {
|
||||
return new SpongeWorld(delegate.getWorld());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block getBlock(int x, int y, int z) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.spongepowered.api.world.Chunk getHandle() {
|
||||
return delegate;
|
||||
}
|
||||
}
|
@ -1,87 +0,0 @@
|
||||
package com.dfsek.terra.sponge.world;
|
||||
|
||||
import com.dfsek.terra.api.generic.Entity;
|
||||
import com.dfsek.terra.api.generic.Tree;
|
||||
import com.dfsek.terra.api.generic.generator.ChunkGenerator;
|
||||
import com.dfsek.terra.api.generic.world.Chunk;
|
||||
import com.dfsek.terra.api.generic.world.World;
|
||||
import com.dfsek.terra.api.generic.world.block.Block;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.sponge.world.generator.SpongeChunkGenerator;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class SpongeWorld implements World {
|
||||
private final org.spongepowered.api.world.World delegate;
|
||||
|
||||
public SpongeWorld(org.spongepowered.api.world.World delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getSeed() {
|
||||
return delegate.getProperties().getSeed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxHeight() {
|
||||
return 255;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChunkGenerator getGenerator() {
|
||||
return new SpongeChunkGenerator(delegate.getWorldGenerator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return delegate.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getUID() {
|
||||
return delegate.getUniqueId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChunkGenerated(int x, int z) {
|
||||
return delegate.loadChunk(x, 0, z, false).isPresent(); // TODO: better implementation
|
||||
}
|
||||
|
||||
@Override
|
||||
public Chunk getChunkAt(int x, int z) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getWorldFolder() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block getBlockAt(int x, int y, int z) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block getBlockAt(Location l) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateTree(Location l, Tree vanillaTreeType) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spawn(Location location, Class<Entity> entity, Consumer<Entity> consumer) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getHandle() {
|
||||
return null;
|
||||
}
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
package com.dfsek.terra.sponge.world;
|
||||
|
||||
import com.dfsek.terra.api.generic.Tree;
|
||||
import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||
import com.dfsek.terra.api.generic.world.block.Block;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||
import com.dfsek.terra.sponge.TerraSpongePlugin;
|
||||
import com.dfsek.terra.sponge.world.block.SpongeBlockData;
|
||||
|
||||
public class SpongeWorldHandle implements WorldHandle {
|
||||
private final TerraSpongePlugin main;
|
||||
|
||||
public SpongeWorldHandle(TerraSpongePlugin main) {
|
||||
this.main = main;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockData(Block block, BlockData data, boolean physics) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockData getBlockData(Block block) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialData getType(Block block) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockData createBlockData(String data) {
|
||||
return new SpongeBlockData(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialData createMaterialData(String data) {
|
||||
return createBlockData(data).getMaterial();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tree getTree(String id) {
|
||||
return null;
|
||||
}
|
||||
}
|
@ -1,77 +0,0 @@
|
||||
package com.dfsek.terra.sponge.world.block;
|
||||
|
||||
import com.dfsek.terra.api.generic.world.block.Block;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockFace;
|
||||
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.sponge.world.SpongeWorld;
|
||||
import org.spongepowered.api.world.World;
|
||||
|
||||
public class SpongeBlock implements Block {
|
||||
private final org.spongepowered.api.world.Location<World> delegate;
|
||||
|
||||
public SpongeBlock(org.spongepowered.api.world.Location<World> delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockData(BlockData data, boolean physics) {
|
||||
delegate.setBlock(((SpongeBlockData) data).getHandle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockData getBlockData() {
|
||||
return new SpongeBlockData(delegate.getBlock());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block getRelative(BlockFace face) {
|
||||
return new SpongeBlock(delegate.copy().add(face.getModX(), face.getModY(), face.getModZ()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block getRelative(BlockFace face, int len) {
|
||||
return new SpongeBlock(delegate.copy().add(face.getModX() * len, face.getModY() * len, face.getModZ() * len));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
return delegate.hasBlock();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getLocation() {
|
||||
return new Location(new SpongeWorld(delegate.getExtent()), delegate.getX(), delegate.getY(), delegate.getZ());
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialData getType() {
|
||||
return new SpongeMaterialData(delegate.getBlockType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getX() {
|
||||
return delegate.getBlockX();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getZ() {
|
||||
return delegate.getBlockZ();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getY() {
|
||||
return delegate.getBlockY();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPassable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.spongepowered.api.world.Location<World> getHandle() {
|
||||
return delegate;
|
||||
}
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
package com.dfsek.terra.sponge.world.block;
|
||||
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||
import org.spongepowered.api.block.BlockState;
|
||||
|
||||
public class SpongeBlockData implements BlockData {
|
||||
private final BlockState delegate;
|
||||
|
||||
public SpongeBlockData(BlockState delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialData getMaterial() {
|
||||
return new SpongeMaterialData(delegate.getType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matches(MaterialData materialData) {
|
||||
return ((SpongeMaterialData) materialData).getHandle().equals(delegate.getType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockData clone() {
|
||||
try {
|
||||
return (BlockData) super.clone();
|
||||
} catch(CloneNotSupportedException e) {
|
||||
throw new Error(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getHandle() {
|
||||
return delegate;
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
package com.dfsek.terra.sponge.world.block;
|
||||
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||
import org.spongepowered.api.block.BlockType;
|
||||
|
||||
public class SpongeMaterialData implements MaterialData {
|
||||
private final BlockType delegate;
|
||||
|
||||
public SpongeMaterialData(BlockType delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matches(MaterialData other) {
|
||||
return delegate.equals(((SpongeMaterialData) other).getHandle());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matches(BlockData other) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSolid() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAir() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxDurability() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockData createBlockData() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockType getHandle() {
|
||||
return delegate;
|
||||
}
|
||||
}
|
@ -1,66 +0,0 @@
|
||||
package com.dfsek.terra.sponge.world.generator;
|
||||
|
||||
import com.dfsek.terra.api.generic.generator.BlockPopulator;
|
||||
import com.dfsek.terra.api.generic.generator.ChunkGenerator;
|
||||
import com.dfsek.terra.api.generic.generator.TerraChunkGenerator;
|
||||
import com.dfsek.terra.api.generic.world.BiomeGrid;
|
||||
import com.dfsek.terra.api.generic.world.World;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.spongepowered.api.world.gen.WorldGenerator;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class SpongeChunkGenerator implements ChunkGenerator {
|
||||
private final WorldGenerator delegate;
|
||||
|
||||
public SpongeChunkGenerator(WorldGenerator delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isParallelCapable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldGenerateCaves() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldGenerateDecorations() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldGenerateMobs() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldGenerateStructures() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChunkData generateChunkData(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BlockPopulator> getDefaultPopulators(World world) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable TerraChunkGenerator getTerraGenerator() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorldGenerator getHandle() {
|
||||
return delegate;
|
||||
}
|
||||
}
|
@ -33,6 +33,3 @@ gradleEnterprise {
|
||||
// publishAlwaysIf(true)
|
||||
}
|
||||
}
|
||||
include("sponge")
|
||||
include("platforms:sponge")
|
||||
findProject(":platforms:sponge")?.name = "sponge"
|
||||
|
Loading…
x
Reference in New Issue
Block a user