Упрощение obj модели выпечки - PullRequest
1 голос
/ 11 ноября 2019

Я пытаюсь испечь несколько моделей obj, но мне нужно скопировать и вставить длинный код, чтобы испечь одну модель. Это делает мой основной мод очень длинным.

Я пытался создавать классы и создавать новые объекты, но, похоже, он не работает, потому что onModelBakeEvent должен быть статическим.

@SubscribeEvent
public static void onModelBakeEvent(ModelBakeEvent event) {
    try {
        IUnbakedModel model = getModelOrLogError(new ResourceLocation("unixmod:block/fabricator.obj"), "Missing fabricator model");
        if (model instanceof OBJModel) {
            IBakedModel bakedModel = model.bake(event.getModelLoader(), ModelLoader.defaultTextureGetter(),
                    new BasicState(model.getDefaultState(), true), DefaultVertexFormats.POSITION_TEX_COLOR_NORMAL);

            IBakedModel bakedInvModel = model.bake(event.getModelLoader(), ModelLoader.defaultTextureGetter(),
                    new BasicState(model.getDefaultState(), true), DefaultVertexFormats.ITEM);

            bakedInvModel = new PerspectiveMapWrapper(bakedInvModel, BLOCK_TRANSFORMS);


            event.getModelRegistry().put(new ModelResourceLocation("unixmod:fabricator", ""), bakedModel);
            event.getModelRegistry().put(new ModelResourceLocation("unixmod:fabricator", "inventory"), bakedInvModel);
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    try {
        IUnbakedModel model = getModelOrLogError(new ResourceLocation("unixmod:block/acidmushroom.obj"), "Missing acidmushroom model");
        if (model instanceof OBJModel) {
            IBakedModel bakedModel = model.bake(event.getModelLoader(), ModelLoader.defaultTextureGetter(),
                    new BasicState(model.getDefaultState(), true), DefaultVertexFormats.POSITION_TEX_COLOR_NORMAL);

            IBakedModel bakedInvModel = model.bake(event.getModelLoader(), ModelLoader.defaultTextureGetter(),
                    new BasicState(model.getDefaultState(), true), DefaultVertexFormats.ITEM);

            bakedInvModel = new PerspectiveMapWrapper(bakedInvModel, BLOCK_TRANSFORMS);


            event.getModelRegistry().put(new ModelResourceLocation("unixmod:acidmushroom", ""), bakedModel);
            event.getModelRegistry().put(new ModelResourceLocation("unixmod:acidmushroom", "inventory"), bakedInvModel);
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}
...