/
Belyash5
/
Flu
Обзор
Документация
Войти
/
Belyash5
/
Flu
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/hbm/entity/train/EntityRailCarElectric.java
70 строк
2 KB
Boblet
everything is falling the fuck apart
09 апр 2024, 17:55
09 апр 2024, 17:55
c9c6549
Код
Авторство
О чём код?
package com.hbm.entity.train; import com.hbm.items.ModItems; import api.hbm.energymk2.IBatteryItem; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public abstract class EntityRailCarElectric extends EntityRailCarRidable { public EntityRailCarElectric(World world) { super(world); } public abstract int getMaxPower(); public abstract int getPowerConsumption(); public boolean hasChargeSlot() { return false; } public int getChargeSlot() { return 0; } @Override protected void entityInit() { super.entityInit(); this.dataWatcher.addObject(3, new Integer(0)); } @Override public boolean canAccelerate() { return true; //return this.getPower() >= this.getPowerConsumption(); } @Override public void consumeFuel() { //this.setPower(this.getPower() - this.getPowerConsumption()); } public void setPower(int power) { this.dataWatcher.updateObject(3, power); } public int getPower() { return this.dataWatcher.getWatchableObjectInt(3); } @Override public void onUpdate() { super.onUpdate(); if(!worldObj.isRemote) { if(this.hasChargeSlot()) { ItemStack stack = this.getStackInSlot(this.getChargeSlot()); if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); int powerNeeded = this.getMaxPower() - this.getPower(); long powerProvided = Math.min(battery.getDischargeRate(), battery.getCharge(stack)); int powerTransfered = (int) Math.min(powerNeeded, powerProvided); if(powerTransfered > 0) { battery.dischargeBattery(stack, powerTransfered); this.setPower(this.getPower() + powerTransfered); } } else if(stack != null) { if(stack.getItem() == ModItems.battery_creative || stack.getItem() == ModItems.fusion_core_infinite) { this.setPower(this.getMaxPower()); } } } } } }