mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
more fabric stuff
This commit is contained in:
parent
415df211ed
commit
98c1fea7fd
@ -21,6 +21,7 @@ public class BufferedStateManipulator implements BufferedItem {
|
|||||||
state.update(false);
|
state.update(false);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
main.getLogger().warning("Could not apply BlockState at " + origin + ": " + e.getMessage());
|
main.getLogger().warning("Could not apply BlockState at " + origin + ": " + e.getMessage());
|
||||||
|
main.getDebugLogger().stack(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,6 @@ import com.dfsek.terra.api.registry.LockedRegistry;
|
|||||||
import com.dfsek.terra.api.transform.NotNullValidator;
|
import com.dfsek.terra.api.transform.NotNullValidator;
|
||||||
import com.dfsek.terra.api.transform.Transformer;
|
import com.dfsek.terra.api.transform.Transformer;
|
||||||
import com.dfsek.terra.api.util.DebugLogger;
|
import com.dfsek.terra.api.util.DebugLogger;
|
||||||
import com.dfsek.terra.api.util.collections.MaterialSet;
|
|
||||||
import com.dfsek.terra.api.world.biome.TerraBiome;
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.tree.Tree;
|
import com.dfsek.terra.api.world.tree.Tree;
|
||||||
import com.dfsek.terra.config.GenericLoaders;
|
import com.dfsek.terra.config.GenericLoaders;
|
||||||
@ -31,7 +30,6 @@ import com.dfsek.terra.config.lang.Language;
|
|||||||
import com.dfsek.terra.config.pack.ConfigPack;
|
import com.dfsek.terra.config.pack.ConfigPack;
|
||||||
import com.dfsek.terra.fabric.inventory.FabricItemHandle;
|
import com.dfsek.terra.fabric.inventory.FabricItemHandle;
|
||||||
import com.dfsek.terra.fabric.mixin.GeneratorTypeAccessor;
|
import com.dfsek.terra.fabric.mixin.GeneratorTypeAccessor;
|
||||||
import com.dfsek.terra.fabric.world.FabricAdapter;
|
|
||||||
import com.dfsek.terra.fabric.world.FabricBiome;
|
import com.dfsek.terra.fabric.world.FabricBiome;
|
||||||
import com.dfsek.terra.fabric.world.FabricTree;
|
import com.dfsek.terra.fabric.world.FabricTree;
|
||||||
import com.dfsek.terra.fabric.world.FabricWorldHandle;
|
import com.dfsek.terra.fabric.world.FabricWorldHandle;
|
||||||
@ -103,6 +101,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
LogManager.getLogManager().addLogger(logger);
|
LogManager.getLogManager().addLogger(logger);
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
debugLogger = new DebugLogger(logger);
|
debugLogger = new DebugLogger(logger);
|
||||||
|
debugLogger.setDebug(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final ItemHandle itemHandle = new FabricItemHandle();
|
private final ItemHandle itemHandle = new FabricItemHandle();
|
||||||
@ -148,7 +147,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isDebug() {
|
public boolean isDebug() {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -256,7 +255,6 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
@Override
|
@Override
|
||||||
public void onInitialize() {
|
public void onInitialize() {
|
||||||
logger.setLevel(Level.INFO);
|
logger.setLevel(Level.INFO);
|
||||||
MaterialSet set = MaterialSet.get(FabricAdapter.adapt(Blocks.GRASS_BLOCK), FabricAdapter.adapt(Blocks.STONE));
|
|
||||||
|
|
||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
|
@ -9,10 +9,12 @@ import com.dfsek.terra.fabric.world.block.data.FabricOrientable;
|
|||||||
import com.dfsek.terra.fabric.world.block.data.FabricSlab;
|
import com.dfsek.terra.fabric.world.block.data.FabricSlab;
|
||||||
import com.dfsek.terra.fabric.world.block.data.FabricStairs;
|
import com.dfsek.terra.fabric.world.block.data.FabricStairs;
|
||||||
import com.dfsek.terra.fabric.world.block.data.FabricWaterlogged;
|
import com.dfsek.terra.fabric.world.block.data.FabricWaterlogged;
|
||||||
|
import com.dfsek.terra.fabric.world.handles.world.FabricWorldHandle;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.WorldAccess;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
@ -42,4 +44,8 @@ public final class FabricAdapter {
|
|||||||
return new FabricBlockType(block);
|
return new FabricBlockType(block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WorldAccess adapt(FabricWorldHandle worldHandle) {
|
||||||
|
return worldHandle.getWorld();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import com.dfsek.terra.api.platform.block.BlockFace;
|
|||||||
import com.dfsek.terra.api.platform.block.BlockType;
|
import com.dfsek.terra.api.platform.block.BlockType;
|
||||||
import com.dfsek.terra.api.platform.block.state.BlockState;
|
import com.dfsek.terra.api.platform.block.state.BlockState;
|
||||||
import com.dfsek.terra.fabric.world.FabricAdapter;
|
import com.dfsek.terra.fabric.world.FabricAdapter;
|
||||||
|
import com.dfsek.terra.fabric.world.block.state.FabricBlockState;
|
||||||
import com.dfsek.terra.fabric.world.handles.world.FabricWorldAccess;
|
import com.dfsek.terra.fabric.world.handles.world.FabricWorldAccess;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
@ -30,7 +31,7 @@ public class FabricBlock implements Block {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getState() {
|
public BlockState getState() {
|
||||||
return null;
|
return FabricBlockState.newInstance(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -6,26 +6,27 @@ import com.dfsek.terra.api.platform.block.state.BlockState;
|
|||||||
import com.dfsek.terra.fabric.world.FabricAdapter;
|
import com.dfsek.terra.fabric.world.FabricAdapter;
|
||||||
import com.dfsek.terra.fabric.world.block.FabricBlock;
|
import com.dfsek.terra.fabric.world.block.FabricBlock;
|
||||||
import com.dfsek.terra.fabric.world.block.FabricBlockData;
|
import com.dfsek.terra.fabric.world.block.FabricBlockData;
|
||||||
import com.dfsek.terra.fabric.world.handles.FabricWorld;
|
import com.dfsek.terra.fabric.world.handles.world.FabricWorldHandle;
|
||||||
import net.minecraft.block.ChestBlock;
|
|
||||||
import net.minecraft.block.SignBlock;
|
import net.minecraft.block.SignBlock;
|
||||||
import net.minecraft.block.entity.BlockEntity;
|
import net.minecraft.block.entity.BlockEntity;
|
||||||
import net.minecraft.block.entity.SignBlockEntity;
|
import net.minecraft.block.entity.SignBlockEntity;
|
||||||
|
import net.minecraft.world.WorldAccess;
|
||||||
|
|
||||||
public class FabricBlockState implements BlockState {
|
public class FabricBlockState implements BlockState {
|
||||||
protected final BlockEntity blockEntity;
|
protected final BlockEntity blockEntity;
|
||||||
|
private final WorldAccess worldAccess;
|
||||||
|
|
||||||
public FabricBlockState(BlockEntity blockEntity) {
|
public FabricBlockState(BlockEntity blockEntity, WorldAccess worldAccess) {
|
||||||
this.blockEntity = blockEntity;
|
this.blockEntity = blockEntity;
|
||||||
|
this.worldAccess = worldAccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static FabricBlockState newInstance(Block block) {
|
public static FabricBlockState newInstance(Block block) {
|
||||||
net.minecraft.block.Block block1 = ((FabricBlockData) block.getBlockData()).getHandle().getBlock();
|
net.minecraft.block.Block block1 = ((FabricBlockData) block.getBlockData()).getHandle().getBlock();
|
||||||
if(block1 instanceof SignBlock) {
|
if(block1 instanceof SignBlock) {
|
||||||
return new FabricSign((SignBlockEntity) ((SignBlock) block1).createBlockEntity(((FabricWorld) block.getLocation().getWorld()).getHandle().getWorld()));
|
SignBlockEntity signBlockEntity = (SignBlockEntity) ((SignBlock) block1).createBlockEntity(((FabricWorldHandle) block.getLocation().getWorld()).getWorld());
|
||||||
}
|
signBlockEntity.setLocation(null, FabricAdapter.adapt(block.getLocation().toVector()));
|
||||||
if(block1 instanceof ChestBlock) {
|
return new FabricSign(signBlockEntity, ((FabricWorldHandle) block.getLocation().getWorld()).getWorld());
|
||||||
return new FabricSign((SignBlockEntity) ((SignBlock) block1).createBlockEntity(((FabricWorld) block.getLocation().getWorld()).getHandle().getWorld()));
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -62,6 +63,7 @@ public class FabricBlockState implements BlockState {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean update(boolean applyPhysics) {
|
public boolean update(boolean applyPhysics) {
|
||||||
|
(worldAccess).getChunk(blockEntity.getPos()).setBlockEntity(blockEntity.getPos(), blockEntity);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,12 @@ package com.dfsek.terra.fabric.world.block.state;
|
|||||||
import com.dfsek.terra.api.platform.block.state.Sign;
|
import com.dfsek.terra.api.platform.block.state.Sign;
|
||||||
import net.minecraft.block.entity.SignBlockEntity;
|
import net.minecraft.block.entity.SignBlockEntity;
|
||||||
import net.minecraft.text.LiteralText;
|
import net.minecraft.text.LiteralText;
|
||||||
|
import net.minecraft.world.WorldAccess;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class FabricSign extends FabricBlockState implements Sign {
|
public class FabricSign extends FabricBlockState implements Sign {
|
||||||
public FabricSign(SignBlockEntity blockEntity) {
|
public FabricSign(SignBlockEntity blockEntity, WorldAccess worldAccess) {
|
||||||
super(blockEntity);
|
super(blockEntity, worldAccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -9,13 +9,15 @@ import com.dfsek.terra.api.platform.world.World;
|
|||||||
import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
|
import com.dfsek.terra.api.platform.world.generator.ChunkGenerator;
|
||||||
import com.dfsek.terra.fabric.world.block.FabricBlock;
|
import com.dfsek.terra.fabric.world.block.FabricBlock;
|
||||||
import com.dfsek.terra.fabric.world.handles.chunk.FabricChunk;
|
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.server.world.ServerWorld;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.WorldAccess;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class FabricWorld implements World {
|
public class FabricWorld implements World, FabricWorldHandle {
|
||||||
|
|
||||||
private final Handle delegate;
|
private final Handle delegate;
|
||||||
|
|
||||||
@ -95,6 +97,11 @@ public class FabricWorld implements World {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WorldAccess getWorld() {
|
||||||
|
return delegate.getWorld();
|
||||||
|
}
|
||||||
|
|
||||||
public static final class Handle {
|
public static final class Handle {
|
||||||
private final ServerWorld world;
|
private final ServerWorld world;
|
||||||
private final ChunkGenerator generator;
|
private final ChunkGenerator generator;
|
||||||
|
@ -15,7 +15,7 @@ import net.minecraft.world.WorldAccess;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class FabricSeededWorldAccess implements World {
|
public class FabricSeededWorldAccess implements World, FabricWorldHandle {
|
||||||
|
|
||||||
private final Handle handle;
|
private final Handle handle;
|
||||||
|
|
||||||
@ -94,6 +94,11 @@ public class FabricSeededWorldAccess implements World {
|
|||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WorldAccess getWorld() {
|
||||||
|
return handle.worldAccess;
|
||||||
|
}
|
||||||
|
|
||||||
public static class Handle {
|
public static class Handle {
|
||||||
private final WorldAccess worldAccess;
|
private final WorldAccess worldAccess;
|
||||||
private final long seed;
|
private final long seed;
|
||||||
|
@ -17,7 +17,7 @@ import net.minecraft.world.WorldAccess;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class FabricWorldAccess implements World {
|
public class FabricWorldAccess implements World, FabricWorldHandle {
|
||||||
private final WorldAccess delegate;
|
private final WorldAccess delegate;
|
||||||
|
|
||||||
public FabricWorldAccess(WorldAccess delegate) {
|
public FabricWorldAccess(WorldAccess delegate) {
|
||||||
@ -84,4 +84,9 @@ public class FabricWorldAccess implements World {
|
|||||||
public WorldAccess getHandle() {
|
public WorldAccess getHandle() {
|
||||||
return delegate;
|
return delegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WorldAccess getWorld() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,12 @@ import com.dfsek.terra.fabric.world.block.FabricBlock;
|
|||||||
import com.dfsek.terra.fabric.world.generator.FabricChunkGenerator;
|
import com.dfsek.terra.fabric.world.generator.FabricChunkGenerator;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.ChunkRegion;
|
import net.minecraft.world.ChunkRegion;
|
||||||
|
import net.minecraft.world.WorldAccess;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class FabricWorldChunkRegion implements World {
|
public class FabricWorldChunkRegion implements World, FabricWorldHandle {
|
||||||
private final Handle delegate;
|
private final Handle delegate;
|
||||||
|
|
||||||
public FabricWorldChunkRegion(ChunkRegion delegate, net.minecraft.world.gen.chunk.ChunkGenerator generator) {
|
public FabricWorldChunkRegion(ChunkRegion delegate, net.minecraft.world.gen.chunk.ChunkGenerator generator) {
|
||||||
@ -94,6 +95,11 @@ public class FabricWorldChunkRegion implements World {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WorldAccess getWorld() {
|
||||||
|
return delegate.chunk;
|
||||||
|
}
|
||||||
|
|
||||||
public static final class Handle {
|
public static final class Handle {
|
||||||
private final ChunkRegion chunk;
|
private final ChunkRegion chunk;
|
||||||
private final net.minecraft.world.gen.chunk.ChunkGenerator generator;
|
private final net.minecraft.world.gen.chunk.ChunkGenerator generator;
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.dfsek.terra.fabric.world.handles.world;
|
||||||
|
|
||||||
|
import net.minecraft.world.WorldAccess;
|
||||||
|
|
||||||
|
public interface FabricWorldHandle {
|
||||||
|
WorldAccess getWorld();
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user