add boat mutation
This commit is contained in:
parent
c732c5de71
commit
c5630da10d
|
@ -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
|
||||
|
||||
|
|
|
@ -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.";
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue