Не выполняется метод

Версия Minecraft
1.7.10
1,417
44
594
Вечер добрый.
В общем. Есть метод. Вызываю его из класса, где он находится 0 все хорошо работает. Но при вызове из другого класса не реагирует вообще.
Код:
Код:
public class Class extends ... {
    //double energ = 0;
    private double fluid = 0;
    private byte lock = 0;
    public Class()() {
    }
    public TileEntitySphere addFluidAmount(double d) { 
        this.fluid += (d/1000); 
        return this;  
        }
    public TileEntitySphere remFluidAmount(double d) { 
        this.fluid -= (d/1000); 
        return this;  
        }   
}
Как вызываю:

Код:
Class ad = new Class(); // Тут ли ошибся я? :/
if(eall>=100) {
                    double d = 100;
                    ad.addFluidAmount(d);
                    stack.stackTagCompound.setDouble("energy", (double)(eall - d));
                    System.out.println("Lock!");
                }
 
Решение
Ну тогда все понятно. У тебя обьект тайла уже создан, а ты берешь и создаешь еще один Class ad = new Class();. Соответственно все изменения которые ты вносишь в новый обьект будут вноситься в него, а не в тот что ты хочешь. Тебе нужно получить ссылку на твой тайл, а не создавать новый. Например использовать Class ad = (Class)world.getTileEntity(...) (или как-то иначе, не помню точное название метода)
Код:
   public static TileEntitySphere addFluidAmount(double d) {
this.fluid += (d/1000);
return this;
}
public static TileEntitySphere remFluidAmount(double d) {
this.fluid -= (d/1000);
return this;
}
И зачем ему эти статичные методы? Он хочет создавать экземпляр класса, и уже оттуда брать значения.
И вообще ты написал полную чушь. В статическом методе никак не может использоваться this.
 
1,417
44
594
Он хочет создавать экземпляр класса, и уже оттуда брать значения.
Верно

А как оно должно работать у тебя вместе? Счас ты просто создаешь новый обьект класса
Создаю и вызываю метод, который не работает :/
 

Eifel

Модератор
1,624
79
609
Ну тогда все понятно. У тебя обьект тайла уже создан, а ты берешь и создаешь еще один Class ad = new Class();. Соответственно все изменения которые ты вносишь в новый обьект будут вноситься в него, а не в тот что ты хочешь. Тебе нужно получить ссылку на твой тайл, а не создавать новый. Например использовать Class ad = (Class)world.getTileEntity(...) (или как-то иначе, не помню точное название метода)
 
1,417
44
594
Ну тогда все понятно. У тебя обьект тайла уже создан, а ты берешь и создаешь еще один Class ad = new Class();. Соответственно все изменения которые ты вносишь в новый обьект будут вноситься в него, а не в тот что ты хочешь. Тебе нужно получить ссылку на твой тайл, а не создавать новый. Например использовать Class ad = (Class)world.getTileEntity(...) (или как-то иначе, не помню точное название метода)
Не знал. Спасибо. С меня лойс)
 
Я знаю основы... И не знал, что тайл свой объект делает.
Судя по всему, основы ты не знаешь...
Вот эта строчка тебе ни о чем не говорит?
Java:
@Override
public TileEntity createNewTileEntity(World worldIn, int meta) {
    return new TileEntityl();
}
 
1,417
44
594
Судя по всему, основы ты не знаешь...
Вот эта строчка тебе ни о чем не говорит?
Java:
@Override
public TileEntity createNewTileEntity(World worldIn, int meta) {
    return new TileEntityl();
}
В сорцы майна без надобности не лезу, не поверишь.
А тут не подумал, что класс Тайла смотреть надо.
 
Сверху