forked from RebelKeithy/Aquaculture
-
Notifications
You must be signed in to change notification settings - Fork 66
/
AddFishDataAction.java
61 lines (54 loc) · 2.11 KB
/
AddFishDataAction.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.teammetallurgy.aquaculture.integration.crafttweaker.actions;
import com.blamejared.crafttweaker.api.action.base.IUndoableAction;
import com.teammetallurgy.aquaculture.api.AquacultureAPI;
import net.minecraft.world.item.Item;
import net.minecraftforge.registries.ForgeRegistries;
public class AddFishDataAction implements IUndoableAction {
private final Item fish;
private final double min;
private final double max;
private final int filletAmount;
private boolean hasOldData;
private double oldMin;
private double oldMax;
private int oldFilletAmount;
public AddFishDataAction(Item fish, double min, double max, int filletAmount) {
this.fish = fish;
this.min = min;
this.max = max;
this.filletAmount = filletAmount;
}
@Override
public String systemName() {
return "Aquaculture Add Fish Data";
}
@Override
public void apply() {
if (AquacultureAPI.FISH_DATA.hasWeight(this.fish)) {
this.oldMin = AquacultureAPI.FISH_DATA.getMinWeight(this.fish, 0);
this.oldMax = AquacultureAPI.FISH_DATA.getMaxWeight(this.fish, 0);
this.hasOldData = true;
}
if (AquacultureAPI.FISH_DATA.hasFilletAmount(this.fish)) {
this.oldFilletAmount = AquacultureAPI.FISH_DATA.getFilletAmount(this.fish, 0);
this.hasOldData = true;
}
AquacultureAPI.FISH_DATA.add(this.fish, this.min, this.max, this.filletAmount);
}
@Override
public String describe() {
return "Adding FishData for: " + ForgeRegistries.ITEMS.getKey(this.fish).toString() + " with min: " + this.min + ", max: " + this.max + " and fillet amount of: " + this.filletAmount;
}
@Override
public void undo() {
if (this.hasOldData) {
AquacultureAPI.FISH_DATA.add(this.fish, this.oldMin, this.oldMax, this.oldFilletAmount);
} else {
AquacultureAPI.FISH_DATA.remove(this.fish);
}
}
@Override
public String describeUndo() {
return "Undoing removal of FishData for: " + ForgeRegistries.ITEMS.getKey(this.fish);
}
}