mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
Super basic Fabric stuff
This commit is contained in:
parent
27dbd494bd
commit
d84dd3a526
2
.gitignore
vendored
2
.gitignore
vendored
@ -137,3 +137,5 @@ build
|
|||||||
|
|
||||||
!lib/*.jar
|
!lib/*.jar
|
||||||
.idea/Terra.iml
|
.idea/Terra.iml
|
||||||
|
/run/
|
||||||
|
/run/
|
||||||
|
@ -27,6 +27,9 @@ repositories {
|
|||||||
maven { url = uri("http://maven.enginehub.org/repo/") }
|
maven { url = uri("http://maven.enginehub.org/repo/") }
|
||||||
maven { url = uri("https://repo.codemc.org/repository/maven-public") }
|
maven { url = uri("https://repo.codemc.org/repository/maven-public") }
|
||||||
maven { url = uri("https://papermc.io/repo/repository/maven-public/") }
|
maven { url = uri("https://papermc.io/repo/repository/maven-public/") }
|
||||||
|
maven { url = uri("https://maven.fabricmc.net/") }
|
||||||
|
gradlePluginPortal()
|
||||||
|
jcenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
|
@ -2,6 +2,8 @@ plugins {
|
|||||||
java
|
java
|
||||||
maven
|
maven
|
||||||
idea
|
idea
|
||||||
|
id("fabric-loom").version("0.5-SNAPSHOT")
|
||||||
|
id("com.github.johnrengelman.shadow")
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "com.dfsek.terra.bukkit"
|
group = "com.dfsek.terra.bukkit"
|
||||||
@ -11,6 +13,17 @@ repositories {
|
|||||||
maven { url = uri("http://maven.enginehub.org/repo/") }
|
maven { url = uri("http://maven.enginehub.org/repo/") }
|
||||||
maven { url = uri("https://repo.codemc.org/repository/maven-public") }
|
maven { url = uri("https://repo.codemc.org/repository/maven-public") }
|
||||||
maven { url = uri("https://papermc.io/repo/repository/maven-public/") }
|
maven { url = uri("https://papermc.io/repo/repository/maven-public/") }
|
||||||
|
jcenter()
|
||||||
|
maven {
|
||||||
|
name = "Fabric"
|
||||||
|
url = uri("https://maven.fabricmc.net/")
|
||||||
|
}
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
minecraft {
|
||||||
|
accessWidener("src/main/resources/terra.accesswidener")
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@ -29,4 +42,24 @@ dependencies {
|
|||||||
implementation("com.google.guava:guava:30.0-jre")
|
implementation("com.google.guava:guava:30.0-jre")
|
||||||
|
|
||||||
compileOnly("org.jetbrains:annotations:20.1.0")
|
compileOnly("org.jetbrains:annotations:20.1.0")
|
||||||
|
|
||||||
|
// 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")
|
||||||
|
modImplementation("net.fabricmc:fabric-loader:0.10.6+build.214")
|
||||||
|
|
||||||
|
// Fabric API. This is technically optional, but you probably want it anyway.
|
||||||
|
modImplementation("net.fabricmc.fabric-api:fabric-api:0.25.1+build.416-1.16")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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("parsii", "com.dfsek.terra.lib.parsii")
|
||||||
|
relocate("net.jafama", "com.dfsek.terra.lib.jafama")
|
||||||
|
relocate("com.dfsek.tectonic", "com.dfsek.terra.lib.tectonic")
|
||||||
|
minimize()
|
||||||
|
}
|
@ -8,12 +8,39 @@ import com.dfsek.terra.api.generic.inventory.ItemHandle;
|
|||||||
import com.dfsek.terra.api.generic.world.World;
|
import com.dfsek.terra.api.generic.world.World;
|
||||||
import com.dfsek.terra.api.generic.world.WorldHandle;
|
import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||||
import com.dfsek.terra.config.base.PluginConfig;
|
import com.dfsek.terra.config.base.PluginConfig;
|
||||||
|
import com.dfsek.terra.fabric.inventory.FabricItemHandle;
|
||||||
import com.dfsek.terra.registry.ConfigRegistry;
|
import com.dfsek.terra.registry.ConfigRegistry;
|
||||||
|
import net.fabricmc.api.ModInitializer;
|
||||||
|
import net.minecraft.client.world.GeneratorType;
|
||||||
|
import net.minecraft.util.registry.Registry;
|
||||||
|
import net.minecraft.world.biome.Biome;
|
||||||
|
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
||||||
|
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
|
||||||
|
import net.minecraft.world.gen.chunk.FlatChunkGenerator;
|
||||||
|
import net.minecraft.world.gen.chunk.FlatChunkGeneratorConfig;
|
||||||
|
import net.minecraft.world.gen.chunk.StructuresConfig;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public class TerraFabricPlugin implements TerraPlugin {
|
public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||||
|
private static final GeneratorType TERRA = new GeneratorType("terra") {
|
||||||
|
@Override
|
||||||
|
protected ChunkGenerator getChunkGenerator(Registry<Biome> biomeRegistry, Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry, long seed) {
|
||||||
|
FlatChunkGeneratorConfig config = new FlatChunkGeneratorConfig(
|
||||||
|
new StructuresConfig(Optional.empty(), Collections.emptyMap()), biomeRegistry);
|
||||||
|
config.updateLayerBlocks();
|
||||||
|
return new FlatChunkGenerator(config);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private final Logger logger = Logger.getLogger("Terra");
|
||||||
|
private final ItemHandle itemHandle = new FabricItemHandle();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WorldHandle getWorldHandle() {
|
public WorldHandle getWorldHandle() {
|
||||||
return null;
|
return null;
|
||||||
@ -31,7 +58,7 @@ public class TerraFabricPlugin implements TerraPlugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Logger getLogger() {
|
public Logger getLogger() {
|
||||||
return null;
|
return logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -73,4 +100,25 @@ public class TerraFabricPlugin implements TerraPlugin {
|
|||||||
public void register(TypeRegistry registry) {
|
public void register(TypeRegistry registry) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public void onInitialize() {
|
||||||
|
logger.info("Initializing Terra...");
|
||||||
|
Class<GeneratorType> generatorTypeClass = GeneratorType.class;
|
||||||
|
|
||||||
|
try {
|
||||||
|
Field values = generatorTypeClass.getDeclaredField("VALUES");
|
||||||
|
values.setAccessible(true);
|
||||||
|
|
||||||
|
Field modifiersField = Field.class.getDeclaredField("modifiers");
|
||||||
|
|
||||||
|
modifiersField.setAccessible(true);
|
||||||
|
modifiersField.setInt(values, values.getModifiers() & ~Modifier.FINAL);
|
||||||
|
|
||||||
|
((List<GeneratorType>) values.get(null)).add(TERRA); // TODO: This is incredibly yucky and should be replaced by Mixin as soon as possible.
|
||||||
|
} catch(NoSuchFieldException | IllegalAccessException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.dfsek.terra.fabric.inventory;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.generic.inventory.ItemHandle;
|
||||||
|
import com.dfsek.terra.api.generic.inventory.ItemStack;
|
||||||
|
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||||
|
|
||||||
|
public class FabricItemHandle implements ItemHandle {
|
||||||
|
@Override
|
||||||
|
public ItemStack newItemStack(MaterialData material, int amount) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
package com.dfsek.terra.fabric.inventory;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.generic.inventory.ItemStack;
|
||||||
|
import com.dfsek.terra.api.generic.inventory.item.ItemMeta;
|
||||||
|
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||||
|
|
||||||
|
public class FabricItemStack implements ItemStack {
|
||||||
|
net.minecraft.item.ItemStack delegate;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getAmount() {
|
||||||
|
return delegate.getCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setAmount(int i) {
|
||||||
|
delegate.setCount(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MaterialData getType() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack clone() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemMeta getItemMeta() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setItemMeta(ItemMeta meta) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getHandle() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.dfsek.terra.fabric.mixin;
|
||||||
|
|
||||||
|
import net.minecraft.client.world.GeneratorType;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mixin(GeneratorType.class)
|
||||||
|
public class GeneratorAccessor {
|
||||||
|
@Accessor("VALUES")
|
||||||
|
public static List<GeneratorType> getValues() {
|
||||||
|
throw new AssertionError();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package com.dfsek.terra.fabric.world;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class BlockStorage {
|
||||||
|
private final Block block;
|
||||||
|
private final Location location;
|
||||||
|
|
||||||
|
public BlockStorage(Block block, Location location) {
|
||||||
|
this.block = block;
|
||||||
|
this.location = location;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Block getBlock() {
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getLocation() {
|
||||||
|
return location;
|
||||||
|
}
|
||||||
|
|
||||||
|
public World getWorld() {
|
||||||
|
return ((FabricWorld) location.getWorld()).getHandle();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.dfsek.terra.fabric.world;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.generic.world.vector.Vector3;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
|
||||||
|
public final class FabricAdapters {
|
||||||
|
public static BlockPos fromVector(Vector3 v) {
|
||||||
|
return new BlockPos(v.getBlockX(), v.getBlockY(), v.getBlockZ());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,75 @@
|
|||||||
|
package com.dfsek.terra.fabric.world;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
public class FabricBlock implements Block {
|
||||||
|
private final BlockStorage delegate;
|
||||||
|
|
||||||
|
public FabricBlock(BlockStorage block) {
|
||||||
|
this.delegate = block;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBlockData(BlockData data, boolean physics) {
|
||||||
|
delegate.getWorld().setBlockState(FabricAdapters.fromVector(delegate.getLocation().getVector()), ((FabricBlockData) data).getHandle(), 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockData getBlockData() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Block getRelative(BlockFace face) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Block getRelative(BlockFace face, int len) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Location getLocation() {
|
||||||
|
return delegate.getLocation();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MaterialData getType() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getX() {
|
||||||
|
return delegate.getLocation().getBlockX();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getZ() {
|
||||||
|
return delegate.getLocation().getBlockZ();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getY() {
|
||||||
|
return delegate.getLocation().getBlockY();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPassable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockStorage getHandle() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package com.dfsek.terra.fabric.world;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||||
|
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
|
||||||
|
public class FabricBlockData implements BlockData {
|
||||||
|
private final BlockState delegate;
|
||||||
|
|
||||||
|
public FabricBlockData(BlockState delegate) {
|
||||||
|
this.delegate = delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MaterialData getMaterial() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean matches(MaterialData materialData) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockData clone() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getHandle() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.dfsek.terra.fabric.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 FabricChunk implements Chunk {
|
||||||
|
private final net.minecraft.world.chunk.Chunk chunk;
|
||||||
|
|
||||||
|
public FabricChunk(net.minecraft.world.chunk.Chunk chunk) {
|
||||||
|
this.chunk = chunk;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getX() {
|
||||||
|
return chunk.getPos().x;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getZ() {
|
||||||
|
return chunk.getPos().z;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public World getWorld() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Block getBlock(int x, int y, int z) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public net.minecraft.world.chunk.Chunk getHandle() {
|
||||||
|
return chunk;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package com.dfsek.terra.fabric.world;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||||
|
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||||
|
import net.minecraft.block.Material;
|
||||||
|
|
||||||
|
public class FabricMaterialData implements MaterialData {
|
||||||
|
private final Material delegate;
|
||||||
|
|
||||||
|
public FabricMaterialData(Material delegate) {
|
||||||
|
this.delegate = delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean matches(MaterialData other) {
|
||||||
|
return delegate.equals(((FabricMaterialData) other).getHandle());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean matches(BlockData other) {
|
||||||
|
return delegate.equals(((FabricMaterialData) other.getMaterial()).getHandle());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSolid() {
|
||||||
|
return delegate.isSolid();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAir() {
|
||||||
|
return delegate.blocksMovement(); // TODO: better impl
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxDurability() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockData createBlockData() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Material getHandle() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,86 @@
|
|||||||
|
package com.dfsek.terra.fabric.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 java.io.File;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
public class FabricWorld implements World {
|
||||||
|
private final net.minecraft.world.World delegate;
|
||||||
|
|
||||||
|
public FabricWorld(net.minecraft.world.World delegate) {
|
||||||
|
this.delegate = delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getSeed() {
|
||||||
|
return 1234;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxHeight() {
|
||||||
|
return delegate.getDimensionHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ChunkGenerator getGenerator() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return delegate.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UUID getUID() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isChunkGenerated(int x, int z) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@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 net.minecraft.world.World getHandle() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.dfsek.terra.fabric.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;
|
||||||
|
|
||||||
|
public class FabricWorldHandle implements WorldHandle {
|
||||||
|
@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 null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MaterialData createMaterialData(String data) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Tree getTree(String id) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
package com.dfsek.terra.fabric.world.generator;
|
||||||
|
|
||||||
|
import com.mojang.serialization.Codec;
|
||||||
|
import net.minecraft.world.BlockView;
|
||||||
|
import net.minecraft.world.ChunkRegion;
|
||||||
|
import net.minecraft.world.Heightmap;
|
||||||
|
import net.minecraft.world.WorldAccess;
|
||||||
|
import net.minecraft.world.biome.source.BiomeSource;
|
||||||
|
import net.minecraft.world.chunk.Chunk;
|
||||||
|
import net.minecraft.world.gen.StructureAccessor;
|
||||||
|
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
||||||
|
import net.minecraft.world.gen.chunk.StructuresConfig;
|
||||||
|
|
||||||
|
public class FabricChunkGenerator extends ChunkGenerator {
|
||||||
|
public FabricChunkGenerator(BiomeSource biomeSource, StructuresConfig structuresConfig) {
|
||||||
|
super(biomeSource, structuresConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FabricChunkGenerator(BiomeSource populationSource, BiomeSource biomeSource, StructuresConfig structuresConfig, long worldSeed) {
|
||||||
|
super(populationSource, biomeSource, structuresConfig, worldSeed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Codec<? extends ChunkGenerator> getCodec() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ChunkGenerator withSeed(long seed) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buildSurface(ChunkRegion region, Chunk chunk) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void populateNoise(WorldAccess world, StructureAccessor accessor, Chunk chunk) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getHeight(int x, int z, Heightmap.Type heightmapType) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockView getColumnSample(int x, int z) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
BIN
platforms/fabric/src/main/resources/assets/terra/icon.png
Normal file
BIN
platforms/fabric/src/main/resources/assets/terra/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 142 KiB |
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"generator.terra": "Terra"
|
||||||
|
}
|
||||||
|
|
30
platforms/fabric/src/main/resources/fabric.mod.json
Normal file
30
platforms/fabric/src/main/resources/fabric.mod.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"schemaVersion": 1,
|
||||||
|
"id": "terra",
|
||||||
|
"version": "@VERSION@",
|
||||||
|
"name": "Terra",
|
||||||
|
"description": "An insanely powerful free & open-source data-driven world generator.",
|
||||||
|
"authors": [
|
||||||
|
"dfsek"
|
||||||
|
],
|
||||||
|
"contact": {
|
||||||
|
"homepage": "https://github.com/PolyhedralDev/Terra/wiki",
|
||||||
|
"sources": "https://github.com/PolyhedralDev/Terra"
|
||||||
|
},
|
||||||
|
"license": "GPL-3.0",
|
||||||
|
"icon": "assets/terra/icon.png",
|
||||||
|
"environment": "*",
|
||||||
|
"entrypoints": {
|
||||||
|
"main": [
|
||||||
|
"com.dfsek.terra.fabric.TerraFabricPlugin"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"mixins": [
|
||||||
|
"terra.mixins.json"
|
||||||
|
],
|
||||||
|
"depends": {
|
||||||
|
"fabricloader": ">=0.7.4",
|
||||||
|
"fabric": "*",
|
||||||
|
"minecraft": "1.16.x"
|
||||||
|
}
|
||||||
|
}
|
3
platforms/fabric/src/main/resources/terra.accesswidener
Normal file
3
platforms/fabric/src/main/resources/terra.accesswidener
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
accessWidener v1 named
|
||||||
|
|
||||||
|
extendable method net/minecraft/client/world/GeneratorType <init> (Ljava/lang/String;)V
|
14
platforms/fabric/src/main/resources/terra.mixins.json
Normal file
14
platforms/fabric/src/main/resources/terra.mixins.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"required": true,
|
||||||
|
"minVersion": "0.8",
|
||||||
|
"package": "com.dfsek.terra.fabric.mixin",
|
||||||
|
"compatibilityLevel": "JAVA_8",
|
||||||
|
"mixins": [],
|
||||||
|
"client": [],
|
||||||
|
"server": [
|
||||||
|
"GeneratorAccessor"
|
||||||
|
],
|
||||||
|
"injectors": {
|
||||||
|
"defaultRequire": 1
|
||||||
|
}
|
||||||
|
}
|
@ -11,3 +11,25 @@ rootProject.name = "Terra"
|
|||||||
include("common")
|
include("common")
|
||||||
include("platforms:bukkit")
|
include("platforms:bukkit")
|
||||||
include("platforms:fabric")
|
include("platforms:fabric")
|
||||||
|
|
||||||
|
|
||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
maven(url = "http://maven.fabricmc.net") {
|
||||||
|
name = "Fabric"
|
||||||
|
}
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("com.gradle.enterprise") version "3.4.1"
|
||||||
|
}
|
||||||
|
|
||||||
|
gradleEnterprise {
|
||||||
|
buildScan {
|
||||||
|
termsOfServiceUrl = "https://gradle.com/terms-of-service"
|
||||||
|
termsOfServiceAgree = "yes"
|
||||||
|
// publishAlwaysIf(true)
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user