mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-18 10:32:30 +00:00
Remove TerraTree, to be replaced with GaeaStructure-based trees.
This commit is contained in:
parent
9d05aed065
commit
b820d11f49
@ -1,72 +0,0 @@
|
|||||||
package com.dfsek.terra;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
import org.polydev.gaea.structures.NMSStructure;
|
|
||||||
import org.polydev.gaea.tree.Tree;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
public enum TerraTree implements Tree {
|
|
||||||
SPRUCE_SMALL("/trees/spruce_small/s_spruce_", 4, Arrays.asList(Material.PODZOL, Material.GRASS_BLOCK, Material.DIRT)),
|
|
||||||
SPRUCE_MEDIUM("/trees/spruce_medium/m_spruce_", 5, Arrays.asList(Material.PODZOL, Material.GRASS_BLOCK, Material.DIRT)),
|
|
||||||
SPRUCE_LARGE("/trees/spruce_large/l_spruce_", 2, Arrays.asList(Material.PODZOL, Material.GRASS_BLOCK, Material.DIRT)),
|
|
||||||
OAK_SMALL("/trees/oak_small/s_oak_", 1, Arrays.asList(Material.GRASS_BLOCK, Material.DIRT)),
|
|
||||||
OAK_MEDIUM("/trees/oak_medium/m_oak_", 5, Arrays.asList(Material.GRASS_BLOCK, Material.DIRT)),
|
|
||||||
OAK_LARGE("/trees/oak_large/l_oak_", 2, Arrays.asList(Material.GRASS_BLOCK, Material.DIRT)),
|
|
||||||
JUNGLE_MEDIUM("/trees/jungle_medium/m_jungle_", 2, Arrays.asList(Material.GRASS_BLOCK, Material.DIRT)),
|
|
||||||
JUNGLE_LARGE("/trees/jungle_large/l_jungle_", 1, Arrays.asList(Material.GRASS_BLOCK, Material.DIRT)),
|
|
||||||
DEAD("/trees/dead/dead_", 4, Arrays.asList(Material.PODZOL, Material.GRASS_BLOCK, Material.DIRT, Material.COARSE_DIRT, Material.SAND, Material.RED_SAND)),
|
|
||||||
DARK_OAK_LARGE("/trees/dark_oak_large/l_darkoak_", 5, Arrays.asList(Material.PODZOL, Material.GRASS_BLOCK, Material.DIRT, Material.COARSE_DIRT, Material.SAND, Material.RED_SAND));
|
|
||||||
|
|
||||||
private final String filePath;
|
|
||||||
private final int permutations;
|
|
||||||
private final List<Material> validSpawns;
|
|
||||||
|
|
||||||
private final Map<String, Object> loadedStructures = new HashMap<>();
|
|
||||||
TerraTree(String directory, int number, List<Material> validSpawns) {
|
|
||||||
this.filePath = directory;
|
|
||||||
this.permutations = number;
|
|
||||||
this.validSpawns = validSpawns;
|
|
||||||
for(int i = 0; i < number; i++) {
|
|
||||||
Debug.info("[Terra] Loading tree " + directory + i + " to memory.");
|
|
||||||
loadedStructures.put(directory+i, NMSStructure.getAsTag(TerraTree.class.getResourceAsStream(directory + i + ".nbt")));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private NMSStructure getInstance(Location origin, Random random) {
|
|
||||||
return new NMSStructure(origin, loadedStructures.get(filePath + random.nextInt(permutations)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean plant(Location location, Random random, boolean b, JavaPlugin javaPlugin) {
|
|
||||||
if(!validSpawns.contains(location.clone().subtract(0, 1, 0).getBlock().getType())) return false;
|
|
||||||
NMSStructure temp = getInstance(location, random);
|
|
||||||
int[] size = temp.getDimensions();
|
|
||||||
switch(random.nextInt(4)) {
|
|
||||||
case 0:
|
|
||||||
temp.setOrigin(new Location(location.getWorld(), (int) (location.getBlockX()- (size[0]/2f)), location.getBlockY()-1, (int) (location.getBlockZ()- (size[2]/2f))));
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
temp.setRotation(90);
|
|
||||||
temp.setOrigin(new Location(location.getWorld(), (int) (location.getBlockX()+ (size[0]/2f)), location.getBlockY()-1, (int) (location.getBlockZ()- (size[2]/2f))));
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
temp.setRotation(180);
|
|
||||||
temp.setOrigin(new Location(location.getWorld(), (int) (location.getBlockX()+ (size[0]/2f)), location.getBlockY()-1, (int) (location.getBlockZ()+ (size[2]/2f))));
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
temp.setRotation(270);
|
|
||||||
temp.setOrigin(new Location(location.getWorld(), (int) (location.getBlockX()- (size[0]/2f)), location.getBlockY()-1, (int) (location.getBlockZ()+ (size[2]/2f))));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
temp.paste();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,9 +4,7 @@ import com.dfsek.terra.Debug;
|
|||||||
import com.dfsek.terra.config.TerraConfig;
|
import com.dfsek.terra.config.TerraConfig;
|
||||||
import com.dfsek.terra.config.exception.ConfigException;
|
import com.dfsek.terra.config.exception.ConfigException;
|
||||||
import com.dfsek.terra.config.exception.NotFoundException;
|
import com.dfsek.terra.config.exception.NotFoundException;
|
||||||
import com.dfsek.terra.population.OrePopulator;
|
|
||||||
import org.polydev.gaea.math.Range;
|
import org.polydev.gaea.math.Range;
|
||||||
import com.dfsek.terra.TerraTree;
|
|
||||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||||
import com.dfsek.terra.generation.UserDefinedDecorator;
|
import com.dfsek.terra.generation.UserDefinedDecorator;
|
||||||
import com.dfsek.terra.generation.UserDefinedGenerator;
|
import com.dfsek.terra.generation.UserDefinedGenerator;
|
||||||
@ -238,11 +236,7 @@ public class BiomeConfig extends TerraConfigObject {
|
|||||||
}
|
}
|
||||||
if(treeData != null) {
|
if(treeData != null) {
|
||||||
for(Map.Entry<String, Object> e : treeData.entrySet()) {
|
for(Map.Entry<String, Object> e : treeData.entrySet()) {
|
||||||
if(e.getKey().startsWith("TERRA:")) {
|
trees.add(TreeType.valueOf(e.getKey()), (Integer) e.getValue());
|
||||||
trees.add(TerraTree.valueOf(e.getKey().substring(6)), (Integer) e.getValue());
|
|
||||||
} else {
|
|
||||||
trees.add(TreeType.valueOf(e.getKey()), (Integer) e.getValue());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else trees = new ProbabilityCollection<>();
|
} else trees = new ProbabilityCollection<>();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user