mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-22 16:18:32 +00:00
more fabric stuff
This commit is contained in:
@@ -31,7 +31,7 @@ configure<LoomGradleExtension> {
|
||||
}
|
||||
|
||||
tasks.register<RemapJarTask>("remapShadedJar") {
|
||||
setProperty("input", file("build/libs/fabric-${version}-shaded.jar"))
|
||||
setProperty("input", file("build/libs/Terra-fabric-${version}-shaded.jar"))
|
||||
setProperty("addNestedDependencies", false)
|
||||
setProperty("remapAccessWidener", true)
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ import net.fabricmc.api.ModInitializer;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.client.world.GeneratorType;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
@@ -286,17 +287,23 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
Registry.register(Registry.BIOME_SOURCE, new Identifier("terra:terra"), TerraBiomeSource.CODEC);
|
||||
|
||||
if(FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) {
|
||||
GeneratorTypeAccessor.getVALUES().add(new GeneratorType("terra") {
|
||||
@Override
|
||||
protected ChunkGenerator getChunkGenerator(Registry<Biome> biomeRegistry, Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry, long seed) {
|
||||
ConfigPack pack = registry.get("DEFAULT");
|
||||
return new FabricChunkGeneratorWrapper(new TerraBiomeSource(biomeRegistry, seed, pack), seed, pack);
|
||||
}
|
||||
registry.forEach(pack -> {
|
||||
System.out.println(pack.getTemplate().getID());
|
||||
pack.getBiomeRegistry().forEach(b -> System.out.println(b.getID()));
|
||||
final GeneratorType generatorType = new GeneratorType("terra." + pack.getTemplate().getID()) {
|
||||
@Override
|
||||
protected ChunkGenerator getChunkGenerator(Registry<Biome> biomeRegistry, Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry, long seed) {
|
||||
return new FabricChunkGeneratorWrapper(new TerraBiomeSource(biomeRegistry, seed, pack), seed, pack);
|
||||
}
|
||||
};
|
||||
((GeneratorTypeAccessor) generatorType).setTranslationKey(new LiteralText("Terra:" + pack.getTemplate().getID()));
|
||||
GeneratorTypeAccessor.getVALUES().add(generatorType);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public EventManager getEventManager() {
|
||||
return eventManager;
|
||||
|
||||
@@ -31,7 +31,6 @@ public class FabricInventory implements Inventory {
|
||||
|
||||
@Override
|
||||
public void setItem(int slot, ItemStack newStack) {
|
||||
System.out.println("item @ " + slot + ": " + newStack.getHandle());
|
||||
delegate.setStack(slot, FabricAdapter.adapt(newStack));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
package com.dfsek.terra.fabric.mixin;
|
||||
|
||||
import net.minecraft.client.world.GeneratorType;
|
||||
import net.minecraft.text.Text;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Mutable;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
@Mixin(GeneratorType.class)
|
||||
public interface GeneratorTypeAccessor {
|
||||
@@ -12,4 +16,19 @@ public interface GeneratorTypeAccessor {
|
||||
static List<GeneratorType> getVALUES() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
@Accessor
|
||||
static Map<Optional<GeneratorType>, GeneratorType.ScreenProvider> getSCREEN_PROVIDERS() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Mutable
|
||||
@Accessor
|
||||
static void setSCREEN_PROVIDERS(Map<Optional<GeneratorType>, GeneratorType.ScreenProvider> SCREEN_PROVIDERS) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Mutable
|
||||
@Accessor
|
||||
void setTranslationKey(Text translationKey);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ public class FabricBlockState implements BlockState {
|
||||
return new FabricMobSpawner(mobSpawnerBlockEntity, worldAccess);
|
||||
} else if(block1 instanceof AbstractChestBlock) {
|
||||
BlockEntity abstractChestBlock = worldAccess.getBlockEntity(FabricAdapter.adapt(block.getLocation().toVector()));
|
||||
System.out.println("inventory: " + block1);
|
||||
return new FabricContainer(abstractChestBlock, worldAccess);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.dfsek.terra.fabric.world.handles.chunk.FabricChunk;
|
||||
import com.dfsek.terra.fabric.world.handles.world.FabricWorldHandle;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.ServerWorldAccess;
|
||||
import net.minecraft.world.WorldAccess;
|
||||
|
||||
import java.io.File;
|
||||
@@ -73,13 +74,13 @@ public class FabricWorld implements World, FabricWorldHandle {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return delegate.generator.hashCode();
|
||||
return ((ServerWorldAccess) delegate.world).toServerWorld().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if(!(obj instanceof FabricWorld)) return false;
|
||||
return ((FabricWorld) obj).delegate.generator.equals(delegate.generator);
|
||||
return ((ServerWorldAccess) ((FabricWorld) obj).delegate.world).toServerWorld().equals(((ServerWorldAccess) delegate.world).toServerWorld());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
|
||||
import com.dfsek.terra.fabric.world.block.FabricBlock;
|
||||
import com.dfsek.terra.fabric.world.generator.FabricChunkGenerator;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.ServerWorldAccess;
|
||||
import net.minecraft.world.WorldAccess;
|
||||
|
||||
import java.io.File;
|
||||
@@ -81,12 +82,13 @@ public class FabricSeededWorldAccess implements World, FabricWorldHandle {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return handle.worldAccess.hashCode();
|
||||
return ((ServerWorldAccess) handle.worldAccess).toServerWorld().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return super.equals(obj);
|
||||
if(!(obj instanceof FabricSeededWorldAccess)) return false;
|
||||
return ((ServerWorldAccess) ((FabricSeededWorldAccess) obj).handle.worldAccess).toServerWorld().equals(((ServerWorldAccess) handle.worldAccess).toServerWorld());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -89,4 +89,15 @@ public class FabricWorldAccess implements World, FabricWorldHandle {
|
||||
public WorldAccess getWorld() {
|
||||
return delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return ((ServerWorldAccess) delegate).toServerWorld().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if(!(obj instanceof FabricWorldAccess)) return false;
|
||||
return ((ServerWorldAccess) ((FabricWorldAccess) obj).delegate).toServerWorld().equals(((ServerWorldAccess) delegate).toServerWorld());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.dfsek.terra.fabric.world.block.FabricBlock;
|
||||
import com.dfsek.terra.fabric.world.generator.FabricChunkGenerator;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.ChunkRegion;
|
||||
import net.minecraft.world.ServerWorldAccess;
|
||||
import net.minecraft.world.WorldAccess;
|
||||
|
||||
import java.io.File;
|
||||
@@ -71,13 +72,14 @@ public class FabricWorldChunkRegion implements World, FabricWorldHandle {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return delegate.generator.hashCode();
|
||||
return ((ServerWorldAccess) delegate.chunk).toServerWorld().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if(!(obj instanceof FabricWorldChunkRegion)) return false;
|
||||
return ((FabricWorldChunkRegion) obj).delegate.generator.equals(delegate.generator);
|
||||
return super.equals(obj);
|
||||
//return ((ServerWorldAccess) ((FabricWorldChunkRegion) obj).delegate.chunk).toServerWorld().equals(((ServerWorldAccess) delegate.chunk).toServerWorld());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -92,7 +94,7 @@ public class FabricWorldChunkRegion implements World, FabricWorldHandle {
|
||||
|
||||
@Override
|
||||
public Object getHandle() {
|
||||
return null;
|
||||
return delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user