From f1ab8296e4fbce29475ce917096c59695d598657 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Tue, 13 Aug 2013 16:54:20 -0400 Subject: [PATCH] Tweaks to jumppad physics. --- appinfo.properties | 6 +- buildnumber.properties | 4 +- .../Commands/Command_jumppads.java | 6 +- .../Listener/TFM_BlockListener.java | 4 +- .../Listener/TFM_PlayerListener.java | 2 +- .../TotalFreedomMod/TFM_Jumppads.java | 61 +++++++++++++------ 6 files changed, 55 insertions(+), 28 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index 27ab6101..966d8a24 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Tue, 13 Aug 2013 18:21:17 +0200 +#Tue, 13 Aug 2013 16:50:36 -0400 program.VERSION=2.22 -program.BUILDNUM=446 -program.BUILDDATE=08/13/2013 06\:21 PM +program.BUILDNUM=458 +program.BUILDDATE=08/13/2013 04\:50 PM diff --git a/buildnumber.properties b/buildnumber.properties index 56ced461..af1637aa 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Aug 13 18:21:17 CEST 2013 -build.number=447 +#Tue Aug 13 16:50:36 EDT 2013 +build.number=459 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_jumppads.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_jumppads.java index 8ab699cd..d56c7bf1 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_jumppads.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_jumppads.java @@ -37,7 +37,7 @@ public class Command_jumppads extends TFM_Command else { TFM_Util.adminAction(sender.getName(), "Enabling Jumppads", false); - TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.NORMAL); + TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK); } } else @@ -52,8 +52,8 @@ public class Command_jumppads extends TFM_Command { if (TFM_Util.isStopCommand(args[1])) { - TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Normal", false); - TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.NORMAL); + TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek", false); + TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK); } else { diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java index 83b841a8..f224a558 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_BlockListener.java @@ -77,7 +77,7 @@ public class TFM_BlockListener implements Listener Long lastRan = TFM_Heartbeat.getLastRan(); if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis()) { - TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates."); + //TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates."); } else { @@ -151,7 +151,7 @@ public class TFM_BlockListener implements Listener Long lastRan = TFM_Heartbeat.getLastRan(); if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis()) { - TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates."); + //TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates."); } else { diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index ef42addb..48e54cbf 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -401,7 +401,7 @@ public class TFM_PlayerListener implements Listener Long lastRan = TFM_Heartbeat.getLastRan(); if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis()) { - TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates."); + //TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates."); } else { diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Jumppads.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Jumppads.java index bd316bb9..29f42682 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Jumppads.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Jumppads.java @@ -1,5 +1,7 @@ package me.StevenLawson.TotalFreedomMod; +import java.util.HashMap; +import java.util.Map; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; @@ -10,6 +12,7 @@ public class TFM_Jumppads { public static final Material BLOCK_ID = Material.WOOL; public static final double DAMPING_COEFFICIENT = 0.8; + public final Map canPushMap = new HashMap(); private JumpPadMode mode = JumpPadMode.OFF; private double strength = 0.4; @@ -24,31 +27,55 @@ public class TFM_Jumppads final Block block = event.getTo().getBlock(); final Vector velocity = player.getVelocity().clone(); - if (block.getRelative(0, -1, 0).getType() == BLOCK_ID) + if (mode == JumpPadMode.MADGEEK) { - velocity.add(new Vector(0.0, strength, 0.0)); + Boolean canPush = canPushMap.get(player); + if (canPush == null) + { + canPush = true; + } + if (block.getRelative(0, -1, 0).getType() == BLOCK_ID) + { + if (canPush) + { + velocity.multiply(strength + 0.85).multiply(-1.0); + } + canPush = false; + } + else + { + canPush = true; + } + canPushMap.put(player, canPush); } - - if (mode == JumpPadMode.NORMAL_AND_SIDEWAYS) + else { - if (block.getRelative(1, 0, 0).getType() == BLOCK_ID) + if (block.getRelative(0, -1, 0).getType() == BLOCK_ID) { - velocity.add(new Vector(-DAMPING_COEFFICIENT * strength, 0.0, 0.0)); + velocity.add(new Vector(0.0, strength, 0.0)); } - if (block.getRelative(-1, 0, 0).getType() == BLOCK_ID) + if (mode == JumpPadMode.NORMAL_AND_SIDEWAYS) { - velocity.add(new Vector(DAMPING_COEFFICIENT * strength, 0.0, 0.0)); - } + if (block.getRelative(1, 0, 0).getType() == BLOCK_ID) + { + velocity.add(new Vector(-DAMPING_COEFFICIENT * strength, 0.0, 0.0)); + } - if (block.getRelative(0, 0, 1).getType() == BLOCK_ID) - { - velocity.add(new Vector(0.0, 0.0, -DAMPING_COEFFICIENT * strength)); - } + if (block.getRelative(-1, 0, 0).getType() == BLOCK_ID) + { + velocity.add(new Vector(DAMPING_COEFFICIENT * strength, 0.0, 0.0)); + } - if (block.getRelative(0, 0, -1).getType() == BLOCK_ID) - { - velocity.add(new Vector(0.0, 0.0, DAMPING_COEFFICIENT * strength)); + if (block.getRelative(0, 0, 1).getType() == BLOCK_ID) + { + velocity.add(new Vector(0.0, 0.0, -DAMPING_COEFFICIENT * strength)); + } + + if (block.getRelative(0, 0, -1).getType() == BLOCK_ID) + { + velocity.add(new Vector(0.0, 0.0, DAMPING_COEFFICIENT * strength)); + } } } @@ -81,7 +108,7 @@ public class TFM_Jumppads public static enum JumpPadMode { - OFF(false), NORMAL(true), NORMAL_AND_SIDEWAYS(true); + OFF(false), NORMAL(true), NORMAL_AND_SIDEWAYS(true), MADGEEK(true); private boolean on; JumpPadMode(boolean on)