mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-19 19:25:48 +00:00
pass BlockPosition to onCancel
This commit is contained in:
parent
c06e316b6a
commit
dc2cdadc3c
@ -1,5 +1,6 @@
|
||||
package io.github.thebusybiscuit.slimefun4.core.machines;
|
||||
|
||||
import io.github.bakedlibs.dough.blocks.BlockPosition;
|
||||
import io.github.thebusybiscuit.slimefun4.core.attributes.MachineProcessHolder;
|
||||
|
||||
/**
|
||||
@ -61,6 +62,6 @@ public interface MachineOperation {
|
||||
* This method is called when a {@link MachineOperation} is interrupted before finishing.
|
||||
* Implement to specify behaviour that should happen in this case.
|
||||
*/
|
||||
default void onCancel() {}
|
||||
default void onCancel(BlockPosition position) {}
|
||||
|
||||
}
|
||||
|
@ -231,7 +231,7 @@ public class MachineProcessor<T extends MachineOperation> {
|
||||
Event event = new AsyncMachineOperationFinishEvent(pos, this, operation);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
} else {
|
||||
operation.onCancel();
|
||||
operation.onCancel(pos);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -335,7 +335,7 @@ public class GEOMiner extends SlimefunItem implements RecipeDisplayItem, EnergyN
|
||||
return;
|
||||
}
|
||||
|
||||
processor.startOperation(b, new GEOMiningOperation(resource, b, PROCESSING_TIME));
|
||||
processor.startOperation(b, new GEOMiningOperation(resource, PROCESSING_TIME));
|
||||
Slimefun.getGPSNetwork().getResourceManager().setSupplies(resource, b.getWorld(), b.getX() >> 4, b.getZ() >> 4, supplies - 1);
|
||||
updateHologram(b, "&7Mining: &r" + resource.getName());
|
||||
return;
|
||||
|
@ -4,8 +4,7 @@ import java.util.OptionalInt;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
|
||||
import io.github.bakedlibs.dough.blocks.BlockPosition;
|
||||
import io.github.thebusybiscuit.slimefun4.api.geo.GEOResource;
|
||||
import io.github.thebusybiscuit.slimefun4.api.geo.ResourceManager;
|
||||
import io.github.thebusybiscuit.slimefun4.core.machines.MachineOperation;
|
||||
@ -23,12 +22,10 @@ import io.github.thebusybiscuit.slimefun4.implementation.items.geo.GEOMiner;
|
||||
public class GEOMiningOperation extends MiningOperation {
|
||||
|
||||
private final GEOResource resource;
|
||||
private final Block block;
|
||||
|
||||
public GEOMiningOperation(@Nonnull GEOResource resource, @Nonnull Block block, int totalTicks) {
|
||||
public GEOMiningOperation(@Nonnull GEOResource resource, int totalTicks) {
|
||||
super(resource.getItem().clone(), totalTicks);
|
||||
this.resource = resource;
|
||||
this.block = block;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -36,10 +33,10 @@ public class GEOMiningOperation extends MiningOperation {
|
||||
* when the {@link GEOMiningOperation} gets cancelled
|
||||
*/
|
||||
@Override
|
||||
public void onCancel() {
|
||||
public void onCancel(@Nonnull BlockPosition position) {
|
||||
ResourceManager resourceManager = Slimefun.getGPSNetwork().getResourceManager();
|
||||
OptionalInt supplies = resourceManager.getSupplies(resource, block.getWorld(), block.getX() >> 4, block.getZ() >> 4);
|
||||
supplies.ifPresent(s -> resourceManager.setSupplies(resource, block.getWorld(), block.getX() >> 4, block.getZ() >> 4, s + 1));
|
||||
OptionalInt supplies = resourceManager.getSupplies(resource, position.getWorld(), position.getChunkX(), position.getChunkZ());
|
||||
supplies.ifPresent(s -> resourceManager.setSupplies(resource, position.getWorld(), position.getChunkX(), position.getChunkZ(), s + 1));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user