aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/task/tasks/PollutionTask.java
blob: 3770409fb16f7cc0296f1ba5455b73c59cbadd8b (plain)
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
package gregtech.api.task.tasks;

import javax.annotation.Nonnull;

import net.minecraft.tileentity.TileEntity;

import gregtech.api.enums.TickTime;
import gregtech.api.interfaces.tileentity.IMachineProgress;
import gregtech.api.task.TaskHost;
import gregtech.api.task.TickableTask;
import gregtech.common.Pollution;

public class PollutionTask<T extends TaskHost & IMachineProgress> extends TickableTask<T> {

    private int pollutionPerSecond;
    private static final int POLLUTION_TICK = TickTime.SECOND;

    public PollutionTask(@Nonnull T taskHost) {
        super(taskHost);
    }

    public PollutionTask<T> setPollutionPerSecond(int pollutionPerSecond) {
        this.pollutionPerSecond = pollutionPerSecond;
        return this;
    }

    public int getPollutionPerSecond() {
        return pollutionPerSecond;
    }

    @Nonnull
    @Override
    public String getName() {
        return "pollution";
    }

    @Override
    public void update(long tick, boolean isServerSide) {
        if (isServerSide && tick % POLLUTION_TICK == 0 && taskHost.hasThingsToDo()) {
            if (taskHost instanceof final TileEntity entity) {
                Pollution.addPollution(entity, getPollutionPerSecond());
            }
        }
    }
}