2011-10-13 12:17:23 +02:00
|
|
|
package com.massivecraft.factions.zcore.util;
|
|
|
|
|
|
|
|
import org.bukkit.Effect;
|
|
|
|
import org.bukkit.Location;
|
|
|
|
|
2014-04-04 20:55:21 +02:00
|
|
|
import java.util.Collection;
|
|
|
|
import java.util.Random;
|
|
|
|
|
2011-10-13 12:17:23 +02:00
|
|
|
// http://mc.kev009.com/Protocol
|
|
|
|
// -----------------------------
|
|
|
|
// Smoke Directions
|
|
|
|
// -----------------------------
|
|
|
|
// Direction ID Direction
|
|
|
|
// 0 South - East
|
|
|
|
// 1 South
|
|
|
|
// 2 South - West
|
|
|
|
// 3 East
|
|
|
|
// 4 (Up or middle ?)
|
|
|
|
// 5 West
|
|
|
|
// 6 North - East
|
|
|
|
// 7 North
|
|
|
|
// 8 North - West
|
|
|
|
//-----------------------------
|
|
|
|
|
2014-04-04 20:55:21 +02:00
|
|
|
public class SmokeUtil {
|
2014-08-05 17:17:27 +02:00
|
|
|
|
2014-04-04 20:55:21 +02:00
|
|
|
public static Random random = new Random();
|
|
|
|
|
|
|
|
// -------------------------------------------- //
|
|
|
|
// Spawn once
|
|
|
|
// -------------------------------------------- //
|
|
|
|
|
|
|
|
// Single ========
|
|
|
|
public static void spawnSingle(Location location, int direction) {
|
2014-07-01 22:10:18 +02:00
|
|
|
if (location == null) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
location.getWorld().playEffect(location.clone(), Effect.SMOKE, direction);
|
2014-04-04 20:55:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static void spawnSingle(Location location) {
|
|
|
|
spawnSingle(location, 4);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void spawnSingleRandom(Location location) {
|
|
|
|
spawnSingle(location, random.nextInt(9));
|
|
|
|
}
|
|
|
|
|
|
|
|
// Simple Cloud ========
|
|
|
|
public static void spawnCloudSimple(Location location) {
|
|
|
|
for (int i = 0; i <= 8; i++) {
|
|
|
|
spawnSingle(location, i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void spawnCloudSimple(Collection<Location> locations) {
|
|
|
|
for (Location location : locations) {
|
|
|
|
spawnCloudSimple(location);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Random Cloud ========
|
|
|
|
public static void spawnCloudRandom(Location location, float thickness) {
|
2014-07-01 22:10:18 +02:00
|
|
|
int singles = (int) Math.floor(thickness * 9);
|
|
|
|
for (int i = 0; i < singles; i++) {
|
2014-04-04 20:55:21 +02:00
|
|
|
spawnSingleRandom(location.clone());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void spawnCloudRandom(Collection<Location> locations, float thickness) {
|
|
|
|
for (Location location : locations) {
|
|
|
|
spawnCloudRandom(location, thickness);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// -------------------------------------------- //
|
|
|
|
// Attach continuous effects to or locations
|
|
|
|
// -------------------------------------------- //
|
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
2011-10-13 12:17:23 +02:00
|
|
|
}
|