2021-05-17 03:02:24 +08:00
|
|
|
package com.gtnewhorizon.structurelib.structure;
|
|
|
|
|
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Use StructureUtility to instantiate
|
|
|
|
|
*/
|
|
|
|
|
public interface IStructureElement<T> {
|
2022-07-08 17:14:18 +08:00
|
|
|
boolean check(T t, World world, int x, int y, int z);
|
2021-05-17 03:02:24 +08:00
|
|
|
|
2022-07-08 17:14:18 +08:00
|
|
|
boolean spawnHint(T t, World world, int x, int y, int z, ItemStack trigger);
|
2021-05-17 03:02:24 +08:00
|
|
|
|
2022-07-08 17:14:18 +08:00
|
|
|
boolean placeBlock(T t, World world, int x, int y, int z, ItemStack trigger);
|
2021-05-17 03:02:24 +08:00
|
|
|
|
2022-07-08 17:14:18 +08:00
|
|
|
default int getStepA() {
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
2021-05-17 03:02:24 +08:00
|
|
|
|
2022-07-08 17:14:18 +08:00
|
|
|
default int getStepB() {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
2021-05-17 03:02:24 +08:00
|
|
|
|
2022-07-08 17:14:18 +08:00
|
|
|
default int getStepC() {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
2021-05-17 03:02:24 +08:00
|
|
|
|
2022-07-08 17:14:18 +08:00
|
|
|
default boolean resetA() {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2021-05-17 03:02:24 +08:00
|
|
|
|
2022-07-08 17:14:18 +08:00
|
|
|
default boolean resetB() {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2021-05-17 03:02:24 +08:00
|
|
|
|
2022-07-08 17:14:18 +08:00
|
|
|
default boolean resetC() {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2021-05-17 03:02:24 +08:00
|
|
|
|
2022-07-08 17:14:18 +08:00
|
|
|
default boolean isNavigating() {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2021-05-17 03:02:24 +08:00
|
|
|
}
|