2014-12-29 5 views
0

Minecraft 용으로 약간의 수정 작업을하고 있습니다.Java 오버라이드 된 메소드가 호출되지 않음

이 작업에는 사용자 지정 WorldType 만들기가 포함됩니다.

@Mod(modid = HungryPillarsMod.MODID, version = HungryPillarsMod.VERSION) 
public class HungryPillarsMod { 

    public static final String MODID = "hungry-pillars"; 
    public static final String VERSION = "0.1"; 

    @EventHandler 
    public void postInit(FMLPostInitializationEvent event) { 
     WorldType HUNGRYPILLARS = new HungryPillarsWorld(); 
    } 
} 

및 HungryPillarWorld.class에

public class HungryPillarsWorld extends WorldType { 
    public HungryPillarsWorld(){ 
     super("HUNGRYPILLARS"); 
    } 
    @Override 
    public IChunkProvider getChunkGenerator(World world, String generatorOptions) { 
     System.out.println("Custom getChunkGenerator is running."); 
     return new HungryPillarsChunkProvider(world, world.getSeed(), world.getWorldInfo().isMapFeaturesEnabled()); 
    } 
} 

public class HungryPillarsChunkProvider extends ChunkProviderGenerate { 

    public World hungryWorldObj; 
    public HungryPillarsChunkProvider(World world, long seed, boolean mapfeatures) { 

     super(world,seed,mapfeatures); 

     System.out.println("custom HungryPillarsChunkProvider is running and the super has been called."); 
     this.hungryWorldObj = world; 
     System.out.println(this.loadChunk(3,4)); 
    } 
    @Override 
    public Chunk loadChunk(int xPos, int yPos) { 
     System.out.println("something from custom loadChunk"); 
     // my custom code would go here. 
    } 

} 

컴파일 또는 런타임 없음 오류를 HungryPillarsChunkProvider.class

에 있지만 :

지금까지 내 코드는 다음과 같습니다 내 방법 HungryPillarsChunkProvider.loadChunk 메서드가 게임에서 호출되지 않습니다. 여전히 ChunkProviderGenerate의 원본을 사용합니다. 원래의 Minecraft 코드는 여기에 게시 할 수 있지만 상당히 큽니다.

본인의 개인 정보 또는 최종 정보가 아닌지 확인했습니다.

I 방법

ChunkProviderGenerate에서 다음과 같습니다 : 그 어떤 차이가 있는지

public Chunk loadChunk(int p_73158_1_, int p_73158_2_) { 
    return this.provideChunk(p_73158_1_, p_73158_2_); 
} 

ChunkProviderGenerate 인터페이스 IChunkProvider를 구현합니다. 나 자신의 수업을 만드는 것도 시도했지만 효과가 없었다. 콘솔에서

내가이 출력 얻을 : 나는 거기에 넣어

[22:19:52] [Server thread/INFO] [STDOUT]: [com.impellar.hungrypillars.HungryPillarsWorld:getChunkGenerator:14]: Custom getChunkGenerator is running. 
[22:19:52] [Server thread/INFO] [STDOUT]: [com.impellar.hungrypillars.HungryPillarsChunkProvider:<init>:19]: custom HungryPillarsChunkProvider is running and the super has been called. 

그러나 마지막 메시지 ("뭔가 정의 loadChunk에서") 표시되지 않습니다 및 다른 코드를 내가 뭘 나는 그렇게 실행하는 것 결코 여기 없습니까?

월드 클래스를 만들기 위해 내 모든 수업을 기꺼이 뛰어 내릴 때 게임에서 내 새 방법을 사용하지 않는 이유는 무엇입니까?

+0

'loadChunk()'가 호출되고 있습니까? 'loadChunk()'가 단지'provideChunk()'를 호출하면, 아마도'loadChunk()'는 더 이상 사용되지 않을 것입니다. – Kenster

+0

그게 다야! 고맙습니다. 나는 여전히 문제가있다. 그러나 그들은 나의 초기 문제가 해결 될 것 같도록 변경했다. 답변으로 제공 할 수 있다면 받아 들일 것으로 표시합니다. –

답변

0

loadChunk()이 호출되지 않았을 수 있습니다. loadChunk()이 단지 provideChunk()을 호출하면 loadChunk()는 더 이상 사용되지 않는 레거시 함수 일 수 있습니다.