Skip to content

Commit 9a50caf

Browse files
committed
Improve WaterGimbal sourcing
- 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.
1 parent f2242bb commit 9a50caf

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.jedk1</groupId>
66
<artifactId>jedcore</artifactId>
7-
<version>2.9.3-Spigot1.15-PK1.8.9</version>
7+
<version>2.9.4-Spigot1.15-PK1.8.9</version>
88
<packaging>jar</packaging>
99
<name>JedCore</name>
1010

src/com/jedk1/jedcore/ability/waterbending/combo/WaterGimbal.java

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.projectkorra.projectkorra.GeneralMethods;
1010
import com.projectkorra.projectkorra.ability.AddonAbility;
1111
import com.projectkorra.projectkorra.ability.ComboAbility;
12+
import com.projectkorra.projectkorra.ability.ElementalAbility;
1213
import com.projectkorra.projectkorra.ability.WaterAbility;
1314
import com.projectkorra.projectkorra.ability.util.ComboManager.AbilityInformation;
1415
import com.projectkorra.projectkorra.util.BlockSource;
@@ -17,6 +18,8 @@
1718
import com.projectkorra.projectkorra.waterbending.OctopusForm;
1819
import com.projectkorra.projectkorra.waterbending.Torrent;
1920

21+
import com.projectkorra.projectkorra.waterbending.ice.PhaseChange;
22+
import com.projectkorra.projectkorra.waterbending.plant.PlantRegrowth;
2023
import com.projectkorra.projectkorra.waterbending.util.WaterReturn;
2124
import org.bukkit.Location;
2225
import org.bukkit.Material;
@@ -45,7 +48,8 @@ public class WaterGimbal extends WaterAbility implements AddonAbility, ComboAbil
4548
private double damage;
4649
private double speed;
4750
private int animspeed;
48-
private boolean plant;
51+
private boolean plantSourcing;
52+
private boolean snowSourcing;
4953
private boolean requireAdjacentPlants;
5054
private boolean canUseBottle;
5155
private double abilityCollisionRadius;
@@ -106,7 +110,8 @@ public void setFields() {
106110
damage = config.getDouble("Abilities.Water.WaterCombo.WaterGimbal.Damage");
107111
speed = config.getDouble("Abilities.Water.WaterCombo.WaterGimbal.Speed");
108112
animspeed = config.getInt("Abilities.Water.WaterCombo.WaterGimbal.AnimationSpeed");
109-
plant = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.PlantSource");
113+
plantSourcing = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.PlantSource");
114+
snowSourcing = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.SnowSource");
110115
requireAdjacentPlants = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.RequireAdjacentPlants");
111116
canUseBottle = config.getBoolean("Abilities.Water.WaterCombo.WaterGimbal.BottleSource");
112117
abilityCollisionRadius = config.getDouble("Abilities.Water.WaterCombo.WaterGimbal.AbilityCollisionRadius");
@@ -167,20 +172,32 @@ public void progress() {
167172
}
168173

169174
private boolean grabSource() {
170-
sourceblock = BlockSource.getWaterSourceBlock(player, sourcerange, ClickType.SHIFT_DOWN, true, true, plant);
175+
sourceblock = BlockSource.getWaterSourceBlock(player, sourcerange, ClickType.SHIFT_DOWN, true, true, plantSourcing, snowSourcing, false);
171176
if (sourceblock != null) {
172-
if (isPlant(sourceblock)) {
173-
if (!requireAdjacentPlants || JCMethods.isAdjacentToThreeOrMoreSources(sourceblock, sourceblock.getType())) {
177+
// All of these extra checks need to be done because PK sourcing system is buggy.
178+
boolean usingSnow = snowSourcing && (sourceblock.getType() == Material.SNOW_BLOCK || sourceblock.getType() == Material.SNOW);
179+
180+
if (isPlant(sourceblock) || usingSnow) {
181+
if (usingSnow || !requireAdjacentPlants || JCMethods.isAdjacentToThreeOrMoreSources(sourceblock, sourceblock.getType())) {
174182
playFocusWaterEffect(sourceblock);
175183
sourceloc = sourceblock.getLocation();
184+
185+
new PlantRegrowth(this.player, sourceblock);
176186
sourceblock.setType(Material.AIR);
187+
177188
return true;
178189
}
179-
} else {
180-
if (GeneralMethods.isAdjacentToThreeOrMoreSources(sourceblock, false) || (TempBlock.isTempBlock(sourceblock) && WaterAbility.isBendableWaterTempBlock(sourceblock))) {
190+
} else if (!ElementalAbility.isSnow(sourceblock)) {
191+
boolean isTempBlock = TempBlock.isTempBlock(sourceblock);
192+
193+
if (GeneralMethods.isAdjacentToThreeOrMoreSources(sourceblock, false) || (isTempBlock && WaterAbility.isBendableWaterTempBlock(sourceblock))) {
181194
playFocusWaterEffect(sourceblock);
182195
sourceloc = sourceblock.getLocation();
183-
sourceblock.setType(Material.AIR);
196+
197+
if (isTempBlock) {
198+
PhaseChange.thaw(sourceblock);
199+
}
200+
184201
return true;
185202
}
186203
}

src/com/jedk1/jedcore/configuration/JedCoreConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -836,6 +836,7 @@ private void loadConfigCore() {
836836
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.Speed", 2);
837837
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.AnimationSpeed", 3);
838838
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.PlantSource", true);
839+
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.SnowSource", true);
839840
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.RequireAdjacentPlants", true);
840841
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.BottleSource", false);
841842
config.addDefault("Abilities.Water.WaterCombo.WaterGimbal.AbilityCollisionRadius", 1.6);

0 commit comments

Comments
 (0)