Tag migration
This commit is contained in:
parent
92a392cffe
commit
a390486d5b
76 changed files with 224 additions and 164 deletions
|
@ -23,7 +23,7 @@ public interface BetterEndPlugin {
|
|||
}
|
||||
|
||||
/**
|
||||
* Register other mod stuff, for example, EndHammers.
|
||||
* Register other mod stuff, for example, EndITEM_HAMMERS.
|
||||
*/
|
||||
default void registerOthers() {
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ public class AuroraCrystalBlock extends AbstractGlassBlock implements RenderLaye
|
|||
public AuroraCrystalBlock() {
|
||||
super(FabricBlockSettings.of(Material.GLASS)
|
||||
.breakByTool(FabricToolTags.PICKAXES)
|
||||
.breakByTool(TagAPI.HAMMERS)
|
||||
.breakByTool(TagAPI.ITEM_HAMMERS)
|
||||
.hardness(1F)
|
||||
.resistance(1F)
|
||||
.luminance(15)
|
||||
|
|
|
@ -19,7 +19,7 @@ public class BulbVineSeedBlock extends EndPlantWithAgeBlock {
|
|||
@Override
|
||||
public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) {
|
||||
BlockState up = world.getBlockState(pos.above());
|
||||
return up.is(TagAPI.GEN_TERRAIN) || up.is(BlockTags.LOGS) || up.is(BlockTags.LEAVES);
|
||||
return up.is(TagAPI.BLOCK_GEN_TERRAIN) || up.is(BlockTags.LOGS) || up.is(BlockTags.LEAVES);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -48,6 +48,6 @@ public class EndLilySeedBlock extends UnderwaterPlantWithAgeBlock {
|
|||
|
||||
@Override
|
||||
protected boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.END_GROUND);
|
||||
return state.is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -134,6 +134,6 @@ public class EndLotusSeedBlock extends UnderwaterPlantWithAgeBlock {
|
|||
|
||||
@Override
|
||||
protected boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.END_GROUND);
|
||||
return state.is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ public class HydraluxBlock extends UnderwaterPlantBlock {
|
|||
|
||||
@Override
|
||||
protected boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.END_GROUND);
|
||||
return state.is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -63,7 +63,7 @@ public class LumecornBlock extends BaseBlockNotFull implements RenderLayerProvid
|
|||
public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) {
|
||||
LumecornShape shape = state.getValue(SHAPE);
|
||||
if (shape == LumecornShape.BOTTOM_BIG || shape == LumecornShape.BOTTOM_SMALL) {
|
||||
return world.getBlockState(pos.below()).is(TagAPI.END_GROUND);
|
||||
return world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
else if (shape == LumecornShape.LIGHT_TOP) {
|
||||
return world.getBlockState(pos.below()).is(this);
|
||||
|
|
|
@ -331,7 +331,7 @@ public class NeonCactusPlantBlock extends BaseBlockNotFull implements SimpleWate
|
|||
mut.move(dir);
|
||||
state = world.getBlockState(mut);
|
||||
if (!state.is(this)) {
|
||||
if (!state.is(TagAPI.END_GROUND)) {
|
||||
if (!state.is(TagAPI.BLOCK_END_GROUND)) {
|
||||
length = -1;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -94,7 +94,7 @@ public class SmallJellyshroomBlock extends BaseAttachedBlock implements RenderLa
|
|||
|
||||
@Override
|
||||
public boolean isValidBonemealTarget(BlockGetter world, BlockPos pos, BlockState state, boolean isClient) {
|
||||
return state.getValue(FACING) == Direction.UP && world.getBlockState(pos.below()).is(TagAPI.END_GROUND);
|
||||
return state.getValue(FACING) == Direction.UP && world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -29,7 +29,7 @@ public class EndPlantBlock extends BasePlantBlock implements PottablePlant {
|
|||
|
||||
@Override
|
||||
protected boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.END_GROUND);
|
||||
return state.is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,6 +15,6 @@ public abstract class EndPlantWithAgeBlock extends BasePlantWithAgeBlock {
|
|||
|
||||
@Override
|
||||
protected boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.END_GROUND);
|
||||
return state.is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,6 @@ public class EndUnderwaterPlantBlock extends UnderwaterPlantBlock {
|
|||
|
||||
@Override
|
||||
protected boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.END_GROUND);
|
||||
return state.is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,6 @@ public class EndUnderwaterWallPlantBlock extends BaseUnderwaterWallPlantBlock {
|
|||
|
||||
@Override
|
||||
protected boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.END_GROUND);
|
||||
return state.is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,6 @@ public class EndWallMushroom extends WallMushroomBlock {
|
|||
|
||||
@Override
|
||||
protected boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.END_GROUND);
|
||||
return state.is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,6 @@ public class EndWallPlantBlock extends BaseWallPlantBlock {
|
|||
|
||||
@Override
|
||||
protected boolean isTerrain(BlockState state) {
|
||||
return state.is(TagAPI.END_GROUND);
|
||||
return state.is(TagAPI.BLOCK_END_GROUND);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -487,7 +487,7 @@ public class MetalMaterial {
|
|||
TagAPI.addTag(BlockTags.ANVIL, anvilBlock);
|
||||
TagAPI.addTag(BlockTags.BEACON_BASE_BLOCKS, block);
|
||||
TagAPI.addTag(ItemTags.BEACON_PAYMENT_ITEMS, ingot);
|
||||
TagAPI.addTag(TagAPI.DRAGON_IMMUNE, ore, bars);
|
||||
TagAPI.addTag(TagAPI.HAMMERS, hammer);
|
||||
TagAPI.addTag(TagAPI.BLOCK_DRAGON_IMMUNE, ore, bars);
|
||||
TagAPI.addTag(TagAPI.ITEM_HAMMERS, hammer);
|
||||
}
|
||||
}
|
|
@ -164,7 +164,7 @@ public class StoneMaterial {
|
|||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
.setShape("###", "# #", "###")
|
||||
.addMaterial('#', stone)
|
||||
.setGroup("end_stone_furnaces")
|
||||
.setGroup("end_stone_ITEM_FURNACES")
|
||||
.build();
|
||||
GridRecipe.make(BetterEnd.MOD_ID, name + "_flower_pot", flowerPot)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
|
@ -181,15 +181,18 @@ public class StoneMaterial {
|
|||
TagAPI.addTag(ItemTags.STONE_BRICKS, bricks);
|
||||
TagAPI.addTag(ItemTags.STONE_CRAFTING_MATERIALS, stone);
|
||||
TagAPI.addTag(ItemTags.STONE_TOOL_MATERIALS, stone);
|
||||
TagAPI.addTag(TagAPI.FURNACES, furnace);
|
||||
TagAPI.addTag(TagAPI.ITEM_FURNACES, furnace);
|
||||
|
||||
// Block Tags //
|
||||
TagAPI.addTag(BlockTags.STONE_BRICKS, bricks);
|
||||
TagAPI.addTag(BlockTags.WALLS, wall, brickWall);
|
||||
TagAPI.addTag(BlockTags.SLABS, slab, brickSlab);
|
||||
TagAPI.addTags(pressurePlate, BlockTags.PRESSURE_PLATES, BlockTags.STONE_PRESSURE_PLATES);
|
||||
TagAPI.addTag(TagAPI.END_STONES, stone);
|
||||
TagAPI.addTag(TagAPI.BLOCK_END_STONES, stone);
|
||||
|
||||
TagAPI.addTag(TagAPI.DRAGON_IMMUNE, stone, stairs, slab, wall);
|
||||
TagAPI.addTag(TagAPI.BLOCK_DRAGON_IMMUNE, stone, stairs, slab, wall);
|
||||
|
||||
TagAPI.addTag(TagAPI.BLOCK_GEN_TERRAIN, stone);
|
||||
TagAPI.addTag(TagAPI.BLOCK_END_GROUND, stone);
|
||||
}
|
||||
}
|
|
@ -198,7 +198,7 @@ public class WoodenMaterial {
|
|||
.setShape("###", "PPP", "###")
|
||||
.addMaterial('#', planks)
|
||||
.addMaterial('P', Items.BOOK)
|
||||
.setGroup("end_bookshelves")
|
||||
.setGroup("end_BLOCK_BOOKSHELVES")
|
||||
.build();
|
||||
GridRecipe.make(BetterEnd.MOD_ID, name + "_bark", bark)
|
||||
.checkConfig(Configs.RECIPE_CONFIG)
|
||||
|
@ -250,7 +250,7 @@ public class WoodenMaterial {
|
|||
TagAPI.addTags(slab, BlockTags.WOODEN_SLABS, BlockTags.SLABS);
|
||||
TagAPI.addTags(stairs, BlockTags.WOODEN_STAIRS, BlockTags.STAIRS);
|
||||
TagAPI.addTags(trapdoor, BlockTags.WOODEN_TRAPDOORS, BlockTags.TRAPDOORS);
|
||||
TagAPI.addTag(TagAPI.BOOKSHELVES, shelf);
|
||||
TagAPI.addTag(TagAPI.BLOCK_BOOKSHELVES, shelf);
|
||||
TagAPI.addTag(TagAPI.BLOCK_CHEST, chest);
|
||||
|
||||
logBlockTag = TagAPI.makeBlockTag(BetterEnd.MOD_ID, name + "_logs");
|
||||
|
|
|
@ -27,7 +27,7 @@ public class BYGIntegration extends ModIntegration implements EndBiomeIntegratio
|
|||
public void init() {
|
||||
Block block = Integrations.BYG.getBlock("ivis_phylium");
|
||||
if (block != null) {
|
||||
TagAPI.addTags(block, TagAPI.END_GROUND, TagAPI.GEN_TERRAIN);
|
||||
TagAPI.addTags(block, TagAPI.BLOCK_END_GROUND, TagAPI.BLOCK_GEN_TERRAIN);
|
||||
}
|
||||
BYGBlocks.register();
|
||||
BYGFeatures.register();
|
||||
|
|
|
@ -24,7 +24,7 @@ public class BigEtherTreeFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
BlockState log = Integrations.BYG.getDefaultState("ether_log");
|
||||
BlockState wood = Integrations.BYG.getDefaultState("ether_wood");
|
||||
|
@ -32,7 +32,7 @@ public class BigEtherTreeFeature extends DefaultFeature {
|
|||
return log;
|
||||
};
|
||||
Function<BlockState, Boolean> replace = (state) -> {
|
||||
return state.is(TagAPI.END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.getMaterial()
|
||||
return state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.getMaterial()
|
||||
.isReplaceable();
|
||||
};
|
||||
|
||||
|
@ -63,7 +63,7 @@ public class BigEtherTreeFeature extends DefaultFeature {
|
|||
}
|
||||
|
||||
sdf.setReplaceFunction((state) -> {
|
||||
return state.is(TagAPI.END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.getMaterial()
|
||||
return state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.getMaterial()
|
||||
.isReplaceable();
|
||||
}).addPostProcess((info) -> {
|
||||
if (info.getState().equals(log) && (!info.getStateUp().equals(log) || !info.getStateDown().equals(log))) {
|
||||
|
|
|
@ -38,7 +38,7 @@ public class NightshadeRedwoodTreeFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
BlockState log = Integrations.BYG.getDefaultState("nightshade_log");
|
||||
BlockState wood = Integrations.BYG.getDefaultState("nightshade_wood");
|
||||
|
@ -49,7 +49,7 @@ public class NightshadeRedwoodTreeFeature extends DefaultFeature {
|
|||
return log;
|
||||
};
|
||||
Function<BlockState, Boolean> replace = (state) -> {
|
||||
return state.is(TagAPI.END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.getMaterial()
|
||||
return state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.getMaterial()
|
||||
.isReplaceable();
|
||||
};
|
||||
Function<PosInfo, BlockState> post = (info) -> {
|
||||
|
|
|
@ -39,8 +39,8 @@ public class OldBulbisTreeFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below(4)).is(TagAPI.GEN_TERRAIN)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below(4)).is(TagAPI.BLOCK_GEN_TERRAIN)) return false;
|
||||
|
||||
BlockState stem = Integrations.BYG.getDefaultState("bulbis_stem");
|
||||
BlockState wood = Integrations.BYG.getDefaultState("bulbis_wood");
|
||||
|
@ -48,7 +48,7 @@ public class OldBulbisTreeFeature extends DefaultFeature {
|
|||
BlockState glow = Integrations.BYG.getDefaultState("purple_shroomlight");
|
||||
|
||||
Function<BlockState, Boolean> replacement = (state) -> {
|
||||
if (state.equals(stem) || state.equals(wood) || state.is(TagAPI.END_GROUND) || state.getMaterial()
|
||||
if (state.equals(stem) || state.equals(wood) || state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial()
|
||||
.equals(Material.PLANT)) {
|
||||
return true;
|
||||
}
|
||||
|
@ -155,7 +155,7 @@ public class OldBulbisTreeFeature extends DefaultFeature {
|
|||
SplineHelper.rotateSpline(branch, angle);
|
||||
SplineHelper.scale(branch, scale);
|
||||
Vector3f last = branch.get(branch.size() - 1);
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
SplineHelper.fillSpline(branch, world, wood, pos, replacement);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,12 +72,12 @@ public class REIPlugin implements REIClientPlugin {
|
|||
.filter(EndAnvilBlock.class::isInstance)
|
||||
.collect(Collectors.toList())));
|
||||
anvils.add(0, EntryStacks.of(Blocks.ANVIL));
|
||||
List<EntryStack<?>> furnaces = Lists.newArrayList(EntryIngredients.ofItems(EndBlocks.getModBlocks()
|
||||
List<EntryStack<?>> ITEM_FURNACES = Lists.newArrayList(EntryIngredients.ofItems(EndBlocks.getModBlocks()
|
||||
.stream()
|
||||
.filter(BaseFurnaceBlock.class::isInstance)
|
||||
.collect(Collectors.toList())));
|
||||
EntryStack<?>[] anvilsArray = anvils.toArray(new EntryStack[0]);
|
||||
EntryStack<?>[] furnacesArray = furnaces.toArray(new EntryStack[0]);
|
||||
EntryStack<?>[] ITEM_FURNACESArray = ITEM_FURNACES.toArray(new EntryStack[0]);
|
||||
|
||||
registry.add(
|
||||
new REIAlloyingFuelCategory(),
|
||||
|
@ -93,7 +93,7 @@ public class REIPlugin implements REIClientPlugin {
|
|||
registry.removePlusButton(ALLOYING_FUEL);
|
||||
registry.removePlusButton(SMITHING);
|
||||
|
||||
registry.addWorkstations(DefaultPlugin.SMELTING, furnacesArray);
|
||||
registry.addWorkstations(DefaultPlugin.FUEL, furnacesArray);
|
||||
registry.addWorkstations(DefaultPlugin.SMELTING, ITEM_FURNACESArray);
|
||||
registry.addWorkstations(DefaultPlugin.FUEL, ITEM_FURNACESArray);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -113,7 +113,7 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, I
|
|||
|
||||
@Override
|
||||
public float getMiningSpeedMultiplier(Tag<Item> tag, BlockState state, ItemStack stack, LivingEntity user) {
|
||||
if (tag.equals(TagAPI.HAMMERS)) {
|
||||
if (tag.equals(TagAPI.ITEM_HAMMERS)) {
|
||||
return this.getDestroySpeed(stack, state);
|
||||
}
|
||||
return 1.0F;
|
||||
|
@ -121,7 +121,7 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, I
|
|||
|
||||
@Override
|
||||
public int getMiningLevel(Tag<Item> tag, BlockState state, ItemStack stack, LivingEntity user) {
|
||||
if (tag.equals(TagAPI.HAMMERS)) {
|
||||
if (tag.equals(TagAPI.ITEM_HAMMERS)) {
|
||||
return this.getTier().getLevel();
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -100,6 +100,7 @@ public class LevelRendererMixin {
|
|||
RenderSystem.depthMask(false);
|
||||
RenderSystem.enableTexture();
|
||||
RenderSystem.enableBlend();
|
||||
RenderSystem.setShaderColor(1,1,1,1);
|
||||
RenderSystem.blendFunc(
|
||||
GlStateManager.SourceFactor.SRC_ALPHA,
|
||||
GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA
|
||||
|
|
|
@ -54,7 +54,7 @@ public abstract class ChorusFlowerBlockMixin extends Block {
|
|||
|
||||
@Inject(method = "randomTick", at = @At("HEAD"), cancellable = true)
|
||||
private void be_randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random, CallbackInfo info) {
|
||||
if (world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) {
|
||||
if (world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) {
|
||||
BlockPos up = pos.above();
|
||||
if (world.isEmptyBlock(up) && up.getY() < 256) {
|
||||
int i = state.getValue(ChorusFlowerBlock.AGE);
|
||||
|
@ -119,7 +119,7 @@ public abstract class ChorusFlowerBlockMixin extends Block {
|
|||
@Inject(method = "placeDeadFlower", at = @At("HEAD"), cancellable = true)
|
||||
private void be_placeDeadFlower(Level world, BlockPos pos, CallbackInfo info) {
|
||||
BlockState down = world.getBlockState(pos.below());
|
||||
if (down.is(Blocks.CHORUS_PLANT) || down.is(TagAPI.GEN_TERRAIN)) {
|
||||
if (down.is(Blocks.CHORUS_PLANT) || down.is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
world.setBlock(pos, this.defaultBlockState().setValue(BlockStateProperties.AGE_5, 5), 2);
|
||||
world.levelEvent(1034, pos, 0);
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ public abstract class ChorusPlantBlockMixin extends Block {
|
|||
BlockPos pos = ctx.getClickedPos();
|
||||
Level world = ctx.getLevel();
|
||||
BlockState plant = info.getReturnValue();
|
||||
if (ctx.canPlace() && plant.is(Blocks.CHORUS_PLANT) && world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) {
|
||||
if (ctx.canPlace() && plant.is(Blocks.CHORUS_PLANT) && world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) {
|
||||
if (GeneratorOptions.changeChorusPlant()) {
|
||||
info.setReturnValue(plant.setValue(VanillaBlockProperties.ROOTS, true)
|
||||
.setValue(BlockStateProperties.DOWN, true));
|
||||
|
@ -66,7 +66,7 @@ public abstract class ChorusPlantBlockMixin extends Block {
|
|||
private void be_getStateForPlacement(BlockGetter blockGetter, BlockPos blockPos, CallbackInfoReturnable<BlockState> info) {
|
||||
BlockState plant = info.getReturnValue();
|
||||
if (plant.is(Blocks.CHORUS_PLANT)) {
|
||||
if (blockGetter.getBlockState(blockPos.below()).is(TagAPI.END_GROUND)) {
|
||||
if (blockGetter.getBlockState(blockPos.below()).is(TagAPI.BLOCK_END_GROUND)) {
|
||||
if (GeneratorOptions.changeChorusPlant()) {
|
||||
info.setReturnValue(plant.setValue(BlockStateProperties.DOWN, true)
|
||||
.setValue(VanillaBlockProperties.ROOTS, true));
|
||||
|
@ -98,7 +98,7 @@ public abstract class ChorusPlantBlockMixin extends Block {
|
|||
private void be_updateShape(BlockState state, Direction direction, BlockState newState, LevelAccessor world, BlockPos pos, BlockPos posFrom, CallbackInfoReturnable<BlockState> info) {
|
||||
BlockState plant = info.getReturnValue();
|
||||
if (plant.is(Blocks.CHORUS_PLANT)) {
|
||||
if (world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) {
|
||||
if (world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) {
|
||||
if (GeneratorOptions.changeChorusPlant()) {
|
||||
plant = plant.setValue(BlockStateProperties.DOWN, true)
|
||||
.setValue(VanillaBlockProperties.ROOTS, true);
|
||||
|
|
|
@ -71,28 +71,28 @@ public abstract class EnchantmentMenuMixin extends AbstractContainerMenu {
|
|||
0,
|
||||
j
|
||||
)) && world.isEmptyBlock(blockPos.offset(k, 1, j))) {
|
||||
if (world.getBlockState(blockPos.offset(k * 2, 0, j * 2)).is(TagAPI.BOOKSHELVES)) {
|
||||
if (world.getBlockState(blockPos.offset(k * 2, 0, j * 2)).is(TagAPI.BLOCK_BOOKSHELVES)) {
|
||||
++i;
|
||||
}
|
||||
|
||||
if (world.getBlockState(blockPos.offset(k * 2, 1, j * 2)).is(TagAPI.BOOKSHELVES)) {
|
||||
if (world.getBlockState(blockPos.offset(k * 2, 1, j * 2)).is(TagAPI.BLOCK_BOOKSHELVES)) {
|
||||
++i;
|
||||
}
|
||||
|
||||
if (k != 0 && j != 0) {
|
||||
if (world.getBlockState(blockPos.offset(k * 2, 0, j)).is(TagAPI.BOOKSHELVES)) {
|
||||
if (world.getBlockState(blockPos.offset(k * 2, 0, j)).is(TagAPI.BLOCK_BOOKSHELVES)) {
|
||||
++i;
|
||||
}
|
||||
|
||||
if (world.getBlockState(blockPos.offset(k * 2, 1, j)).is(TagAPI.BOOKSHELVES)) {
|
||||
if (world.getBlockState(blockPos.offset(k * 2, 1, j)).is(TagAPI.BLOCK_BOOKSHELVES)) {
|
||||
++i;
|
||||
}
|
||||
|
||||
if (world.getBlockState(blockPos.offset(k, 0, j * 2)).is(TagAPI.BOOKSHELVES)) {
|
||||
if (world.getBlockState(blockPos.offset(k, 0, j * 2)).is(TagAPI.BLOCK_BOOKSHELVES)) {
|
||||
++i;
|
||||
}
|
||||
|
||||
if (world.getBlockState(blockPos.offset(k, 1, j * 2)).is(TagAPI.BOOKSHELVES)) {
|
||||
if (world.getBlockState(blockPos.offset(k, 1, j * 2)).is(TagAPI.BLOCK_BOOKSHELVES)) {
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ public class CraftingRecipes {
|
|||
.setShape("T#T", "V V", "T#T")
|
||||
.addMaterial('#', Blocks.END_STONE_BRICKS)
|
||||
.addMaterial('T', EndBlocks.THALLASIUM.ingot)
|
||||
.addMaterial('V', TagAPI.FURNACES)
|
||||
.addMaterial('V', TagAPI.ITEM_FURNACES)
|
||||
.build();
|
||||
|
||||
registerPedestal(
|
||||
|
|
|
@ -99,7 +99,7 @@ public class AnvilRecipe implements Recipe<Container>, BetterEndRecipe {
|
|||
|
||||
public boolean matches(Container craftingInventory) {
|
||||
ItemStack hammer = craftingInventory.getItem(1);
|
||||
if (hammer.isEmpty() || !TagAPI.HAMMERS.contains(hammer.getItem())) {
|
||||
if (hammer.isEmpty() || !TagAPI.ITEM_HAMMERS.contains(hammer.getItem())) {
|
||||
return false;
|
||||
}
|
||||
ItemStack material = craftingInventory.getItem(0);
|
||||
|
@ -123,7 +123,7 @@ public class AnvilRecipe implements Recipe<Container>, BetterEndRecipe {
|
|||
@Override
|
||||
public NonNullList<Ingredient> getIngredients() {
|
||||
NonNullList<Ingredient> defaultedList = NonNullList.create();
|
||||
defaultedList.add(Ingredient.of(TagAPI.HAMMERS.getValues()
|
||||
defaultedList.add(Ingredient.of(TagAPI.ITEM_HAMMERS.getValues()
|
||||
.stream()
|
||||
.filter(hammer -> ((TieredItem) hammer).getTier()
|
||||
.getLevel() >= toolLevel)
|
||||
|
|
|
@ -46,6 +46,7 @@ import ru.betterend.world.features.bushes.BushWithOuterFeature;
|
|||
import ru.betterend.world.features.bushes.LargeAmaranitaFeature;
|
||||
import ru.betterend.world.features.bushes.Lumecorn;
|
||||
import ru.betterend.world.features.bushes.TenaneaBushFeature;
|
||||
import ru.betterend.world.features.terrain.ArchFeature;
|
||||
import ru.betterend.world.features.terrain.BigAuroraCrystalFeature;
|
||||
import ru.betterend.world.features.terrain.DesertLakeFeature;
|
||||
import ru.betterend.world.features.terrain.EndLakeFeature;
|
||||
|
@ -517,6 +518,7 @@ public class EndFeatures {
|
|||
BetterEnd.makeID("tunel_cave"),
|
||||
new TunelCaveFeature()
|
||||
);
|
||||
public static final BCLFeature UMBRALITH_ARCH = registerChanced("umbralith_arch", new ArchFeature(), 10);
|
||||
|
||||
// Ores //
|
||||
public static final BCLFeature THALLASIUM_ORE = registerOre(
|
||||
|
|
|
@ -156,7 +156,7 @@ public class EndItems extends ItemsRegistry {
|
|||
public final static Item AETERNIUM_SWORD_BLADE = registerEndItem("aeternium_sword_blade");
|
||||
public final static Item AETERNIUM_SWORD_HANDLE = registerEndItem("aeternium_sword_handle");
|
||||
|
||||
// Hammers //
|
||||
// ITEM_HAMMERS //
|
||||
public static final TieredItem IRON_HAMMER = registerEndTool(
|
||||
"iron_hammer",
|
||||
new EndHammerItem(Tiers.IRON, 5.0F, -3.2F, 0.2D, makeEndItemSettings())
|
||||
|
|
|
@ -38,8 +38,8 @@ public class EndTags {
|
|||
|
||||
// Block Tags
|
||||
public static final Tag.Named<Block> PEDESTALS = TagAPI.makeBlockTag(BetterEnd.MOD_ID, "pedestal");
|
||||
public static final Tag.Named<Block> END_STONES = TagAPI.makeCommonBlockTag("end_stones");
|
||||
|
||||
// Item Tags
|
||||
public static final Tag.Named<Item> ALLOYING_IRON = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_iron");
|
||||
public static final Tag.Named<Item> ALLOYING_GOLD = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_gold");
|
||||
public static final Tag.Named<Item> ALLOYING_COPPER = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_copper");
|
||||
|
@ -93,7 +93,7 @@ public class EndTags {
|
|||
BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_OBSIDIAN, Blocks.OBSIDIAN);
|
||||
BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_DRAGON_BONE, EndBlocks.DRAGON_BONE_BLOCK);
|
||||
|
||||
List<Item> hammers = Lists.newArrayList();
|
||||
List<Item> ITEM_HAMMERS = Lists.newArrayList();
|
||||
EndItems.getModItems(BetterEnd.MOD_ID).forEach(item -> {
|
||||
if (item.isEdible()) {
|
||||
FoodProperties food = item.getFoodProperties();
|
||||
|
@ -103,35 +103,29 @@ public class EndTags {
|
|||
}
|
||||
}
|
||||
if (item instanceof EndHammerItem) {
|
||||
hammers.add(item);
|
||||
ITEM_HAMMERS.add(item);
|
||||
}
|
||||
});
|
||||
ToolManagerImpl.tag(TagAPI.HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(hammers));
|
||||
TagAPI.addTag(TagAPI.HAMMERS, EndItems.AETERNIUM_HAMMER);
|
||||
ToolManagerImpl.tag(TagAPI.ITEM_HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(ITEM_HAMMERS));
|
||||
TagAPI.addTag(TagAPI.ITEM_HAMMERS, EndItems.AETERNIUM_HAMMER);
|
||||
|
||||
TagAPI.addTag(
|
||||
TagAPI.GEN_TERRAIN,
|
||||
TagAPI.BLOCK_GEN_TERRAIN,
|
||||
EndBlocks.ENDER_ORE,
|
||||
EndBlocks.FLAVOLITE.stone,
|
||||
EndBlocks.VIOLECITE.stone,
|
||||
EndBlocks.SULPHURIC_ROCK.stone,
|
||||
EndBlocks.BRIMSTONE,
|
||||
EndBlocks.VIRID_JADESTONE.stone,
|
||||
EndBlocks.AZURE_JADESTONE.stone,
|
||||
EndBlocks.SANDY_JADESTONE.stone
|
||||
EndBlocks.BRIMSTONE
|
||||
);
|
||||
TagAPI.addTag(TagAPI.END_GROUND, EndBlocks.SULPHURIC_ROCK.stone, EndBlocks.BRIMSTONE);
|
||||
TagAPI.addTag(TagAPI.BLOCK_END_GROUND, EndBlocks.BRIMSTONE);
|
||||
TagAPI.addTag(BlockTags.ANVIL, EndBlocks.AETERNIUM_ANVIL);
|
||||
TagAPI.addTag(BlockTags.BEACON_BASE_BLOCKS, EndBlocks.AETERNIUM_BLOCK);
|
||||
TagAPI.addTag(ItemTags.BEACON_PAYMENT_ITEMS, EndItems.AETERNIUM_INGOT);
|
||||
TagAPI.addTag(
|
||||
TagAPI.DRAGON_IMMUNE,
|
||||
TagAPI.BLOCK_DRAGON_IMMUNE,
|
||||
EndBlocks.ENDER_ORE,
|
||||
EndBlocks.ETERNAL_PEDESTAL,
|
||||
EndBlocks.FLAVOLITE_RUNED_ETERNAL,
|
||||
EndBlocks.FLAVOLITE_RUNED
|
||||
);
|
||||
TagAPI.addTag(TagAPI.IRON_INGOTS, EndBlocks.THALLASIUM.ingot);
|
||||
TagAPI.addTag(TagAPI.ITEM_IRON_INGOTS, EndBlocks.THALLASIUM.ingot);
|
||||
|
||||
TagAPI.addTag(ALLOYING_IRON, Items.IRON_ORE, Items.DEEPSLATE_IRON_ORE, Items.RAW_IRON);
|
||||
TagAPI.addTag(ALLOYING_GOLD, Items.GOLD_ORE, Items.DEEPSLATE_GOLD_ORE, Items.RAW_GOLD);
|
||||
|
@ -144,10 +138,10 @@ public class EndTags {
|
|||
SurfaceBuilderConfiguration config = biome.getGenerationSettings().getSurfaceBuilderConfig();
|
||||
Block under = config.getUnderMaterial().getBlock();
|
||||
Block surface = config.getTopMaterial().getBlock();
|
||||
TagAPI.addTag(TagAPI.GEN_TERRAIN, under, surface);
|
||||
TagAPI.addTag(TagAPI.END_GROUND, surface);
|
||||
TagAPI.addTag(TagAPI.BLOCK_GEN_TERRAIN, under, surface);
|
||||
TagAPI.addTag(TagAPI.BLOCK_END_GROUND, surface);
|
||||
}
|
||||
});
|
||||
END_STONES.getValues().forEach(TagAPI::addEndGround);
|
||||
TagAPI.BLOCK_END_STONES.getValues().forEach(TagAPI::addEndGround);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package ru.betterend.world.biome.land;
|
|||
|
||||
import ru.bclib.world.biomes.BCLBiomeDef;
|
||||
import ru.betterend.BetterEnd;
|
||||
import ru.betterend.registry.EndFeatures;
|
||||
import ru.betterend.world.biome.EndBiome;
|
||||
import ru.betterend.world.surface.SurfaceBuilders;
|
||||
|
||||
|
@ -13,6 +14,7 @@ public class UmbraValleyBiome extends EndBiome {
|
|||
.setPlantsColor(200, 200, 200)
|
||||
.setWaterAndFogColor(69, 104, 134)
|
||||
.setSurface(SurfaceBuilders.UMBRA_SURFACE.configured(SurfaceBuilders.DEFAULT_END_CONFIG))
|
||||
.addFeature(EndFeatures.UMBRALITH_ARCH)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ public class CavePumpkinFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.above()).is(TagAPI.GEN_TERRAIN) || !world.isEmptyBlock(pos) || !world.isEmptyBlock(
|
||||
if (!world.getBlockState(pos.above()).is(TagAPI.BLOCK_GEN_TERRAIN) || !world.isEmptyBlock(pos) || !world.isEmptyBlock(
|
||||
pos.below())) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ public class CrashedShipFeature extends NBTStructureFeature {
|
|||
if (x * x + z * z < 3600) {
|
||||
return false;
|
||||
}
|
||||
return pos.getY() > 5 && world.getBlockState(pos.below()).is(TagAPI.GEN_TERRAIN);
|
||||
return pos.getY() > 5 && world.getBlockState(pos.below()).is(TagAPI.BLOCK_GEN_TERRAIN);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -32,7 +32,7 @@ public abstract class ScatterFeature extends DefaultFeature {
|
|||
if (pos.getY() < 5) {
|
||||
return false;
|
||||
}
|
||||
else if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) {
|
||||
else if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -39,8 +39,8 @@ public class BushFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND) && !world.getBlockState(pos.above())
|
||||
.is(TagAPI.END_GROUND))
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND) && !world.getBlockState(pos.above())
|
||||
.is(TagAPI.BLOCK_END_GROUND))
|
||||
return false;
|
||||
|
||||
float radius = MHelper.randRange(1.8F, 3.5F, random);
|
||||
|
|
|
@ -43,8 +43,8 @@ public class BushWithOuterFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND) && !world.getBlockState(pos.above())
|
||||
.is(TagAPI.END_GROUND))
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND) && !world.getBlockState(pos.above())
|
||||
.is(TagAPI.BLOCK_END_GROUND))
|
||||
return false;
|
||||
|
||||
float radius = MHelper.randRange(1.8F, 3.5F, random);
|
||||
|
|
|
@ -23,7 +23,7 @@ public class LargeAmaranitaFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
MutableBlockPos mut = new MutableBlockPos().set(pos);
|
||||
int height = MHelper.randRange(2, 3, random);
|
||||
|
|
|
@ -23,7 +23,7 @@ public class Lumecorn extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
int height = MHelper.randRange(4, 7, random);
|
||||
MutableBlockPos mut = new MutableBlockPos().set(pos);
|
||||
|
|
|
@ -42,7 +42,7 @@ public class TenaneaBushFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
float radius = MHelper.randRange(1.8F, 3.5F, random);
|
||||
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextInt());
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
package ru.betterend.world.features.terrain;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.WorldGenLevel;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
|
||||
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.sdf.SDF;
|
||||
import ru.bclib.sdf.operator.SDFDisplacement;
|
||||
import ru.bclib.sdf.operator.SDFRotation;
|
||||
import ru.bclib.sdf.primitive.SDFTorus;
|
||||
import ru.bclib.util.MHelper;
|
||||
import ru.bclib.world.features.DefaultFeature;
|
||||
import ru.betterend.noise.OpenSimplexNoise;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ArchFeature extends DefaultFeature {
|
||||
@Override
|
||||
public boolean place(FeaturePlaceContext<NoneFeatureConfiguration> featurePlaceContext) {
|
||||
final WorldGenLevel world = featurePlaceContext.level();
|
||||
BlockPos origin = featurePlaceContext.origin();
|
||||
Random random = featurePlaceContext.random();
|
||||
|
||||
BlockPos pos = getPosOnSurfaceWG(world, new BlockPos((origin.getX() & 0xFFFFFFF0) | 7, 0, (origin.getZ() & 0xFFFFFFF0) | 7));
|
||||
if (!world.getBlockState(pos.below(5)).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
float bigRadius = MHelper.randRange(10F, 20F, random);
|
||||
float smallRadius = MHelper.randRange(3F, 7F, random);
|
||||
if (smallRadius + bigRadius > 23) {
|
||||
smallRadius = 23 - bigRadius;
|
||||
}
|
||||
SDF arch = new SDFTorus().setBigRadius(bigRadius).setSmallRadius(smallRadius).setBlock(Blocks.DIAMOND_BLOCK);
|
||||
arch = new SDFRotation().setRotation(MHelper.randomHorizontal(random), (float) Math.PI * 0.5F).setSource(arch);
|
||||
|
||||
final float smallRadiusF = smallRadius;
|
||||
OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong());
|
||||
arch = new SDFDisplacement().setFunction((vec) -> {
|
||||
return (float) (Math.abs(noise.eval(
|
||||
vec.x() * 0.1,
|
||||
vec.y() * 0.1,
|
||||
vec.z() * 0.1
|
||||
)) * 3F + Math.abs(noise.eval(vec.x() * 0.3, vec.y() * 0.3 + 100, vec.z() * 0.3)) * 1.3F) - smallRadiusF * Math.abs(1 - vec.y() / bigRadius);
|
||||
}).setSource(arch);
|
||||
|
||||
arch.fillArea(world, pos, AABB.ofSize(Vec3.atCenterOf(pos), 46, 46, 46));
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -40,7 +40,7 @@ public class BigAuroraCrystalFeature extends DefaultFeature {
|
|||
Vector3f vec = MHelper.randomHorizontal(random);
|
||||
prism = new SDFRotation().setRotation(vec, random.nextFloat()).setSource(prism);
|
||||
prism.setReplaceFunction((bState) -> {
|
||||
return bState.getMaterial().isReplaceable() || bState.is(TagAPI.GEN_TERRAIN) || bState.getMaterial()
|
||||
return bState.getMaterial().isReplaceable() || bState.is(TagAPI.BLOCK_GEN_TERRAIN) || bState.getMaterial()
|
||||
.equals(Material.PLANT) || bState
|
||||
.getMaterial()
|
||||
.equals(Material.LEAVES);
|
||||
|
|
|
@ -118,11 +118,11 @@ public class DesertLakeFeature extends DefaultFeature {
|
|||
r *= r;
|
||||
if (x2 + z2 <= r) {
|
||||
state = world.getBlockState(POS);
|
||||
if (state.is(TagAPI.GEN_TERRAIN)) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
BlocksHelper.setWithoutUpdate(world, POS, AIR);
|
||||
}
|
||||
pos = POS.below();
|
||||
if (world.getBlockState(pos).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
state = world.getBiome(pos)
|
||||
.getGenerationSettings()
|
||||
.getSurfaceBuilderConfig()
|
||||
|
@ -180,7 +180,7 @@ public class DesertLakeFeature extends DefaultFeature {
|
|||
BlocksHelper.setWithoutUpdate(world, POS, state);
|
||||
}
|
||||
pos = POS.below();
|
||||
if (world.getBlockState(pos).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.ENDSTONE_DUST.defaultBlockState());
|
||||
}
|
||||
pos = POS.above();
|
||||
|
@ -193,7 +193,7 @@ public class DesertLakeFeature extends DefaultFeature {
|
|||
// Make border
|
||||
else if (y2 + x2 + z2 <= rb) {
|
||||
state = world.getBlockState(POS);
|
||||
if (state.is(TagAPI.GEN_TERRAIN) && world.isEmptyBlock(POS.above())) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && world.isEmptyBlock(POS.above())) {
|
||||
BlocksHelper.setWithoutUpdate(world, POS, EndBlocks.END_MOSS);
|
||||
}
|
||||
else if (y < waterLevel) {
|
||||
|
@ -235,7 +235,7 @@ public class DesertLakeFeature extends DefaultFeature {
|
|||
|
||||
private boolean canReplace(BlockState state) {
|
||||
return state.getMaterial()
|
||||
.isReplaceable() || state.is(TagAPI.GEN_TERRAIN) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial()
|
||||
.isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial()
|
||||
.equals(
|
||||
Material.PLANT) || state
|
||||
.getMaterial()
|
||||
|
|
|
@ -118,11 +118,11 @@ public class EndLakeFeature extends DefaultFeature {
|
|||
r *= r;
|
||||
if (x2 + z2 <= r) {
|
||||
state = world.getBlockState(POS);
|
||||
if (state.is(TagAPI.GEN_TERRAIN)) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
BlocksHelper.setWithoutUpdate(world, POS, AIR);
|
||||
}
|
||||
pos = POS.below();
|
||||
if (world.getBlockState(pos).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
state = world.getBiome(pos)
|
||||
.getGenerationSettings()
|
||||
.getSurfaceBuilderConfig()
|
||||
|
@ -180,7 +180,7 @@ public class EndLakeFeature extends DefaultFeature {
|
|||
BlocksHelper.setWithoutUpdate(world, POS, state);
|
||||
}
|
||||
pos = POS.below();
|
||||
if (world.getBlockState(pos).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.ENDSTONE_DUST.defaultBlockState());
|
||||
}
|
||||
pos = POS.above();
|
||||
|
@ -225,7 +225,7 @@ public class EndLakeFeature extends DefaultFeature {
|
|||
|
||||
private boolean canReplace(BlockState state) {
|
||||
return state.getMaterial()
|
||||
.isReplaceable() || state.is(TagAPI.GEN_TERRAIN) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial()
|
||||
.isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial()
|
||||
.equals(
|
||||
Material.PLANT) || state
|
||||
.getMaterial()
|
||||
|
|
|
@ -31,7 +31,7 @@ public class FallenPillarFeature extends DefaultFeature {
|
|||
world,
|
||||
new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))
|
||||
);
|
||||
if (!world.getBlockState(pos.below(5)).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (!world.getBlockState(pos.below(5)).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ public class FallenPillarFeature extends DefaultFeature {
|
|||
}
|
||||
return info.getState();
|
||||
}).setReplaceFunction((state) -> {
|
||||
return state.getMaterial().isReplaceable() || state.is(TagAPI.GEN_TERRAIN) || state.getMaterial()
|
||||
return state.getMaterial().isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.getMaterial()
|
||||
.equals(Material.PLANT);
|
||||
}).fillRecursive(world, pos);
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ public class GeyserFeature extends DefaultFeature {
|
|||
MutableBlockPos bpos = new MutableBlockPos().set(pos);
|
||||
bpos.setY(bpos.getY() - 1);
|
||||
BlockState state = world.getBlockState(bpos);
|
||||
while (state.is(TagAPI.GEN_TERRAIN) || !state.getFluidState().isEmpty() && bpos.getY() > 5) {
|
||||
while (state.is(TagAPI.BLOCK_GEN_TERRAIN) || !state.getFluidState().isEmpty() && bpos.getY() > 5) {
|
||||
bpos.setY(bpos.getY() - 1);
|
||||
state = world.getBlockState(bpos);
|
||||
}
|
||||
|
@ -194,7 +194,7 @@ public class GeyserFeature extends DefaultFeature {
|
|||
mut.setY(mut.getY() - 1);
|
||||
state = world.getBlockState(mut);
|
||||
}
|
||||
if (state.is(TagAPI.GEN_TERRAIN) && !world.getBlockState(mut.above()).is(EndBlocks.HYDROTHERMAL_VENT)) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && !world.getBlockState(mut.above()).is(EndBlocks.HYDROTHERMAL_VENT)) {
|
||||
for (int j = 0; j <= dist; j++) {
|
||||
BlocksHelper.setWithoutUpdate(world, mut, EndBlocks.SULPHURIC_ROCK.stone);
|
||||
MHelper.shuffle(HORIZONTAL, random);
|
||||
|
@ -239,7 +239,7 @@ public class GeyserFeature extends DefaultFeature {
|
|||
mut.setY(mut.getY() - 1);
|
||||
state = world.getBlockState(mut);
|
||||
}
|
||||
if (state.is(TagAPI.GEN_TERRAIN)) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
for (int j = 0; j <= dist; j++) {
|
||||
BlocksHelper.setWithoutUpdate(world, mut, EndBlocks.SULPHURIC_ROCK.stone);
|
||||
mut.setY(mut.getY() + 1);
|
||||
|
@ -271,11 +271,11 @@ public class GeyserFeature extends DefaultFeature {
|
|||
|
||||
static {
|
||||
REPLACE1 = (state) -> {
|
||||
return state.isAir() || (state.is(TagAPI.GEN_TERRAIN));
|
||||
return state.isAir() || (state.is(TagAPI.BLOCK_GEN_TERRAIN));
|
||||
};
|
||||
|
||||
REPLACE2 = (state) -> {
|
||||
if (state.is(TagAPI.GEN_TERRAIN) || state.is(EndBlocks.HYDROTHERMAL_VENT) || state.is(EndBlocks.SULPHUR_CRYSTAL)) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(EndBlocks.HYDROTHERMAL_VENT) || state.is(EndBlocks.SULPHUR_CRYSTAL)) {
|
||||
return true;
|
||||
}
|
||||
if (state.getMaterial().equals(Material.PLANT)) {
|
||||
|
|
|
@ -29,7 +29,7 @@ public class ObsidianBoulderFeature extends DefaultFeature {
|
|||
world,
|
||||
new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))
|
||||
);
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) {
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ public class ObsidianBoulderFeature extends DefaultFeature {
|
|||
}
|
||||
|
||||
private void makeBoulder(WorldGenLevel world, BlockPos pos, Random random) {
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) {
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ public class ObsidianBoulderFeature extends DefaultFeature {
|
|||
}
|
||||
return info.getState();
|
||||
}).setReplaceFunction((state) -> {
|
||||
return state.getMaterial().isReplaceable() || state.is(TagAPI.GEN_TERRAIN) || state.getMaterial()
|
||||
return state.getMaterial().isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.getMaterial()
|
||||
.equals(Material.PLANT);
|
||||
}).fillRecursive(world, pos);
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ public class ObsidianPillarBasementFeature extends DefaultFeature {
|
|||
world,
|
||||
new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))
|
||||
);
|
||||
if (!world.getBlockState(pos.below(5)).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (!world.getBlockState(pos.below(5)).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ public class ObsidianPillarBasementFeature extends DefaultFeature {
|
|||
}
|
||||
return info.getState();
|
||||
}).setReplaceFunction((state) -> {
|
||||
return state.getMaterial().isReplaceable() || state.is(TagAPI.GEN_TERRAIN) || state.getMaterial()
|
||||
return state.getMaterial().isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.getMaterial()
|
||||
.equals(Material.PLANT);
|
||||
}).fillRecursive(world, pos);
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ public class SingleBlockFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ public class SmaragdantCrystalFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ public class SmaragdantCrystalFeature extends DefaultFeature {
|
|||
mut.setY(mut.getY() - 1);
|
||||
state = world.getBlockState(mut);
|
||||
}
|
||||
if (state.is(TagAPI.GEN_TERRAIN) && !world.getBlockState(mut.above()).is(crystal.getBlock())) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && !world.getBlockState(mut.above()).is(crystal.getBlock())) {
|
||||
for (int j = 0; j <= dist; j++) {
|
||||
BlocksHelper.setWithoutUpdate(world, mut, crystal);
|
||||
mut.setY(mut.getY() + 1);
|
||||
|
|
|
@ -39,8 +39,8 @@ public class SpireFeature extends DefaultFeature {
|
|||
final ChunkGenerator chunkGenerator = featureConfig.chunkGenerator();
|
||||
pos = getPosOnSurfaceWG(world, pos);
|
||||
if (pos.getY() < 10 || !world.getBlockState(pos.below(3))
|
||||
.is(TagAPI.GEN_TERRAIN) || !world.getBlockState(pos.below(6))
|
||||
.is(TagAPI.GEN_TERRAIN)) {
|
||||
.is(TagAPI.BLOCK_GEN_TERRAIN) || !world.getBlockState(pos.below(6))
|
||||
.is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ public class SpireFeature extends DefaultFeature {
|
|||
|
||||
static {
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND)) {
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return true;
|
||||
}
|
||||
if (state.getBlock() instanceof LeavesBlock) {
|
||||
|
|
|
@ -45,7 +45,7 @@ public class StalactiteFeature extends DefaultFeature {
|
|||
mut.setY(pos.getY() + i * dir);
|
||||
BlockState state = world.getBlockState(mut);
|
||||
if (!state.getMaterial().isReplaceable()) {
|
||||
stalagnate = state.is(TagAPI.GEN_TERRAIN);
|
||||
stalagnate = state.is(TagAPI.BLOCK_GEN_TERRAIN);
|
||||
height = i;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ public class SulphuricCaveFeature extends DefaultFeature {
|
|||
bpos.setY(top - 1);
|
||||
|
||||
BlockState state = world.getBlockState(bpos);
|
||||
while (!state.is(TagAPI.GEN_TERRAIN) && bpos.getY() > 5) {
|
||||
while (!state.is(TagAPI.BLOCK_GEN_TERRAIN) && bpos.getY() > 5) {
|
||||
bpos.setY(bpos.getY() - 1);
|
||||
state = world.getBlockState(bpos);
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ public class SulphuricCaveFeature extends DefaultFeature {
|
|||
}
|
||||
top = (int) (bpos.getY() - (radius * 1.3F + 5));
|
||||
|
||||
while (state.is(TagAPI.GEN_TERRAIN) || !state.getFluidState().isEmpty() && bpos.getY() > 5) {
|
||||
while (state.is(TagAPI.BLOCK_GEN_TERRAIN) || !state.getFluidState().isEmpty() && bpos.getY() > 5) {
|
||||
bpos.setY(bpos.getY() - 1);
|
||||
state = world.getBlockState(bpos);
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ public class SulphuricCaveFeature extends DefaultFeature {
|
|||
}
|
||||
else if (dist < r2 * r2) {
|
||||
state = world.getBlockState(mut);
|
||||
if (state.is(TagAPI.GEN_TERRAIN) || state.is(Blocks.AIR)) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(Blocks.AIR)) {
|
||||
double v = noise.eval(x * 0.1, y * 0.1, z * 0.1) + noise.eval(
|
||||
x * 0.03,
|
||||
y * 0.03,
|
||||
|
@ -144,7 +144,7 @@ public class SulphuricCaveFeature extends DefaultFeature {
|
|||
mut.setY(mut.getY() - 1);
|
||||
state = world.getBlockState(mut);
|
||||
}
|
||||
if (state.is(TagAPI.GEN_TERRAIN) && !world.getBlockState(mut.above())
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && !world.getBlockState(mut.above())
|
||||
.is(EndBlocks.HYDROTHERMAL_VENT)) {
|
||||
for (int j = 0; j <= dist; j++) {
|
||||
BlocksHelper.setWithoutUpdate(world, mut, EndBlocks.SULPHURIC_ROCK.stone);
|
||||
|
@ -183,7 +183,7 @@ public class SulphuricCaveFeature extends DefaultFeature {
|
|||
}
|
||||
|
||||
private boolean isReplaceable(BlockState state) {
|
||||
return state.is(TagAPI.GEN_TERRAIN) || state.is(EndBlocks.HYDROTHERMAL_VENT) || state.is(EndBlocks.VENT_BUBBLE_COLUMN) || state
|
||||
return state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(EndBlocks.HYDROTHERMAL_VENT) || state.is(EndBlocks.VENT_BUBBLE_COLUMN) || state
|
||||
.is(EndBlocks.SULPHUR_CRYSTAL) || state.getMaterial().isReplaceable() || state.getMaterial()
|
||||
.equals(Material.PLANT) || state
|
||||
.getMaterial()
|
||||
|
|
|
@ -61,7 +61,7 @@ public class SulphuricLakeFeature extends DefaultFeature {
|
|||
int dist = x2 + z2;
|
||||
if (dist <= r) {
|
||||
POS.setY(getYOnSurface(world, x, z) - 1);
|
||||
if (world.getBlockState(POS).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(POS).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
if (isBorder(world, POS)) {
|
||||
if (random.nextInt(8) > 0) {
|
||||
brimstone.add(POS.immutable());
|
||||
|
@ -97,7 +97,7 @@ public class SulphuricLakeFeature extends DefaultFeature {
|
|||
brimstone.remove(POS);
|
||||
for (Direction dir : BlocksHelper.HORIZONTAL) {
|
||||
BlockPos offseted = POS.relative(dir);
|
||||
if (world.getBlockState(offseted).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(offseted).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
brimstone.add(offseted);
|
||||
}
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ public class SulphuricLakeFeature extends DefaultFeature {
|
|||
brimstone.remove(POS);
|
||||
for (Direction dir : BlocksHelper.HORIZONTAL) {
|
||||
BlockPos offseted = POS.relative(dir);
|
||||
if (world.getBlockState(offseted).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(offseted).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
brimstone.add(offseted);
|
||||
}
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ public class SulphuricLakeFeature extends DefaultFeature {
|
|||
}
|
||||
else if (dist < r2) {
|
||||
POS.setY(getYOnSurface(world, x, z) - 1);
|
||||
if (world.getBlockState(POS).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(POS).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
brimstone.add(POS.immutable());
|
||||
if (random.nextBoolean()) {
|
||||
brimstone.add(POS.below());
|
||||
|
|
|
@ -25,7 +25,7 @@ public class SurfaceVentFeature extends DefaultFeature {
|
|||
world,
|
||||
new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))
|
||||
);
|
||||
if (!world.getBlockState(pos.below(3)).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (!world.getBlockState(pos.below(3)).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ public class SurfaceVentFeature extends DefaultFeature {
|
|||
mut.setY(mut.getY() - 1);
|
||||
state = world.getBlockState(mut);
|
||||
}
|
||||
if (state.is(TagAPI.GEN_TERRAIN) && !world.getBlockState(mut.above()).is(EndBlocks.HYDROTHERMAL_VENT)) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && !world.getBlockState(mut.above()).is(EndBlocks.HYDROTHERMAL_VENT)) {
|
||||
for (int j = 0; j <= dist; j++) {
|
||||
BlocksHelper.setWithoutUpdate(world, mut, EndBlocks.SULPHURIC_ROCK.stone);
|
||||
mut.setY(mut.getY() + 1);
|
||||
|
|
|
@ -62,13 +62,13 @@ public class CaveChunkPopulatorFeature extends DefaultFeature {
|
|||
mut.setY(y);
|
||||
BlockState top = chunk.getBlockState(mut);
|
||||
BlockState bottom = chunk.getBlockState(mut2);
|
||||
if (top.isAir() && (bottom.is(TagAPI.GEN_TERRAIN) || bottom.is(Blocks.STONE))) {
|
||||
if (top.isAir() && (bottom.is(TagAPI.BLOCK_GEN_TERRAIN) || bottom.is(Blocks.STONE))) {
|
||||
mut3.set(mut2).move(sx, 0, sz);
|
||||
floorPositions.add(mut3.immutable());
|
||||
updateMin(mut3, min);
|
||||
updateMax(mut3, max);
|
||||
}
|
||||
else if (bottom.isAir() && (top.is(TagAPI.GEN_TERRAIN) || top.is(Blocks.STONE))) {
|
||||
else if (bottom.isAir() && (top.is(TagAPI.BLOCK_GEN_TERRAIN) || top.is(Blocks.STONE))) {
|
||||
mut3.set(mut).move(sx, 0, sz);
|
||||
ceilPositions.add(mut3.immutable());
|
||||
updateMin(mut3, min);
|
||||
|
|
|
@ -65,11 +65,11 @@ public abstract class EndCaveFeature extends DefaultFeature {
|
|||
caveBlocks.parallelStream().forEach((bpos) -> {
|
||||
if (world.getBlockState(bpos).getMaterial().isReplaceable()) {
|
||||
BlockPos side = bpos.below();
|
||||
if (world.getBlockState(side).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(side).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
floorPositions.add(side);
|
||||
}
|
||||
side = bpos.above();
|
||||
if (world.getBlockState(side).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(side).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
ceilPositions.add(side);
|
||||
}
|
||||
}
|
||||
|
@ -130,7 +130,7 @@ public abstract class EndCaveFeature extends DefaultFeature {
|
|||
for (Vec3i offset : SPHERE) {
|
||||
BlockPos wallPos = pos.offset(offset);
|
||||
if (!positions.contains(wallPos) && !placed.contains(wallPos) && world.getBlockState(wallPos)
|
||||
.is(TagAPI.GEN_TERRAIN)) {
|
||||
.is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
wallBlock = biome.getWall(wallPos);
|
||||
BlocksHelper.setWithoutUpdate(world, wallPos, wallBlock);
|
||||
placed.add(wallPos);
|
||||
|
@ -170,7 +170,7 @@ public abstract class EndCaveFeature extends DefaultFeature {
|
|||
bpos.setY(top - 1);
|
||||
|
||||
BlockState state = world.getBlockState(bpos);
|
||||
while (!state.is(TagAPI.GEN_TERRAIN) && bpos.getY() > 5) {
|
||||
while (!state.is(TagAPI.BLOCK_GEN_TERRAIN) && bpos.getY() > 5) {
|
||||
bpos.setY(bpos.getY() - 1);
|
||||
state = world.getBlockState(bpos);
|
||||
}
|
||||
|
@ -179,7 +179,7 @@ public abstract class EndCaveFeature extends DefaultFeature {
|
|||
}
|
||||
top = (int) (bpos.getY() - (radius * 1.3F + 5));
|
||||
|
||||
while (state.is(TagAPI.GEN_TERRAIN) || !state.getFluidState().isEmpty() && bpos.getY() > 5) {
|
||||
while (state.is(TagAPI.BLOCK_GEN_TERRAIN) || !state.getFluidState().isEmpty() && bpos.getY() > 5) {
|
||||
bpos.setY(bpos.getY() - 1);
|
||||
state = world.getBlockState(bpos);
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ public class RoundCaveFeature extends EndCaveFeature {
|
|||
}
|
||||
|
||||
private boolean isReplaceable(BlockState state) {
|
||||
return state.is(TagAPI.GEN_TERRAIN) || state.getMaterial().isReplaceable() || state.getMaterial()
|
||||
return state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.getMaterial().isReplaceable() || state.getMaterial()
|
||||
.equals(Material.PLANT) || state
|
||||
.getMaterial()
|
||||
.equals(Material.LEAVES);
|
||||
|
|
|
@ -80,7 +80,7 @@ public class TunelCaveFeature extends EndCaveFeature {
|
|||
) * 20) * 0.1F) * 0.9F;
|
||||
float dist = (float) noiseD.eval(pos.getX() * 0.1, y * 0.1, pos.getZ() * 0.1) * 0.12F;
|
||||
val = (val + vert * vert + dist) + density + gradient;
|
||||
if (val < 0.15 && world.getBlockState(pos).is(TagAPI.GEN_TERRAIN) && noWaterNear(world, pos)) {
|
||||
if (val < 0.15 && world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN) && noWaterNear(world, pos)) {
|
||||
positions.add(pos.immutable());
|
||||
}
|
||||
}
|
||||
|
@ -139,7 +139,7 @@ public class TunelCaveFeature extends EndCaveFeature {
|
|||
}
|
||||
else if (world.getBlockState(mut).getMaterial().isReplaceable()) {
|
||||
mut.setY(bpos.getY() - 1);
|
||||
if (world.getBlockState(mut).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(mut).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
Set<BlockPos> floorPositions = floorSets.get(bio);
|
||||
if (floorPositions == null) {
|
||||
floorPositions = Sets.newHashSet();
|
||||
|
@ -148,7 +148,7 @@ public class TunelCaveFeature extends EndCaveFeature {
|
|||
floorPositions.add(mut.immutable());
|
||||
}
|
||||
mut.setY(bpos.getY() + 1);
|
||||
if (world.getBlockState(mut).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(mut).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
Set<BlockPos> ceilPositions = ceilSets.get(bio);
|
||||
if (ceilPositions == null) {
|
||||
ceilPositions = Sets.newHashSet();
|
||||
|
|
|
@ -45,7 +45,7 @@ public class DragonTreeFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
float size = MHelper.randRange(10, 25, random);
|
||||
List<Vector3f> spline = SplineHelper.makeSpline(0, 0, 0, 0, size, 0, 6);
|
||||
|
@ -111,7 +111,7 @@ public class DragonTreeFeature extends DefaultFeature {
|
|||
SplineHelper.rotateSpline(branch, angle);
|
||||
SplineHelper.scale(branch, scale);
|
||||
Vector3f last = branch.get(branch.size() - 1);
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.bark.defaultBlockState(), pos, REPLACE);
|
||||
}
|
||||
}
|
||||
|
@ -195,7 +195,7 @@ public class DragonTreeFeature extends DefaultFeature {
|
|||
|
||||
static {
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND)) {
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return true;
|
||||
}
|
||||
if (state.getBlock() == EndBlocks.DRAGON_TREE_LEAVES) {
|
||||
|
|
|
@ -36,7 +36,7 @@ public class GiganticAmaranitaFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
float size = MHelper.randRange(5, 10, random);
|
||||
List<Vector3f> spline = SplineHelper.makeSpline(0, 0, 0, 0, size, 0, 5);
|
||||
|
@ -361,7 +361,7 @@ public class GiganticAmaranitaFeature extends DefaultFeature {
|
|||
|
||||
static {
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND) || state.getMaterial().equals(Material.PLANT)) {
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial().equals(Material.PLANT)) {
|
||||
return true;
|
||||
}
|
||||
return state.getMaterial().isReplaceable();
|
||||
|
|
|
@ -37,7 +37,7 @@ public class HelixTreeFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
BlocksHelper.setWithoutUpdate(world, pos, AIR);
|
||||
|
||||
float angle = random.nextFloat() * MHelper.PI2;
|
||||
|
|
|
@ -36,7 +36,7 @@ public class JellyshroomFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
BlockState bark = EndBlocks.JELLYSHROOM.bark.defaultBlockState();
|
||||
BlockState membrane = EndBlocks.JELLYSHROOM_CAP_PURPLE.defaultBlockState();
|
||||
|
@ -89,7 +89,7 @@ public class JellyshroomFeature extends DefaultFeature {
|
|||
SplineHelper.rotateSpline(branch, angle);
|
||||
SplineHelper.scale(branch, scale);
|
||||
Vector3f last = branch.get(branch.size() - 1);
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
SplineHelper.fillSpline(branch, world, wood, pos, REPLACE);
|
||||
}
|
||||
}
|
||||
|
@ -122,7 +122,7 @@ public class JellyshroomFeature extends DefaultFeature {
|
|||
SplineHelper.offset(ROOT, new Vector3f(0, -0.45F, 0));
|
||||
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND) || state.getMaterial().equals(Material.PLANT)) {
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial().equals(Material.PLANT)) {
|
||||
return true;
|
||||
}
|
||||
return state.getMaterial().isReplaceable();
|
||||
|
|
|
@ -38,7 +38,7 @@ public class LacugroveFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
float size = MHelper.randRange(15, 25, random);
|
||||
List<Vector3f> spline = SplineHelper.makeSpline(0, 0, 0, 0, size, 0, 6);
|
||||
|
@ -82,7 +82,7 @@ public class LacugroveFeature extends DefaultFeature {
|
|||
boolean generate = false;
|
||||
for (int y = minY; y < maxY; y++) {
|
||||
mut.setY(y);
|
||||
if (world.getBlockState(mut).is(TagAPI.END_GROUND)) {
|
||||
if (world.getBlockState(mut).is(TagAPI.BLOCK_END_GROUND)) {
|
||||
generate = true;
|
||||
break;
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ public class LacugroveFeature extends DefaultFeature {
|
|||
mut.setY(y);
|
||||
BlockState state = world.getBlockState(mut);
|
||||
if (state.getMaterial().isReplaceable() || state.getMaterial()
|
||||
.equals(Material.PLANT) || state.is(TagAPI.END_GROUND)) {
|
||||
.equals(Material.PLANT) || state.is(TagAPI.BLOCK_END_GROUND)) {
|
||||
BlocksHelper.setWithoutUpdate(
|
||||
world,
|
||||
mut,
|
||||
|
@ -188,7 +188,7 @@ public class LacugroveFeature extends DefaultFeature {
|
|||
|
||||
static {
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND)) {
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return true;
|
||||
}
|
||||
if (EndBlocks.LACUGROVE.isTreeLog(state)) {
|
||||
|
|
|
@ -46,7 +46,7 @@ public class LucerniaFeature extends DefaultFeature {
|
|||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
final NoneFeatureConfiguration config = featureConfig.config();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
float size = MHelper.randRange(12, 20, random);
|
||||
int count = (int) (size * 0.3F);
|
||||
|
@ -186,7 +186,7 @@ public class LucerniaFeature extends DefaultFeature {
|
|||
SplineHelper.rotateSpline(branch, angle);
|
||||
SplineHelper.scale(branch, scale);
|
||||
Vector3f last = branch.get(branch.size() - 1);
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
SplineHelper.fillSplineForce(branch, world, EndBlocks.LUCERNIA.bark.defaultBlockState(), pos, REPLACE);
|
||||
}
|
||||
}
|
||||
|
@ -194,7 +194,7 @@ public class LucerniaFeature extends DefaultFeature {
|
|||
|
||||
static {
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND)) {
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return true;
|
||||
}
|
||||
if (state.getBlock() == EndBlocks.LUCERNIA_LEAVES) {
|
||||
|
|
|
@ -172,7 +172,7 @@ public class MossyGlowshroomFeature extends DefaultFeature {
|
|||
.setSourceB(new SDFUnion().setSourceA(HEAD_POS).setSourceB(ROOTS_ROT));
|
||||
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND)) {
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return true;
|
||||
}
|
||||
if (state.getMaterial().equals(Material.PLANT)) {
|
||||
|
|
|
@ -188,7 +188,7 @@ public class PythadendronTreeFeature extends DefaultFeature {
|
|||
|
||||
static {
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND)) {
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return true;
|
||||
}
|
||||
if (state.getBlock() == EndBlocks.PYTHADENDRON_LEAVES) {
|
||||
|
|
|
@ -44,7 +44,7 @@ public class TenaneaFeature extends DefaultFeature {
|
|||
final Random random = featureConfig.random();
|
||||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
float size = MHelper.randRange(7, 10, random);
|
||||
int count = (int) (size * 0.45F);
|
||||
|
@ -175,7 +175,7 @@ public class TenaneaFeature extends DefaultFeature {
|
|||
|
||||
static {
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND)) {
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND)) {
|
||||
return true;
|
||||
}
|
||||
if (state.getBlock() == EndBlocks.TENANEA_LEAVES) {
|
||||
|
|
|
@ -44,7 +44,7 @@ public class UmbrellaTreeFeature extends DefaultFeature {
|
|||
final BlockPos pos = featureConfig.origin();
|
||||
final WorldGenLevel world = featureConfig.level();
|
||||
final NoneFeatureConfiguration config = featureConfig.config();
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.END_GROUND)) return false;
|
||||
if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false;
|
||||
|
||||
BlockState wood = EndBlocks.UMBRELLA_TREE.bark.defaultBlockState();
|
||||
BlockState membrane = EndBlocks.UMBRELLA_TREE_MEMBRANE.defaultBlockState()
|
||||
|
@ -161,7 +161,7 @@ public class UmbrellaTreeFeature extends DefaultFeature {
|
|||
SplineHelper.rotateSpline(branch, angle);
|
||||
SplineHelper.scale(branch, scale);
|
||||
Vector3f last = branch.get(branch.size() - 1);
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.GEN_TERRAIN)) {
|
||||
if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) {
|
||||
SplineHelper.fillSplineForce(branch, world, wood, pos, REPLACE);
|
||||
}
|
||||
}
|
||||
|
@ -220,7 +220,7 @@ public class UmbrellaTreeFeature extends DefaultFeature {
|
|||
SplineHelper.offset(ROOT, new Vector3f(0, -0.45F, 0));
|
||||
|
||||
REPLACE = (state) -> {
|
||||
if (state.is(TagAPI.END_GROUND) || state.getMaterial()
|
||||
if (state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial()
|
||||
.equals(Material.PLANT) || state.is(EndBlocks.UMBRELLA_TREE_MEMBRANE)) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ public class CavePiece extends BasePiece {
|
|||
double r2 = r - 4.5;
|
||||
double dist = xsq + ysq + zsq;
|
||||
if (dist < r2 * r2) {
|
||||
if (world.getBlockState(pos).is(TagAPI.END_GROUND)) {
|
||||
if (world.getBlockState(pos).is(TagAPI.BLOCK_END_GROUND)) {
|
||||
BlocksHelper.setWithoutUpdate(world, pos, CAVE_AIR);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ public class CrystalMountainPiece extends MountainPiece {
|
|||
continue;
|
||||
}
|
||||
pos.setY(minY);
|
||||
while (!chunk.getBlockState(pos).is(TagAPI.GEN_TERRAIN) && pos.getY() > 56 && !chunk.getBlockState(
|
||||
while (!chunk.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN) && pos.getY() > 56 && !chunk.getBlockState(
|
||||
pos.below()).is(Blocks.CAVE_AIR)) {
|
||||
pos.setY(pos.getY() - 1);
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ public class LakePiece extends BasePiece {
|
|||
double dist = x3 + y2 + z3;
|
||||
if (dist < r2) {
|
||||
BlockState state = chunk.getBlockState(mut);
|
||||
if (state.is(TagAPI.GEN_TERRAIN) || state.isAir()) {
|
||||
if (state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.isAir()) {
|
||||
state = mut.getY() < center.getY() ? WATER : CAVE_AIR;
|
||||
chunk.setBlockState(mut, state, false);
|
||||
}
|
||||
|
|
|
@ -901,5 +901,7 @@
|
|||
"block.betterend.umbralith_slab": "Umbralith Slab",
|
||||
"block.betterend.umbralith_stairs": "Umbralith Stairs",
|
||||
"block.betterend.umbralith_tiles": "Umbralith Tiles",
|
||||
"block.betterend.umbralith_wall": "Umbralith Wall"
|
||||
"block.betterend.umbralith_wall": "Umbralith Wall",
|
||||
|
||||
"biome.betterend.umbra_valley": "Umbra Valley"
|
||||
}
|
||||
|
|
|
@ -916,5 +916,7 @@
|
|||
"block.betterend.umbralith_slab": "Умбралитовая плита",
|
||||
"block.betterend.umbralith_stairs": "Умбралитовые ступени",
|
||||
"block.betterend.umbralith_tiles": "Умбралитовая плитка",
|
||||
"block.betterend.umbralith_wall": "Умбралитовая стена"
|
||||
"block.betterend.umbralith_wall": "Умбралитовая стена",
|
||||
|
||||
"biome.betterend.umbra_valley": "Долина Умбра"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue