Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.gmail.candanatak97.selfmade.vehicle;
- import net.gtaun.shoebill.common.timers.TemporaryTimer;
- import net.gtaun.shoebill.common.vehicle.VehicleUtils;
- import net.gtaun.shoebill.object.Player;
- import net.gtaun.shoebill.object.Vehicle;
- import net.gtaun.shoebill.object.VehicleParam;
- public class VehicleFuelBaseListener implements VehicleFuelListener {
- private Vehicle vehicle;
- private int fuel;
- private int maxFuel;
- private boolean isUnlimited = false;
- private boolean isFuelling = false;
- TemporaryTimer timer;
- public VehicleFuelBaseListener(Vehicle vehicle, int fuel, int maxFuel, boolean isUnlimited) {
- this.vehicle = vehicle;
- this.fuel = fuel;
- this.maxFuel = maxFuel;
- this.isUnlimited = isUnlimited;
- onCreated();
- }
- @Override
- public void onCreated() {
- timer = TemporaryTimer.create(20 * 1000, i -> {
- onUpdate();
- });
- timer.start();
- }
- @Override
- public void onUpdate() {
- VehicleMotor vehicleMotor = VehicleManager.getVehicleData(getVehicle()).getVehicleMotor();
- if(!isUnlimited() && vehicleMotor.isStarted()) {
- if(getFuel() > 0) {
- onFuelLose();
- } else {
- if(getFuel() < 0) {
- fuel = 0;
- }
- }
- }
- }
- @Override
- public void onFuelLose() {
- fuel--;
- if(getFuel() == 0) {
- onFuelEmpty();
- }
- }
- @Override
- public void onFuelEmpty() {
- getVehicle().getState().setEngine(VehicleParam.PARAM_OFF);
- Player driver = VehicleUtils.getVehicleDriver(getVehicle());
- if(driver != null) {
- driver.playSound(1085);
- }
- }
- @Override
- public void onFuelling(int fuel) {
- isFuelling = true;
- this.fuel += fuel;
- if(getFuel() > getMaxFuel()) {
- fuel = getMaxFuel();
- }
- onFuelled();
- }
- @Override
- public void onFuelled() {
- isFuelling = false;
- }
- @Override
- public boolean isFuelling() {
- return isFuelling;
- }
- @Override
- public Vehicle getVehicle() {
- return vehicle;
- }
- @Override
- public int getFuel() {
- return fuel;
- }
- @Override
- public boolean isUnlimited() {
- return isUnlimited;
- }
- @Override
- public int getFuelPercent() {
- return (int) Math.round(Math.floor(getMaxFuel() / 100 * getFuel()));
- }
- @Override
- public int getMaxFuel() {
- return maxFuel;
- }
- @Override
- public void destroy() {
- if(timer.isDestroyed())
- return;
- timer.destroy();
- }
- @Override
- public boolean isDestroyed() {
- return timer.isDestroyed();
- }
- @Override
- public void setVehicle(Vehicle vehicle) {
- this.vehicle = vehicle;
- }
- @Override
- public void setFuel(int fuel) {
- this.fuel = fuel;
- }
- @Override
- public void setMaxFuel(int maxFuel) {
- this.maxFuel = maxFuel;
- }
- @Override
- public void setUnlimited(boolean isUnlimited) {
- this.isUnlimited = isUnlimited;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement