Minecraft forge 환경에서 클래스의 일부 변수를 업데이트하려고합니다. 우선, 클래스 길이가 600 줄을 초과하여 코드 스 니펫을 가져 왔습니다 (이것이 특정 변수가 다음 코드 스 니펫에서 초기화되지 않는 이유입니다. 클래스.) 변수를 호출하고 변경하려는 다른 방법을 시도했지만 성공적으로 작동하지 않았습니다.
편집 : (isAccelerating이 2로 설정 됨) :
if(slot.isItemEqual(new ItemStack(ModItems.Particles, 1, 19))){
if(this.isAccelerating == 0){
if(this.module == 1){
if(this.energyStored >= 600000){
this.j = 1200;
this.stoneBuffer = 8;
this.isAccelerating = 2;
return true;
}
}
else{
this.j = 1200;
this.stoneBuffer = 8;
편집하다:
isAccelerating 변수가 2로 설정되고 실행중인 것으로 보이지만 에너지는 감소하지 않습니다. 에너지가 소비되는 곳은 다음과 같습니다.
if(i<1200){
System.out.println("1");
i++;
if(i%20 == 0){
worldObj.playSound(xCoord+5, yCoord, zCoord, "random.explode", 1F, 1F, true);
worldObj.playSound(xCoord-5, yCoord, zCoord, "random.explode", 1F, 1F, true);
worldObj.playSound(xCoord, yCoord, zCoord+5, "random.explode", 1F, 1F, true);
worldObj.playSound(xCoord, yCoord, zCoord-5, "random.explode", 1F, 1F, true);
worldObj.playSound(xCoord-5, yCoord, zCoord-5, "random.explode", 1F, 1F, true);
worldObj.playSound(xCoord+5, yCoord, zCoord-5, "random.explode", 1F, 1F, true);
worldObj.playSound(xCoord-5, yCoord, zCoord+5, "random.explode", 1F, 1F, true);
worldObj.playSound(xCoord+5, yCoord, zCoord+5, "random.explode", 1F, 1F, true);
}
if(this.energyStored < 500){
System.out.println("2");
this.energyStored = 0;
this.isAccelerating = 0;
}
else{
System.out.println("3");
this.energyStored -= 500;
}
}
else{
j = 0;
i = 0;
this.isAccelerating = 0;
this.stoneBuffer = 0;
Entity entity = new EntityItem(worldObj);
ItemStack itemstack = new ItemStack(ModItems.Particles, 1, 8);
this.output(itemstack);
}
이 코드에서 시스템은 1과 3을 인쇄하여 에너지가 소비되지만 실제로는 그렇게하지 않는 코드를 실행하고 있음을 나타냅니다.
편집하다:
이 문제에 대한 해결책을 찾았습니다. 나중에 참조하기 위해 서버와 클라이언트를 동기화하기 위해 다음 코드 줄을 추가해야했습니다.
this.markDirty();
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
도움을 주신 분들께 감사드립니다.
이 문제에 대한 해결책을 찾았습니다. 나중에 참조하기 위해 서버와 클라이언트를 동기화하기 위해 다음 코드 줄을 추가해야했습니다.
this.markDirty (); worldObj.markBlockForUpdate (xCoord, yCoord, zCoord);
도움을 주신 분들께 감사드립니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다