mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 22:31:52 +00:00
working FabricSign
This commit is contained in:
+2
-3
@@ -24,12 +24,11 @@ public class BukkitSign extends BukkitBlockState implements Sign {
|
|||||||
((org.bukkit.block.Sign) getHandle()).setLine(index, line);
|
((org.bukkit.block.Sign) getHandle()).setLine(index, line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void applyState(String state) {
|
public void applyState(String state) {
|
||||||
SerialState.parse(state).forEach((k, v) -> {
|
SerialState.parse(state).forEach((k, v) -> {
|
||||||
if(!v.startsWith("text")) throw new IllegalArgumentException("Invalid property: " + k);
|
if(!k.startsWith("text")) throw new IllegalArgumentException("Invalid property: " + k);
|
||||||
setLine(Integer.parseInt(k) + 1, v.substring(4));
|
setLine(Integer.parseInt(k.substring(4)), v);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ import net.minecraft.world.gen.feature.FeatureConfig;
|
|||||||
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
|
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
|
||||||
import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig;
|
import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -93,19 +94,20 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
|
|
||||||
private final GenericLoaders genericLoaders = new GenericLoaders(this);
|
private final GenericLoaders genericLoaders = new GenericLoaders(this);
|
||||||
private final Logger logger = new Logger() {
|
private final Logger logger = new Logger() {
|
||||||
|
private final org.apache.logging.log4j.Logger logger = LogManager.getLogger();
|
||||||
@Override
|
@Override
|
||||||
public void info(String message) {
|
public void info(String message) {
|
||||||
|
logger.info(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void warning(String message) {
|
public void warning(String message) {
|
||||||
|
logger.warn(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void severe(String message) {
|
public void severe(String message) {
|
||||||
|
logger.error(message);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
private final DebugLogger debugLogger = new DebugLogger(logger);
|
private final DebugLogger debugLogger = new DebugLogger(logger);
|
||||||
|
|||||||
+6
-5
@@ -7,7 +7,7 @@ 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.world.FabricWorldHandle;
|
import com.dfsek.terra.fabric.world.handles.world.FabricWorldHandle;
|
||||||
import net.minecraft.block.SignBlock;
|
import net.minecraft.block.AbstractSignBlock;
|
||||||
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;
|
import net.minecraft.world.WorldAccess;
|
||||||
@@ -23,10 +23,11 @@ public class FabricBlockState implements BlockState {
|
|||||||
|
|
||||||
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) {
|
WorldAccess worldAccess = ((FabricWorldHandle) block.getLocation().getWorld()).getWorld();
|
||||||
SignBlockEntity signBlockEntity = (SignBlockEntity) ((SignBlock) block1).createBlockEntity(((FabricWorldHandle) block.getLocation().getWorld()).getWorld());
|
|
||||||
signBlockEntity.setLocation(null, FabricAdapter.adapt(block.getLocation().toVector()));
|
if(block1 instanceof AbstractSignBlock) {
|
||||||
return new FabricSign(signBlockEntity, ((FabricWorldHandle) block.getLocation().getWorld()).getWorld());
|
SignBlockEntity signBlockEntity = (SignBlockEntity) worldAccess.getBlockEntity(FabricAdapter.adapt(block.getLocation().toVector()));
|
||||||
|
return new FabricSign(signBlockEntity, worldAccess);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.dfsek.terra.fabric.world.block.state;
|
package com.dfsek.terra.fabric.world.block.state;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.block.state.SerialState;
|
||||||
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;
|
||||||
@@ -13,7 +14,14 @@ public class FabricSign extends FabricBlockState implements Sign {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull String[] getLines() {
|
public @NotNull String[] getLines() {
|
||||||
return new String[0];
|
SignBlockEntity sign = (SignBlockEntity) blockEntity;
|
||||||
|
|
||||||
|
return new String[] {
|
||||||
|
sign.getTextOnRow(0).asString(),
|
||||||
|
sign.getTextOnRow(1).asString(),
|
||||||
|
sign.getTextOnRow(2).asString(),
|
||||||
|
sign.getTextOnRow(3).asString()
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -25,4 +33,12 @@ public class FabricSign extends FabricBlockState implements Sign {
|
|||||||
public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException {
|
public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException {
|
||||||
((SignBlockEntity) blockEntity).setTextOnRow(index, new LiteralText(line));
|
((SignBlockEntity) blockEntity).setTextOnRow(index, new LiteralText(line));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyState(String state) {
|
||||||
|
SerialState.parse(state).forEach((k, v) -> {
|
||||||
|
if(!k.startsWith("text")) throw new IllegalArgumentException("Invalid property: " + k);
|
||||||
|
setLine(Integer.parseInt(k.substring(4)), v);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user