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