Skip to content

Commit

Permalink
Improve WaterGimbal sourcing
Browse files Browse the repository at this point in the history
- Add option for snow sourcing.
- Use PlantRegrowth to regenerate plants.
- Thaw any sourced PhaseChange blocks so it doesn't leave behind a hole.
- Increase version to 2.9.4.
  • Loading branch information
plushmonkey committed Apr 28, 2020
1 parent f2242bb commit 9a50caf
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 9 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>com.jedk1</groupId>
<artifactId>jedcore</artifactId>
<version>2.9.3-Spigot1.15-PK1.8.9</version>
<version>2.9.4-Spigot1.15-PK1.8.9</version>
<packaging>jar</packaging>
<name>JedCore</name>

Expand Down
33 changes: 25 additions & 8 deletions src/com/jedk1/jedcore/ability/waterbending/combo/WaterGimbal.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.projectkorra.projectkorra.GeneralMethods;
import com.projectkorra.projectkorra.ability.AddonAbility;
import com.projectkorra.projectkorra.ability.ComboAbility;
import com.projectkorra.projectkorra.ability.ElementalAbility;
import com.projectkorra.projectkorra.ability.WaterAbility;
import com.projectkorra.projectkorra.ability.util.ComboManager.AbilityInformation;
import com.projectkorra.projectkorra.util.BlockSource;
Expand All @@ -17,6 +18,8 @@
import com.projectkorra.projectkorra.waterbending.OctopusForm;
import com.projectkorra.projectkorra.waterbending.Torrent;

import com.projectkorra.projectkorra.waterbending.ice.PhaseChange;
import com.projectkorra.projectkorra.waterbending.plant.PlantRegrowth;
import com.projectkorra.projectkorra.waterbending.util.WaterReturn;
import org.bukkit.Location;
import org.bukkit.Material;
Expand Down Expand Up @@ -45,7 +48,8 @@ public class WaterGimbal extends WaterAbility implements AddonAbility, ComboAbil
private double damage;
private double speed;
private int animspeed;
private boolean plant;
private boolean plantSourcing;
private boolean snowSourcing;
private boolean requireAdjacentPlants;
private boolean canUseBottle;
private double abilityCollisionRadius;
Expand Down Expand Up @@ -106,7 +110,8 @@ public void setFields() {
damage = config.getDouble("Abilities.Water.WaterCombo.WaterGimbal.Damage");
speed = config.getDouble("Abilities.Water.WaterCombo.WaterGimbal.Speed");
animspeed = config.getInt("Abilities.Water.WaterCombo.WaterGimbal.AnimationSpeed");
plant = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.PlantSource");
plantSourcing = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.PlantSource");
snowSourcing = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.SnowSource");
requireAdjacentPlants = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.RequireAdjacentPlants");
canUseBottle = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.BottleSource");
abilityCollisionRadius = config.getDouble("Abilities.Water.WaterCombo.WaterGimbal.AbilityCollisionRadius");
Expand Down Expand Up @@ -167,20 +172,32 @@ public void progress() {
}

private boolean grabSource() {
sourceblock = BlockSource.getWaterSourceBlock(player, sourcerange, ClickType.SHIFT_DOWN, true, true, plant);
sourceblock = BlockSource.getWaterSourceBlock(player, sourcerange, ClickType.SHIFT_DOWN, true, true, plantSourcing, snowSourcing, false);
if (sourceblock != null) {
if (isPlant(sourceblock)) {
if (!requireAdjacentPlants || JCMethods.isAdjacentToThreeOrMoreSources(sourceblock, sourceblock.getType())) {
// All of these extra checks need to be done because PK sourcing system is buggy.
boolean usingSnow = snowSourcing && (sourceblock.getType() == Material.SNOW_BLOCK || sourceblock.getType() == Material.SNOW);

if (isPlant(sourceblock) || usingSnow) {
if (usingSnow || !requireAdjacentPlants || JCMethods.isAdjacentToThreeOrMoreSources(sourceblock, sourceblock.getType())) {
playFocusWaterEffect(sourceblock);
sourceloc = sourceblock.getLocation();

new PlantRegrowth(this.player, sourceblock);
sourceblock.setType(Material.AIR);

return true;
}
} else {
if (GeneralMethods.isAdjacentToThreeOrMoreSources(sourceblock, false) || (TempBlock.isTempBlock(sourceblock) && WaterAbility.isBendableWaterTempBlock(sourceblock))) {
} else if (!ElementalAbility.isSnow(sourceblock)) {
boolean isTempBlock = TempBlock.isTempBlock(sourceblock);

if (GeneralMethods.isAdjacentToThreeOrMoreSources(sourceblock, false) || (isTempBlock && WaterAbility.isBendableWaterTempBlock(sourceblock))) {
playFocusWaterEffect(sourceblock);
sourceloc = sourceblock.getLocation();
sourceblock.setType(Material.AIR);

if (isTempBlock) {
PhaseChange.thaw(sourceblock);
}

return true;
}
}
Expand Down
1 change: 1 addition & 0 deletions src/com/jedk1/jedcore/configuration/JedCoreConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -836,6 +836,7 @@ private void loadConfigCore() {
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.Speed", 2);
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.AnimationSpeed", 3);
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.PlantSource", true);
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.SnowSource", true);
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.RequireAdjacentPlants", true);
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.BottleSource", false);
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.AbilityCollisionRadius", 1.6);
Expand Down

0 comments on commit 9a50caf

Please sign in to comment.