lava hoarder improvements
This commit is contained in:
parent
be634de3ce
commit
2dec472409
@ -1,6 +1,7 @@
|
||||
package de.jottyfan.minecraft.quickiefabric.blockentity;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import de.jottyfan.minecraft.quickiefabric.blocks.QuickieBlocks;
|
||||
import net.minecraft.block.Blocks;
|
||||
@ -16,8 +17,11 @@ import net.minecraft.world.World;
|
||||
*/
|
||||
public class EmptyLavaHoarderBlockEntity extends BlockEntity implements Tickable {
|
||||
|
||||
private final Logger LOGGER = LogManager.getLogger(EmptyLavaHoarderBlockEntity.class);
|
||||
|
||||
public EmptyLavaHoarderBlockEntity() {
|
||||
super(QuickieFabricBlockEntity.EMPTYLAVAHOARDER);
|
||||
LOGGER.error("created empty lava hoarder block entity");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -28,7 +32,9 @@ public class EmptyLavaHoarderBlockEntity extends BlockEntity implements Tickable
|
||||
* @return true if lava was found
|
||||
*/
|
||||
private boolean suckLava(World world, BlockPos pos) {
|
||||
if (Blocks.LAVA.getName().equals(world.getBlockState(pos).getBlock().getName())) {
|
||||
if (world == null) {
|
||||
return false;
|
||||
} else if (Blocks.LAVA.getName().equals(world.getBlockState(pos).getBlock().getName())) {
|
||||
world.setBlockState(pos, Blocks.AIR.getDefaultState());
|
||||
return true;
|
||||
}
|
||||
@ -46,7 +52,6 @@ public class EmptyLavaHoarderBlockEntity extends BlockEntity implements Tickable
|
||||
found = found || suckLava(world, pos.up());
|
||||
found = found || suckLava(world, pos.down());
|
||||
if (found) {
|
||||
world.getBlockEntity(pos).markRemoved();
|
||||
world.setBlockState(pos, QuickieBlocks.LAVAHOARDER.getDefaultState());
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ import java.util.Random;
|
||||
import java.util.Set;
|
||||
|
||||
import de.jottyfan.minecraft.quickiefabric.blockentity.EmptyLavaHoarderBlockEntity;
|
||||
import de.jottyfan.minecraft.quickiefabric.blockentity.MonsterHoarderBlockEntity;
|
||||
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.block.Block;
|
||||
@ -104,10 +103,10 @@ public class BlockEmptyLavahoarder extends Block implements BlockEntityProvider
|
||||
for (String p : positions) {
|
||||
world.setBlockState(blockPosOf(p), Blocks.AIR.getDefaultState());
|
||||
}
|
||||
Random random = new Random();
|
||||
if (amount > 0) {
|
||||
world.setBlockState(pos, QuickieBlocks.LAVAHOARDER.getDefaultState());
|
||||
int count = 0;
|
||||
Random random = new Random();
|
||||
for (int i = 0; i < amount; i++) {
|
||||
if (random.nextFloat() < 0.0125) {
|
||||
count++;
|
||||
|
@ -3,10 +3,13 @@ package de.jottyfan.minecraft.quickiefabric.blocks;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import de.jottyfan.minecraft.quickiefabric.blockentity.EmptyLavaHoarderBlockEntity;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Material;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.entity.ItemEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -16,6 +19,7 @@ import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.hit.BlockHitResult;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
/**
|
||||
@ -23,12 +27,17 @@ import net.minecraft.world.World;
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
public class BlockLavahoarder extends Block {
|
||||
public class BlockLavahoarder extends Block implements BlockEntityProvider {
|
||||
|
||||
public BlockLavahoarder() {
|
||||
super(FabricBlockSettings.of(Material.STONE).hardness(2.5f).lightLevel(16));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntity createBlockEntity(BlockView world) {
|
||||
return new EmptyLavaHoarderBlockEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ItemStack> getDroppedStacks(BlockState state, Builder builder) {
|
||||
List<ItemStack> list = new ArrayList<>();
|
||||
|
@ -7,8 +7,6 @@ import java.util.function.Supplier;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
||||
import de.jottyfan.minecraft.quickiefabric.blockentity.EmptyLavaHoarderBlockEntity;
|
||||
import de.jottyfan.minecraft.quickiefabric.blockentity.ItemHoarderBlockEntity;
|
||||
import de.jottyfan.minecraft.quickiefabric.blockentity.MonsterHoarderBlockEntity;
|
||||
@ -25,6 +23,7 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.block.entity.BlockEntityType;
|
||||
import net.minecraft.block.entity.BlockEntityType.Builder;
|
||||
import net.minecraft.item.BlockItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemGroup;
|
||||
@ -71,22 +70,19 @@ public class RegistryManager {
|
||||
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(4, 32, 255))).spreadHorizontally().repeat(4);
|
||||
|
||||
public static final ConfiguredFeature<?, ?> FEATURE_DIRTSALPETER = Feature.ORE
|
||||
.configure(new OreFeatureConfig(new BlockMatchRuleTest(Blocks.DIRT),
|
||||
QuickieBlocks.DIRT_SALPETER.getDefaultState(), 3))
|
||||
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(4, 0, 255))).spreadHorizontally()
|
||||
.repeatRandomly(4);
|
||||
.configure(
|
||||
new OreFeatureConfig(new BlockMatchRuleTest(Blocks.DIRT), QuickieBlocks.DIRT_SALPETER.getDefaultState(), 3))
|
||||
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(4, 0, 255))).spreadHorizontally().repeatRandomly(4);
|
||||
|
||||
public static final ConfiguredFeature<?, ?> FEATURE_SANDSALPETER = Feature.ORE
|
||||
.configure(new OreFeatureConfig(new BlockMatchRuleTest(Blocks.SAND),
|
||||
QuickieBlocks.SAND_SALPETER.getDefaultState(), 3))
|
||||
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(4, 0, 255))).spreadHorizontally()
|
||||
.repeatRandomly(4);
|
||||
.configure(
|
||||
new OreFeatureConfig(new BlockMatchRuleTest(Blocks.SAND), QuickieBlocks.SAND_SALPETER.getDefaultState(), 3))
|
||||
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(4, 0, 255))).spreadHorizontally().repeatRandomly(4);
|
||||
|
||||
public static final ConfiguredFeature<?, ?> FEATURE_ORESANDSALPETER = Feature.ORE
|
||||
.configure(new OreFeatureConfig(new BlockMatchRuleTest(Blocks.SANDSTONE),
|
||||
QuickieBlocks.ORE_SAND_SALPETER.getDefaultState(), 3))
|
||||
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(4, 0, 255))).spreadHorizontally()
|
||||
.repeatRandomly(4);
|
||||
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(4, 0, 255))).spreadHorizontally().repeatRandomly(4);
|
||||
|
||||
public static final List<ConfiguredFeature<?, ?>> FEATURE_UNDERGROUND_ORES = Arrays.asList(FEATURE_ORESALPETER,
|
||||
FEATURE_ORESULPHOR, FEATURE_DIRTSALPETER, FEATURE_SANDSALPETER, FEATURE_ORESANDSALPETER);
|
||||
@ -147,19 +143,21 @@ public class RegistryManager {
|
||||
|
||||
public static final <T extends BlockEntity> BlockEntityType<? extends T> registerBlockEntity(String name,
|
||||
Supplier<? extends T> supplier, Block... blocks) {
|
||||
return Registry.register(Registry.BLOCK_ENTITY_TYPE, QUICKIEFABRIC + ":" + name,
|
||||
BlockEntityType.Builder.create(supplier, blocks).build(null));
|
||||
|
||||
String fullname = new StringBuilder().append(QUICKIEFABRIC).append(":").append(name).toString();
|
||||
Builder<? extends T> builder = BlockEntityType.Builder.create(supplier, blocks);
|
||||
BlockEntityType<? extends T> blockEntityType = builder.build(null);
|
||||
return Registry.register(Registry.BLOCK_ENTITY_TYPE, fullname, blockEntityType);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static final void registerBlockEntities() {
|
||||
QuickieFabricBlockEntity.ITEMHOARDER = (BlockEntityType<ItemHoarderBlockEntity>) registerBlockEntity(
|
||||
"itemhoarderblockentity", ItemHoarderBlockEntity::new, QuickieBlocks.ITEMHOARDER);
|
||||
QuickieFabricBlockEntity.MONSTERHOARDER = (BlockEntityType<MonsterHoarderBlockEntity>) registerBlockEntity(
|
||||
"monsterhoarderblockentity", MonsterHoarderBlockEntity::new, QuickieBlocks.MONSTERHOARDER);
|
||||
QuickieFabricBlockEntity.EMPTYLAVAHOARDER = (BlockEntityType<EmptyLavaHoarderBlockEntity>) registerBlockEntity(
|
||||
"emptylavahoarderblockentity", EmptyLavaHoarderBlockEntity::new, QuickieBlocks.EMPTYLAVAHOARDER);
|
||||
LOGGER.debug("registering quickiefabric block entities");
|
||||
QuickieFabricBlockEntity.ITEMHOARDER = (BlockEntityType<ItemHoarderBlockEntity>) registerBlockEntity("itemhoarderblockentity", ItemHoarderBlockEntity::new,
|
||||
QuickieBlocks.ITEMHOARDER);
|
||||
QuickieFabricBlockEntity.MONSTERHOARDER = (BlockEntityType<MonsterHoarderBlockEntity>) registerBlockEntity("monsterhoarderblockentity",
|
||||
MonsterHoarderBlockEntity::new, QuickieBlocks.MONSTERHOARDER);
|
||||
QuickieFabricBlockEntity.EMPTYLAVAHOARDER = (BlockEntityType<EmptyLavaHoarderBlockEntity>) registerBlockEntity("emptylavahoarderblockentity",
|
||||
EmptyLavaHoarderBlockEntity::new, QuickieBlocks.EMPTYLAVAHOARDER, QuickieBlocks.LAVAHOARDER);
|
||||
}
|
||||
|
||||
public static final void registerBlocks() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user