mirror of
https://github.com/CivMC/Civ.git
synced 2026-07-18 00:20:44 +00:00
1.20.4
This commit is contained in:
@@ -6,7 +6,9 @@ plugins {
|
||||
version = "3.2.3"
|
||||
|
||||
dependencies {
|
||||
paperDevBundle("1.18.2-R0.1-SNAPSHOT")
|
||||
paperweight {
|
||||
paperDevBundle("1.20.4-R0.1-SNAPSHOT")
|
||||
}
|
||||
|
||||
compileOnly(project(":plugins:civmodcore-paper"))
|
||||
compileOnly("com.sk89q.worldedit:worldedit-bukkit:7.2.8")
|
||||
|
||||
@@ -3,12 +3,18 @@ package com.untamedears.realisticbiomes.growth;
|
||||
import com.untamedears.realisticbiomes.model.Plant;
|
||||
import java.util.Random;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.worldgen.features.TreeFeatures;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.TreeType;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.craftbukkit.v1_18_R2.CraftWorld;
|
||||
import org.bukkit.craftbukkit.v1_20_R3.CraftWorld;
|
||||
import org.bukkit.craftbukkit.v1_20_R3.util.RandomSourceWrapper;
|
||||
|
||||
/**
|
||||
* We need to differentiate fungus from other types of saplings thanks
|
||||
@@ -20,7 +26,7 @@ import org.bukkit.craftbukkit.v1_18_R2.CraftWorld;
|
||||
*/
|
||||
public class FungusGrower extends AgeableGrower {
|
||||
|
||||
private final Random random = new Random();
|
||||
private final RandomSource randomSource = new RandomSourceWrapper(new Random());
|
||||
|
||||
public FungusGrower(final Material material) {
|
||||
super(material, 1, 1);
|
||||
@@ -42,18 +48,22 @@ public class FungusGrower extends AgeableGrower {
|
||||
}
|
||||
final Block block = plant.getLocation().getBlock();
|
||||
final Material material = block.getType();
|
||||
final var growth =
|
||||
final ResourceKey<ConfiguredFeature<?, ?>> growth =
|
||||
material == Material.CRIMSON_FUNGUS ? TreeFeatures.CRIMSON_FUNGUS :
|
||||
material == Material.WARPED_FUNGUS ? TreeFeatures.WARPED_FUNGUS :
|
||||
material == Material.FLOWERING_AZALEA ? TreeFeatures.AZALEA_TREE :
|
||||
null;
|
||||
material == Material.WARPED_FUNGUS ? TreeFeatures.WARPED_FUNGUS :
|
||||
material == Material.FLOWERING_AZALEA ? TreeFeatures.AZALEA_TREE :
|
||||
null;
|
||||
if (growth == null) {
|
||||
return true;
|
||||
}
|
||||
final ServerLevel world = ((CraftWorld) block.getWorld()).getHandle();
|
||||
final BlockPos position = new BlockPos(block.getX(), block.getY(), block.getZ());
|
||||
//Taken from CraftWorld.generateTree()
|
||||
if (!growth.value().place(world, world.getChunkSource().getGenerator(), this.random, position)) {
|
||||
Holder<ConfiguredFeature<?, ?>> growthHolder = world.registryAccess().registryOrThrow(Registries.CONFIGURED_FEATURE).getHolder(growth).orElse(null);
|
||||
|
||||
if (growthHolder == null) return false;
|
||||
|
||||
if (!growthHolder.value().place(world, world.getChunkSource().getGenerator(), this.randomSource, position)) {
|
||||
block.setType(material);
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -34,24 +34,28 @@ public class RBUtils {
|
||||
|
||||
public static TreeType getTreeType(Block block) {
|
||||
switch (block.getType()) {
|
||||
case ACACIA_SAPLING:
|
||||
return TreeType.ACACIA;
|
||||
case BIRCH_SAPLING:
|
||||
return TreeType.BIRCH;
|
||||
case OAK_SAPLING:
|
||||
return TreeType.TREE;
|
||||
case JUNGLE_SAPLING:
|
||||
return TreeType.JUNGLE;
|
||||
case DARK_OAK_SAPLING:
|
||||
return TreeType.DARK_OAK;
|
||||
case SPRUCE_SAPLING:
|
||||
return TreeType.REDWOOD;
|
||||
case CRIMSON_FUNGUS:
|
||||
return TreeType.CRIMSON_FUNGUS;
|
||||
case WARPED_FUNGUS:
|
||||
return TreeType.WARPED_FUNGUS;
|
||||
case ACACIA_SAPLING:
|
||||
return TreeType.ACACIA;
|
||||
case BIRCH_SAPLING:
|
||||
return TreeType.BIRCH;
|
||||
case OAK_SAPLING:
|
||||
return TreeType.TREE;
|
||||
case JUNGLE_SAPLING:
|
||||
return TreeType.JUNGLE;
|
||||
case DARK_OAK_SAPLING:
|
||||
return TreeType.DARK_OAK;
|
||||
case SPRUCE_SAPLING:
|
||||
return TreeType.REDWOOD;
|
||||
case CRIMSON_FUNGUS:
|
||||
return TreeType.CRIMSON_FUNGUS;
|
||||
case WARPED_FUNGUS:
|
||||
return TreeType.WARPED_FUNGUS;
|
||||
case FLOWERING_AZALEA:
|
||||
return TreeType.AZALEA;
|
||||
return TreeType.AZALEA;
|
||||
case MANGROVE_PROPAGULE:
|
||||
return TreeType.MANGROVE;
|
||||
case CHERRY_SAPLING:
|
||||
return TreeType.CHERRY;
|
||||
default:
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
@@ -123,7 +127,8 @@ public class RBUtils {
|
||||
|| material == Material.DARK_OAK_SAPLING || material == Material.JUNGLE_SAPLING
|
||||
|| material == Material.OAK_SAPLING || material == Material.SPRUCE_SAPLING
|
||||
|| material == Material.CRIMSON_FUNGUS || material == Material.WARPED_FUNGUS
|
||||
|| material == Material.FLOWERING_AZALEA;
|
||||
|| material == Material.FLOWERING_AZALEA || material == Material.MANGROVE_PROPAGULE
|
||||
|| material == Material.CHERRY_SAPLING;
|
||||
}
|
||||
|
||||
public static boolean isStem(Material mat) {
|
||||
|
||||
@@ -15,7 +15,7 @@ authors:
|
||||
- pruby
|
||||
- Maxopoly
|
||||
- BlackXnt
|
||||
api-version: 1.18
|
||||
api-version: 1.20
|
||||
description: RealisticBiomes makes farming harder by limiting growth rates of crops and making them only grow well in certain biomes.
|
||||
permissions:
|
||||
rb.public:
|
||||
|
||||
Reference in New Issue
Block a user