Added code for making sheep jump. Can be toggled with DiscoParty.doJump. Default Y velocity applied can be set with defaultSheepJump. Sheep jump at same time as they would launch fireworks. TODO: tune jump velocity to make it look natural.

This commit is contained in:
RangerMauve 2013-07-12 08:09:07 -04:00
parent 3fc5d4ae2b
commit 3e06213fc5

View File

@ -15,6 +15,7 @@ import org.bukkit.entity.Sheep;
import org.bukkit.FireworkEffect; import org.bukkit.FireworkEffect;
import org.bukkit.FireworkEffect.Builder; import org.bukkit.FireworkEffect.Builder;
import org.bukkit.inventory.meta.FireworkMeta; import org.bukkit.inventory.meta.FireworkMeta;
import org.bukkit.util.Vector;
/** /**
* *
@ -31,12 +32,14 @@ public class DiscoParty {
static int defaultPeriod = 10; // ticks per state change static int defaultPeriod = 10; // ticks per state change
static int defaultRadius = 5; static int defaultRadius = 5;
static int defaultSheep = 10; static int defaultSheep = 10;
static float defaultSheepJump = 0.5f;
static int maxDuration = 2400; // 120 seconds static int maxDuration = 2400; // 120 seconds
static int maxSheep = 100; static int maxSheep = 100;
static int maxRadius = 100; static int maxRadius = 100;
static int minPeriod = 5; // 0.25 seconds static int minPeriod = 5; // 0.25 seconds
static int maxPeriod = 40; // 2.0 seconds static int maxPeriod = 40; // 2.0 seconds
private boolean doFireworks = false; private boolean doFireworks = false;
private boolean doJump = true;
private int state = 0; private int state = 0;
private DiscoUpdater updater; private DiscoUpdater updater;
private static final DyeColor[] discoColours = { private static final DyeColor[] discoColours = {
@ -104,6 +107,13 @@ public class DiscoParty {
sheep.setColor(discoColours[(int) Math.round(Math.random() * (discoColours.length - 1))]); sheep.setColor(discoColours[(int) Math.round(Math.random() * (discoColours.length - 1))]);
} }
void jumpSheep(Sheep sheep) {
Vector orgVel = sheep.getVelocity();
Vector newVel = (new Vector()).copy(orgVel);
newVel.add(new Vector(0, defaultSheepJump, 0));
sheep.setVelocity(newVel);
}
private Color getColor(int i) { private Color getColor(int i) {
Color c = null; Color c = null;
if (i == 1) { if (i == 1) {
@ -164,8 +174,13 @@ public class DiscoParty {
void updateAllSheep() { void updateAllSheep() {
for (Sheep sheep : getSheep()) { for (Sheep sheep : getSheep()) {
randomizeSheepColour(sheep); randomizeSheepColour(sheep);
if (doFireworks && state % 8 == 0) { if (state % 8 == 0) { // HA HA IT LOOKS LIKE A PENIS
spawnRandomFireworkAtSheep(sheep); if (doFireworks) {
spawnRandomFireworkAtSheep(sheep);
}
if(doJump){
jumpSheep(sheep);
}
} }
} }
} }