Jump to content

[Solved] Need help updating to 1.7.2


Renkin42

Recommended Posts

I need some help with some bugs in my mod in 1.7.2.

 

1. Block and item textures aren't loading. My mod is in it's own project (Wuppy's advanced setup), and the file structure is src/main/resources/assets/renkin42swt/textures/items and /blocks. Entities have no problem loading their textures from this same location.

2. Placing new blocks crashes the game

3. Crafting Recipes work, but retrieving new items from the output crashes the game.

4. New items and blocks are being removed from my inventory when exiting and re-entering the game.

5. New blocks and items aren't appearing in the creative menu.

6. Blocks under transparent blocks not being rendered. Please check main/java/renkin42/stuffWorthThrowing/blocks/BlockSpectralBrick.

 

I am running forge 1007.

Here is my source code in it's current form: https://github.com/Renkin42/SWT_Mod_Gradle

Link to comment
Share on other sites

If your blocks and items are not showing up correctly it's only because there is no ID anymore use by the game code when crafting or harvesting blocks.

 

Before 1.7.2 IDs were used to identify and spawn the objects but now the game use Items.

 

When you harvest a block it creates an ItemBlock and this ItemBlock has to be registered as an item to exist.

 

The old registering method doesn't work, you have to used the extended version that also call the ItemBlock .

 

As i had also some difficulties when the first version of Forge 1.7.2 appears i used the same registering method as the vanilla game. and it works perfectly.

Link to comment
Share on other sites

If your blocks and items are not showing up correctly it's only because there is no ID anymore use by the game code when crafting or harvesting blocks.

 

Before 1.7.2 IDs were used to identify and spawn the objects but now the game use Items.

 

When you harvest a block it creates an ItemBlock and this ItemBlock has to be registered as an item to exist.

 

The old registering method doesn't work, you have to used the extended version that also call the ItemBlock .

 

As i had also some difficulties when the first version of Forge 1.7.2 appears i used the same registering method as the vanilla game. and it works perfectly.

I'm a bit confused. Can you give me a code example of what you're talking about?

Link to comment
Share on other sites

I'm going to refer you to my github. Look in the 1.7 branch of Carbon-Mod. https://github.com/alix-the-alicorn

 

Also, My stuff isn't localized yet, use the assets method to localize in 1.7.

Are your textures working? I tried setTextureName("renkin42swt:sandPile") with the texture at "main/resources/assets/renkin42swt/textures/items/sandPile.png" but it didn't work.

Link to comment
Share on other sites

I've got the same problems! Item textures, Items not popping up in creative inventory, items disappeared after logging in again ...

 

I think it's just a problem of item registering, but i can't figgure out how to register items right. I tried GameRegistry.registerItem() and also Item.field_150901_e.func_148756() which is the same as the GameData registry

 

I can't help myself please help!

Link to comment
Share on other sites

Okay, new issue. Now the rendering stuff for my transparent blocks is broken. It now doesn't render the non-visible sides correctly, resulting in world holes under the block. I checked BlockIce and BlockGlass and didn't see anything new, so I'm not sure what's missing. can someone take a look? On the github repository, its at main/java/renkin42/stuffWorthThrowing/blocks/BlockSpectralBrick

Never Mind, I was just using the wrong method. Hard to tell with the block stuff still obfuscated.

Link to comment
Share on other sites

Hi

 

This problem is normally associated with an incorrect isOpaqueCube.

 

Try adding @Override before your      public boolean func_149686_d()

 

Also - what is this line supposed to do (in shouldSideBeRendered)?  It looks broken to me, is 1 - side deliberate? (treat top & bottom different from sides?)

 

        return super.func_149646_a(par1IBlockAccess, par2, par3, par4, 1 - par5);

 

if you always return true from this function, does your missing side problem go away?

 

-TGG

Link to comment
Share on other sites

Never Mind, I was just using the wrong method. Hard to tell with the block stuff still obfuscated.

 

Use @Override for all your methods, it will help you pick up this sort of problem much faster.

 

-TGG

I did, but the method I was using was still valid, it just did something else. I was using func_149686_d when the correct one was func_149662_c. Also, the 1 - side thing is deliberate. I'm not sure what the purpose is, I just copied it from BlockIce.

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

    • Post logs as per https://forums.minecraftforge.net/topic/125488-rules-and-frequently-asked-questions-faq/ They may have information that will answer these questions.
    • I was left reeling when a glitch on a cryptocurrency exchange caused me to lose $166,000 worth of my hard-earned savings. It felt like my entire world had crumbled in the blink of an eye, leaving me with a sense of hopelessness. Determined not to give up, I delved into research on recovery options, unsure of what to expect. That's when I stumbled upon I was left reeling when a glitch on a cryptocurrency exchange caused me to lose $166,000 worth of my hard-earned savings. It felt like my entire world had crumbled in the blink of an eye, leaving me with a sense of hopelessness. Determined not to give up, I delved into research on recovery options, unsure of what to expect. That's when I stumbled upon DIGITAL HACK RECOVERY, a beacon of hope in my darkest hour. Despite my initial doubts, I decided to take a leap of faith and give them a shot as a final lifeline. The experts at DIGITAL HACK RECOVERY proved to be masters of their craft, guiding me through their exclusive process with precision and expertise. Utilizing cutting-edge blockchain analysis methods, they were able to track down the elusive trail of my missing funds and identify the exact point of failure. Their forensic talents were unparalleled as they tirelessly combed through the intricate web of blockchain data to locate my cryptocurrency. With each step they took, they kept me informed of their progress, never wavering in their belief that my funds could be rescued. After several painstaking weeks, DIGITAL HACK RECOVERY finally located and restored my $166,000 worth of cryptocurrency. I was awestruck that they were able to salvage what I had thought was lost forever. The whole experience restored my faith in the crypto space and proved that even in the worst situations, recovery is possible with the right experts on your side. I will be forever grateful to DIGITAL HACK RECOVERY for giving me back my life savings when I needed it most. Their tireless efforts and technical mastery turned what could have been a devastating loss into an uplifting success story. Book a time with DIGITAL HACK RECOVERY through: digital hack recovery @ techie . com &  +12018871705
    • public class ParticleReboundRecipe implements Recipe<CraftingContainer> { private List<ParticleReboundIngredient> inputs; private ParticleReboundFuel fuel; private ItemStack output; public ParticleReboundRecipe(List<ParticleReboundIngredient> inputs, ParticleReboundFuel fuel, ItemStack output) { this.inputs = inputs; this.fuel = fuel; this.output = output; } // TODO: Implement interface ... // TODO: Move to separate file if desired public record ParticleReboundIngredient(Ingredient ingredient, int count) { public static final Codec<ParticleReboundIngredient> CODEC = RecordCodecBuilder.create( builder -> builder.group( Ingredient.CODEC.fieldOf("ingredient").forGetter((i) -> i.ingredient), Codec.INT.fieldOf("count").forGetter(i -> i.count) ).apply(builder, ParticleReboundIngredient::new) ); } // TODO: Move to separate file if desired public record ParticleReboundFuel(String tag) { public static final Codec<ParticleReboundFuel> CODEC = RecordCodecBuilder.create( builder -> builder.group(Codec.STRING.fieldOf("tag").forGetter(f -> f.tag)).apply(builder, ParticleReboundFuel::new) ); public boolean isFuel(ItemStack stack) { // TODO: Check if fuel item matches the tag } } public class Serializer implements RecipeSerializer<ParticleReboundRecipe> { public static final Codec<ParticleReboundRecipe> CODEC = RecordCodecBuilder.create( builder -> builder.group( ParticleReboundIngredient.CODEC.listOf().fieldOf("inputs").forGetter(r -> r.inputs), ParticleReboundFuel.CODEC.fieldOf("fuel").forGetter(r -> r.fuel), ItemStack.CODEC.fieldOf("output").forGetter(r -> r.output) ).apply(builder, ParticleReboundRecipe::new) ); @Override public @NotNull Codec<ParticleReboundRecipe> codec() { return CODEC; } // TODO: The rest ... } }   ?
    • I'm sure load and SaveAdditional are what you are looking for, probably. Mind sharing your BE class code? You also need to override onLoad method if you haven't
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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