Jump to content

[Solved][1.8] Am I missing the Obvious?


Robosphinx

Recommended Posts

Hello all!

 

I've updated a mod of mine from 1.7.10 to 1.8, everything builds properly, but on run, Forge doesn't see my mod at all. I feel like there should be something biting me in the ass by now, but it seems I've done everything right. Feel free to ask for other snippets too :)

 

Main Class:

 

 

package robosphinx.mods.quartz;

/**
* @author robosphinx
*/

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import robosphinx.mods.quartz.handler.ConfigHandler;
import robosphinx.mods.quartz.handler.RecipeHandler;
import robosphinx.mods.quartz.init.QuartzPlusBlocks;
import robosphinx.mods.quartz.init.QuartzPlusItems;
import robosphinx.mods.quartz.item.*;
import robosphinx.mods.quartz.block.*;
import robosphinx.mods.quartz.reference.Reference;
import robosphinx.mods.quartz.world.Generation;

/*
* What is our mod?
*/
@Mod (modid = Reference.MOD_ID, name = Reference.NAME, version = Reference.VERSION/*, guiFactory = Reference.GUI_FACTORY_CLASS*/)
public class Quartz {
    
    /*
     * Makes this class accessible from other mods (makes addons and integration possible).
     */
    @Instance (value = Reference.MOD_ID)
    public static Quartz     instance;
    
    private ConfigHandler    config;
    private RecipeHandler    recipes;
    private QuartzPlusBlocks blocks;
    private QuartzPlusItems  items;
    
    /*
     * Forge pre-initialization call, most of our loading stuff is here.
     */
    @Mod.EventHandler
    public void preInit (FMLPreInitializationEvent event) {
        
        // Gets the config file: if none exists, one is created.
        config.init(event.getSuggestedConfigurationFile());
        
        // Register World Gen
        GameRegistry.registerWorldGenerator(new Generation(), 0);
    }
    
    /*
     * Forge initialization call, adds smelting to the registry.
     */
    @Mod.EventHandler
    public void init (FMLInitializationEvent event) {
        if (event.getSide() == Side.CLIENT) {
            RenderItem render = Minecraft.getMinecraft().getRenderItem();

            // Blocks
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.quartz_slab),        0, new ModelResourceLocation("quartz:" + ((QuartzHalfSlab) blocks.quartz_slab).getUnlocalizedName(),          "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.double_quartz_slab), 0, new ModelResourceLocation("quartz:" + ((QuartzDoubleSlab) blocks.double_quartz_slab).getUnlocalizedName(), "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.white_quartz_ore),   0, new ModelResourceLocation("quartz:" + ((QuartzOre) blocks.white_quartz_ore).getUnlocalizedName(),          "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.rose_quartz_ore),    0, new ModelResourceLocation("quartz:" + ((RoseQuartzOre) blocks.rose_quartz_ore).getUnlocalizedName(),       "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.smoky_quartz_ore),   0, new ModelResourceLocation("quartz:" + ((SmokyQuartzOre) blocks.smoky_quartz_ore).getUnlocalizedName(),     "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.rose_quartz_block),  0, new ModelResourceLocation("quartz:" + ((RoseQuartzBlock) blocks.rose_quartz_block).getUnlocalizedName(),   "inventory"));
            render.getItemModelMesher().register(Item.getItemFromBlock(blocks.smoky_quartz_block), 0, new ModelResourceLocation("quartz:" + ((SmokyQuartzBlock) blocks.smoky_quartz_block).getUnlocalizedName(), "inventory"));

            // Items
            render.getItemModelMesher().register(items.smoky_quartz,   0, new ModelResourceLocation("quartz:" + ((SmokyQuartz)   items.smoky_quartz).getName(),   "inventory"));
            render.getItemModelMesher().register(items.rose_quartz,    0, new ModelResourceLocation("quartz:" + ((RoseQuartz)    items.rose_quartz).getName(),    "inventory"));
            render.getItemModelMesher().register(items.quartz_shovel,  0, new ModelResourceLocation("quartz:" + ((QuartzSpade)   items.quartz_shovel).getName(),  "inventory"));
            render.getItemModelMesher().register(items.quartz_pickaxe, 0, new ModelResourceLocation("quartz:" + ((QuartzPickaxe) items.quartz_pickaxe).getName(), "inventory"));
            render.getItemModelMesher().register(items.quartz_sword,   0, new ModelResourceLocation("quartz:" + ((QuartzSword)   items.quartz_sword).getName(),   "inventory"));
            render.getItemModelMesher().register(items.quartz_axe,     0, new ModelResourceLocation("quartz:" + ((QuartzAxe)     items.quartz_axe).getName(),     "inventory"));
            render.getItemModelMesher().register(items.quartz_hoe,     0, new ModelResourceLocation("quartz:" + ((QuartzHoe)     items.quartz_hoe).getName(),     "inventory"));
        }

        recipes.initRecipes();
        recipes.initSmelting();
    }
    
    @Mod.EventHandler
    public void postInit (FMLPostInitializationEvent event) {
        // Stub method at this point - Here if we need it.
    }
}

 

 

The further a society drifts from the truth, the more it hates those who speak it.

Link to comment
Share on other sites

Guy above is right. All cpw. packages are now in mcforge. Also - why @Mod.EventHandler? Use simple @EventHandler.

 

Other than that - redesign your main class please and use proxy.

Side.X is NOT reliable in all cases, and certainly shouldnt be used when you have neat proxy system right under your hand.

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

Interesting... My userdev still has all cpw.* packages in it –as well as– net.minecraftforge.fml.* in it. Thanks for pointing that out.

 

Additionally, I haven't had the need to do sided things in forever so I just used quick hackery - I'll clean that up in a separate proxy later :)

The further a society drifts from the truth, the more it hates those who speak it.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hi, I want to make a client-only mod, everything is ok, but when I use shaders, none of the textures rendered in RenderLevelStageEvent nor the crow entity model are rendered, I want them to be visible, because it's a horror themed mod Here is how i render the crow model in the CrowEntityRenderer<CrowEntity>, by the time i use this method, i know is not the right method but i don't think this is the cause of the problem, the renderType i'm using is entityCutout @Override public void render(CrowEntity p_entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight) { super.render(p_entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); ClientEventHandler.getClient().crow.renderToBuffer(poseStack, bufferSource.getBuffer(ClientEventHandler.getClient().crow .renderType(TEXTURE)), packedLight, OverlayTexture.NO_OVERLAY, Utils.rgb(255, 255, 255)); } Here renderLevelStage @Override public void renderWorld(RenderLevelStageEvent e) { horrorEvents.draw(e); } Here is how i render every event public void draw(RenderLevelStageEvent e) { for (HorrorEvent event : currentHorrorEvents) { event.tick(e.getPartialTick()); event.draw(e); } } Here is how i render the crow model on the event @Override public void draw(RenderLevelStageEvent e) { if(e.getStage() == RenderLevelStageEvent.Stage.AFTER_ENTITIES) { float arcProgress = getArcProgress(0.25f); int alpha = (int) Mth.lerp(arcProgress, 0, 255); int packedLight = LevelRenderer.getLightColor(Minecraft.getInstance().level, blockPos); VertexConsumer builder = ClientEventHandler.bufferSource.getBuffer(crow); Crow<CreepyBirdHorrorEvent> model = ClientEventHandler .getClient().crow; model.setupAnim(this); RenderHelper.renderModelInWorld(model, position, offset, e.getCamera(), e.getPoseStack(), builder, packedLight, OverlayTexture.NO_OVERLAY, alpha); builder = ClientEventHandler.bufferSource.getBuffer(eyes); RenderHelper.renderModelInWorld(model, position, offset, e.getCamera(), e.getPoseStack(), builder, 15728880, OverlayTexture.NO_OVERLAY, alpha); } } How i render the model public static void renderModelInWorld(Model model, Vector3f pos, Vector3f offset, Camera camera, PoseStack matrix, VertexConsumer builder, int light, int overlay, int alpha) { matrix.pushPose(); Vec3 cameraPos = camera.getPosition(); double finalX = pos.x - cameraPos.x + offset.x; double finalY = pos.y - cameraPos.y + offset.y; double finalZ = pos.z - cameraPos.z + offset.z; matrix.pushPose(); matrix.translate(finalX, finalY, finalZ); matrix.mulPose(Axis.XP.rotationDegrees(180f)); model.renderToBuffer(matrix, builder, light, overlay, Utils .rgba(255, 255, 255, alpha)); matrix.popPose(); matrix.popPose(); } Thanks in advance
    • Here's the link: https://mclo.gs/7L5FibL Here's the link: https://mclo.gs/7L5FibL
    • Also the mod "Connector Extras" modifies Reach-entity-attributes and can cause fatal errors when combined with ValkrienSkies mod. Disable this mod and continue to use Syntra without it.
    • Hi everyone. I was trying modify the vanilla loot of the "short_grass" block, I would like it drops seeds and vegetal fiber (new item of my mod), but I don't found any guide or tutorial on internet. Somebody can help me?
    • On 1.20.1 use ValkrienSkies mod version 2.3.0 Beta 1. I had the same issues as you and it turns out the newer beta versions have tons of unresolved incompatibilities. If you change the version you will not be required to change the versions of eureka or any other additions unless prompted at startup. This will resolve Reach-entity-attributes error sound related error and cowardly errors.
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.