Sponge drop fix
This commit is contained in:
parent
d58ca85e4c
commit
113aab6d24
7 changed files with 46 additions and 13 deletions
|
@ -81,7 +81,7 @@ public class BlockMengerSpongeWet extends BlockBaseNotFull implements IRenderTyp
|
|||
|
||||
@Override
|
||||
public void onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) {
|
||||
super.onBreak(world, pos, state, player);
|
||||
world.breakBlock(pos, !player.isCreative());
|
||||
BlocksHelper.setWithUpdate(world, pos, Blocks.AIR);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ import ru.betterend.recipe.CraftingRecipes;
|
|||
import ru.betterend.recipe.builders.GridRecipe;
|
||||
import ru.betterend.registry.EndBlocks;
|
||||
import ru.betterend.registry.EndItems;
|
||||
import ru.betterend.registry.EndTags;
|
||||
import ru.betterend.util.TagHelper;
|
||||
|
||||
public class StoneMaterial {
|
||||
|
@ -91,5 +92,6 @@ public class StoneMaterial {
|
|||
TagHelper.addTag(BlockTags.WALLS, wall, brick_wall);
|
||||
TagHelper.addTag(BlockTags.SLABS, slab, brick_slab);
|
||||
TagHelper.addTags(pressure_plate, BlockTags.PRESSURE_PLATES, BlockTags.STONE_PRESSURE_PLATES);
|
||||
TagHelper.addTag(EndTags.END_STONES, stone);
|
||||
}
|
||||
}
|
|
@ -125,6 +125,7 @@ public class WoodenMaterial {
|
|||
TagHelper.addTags(slab, ItemTags.WOODEN_SLABS, ItemTags.SLABS);
|
||||
TagHelper.addTags(stairs, ItemTags.WOODEN_STAIRS, ItemTags.STAIRS);
|
||||
TagHelper.addTags(trapdoor, ItemTags.WOODEN_TRAPDOORS, ItemTags.TRAPDOORS);
|
||||
TagHelper.addTag(EndTags.ITEM_CHEST, chest);
|
||||
|
||||
// Block Tags //
|
||||
TagHelper.addTag(BlockTags.PLANKS, planks);
|
||||
|
@ -139,6 +140,7 @@ public class WoodenMaterial {
|
|||
TagHelper.addTags(stairs, BlockTags.WOODEN_STAIRS, BlockTags.STAIRS);
|
||||
TagHelper.addTags(trapdoor, BlockTags.WOODEN_TRAPDOORS, BlockTags.TRAPDOORS);
|
||||
TagHelper.addTag(EndTags.BOOKSHELVES, shelf);
|
||||
TagHelper.addTag(EndTags.BLOCK_CHEST, chest);
|
||||
|
||||
logBlockTag = EndTags.makeBlockTag(name + "_logs");
|
||||
logItemTag = EndTags.makeItemTag(name + "_logs");
|
||||
|
|
|
@ -12,6 +12,7 @@ import ru.betterend.item.GuideBook;
|
|||
import ru.betterend.recipe.builders.GridRecipe;
|
||||
import ru.betterend.registry.EndBlocks;
|
||||
import ru.betterend.registry.EndItems;
|
||||
import ru.betterend.registry.EndTags;
|
||||
|
||||
public class CraftingRecipes {
|
||||
|
||||
|
@ -166,6 +167,18 @@ public class CraftingRecipes {
|
|||
.addMaterial('S', EndItems.ETERNAL_CRYSTAL)
|
||||
.addMaterial('A', EndBlocks.AMBER_BLOCK)
|
||||
.build();
|
||||
|
||||
GridRecipe.make("hopper", Blocks.HOPPER)
|
||||
.setShape("I I", "ICI", " I ")
|
||||
.addMaterial('I', Items.IRON_INGOT)
|
||||
.addMaterial('C', EndTags.ITEM_CHEST)
|
||||
.build();;
|
||||
|
||||
GridRecipe.make("shulker_box", Blocks.SHULKER_BOX)
|
||||
.setShape("S", "C", "S")
|
||||
.addMaterial('S', Items.SHULKER_SHELL)
|
||||
.addMaterial('C', EndTags.ITEM_CHEST)
|
||||
.build();
|
||||
}
|
||||
|
||||
private static void registerLantern(String name, Block lantern, Block slab) {
|
||||
|
|
|
@ -56,7 +56,7 @@ public class EndFeatures {
|
|||
public static final EndFeature DRAGON_TREE = new EndFeature("dragon_tree", new DragonTreeFeature(), 3);
|
||||
public static final EndFeature TENANEA = new EndFeature("tenanea", new TenaneaFeature(), 3);
|
||||
public static final EndFeature HELIX_TREE = new EndFeature("helix_tree", new HelixTreeFeature(), 2);
|
||||
public static final EndFeature UMBRELLA_TREE = new EndFeature("umbrella_tree", new UmbrellaTreeFeature(), 2);
|
||||
public static final EndFeature UMBRELLA_TREE = new EndFeature("umbrella_tree", new UmbrellaTreeFeature(), 4);
|
||||
|
||||
// Bushes //
|
||||
public static final EndFeature PYTHADENDRON_BUSH = new EndFeature("pythadendron_bush", new BushFeature(EndBlocks.PYTHADENDRON_LEAVES, EndBlocks.PYTHADENDRON.bark), 4);
|
||||
|
|
|
@ -31,12 +31,15 @@ import ru.betterend.util.TagHelper;
|
|||
|
||||
public class EndTags {
|
||||
// Block Tags
|
||||
public static final Tag.Identified<Block> END_GROUND = makeBlockTag("end_ground");
|
||||
public static final Tag.Identified<Block> BOOKSHELVES = makeCommonBlockTag("bookshelves");
|
||||
public static final Tag.Identified<Block> GEN_TERRAIN = makeBlockTag("gen_terrain");
|
||||
public static final Tag.Identified<Block> BOOKSHELVES = makeCommonTag("bookshelves");
|
||||
public static final Tag.Identified<Block> END_GROUND = makeBlockTag("end_ground");
|
||||
public static final Tag.Identified<Block> PEDESTALS = makeBlockTag("pedestal");
|
||||
public static final Tag.Identified<Block> BLOCK_CHEST = makeCommonBlockTag("chest");
|
||||
public static final Tag.Identified<Block> END_STONES = makeCommonBlockTag("end_stones");
|
||||
|
||||
// Item Tags
|
||||
public static final Tag.Identified<Item> ITEM_CHEST = makeCommonItemTag("chest");
|
||||
public final static Tag<Item> HAMMERS = registerFabricItemTag("hammers");
|
||||
|
||||
public static Tag.Identified<Block> makeBlockTag(String name) {
|
||||
|
@ -51,12 +54,18 @@ public class EndTags {
|
|||
return tag == null ? (Identified<Item>) TagRegistry.item(id) : (Identified<Item>) tag;
|
||||
}
|
||||
|
||||
public static Tag.Identified<Block> makeCommonTag(String name) {
|
||||
public static Tag.Identified<Block> makeCommonBlockTag(String name) {
|
||||
Identifier id = new Identifier("c", name);
|
||||
Tag<Block> tag = BlockTags.getTagGroup().getTag(id);
|
||||
return tag == null ? (Identified<Block>) TagRegistry.block(id) : (Identified<Block>) tag;
|
||||
}
|
||||
|
||||
public static Tag.Identified<Item> makeCommonItemTag(String name) {
|
||||
Identifier id = new Identifier("c", name);
|
||||
Tag<Item> tag = ItemTags.getTagGroup().getTag(id);
|
||||
return tag == null ? (Identified<Item>) TagRegistry.item(id) : (Identified<Item>) tag;
|
||||
}
|
||||
|
||||
public static void register() {
|
||||
addSurfaceBlock(Blocks.END_STONE);
|
||||
addSurfaceBlock(EndBlocks.ENDSTONE_DUST);
|
||||
|
@ -106,9 +115,15 @@ public class EndTags {
|
|||
biomeRegistry.forEach((biome) -> {
|
||||
if (biome.getCategory() == Category.THEEND) {
|
||||
SurfaceConfig config = biome.getGenerationSettings().getSurfaceConfig();
|
||||
TagHelper.addTag(GEN_TERRAIN, config.getTopMaterial().getBlock(), config.getUnderMaterial().getBlock());
|
||||
Block under = config.getUnderMaterial().getBlock();
|
||||
Block surface = config.getTopMaterial().getBlock();
|
||||
TagHelper.addTag(GEN_TERRAIN, under, surface);
|
||||
TagHelper.addTag(END_GROUND, surface);
|
||||
}
|
||||
});
|
||||
END_STONES.values().forEach((block) -> {
|
||||
addSurfaceBlock(block);
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean validGenBlock(BlockState block) {
|
||||
|
|
|
@ -10,7 +10,6 @@ import net.minecraft.block.BlockState;
|
|||
import net.minecraft.block.Material;
|
||||
import net.minecraft.client.util.math.Vector3f;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Box;
|
||||
import net.minecraft.world.StructureWorldAccess;
|
||||
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
||||
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
|
||||
|
@ -31,6 +30,7 @@ import ru.betterend.world.features.DefaultFeature;
|
|||
|
||||
public class UmbrellaTreeFeature extends DefaultFeature {
|
||||
private static final Function<BlockState, Boolean> REPLACE;
|
||||
private static final Function<BlockState, Boolean> IGNORE;
|
||||
private static final Function<PosInfo, BlockState> POST;
|
||||
private static final List<Vector3f> SPLINE;
|
||||
private static final List<Vector3f> ROOT;
|
||||
|
@ -48,9 +48,6 @@ public class UmbrellaTreeFeature extends DefaultFeature {
|
|||
float var = MHelper.PI2 / (float) (count * 3);
|
||||
float start = MHelper.randRange(0, MHelper.PI2, random);
|
||||
SDF sdf = null;
|
||||
int x1 = ((pos.getX() >> 4) << 4) - 16;
|
||||
int z1 = ((pos.getZ() >> 4) << 4) - 16;
|
||||
Box limits = new Box(x1, pos.getY() - 5, z1, x1 + 47, pos.getY() + size * 2, z1 + 47);
|
||||
for (int i = 0; i < count; i++) {
|
||||
float angle = (float) i / (float) count * MHelper.PI2 + MHelper.randRange(0, var, random) + start;
|
||||
List<Vector3f> spline = SplineHelper.copySpline(SPLINE);
|
||||
|
@ -61,7 +58,7 @@ public class UmbrellaTreeFeature extends DefaultFeature {
|
|||
SplineHelper.offsetParts(spline, random, 0.5F, 0, 0.5F);
|
||||
|
||||
if (SplineHelper.canGenerate(spline, pos, world, REPLACE)) {
|
||||
SDF branch = SplineHelper.buildSDF(spline, 1.3F, 0.8F, (bpos) -> {
|
||||
SDF branch = SplineHelper.buildSDF(spline, 1.2F, 0.8F, (bpos) -> {
|
||||
return wood;
|
||||
});
|
||||
|
||||
|
@ -83,8 +80,8 @@ public class UmbrellaTreeFeature extends DefaultFeature {
|
|||
return false;
|
||||
}
|
||||
|
||||
makeRoots(world, pos.add(0, 3, 0), size * 0.4F + 5, random, wood);
|
||||
sdf.setReplaceFunction(REPLACE).setPostProcess(POST).fillArea(world, pos, limits);
|
||||
sdf.setReplaceFunction(REPLACE).setPostProcess(POST).fillRecursiveIgnore(world, pos, IGNORE);
|
||||
makeRoots(world, pos.add(0, 2, 0), size * 0.3F + 3, random, wood);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -150,6 +147,10 @@ public class UmbrellaTreeFeature extends DefaultFeature {
|
|||
return state.getMaterial().isReplaceable();
|
||||
};
|
||||
|
||||
IGNORE = (state) -> {
|
||||
return EndBlocks.UMBRELLA_TREE.isTreeLog(state);
|
||||
};
|
||||
|
||||
POST = (info) -> {
|
||||
if (EndBlocks.UMBRELLA_TREE.isTreeLog(info.getStateUp()) && EndBlocks.UMBRELLA_TREE.isTreeLog(info.getStateDown())) {
|
||||
return EndBlocks.UMBRELLA_TREE.log.getDefaultState();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue