remove buffer items

This commit is contained in:
dfsek
2021-12-20 00:04:08 -07:00
parent 4db94e50e5
commit 007c761537
13 changed files with 0 additions and 311 deletions

View File

@@ -1,30 +0,0 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.structure.buffer;
import org.jetbrains.annotations.ApiStatus.Experimental;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.ServerWorld;
import com.dfsek.terra.api.world.chunk.Chunk;
@Experimental
public interface Buffer {
void paste(Vector3 origin, Chunk chunk);
void paste(Vector3 origin, ServerWorld world);
Buffer addItem(BufferedItem item, Vector3 location);
Buffer setMark(String mark, Vector3 location);
Vector3 getOrigin();
String getMark(Vector3 location);
}

View File

@@ -1,19 +0,0 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.structure.buffer;
import org.jetbrains.annotations.ApiStatus.Experimental;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.WritableWorld;
@Experimental
public interface BufferedItem {
void paste(Vector3 origin, WritableWorld world);
}

View File

@@ -1,52 +0,0 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.structure.buffer.items;
import org.jetbrains.annotations.ApiStatus.Experimental;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.block.state.properties.base.Properties;
import com.dfsek.terra.api.structure.buffer.BufferedItem;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.WritableWorld;
@Experimental
public class BufferedBlock implements BufferedItem {
private static final Logger logger = LoggerFactory.getLogger(BufferedBlock.class);
private final BlockState data;
private final boolean overwrite;
private final Platform platform;
private final boolean waterlog;
public BufferedBlock(BlockState data, boolean overwrite, Platform platform, boolean waterlog) {
this.data = data;
this.overwrite = overwrite;
this.platform = platform;
this.waterlog = waterlog;
}
@Override
public void paste(Vector3 origin, WritableWorld world) {
try {
BlockState current = world.getBlockState(origin);
if(overwrite || current.isAir()) {
if(waterlog && current.has(Properties.WATERLOGGED) && current.getBlockType().isWater()) {
current.set(Properties.WATERLOGGED, true);
}
world.setBlockState(origin, data);
}
} catch(RuntimeException e) {
logger.error("Failed to place block at location {}", origin, e);
}
}
}

View File

@@ -1,41 +0,0 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.structure.buffer.items;
import org.jetbrains.annotations.ApiStatus.Experimental;
import java.util.ArrayList;
import java.util.List;
import com.dfsek.terra.api.structure.buffer.BufferedItem;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.WritableWorld;
@Experimental
public class Cell implements BufferedItem {
private final List<BufferedItem> items = new ArrayList<>();
private String mark;
@Override
public void paste(Vector3 origin, WritableWorld world) {
items.forEach(item -> item.paste(origin.clone(), world));
}
public void add(BufferedItem item) {
items.add(item);
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
}