SDF materials
This commit is contained in:
parent
2e632bf245
commit
257307d93d
14 changed files with 107 additions and 15 deletions
|
@ -1,13 +1,24 @@
|
|||
package ru.betterend.util.sdf.primitive;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import ru.betterend.util.MHelper;
|
||||
import ru.betterend.util.sdf.ISDF;
|
||||
|
||||
public class SDFCapsule implements ISDF {
|
||||
public class SDFCapsule extends SDFPrimitive {
|
||||
private float radius;
|
||||
private float height;
|
||||
|
||||
public SDFCapsule(Function<BlockPos, BlockState> placerFunction) {
|
||||
super(placerFunction);
|
||||
}
|
||||
|
||||
public SDFCapsule(BlockState state) {
|
||||
super(state);
|
||||
}
|
||||
|
||||
public SDFCapsule setRadius(float radius) {
|
||||
this.radius = radius;
|
||||
return this;
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
package ru.betterend.util.sdf.primitive;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import ru.betterend.util.MHelper;
|
||||
import ru.betterend.util.sdf.ISDF;
|
||||
|
||||
public class SDFLine implements ISDF {
|
||||
public class SDFLine extends SDFPrimitive {
|
||||
private float radius;
|
||||
private float x1;
|
||||
private float y1;
|
||||
|
@ -13,6 +16,14 @@ public class SDFLine implements ISDF {
|
|||
private float y2;
|
||||
private float z2;
|
||||
|
||||
public SDFLine(Function<BlockPos, BlockState> placerFunction) {
|
||||
super(placerFunction);
|
||||
}
|
||||
|
||||
public SDFLine(BlockState state) {
|
||||
super(state);
|
||||
}
|
||||
|
||||
public SDFLine setRadius(float radius) {
|
||||
this.radius = radius;
|
||||
return this;
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package ru.betterend.util.sdf.primitive;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.ServerWorldAccess;
|
||||
import ru.betterend.util.BlocksHelper;
|
||||
import ru.betterend.util.sdf.ISDF;
|
||||
|
||||
public abstract class SDFPrimitive implements ISDF {
|
||||
protected final Function<BlockPos, BlockState> placerFunction;
|
||||
|
||||
public SDFPrimitive(Function<BlockPos, BlockState> placerFunction) {
|
||||
this.placerFunction = placerFunction;
|
||||
}
|
||||
|
||||
public SDFPrimitive(BlockState state) {
|
||||
this.placerFunction = (pos) -> {
|
||||
return state;
|
||||
};
|
||||
}
|
||||
|
||||
public void setBlock(ServerWorldAccess world, BlockPos pos) {
|
||||
BlocksHelper.setWithoutUpdate(world, pos, placerFunction.apply(pos));
|
||||
}
|
||||
}
|
|
@ -1,11 +1,22 @@
|
|||
package ru.betterend.util.sdf.primitive;
|
||||
|
||||
import ru.betterend.util.MHelper;
|
||||
import ru.betterend.util.sdf.ISDF;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class SDFSphere implements ISDF {
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import ru.betterend.util.MHelper;
|
||||
|
||||
public class SDFSphere extends SDFPrimitive {
|
||||
private float radius;
|
||||
|
||||
public SDFSphere(Function<BlockPos, BlockState> placerFunction) {
|
||||
super(placerFunction);
|
||||
}
|
||||
|
||||
public SDFSphere(BlockState state) {
|
||||
super(state);
|
||||
}
|
||||
|
||||
public SDFSphere setRadius(float radius) {
|
||||
this.radius = radius;
|
||||
return this;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue