1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-21 04:05:48 +00:00
Slimefun4/src/me/mrCookieSlime/Slimefun/GEO/OreGenSystem.java

74 lines
2.5 KiB
Java
Raw Normal View History

2016-05-18 17:04:27 +00:00
package me.mrCookieSlime.Slimefun.GEO;
2016-05-18 20:31:49 +00:00
import java.util.Collection;
2019-08-31 15:52:20 +00:00
import java.util.logging.Level;
2016-05-18 17:04:27 +00:00
import org.bukkit.Chunk;
import org.bukkit.block.Biome;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
2019-08-31 09:36:45 +00:00
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
2016-05-18 17:04:27 +00:00
import me.mrCookieSlime.Slimefun.api.BlockStorage;
2019-08-31 15:52:20 +00:00
import me.mrCookieSlime.Slimefun.api.Slimefun;
2016-05-18 17:04:27 +00:00
public final class OreGenSystem {
private OreGenSystem() {}
2016-05-18 17:04:27 +00:00
2016-05-18 20:31:49 +00:00
public static Collection<OreGenResource> listResources() {
2019-08-31 09:36:45 +00:00
return SlimefunPlugin.getUtilities().resources.values();
2016-05-18 20:31:49 +00:00
}
2016-05-18 17:04:27 +00:00
public static void registerResource(OreGenResource resource) {
2019-08-31 09:36:45 +00:00
SlimefunPlugin.getUtilities().resources.put(resource.getName(), resource);
2019-08-31 15:52:20 +00:00
Slimefun.getLogger().log(Level.INFO, "Registering Ore Gen: " + resource.getName());
2016-05-18 17:04:27 +00:00
Config cfg = new Config("plugins/Slimefun/generators/" + resource.getName() + ".cfg");
for (Biome biome: Biome.values()) {
cfg.setDefaultValue(biome.toString(), resource.getDefaultSupply(biome));
}
cfg.save();
}
public static OreGenResource getResource(String name) {
2019-08-31 09:36:45 +00:00
return SlimefunPlugin.getUtilities().resources.get(name);
2016-05-18 17:04:27 +00:00
}
private static int getDefault(OreGenResource resource, Biome biome) {
2016-11-26 19:25:36 +00:00
if (resource == null) return 0;
2016-05-18 17:04:27 +00:00
Config cfg = new Config("plugins/Slimefun/generators/" + resource.getName() + ".cfg");
return cfg.getInt(biome.toString());
}
public static void setSupplies(OreGenResource resource, Chunk chunk, int amount) {
2016-11-26 19:25:36 +00:00
if (resource == null) return;
2016-05-18 17:04:27 +00:00
BlockStorage.setChunkInfo(chunk, "resources_" + resource.getName().toUpperCase(), String.valueOf(amount));
}
2016-11-26 19:25:36 +00:00
public static int generateSupplies(OreGenResource resource, Chunk chunk) {
if (resource == null) return 0;
2016-05-18 17:04:27 +00:00
int supplies = getDefault(resource, chunk.getBlock(5, 50, 5).getBiome());
BlockStorage.setChunkInfo(chunk, "resources_" + resource.getName().toUpperCase(), String.valueOf(supplies));
return supplies;
}
public static int getSupplies(OreGenResource resource, Chunk chunk, boolean generate) {
2016-11-26 19:25:36 +00:00
if (resource == null) return 0;
2016-05-18 17:04:27 +00:00
if (BlockStorage.hasChunkInfo(chunk, "resources_" + resource.getName().toUpperCase())) {
return Integer.parseInt(BlockStorage.getChunkInfo(chunk, "resources_" + resource.getName().toUpperCase()));
}
else if (!generate) {
return 0;
}
else {
return generateSupplies(resource, chunk);
}
}
public static boolean wasResourceGenerated(OreGenResource resource, Chunk chunk) {
2016-11-26 19:25:36 +00:00
if (resource == null) return false;
2016-05-18 17:04:27 +00:00
return BlockStorage.hasChunkInfo(chunk, "resources_" + resource.getName().toUpperCase());
}
}