add boat mutation

This commit is contained in:
BuildTools 2017-06-08 22:22:44 -07:00
parent c732c5de71
commit c5630da10d
4 changed files with 54 additions and 15 deletions

View File

@ -227,6 +227,8 @@ mutation.type.bomber = Bomber
mutation.type.bomber.desc = tnt rain
mutation.type.bread = Bread
mutation.type.bread.desc = bread with enchantments
mutation.type.boat = Boat
mutation.type.boat.desc = flying boats
mutation.type.apocalypse = Apocalypse
mutation.type.apocalypse.desc = mob spawning chaos

View File

@ -11,24 +11,11 @@ import org.bukkit.Material;
import tc.oc.commons.core.chat.Component;
import tc.oc.pgm.PGM;
import tc.oc.pgm.mutation.types.MutationModule;
import tc.oc.pgm.mutation.types.kit.ArmorMutation;
import tc.oc.pgm.mutation.types.kit.ElytraMutation;
import tc.oc.pgm.mutation.types.kit.EnchantmentMutation;
import tc.oc.pgm.mutation.types.kit.EquestrianMutation;
import tc.oc.pgm.mutation.types.kit.ExplosiveMutation;
import tc.oc.pgm.mutation.types.kit.GlowMutation;
import tc.oc.pgm.mutation.types.kit.HardcoreMutation;
import tc.oc.pgm.mutation.types.kit.HealthMutation;
import tc.oc.pgm.mutation.types.kit.JumpMutation;
import tc.oc.pgm.mutation.types.kit.MobsMutation;
import tc.oc.pgm.mutation.types.kit.PotionMutation;
import tc.oc.pgm.mutation.types.kit.ProjectileMutation;
import tc.oc.pgm.mutation.types.kit.StealthMutation;
import tc.oc.pgm.mutation.types.kit.*;
import tc.oc.pgm.mutation.types.other.BlitzMutation;
import tc.oc.pgm.mutation.types.other.RageMutation;
import tc.oc.pgm.mutation.types.targetable.ApocalypseMutation;
import tc.oc.pgm.mutation.types.targetable.BomberMutation;
import tc.oc.pgm.mutation.types.kit.BreadMutation;
import tc.oc.pgm.mutation.types.targetable.LightningMutation;
import java.util.stream.Stream;
@ -53,6 +40,7 @@ public enum Mutation {
LIGHTNING (LightningMutation.class, Material.JACK_O_LANTERN),
BOMBER (BomberMutation.class, Material.TNT),
BREAD (BreadMutation.class, Material.BREAD),
BOAT (BoatMutation.class, Material.BOAT, false),
APOCALYPSE (ApocalypseMutation.class, Material.NETHER_STAR);
public static final String TYPE_KEY = "mutation.type.";

View File

@ -113,7 +113,7 @@ public class MutationCommands implements NestedCommands {
MutationMatchModule module = verify(sender);
final boolean queued = args.hasFlag('q');
final Collection<Mutation> active = queued ? mutationQueue.mutations() : module.mutationsActive();
new Paginator<Mutation>(Mutation.values().length / 2) {
new Paginator<Mutation>(8) {
@Override
protected BaseComponent title() {
return new TranslatableComponent(queued ? "command.mutation.list.queued" : "command.mutation.list.current");

View File

@ -0,0 +1,49 @@
package tc.oc.pgm.mutation.types.kit;
import org.bukkit.Material;
import org.bukkit.entity.Boat;
import org.bukkit.entity.Vehicle;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.vehicle.VehicleCreateEvent;
import tc.oc.pgm.kits.FreeItemKit;
import tc.oc.pgm.match.Match;
import tc.oc.pgm.mutation.types.KitMutation;
import java.util.HashSet;
import java.util.Set;
public class BoatMutation extends KitMutation {
final static FreeItemKit BOAT = new FreeItemKit(item(Material.BOAT));
final Set<Vehicle> vehicles;
public BoatMutation(Match match) {
super(match, true, BOAT);
vehicles = new HashSet<Vehicle>();
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onBoatPlace(VehicleCreateEvent event) {
Vehicle vehicle = event.getVehicle();
if (vehicle instanceof Boat) {
vehicle.setGravity(false);
vehicles.add(event.getVehicle());
}
}
private void removeBoatGravity() {
for (Vehicle vehicle: vehicles) {
vehicle.setGravity(true);
}
vehicles.clear();
}
@Override
public void disable() {
super.disable();
removeBoatGravity();
}
}