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;
|
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-27 12:08:09 +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);
|
2016-05-18 17:04:27 +00:00
|
|
|
System.out.println("[Slimefun - GEO] Registering Ore Gen: " + resource.getName());
|
|
|
|
|
|
|
|
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());
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|