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에서") 표시되지 않습니다 및 다른 코드를 내가 뭘 나는 그렇게 실행하는 것 결코 여기 없습니까?
월드 클래스를 만들기 위해 내 모든 수업을 기꺼이 뛰어 내릴 때 게임에서 내 새 방법을 사용하지 않는 이유는 무엇입니까?
'loadChunk()'가 호출되고 있습니까? 'loadChunk()'가 단지'provideChunk()'를 호출하면, 아마도'loadChunk()'는 더 이상 사용되지 않을 것입니다. – Kenster
그게 다야! 고맙습니다. 나는 여전히 문제가있다. 그러나 그들은 나의 초기 문제가 해결 될 것 같도록 변경했다. 답변으로 제공 할 수 있다면 받아 들일 것으로 표시합니다. –