Implemented new Tranquility value API
For quick compat, mods can now register a static state-based tranquility value for their blocks. More
This commit is contained in:
parent
d67ed054ff
commit
f8c734bc96
14 changed files with 125 additions and 143 deletions
|
@ -0,0 +1,11 @@
|
|||
package WayofTime.bloodmagic.incense;
|
||||
|
||||
public enum EnumTranquilityType {
|
||||
PLANT(),
|
||||
CROP(),
|
||||
TREE(),
|
||||
EARTHEN(),
|
||||
WATER(),
|
||||
FIRE(),
|
||||
LAVA();
|
||||
}
|
14
src/main/java/WayofTime/bloodmagic/incense/IIncensePath.java
Normal file
14
src/main/java/WayofTime/bloodmagic/incense/IIncensePath.java
Normal file
|
@ -0,0 +1,14 @@
|
|||
package WayofTime.bloodmagic.incense;
|
||||
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public interface IIncensePath {
|
||||
/**
|
||||
* Goes from 0 to however far this path block can be from the altar while
|
||||
* still functioning. 0 represents a block that can work when it is two
|
||||
* blocks horizontally away from the altar.
|
||||
*/
|
||||
int getLevelOfPath(World world, BlockPos pos, IBlockState state);
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package WayofTime.bloodmagic.incense;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public interface ITranquilityHandler {
|
||||
TranquilityStack getTranquilityOfBlock(World world, BlockPos pos, Block block, IBlockState state);
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package WayofTime.bloodmagic.incense;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class IncenseTranquilityRegistry {
|
||||
public static List<ITranquilityHandler> handlerList = new ArrayList<ITranquilityHandler>();
|
||||
|
||||
public static void registerTranquilityHandler(ITranquilityHandler handler) {
|
||||
handlerList.add(handler);
|
||||
}
|
||||
|
||||
public static TranquilityStack getTranquilityOfBlock(World world, BlockPos pos, Block block, IBlockState state) {
|
||||
for (ITranquilityHandler handler : handlerList) {
|
||||
TranquilityStack tranq = handler.getTranquilityOfBlock(world, pos, block, state);
|
||||
if (tranq != null) {
|
||||
return tranq;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -1,107 +0,0 @@
|
|||
package WayofTime.bloodmagic.incense;
|
||||
|
||||
import WayofTime.bloodmagic.apibutnotreally.incense.EnumTranquilityType;
|
||||
import WayofTime.bloodmagic.apibutnotreally.incense.ITranquilityHandler;
|
||||
import WayofTime.bloodmagic.apibutnotreally.incense.TranquilityStack;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicBlocks;
|
||||
import net.minecraft.block.*;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TranquilityHandlers {
|
||||
|
||||
public static class Plant implements ITranquilityHandler {
|
||||
@Override
|
||||
public TranquilityStack getTranquilityOfBlock(World world, BlockPos pos, Block block, IBlockState state) {
|
||||
if (block instanceof BlockLeaves) {
|
||||
return new TranquilityStack(EnumTranquilityType.PLANT, 1);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static class Lava implements ITranquilityHandler {
|
||||
@Override
|
||||
public TranquilityStack getTranquilityOfBlock(World world, BlockPos pos, Block block, IBlockState state) {
|
||||
if (block == Blocks.LAVA || block == Blocks.FLOWING_LAVA) {
|
||||
return new TranquilityStack(EnumTranquilityType.LAVA, 1.2);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static class Fire implements ITranquilityHandler {
|
||||
@Override
|
||||
public TranquilityStack getTranquilityOfBlock(World world, BlockPos pos, Block block, IBlockState state) {
|
||||
if (block instanceof BlockFire) {
|
||||
return new TranquilityStack(EnumTranquilityType.FIRE, 1);
|
||||
}
|
||||
|
||||
if (block == Blocks.NETHERRACK) {
|
||||
return new TranquilityStack(EnumTranquilityType.FIRE, 0.5);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static class Earth implements ITranquilityHandler {
|
||||
@Override
|
||||
public TranquilityStack getTranquilityOfBlock(World world, BlockPos pos, Block block, IBlockState state) {
|
||||
if (block == Blocks.DIRT) {
|
||||
return new TranquilityStack(EnumTranquilityType.EARTHEN, 0.25);
|
||||
}
|
||||
|
||||
if (block instanceof BlockGrass) {
|
||||
return new TranquilityStack(EnumTranquilityType.EARTHEN, 0.5);
|
||||
}
|
||||
|
||||
if (block == Blocks.FARMLAND) {
|
||||
return new TranquilityStack(EnumTranquilityType.EARTHEN, 1);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static class Crop implements ITranquilityHandler {
|
||||
@Override
|
||||
public TranquilityStack getTranquilityOfBlock(World world, BlockPos pos, Block block, IBlockState state) {
|
||||
if (block == Blocks.POTATOES || block == Blocks.CARROTS || block == Blocks.WHEAT || block == Blocks.NETHER_WART || block == Blocks.BEETROOTS) {
|
||||
return new TranquilityStack(EnumTranquilityType.CROP, 1);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static class Tree implements ITranquilityHandler {
|
||||
@Override
|
||||
public TranquilityStack getTranquilityOfBlock(World world, BlockPos pos, Block block, IBlockState state) {
|
||||
if (block instanceof BlockLog) {
|
||||
return new TranquilityStack(EnumTranquilityType.TREE, 1);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static class Water implements ITranquilityHandler {
|
||||
@Override
|
||||
public TranquilityStack getTranquilityOfBlock(World world, BlockPos pos, Block block, IBlockState state) {
|
||||
if (block == Blocks.WATER || block == Blocks.FLOWING_WATER) {
|
||||
return new TranquilityStack(EnumTranquilityType.WATER, 1);
|
||||
}
|
||||
|
||||
if (block == RegistrarBloodMagicBlocks.LIFE_ESSENCE) {
|
||||
return new TranquilityStack(EnumTranquilityType.WATER, 1.5);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package WayofTime.bloodmagic.incense;
|
||||
|
||||
public class TranquilityStack {
|
||||
public final EnumTranquilityType type;
|
||||
public double value;
|
||||
|
||||
public TranquilityStack(EnumTranquilityType type, double value) {
|
||||
this.type = type;
|
||||
this.value = value;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue