Additional survival details

This commit is contained in:
Frank 2023-06-17 21:09:06 +02:00
parent 300a262ac4
commit 14be7ecf01
4 changed files with 48 additions and 12 deletions

View file

@ -2,16 +2,19 @@ package org.betterx.betterend.blocks;
import org.betterx.bclib.behaviours.BehaviourBuilders;
import org.betterx.bclib.behaviours.interfaces.BehaviourWaterPlant;
import org.betterx.bclib.interfaces.SurvivesOnWater;
import org.betterx.bclib.interfaces.SurvivesOnSpecialGround;
import org.betterx.betterend.blocks.basis.EndUnderwaterPlantBlock;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.LevelReader;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluids;
public class CharniaBlock extends EndUnderwaterPlantBlock implements BehaviourWaterPlant, SurvivesOnWater {
import java.util.List;
import org.jetbrains.annotations.Nullable;
public class CharniaBlock extends EndUnderwaterPlantBlock implements BehaviourWaterPlant {
public CharniaBlock() {
super(
BehaviourBuilders.createWaterPlant()
@ -19,12 +22,18 @@ public class CharniaBlock extends EndUnderwaterPlantBlock implements BehaviourWa
}
@Override
public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) {
return canSupportCenter(world, pos.below(), Direction.UP) && world.getFluidState(pos).getType() == Fluids.WATER;
public void appendHoverText(
ItemStack itemStack,
@Nullable BlockGetter blockGetter,
List<Component> list,
TooltipFlag tooltipFlag
) {
super.appendHoverText(itemStack, blockGetter, list, tooltipFlag);
SurvivesOnSpecialGround.appendHoverTextUnderwater(list);
}
@Override
public boolean isTerrain(BlockState state) {
return SurvivesOnWater.super.isTerrain(state);
protected boolean isTerrain(BlockState state) {
return state.isSolid();
}
}

View file

@ -59,4 +59,10 @@ public class FlamaeaBlock extends EndPlantBlock implements CustomItemProvider, B
public boolean isTerrain(BlockState state) {
return SurvivesOnWater.super.isTerrain(state);
}
// @Override
// public boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) {
// return SurvivesOnWater.super.canSurvive(state, level, pos);
// }
}

View file

@ -2,6 +2,7 @@ package org.betterx.betterend.blocks;
import org.betterx.bclib.behaviours.interfaces.BehaviourWaterPlantSapling;
import org.betterx.bclib.blocks.UnderwaterPlantWithAgeBlock;
import org.betterx.bclib.interfaces.SurvivesOnSpecialGround;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.bclib.util.MHelper;
import org.betterx.betterend.interfaces.survives.SurvivesOnSulphuricRock;
@ -9,11 +10,18 @@ import org.betterx.betterend.registry.EndBlocks;
import net.minecraft.core.BlockPos;
import net.minecraft.core.BlockPos.MutableBlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.util.RandomSource;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.WorldGenLevel;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import java.util.List;
import org.jetbrains.annotations.Nullable;
public class HydraluxSaplingBlock extends UnderwaterPlantWithAgeBlock implements BehaviourWaterPlantSapling, SurvivesOnSulphuricRock {
@Override
@ -75,7 +83,15 @@ public class HydraluxSaplingBlock extends UnderwaterPlantWithAgeBlock implements
return SurvivesOnSulphuricRock.super.isTerrain(state);
}
public String prefixComponent() {
return "tooltip.bclib.place_underwater_on";
@Override
public void appendHoverText(
ItemStack itemStack,
@Nullable BlockGetter blockGetter,
List<Component> list,
TooltipFlag tooltipFlag
) {
super.appendHoverText(itemStack, blockGetter, list, tooltipFlag);
SurvivesOnSpecialGround.appendHoverTextUnderwaterInDepth(list, 5);
}
}

View file

@ -14,4 +14,9 @@ public interface SurvivesOnSulphuricRock extends SurvivesOnBlocks {
default List<Block> getSurvivableBlocks() {
return BLOCKS;
}
@Override
default String prefixComponent() {
return "tooltip.bclib.place_underwater_on";
}
}