Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Mazetar

Forge Modder
  • Joined

  • Last visited

Everything posted by Mazetar

  1. I know this is kind of a side note for you but, uhm why are you modding for 1.2.5? The new minecraft code post 1.3 and the new forge updates are massive improvements for modder's The creators of the mods you are mentioning which are doing this are a part of the forge development team, creating hooks and logic to make the creation of fantastic mods like theirs possible and easier, while still being compitable with other mods! Updating to the newest versions gives you quite an improvement With that being said, If you want to learn how to do like it's done inn BC and RP you will need to study the code and see how it actually works, maybe you could download the repository as an eclipse project from git and look at it? It's easier when you can navigate trough the code inn an IDE Yes there will be stuff with heavy math and things you don't understand but if you look at how the hard stuff is used, and read up on the specific math via internet(i.e. khan) you will probably be able to understand how it's done if not yet why. But on the other hand depending on how many variations of the blocks you have and how different they are you could perhaps get away by using inheritance and extend from some base block which has mostly the same code as the 16+ variations you have?
  2. What is your mod trying to do? Seems to me that you are adding 2-3 lines of code to the fluid, snow and block base classes?
  3. I usually throw one component at a fixed size and location on the screen, then I render it and look at the size of it compared to the screen and other elements. Then i look at my drawing of how I want the GUI to look like, trying to think of which proportions things need to be scaled to in order to fit the screen inn a suitable way. The annoying thing is that once the main setup of the GUI is done, like all the components are inn somewhat correct place and scale and I start to fine tune and adjust small details I have to restart the application(re-run) in order to see the effect which makes it quite tedious.
  4. Yeah, I assume that's why endershadow liked it To the OP stormchaser206: Since you haven't responded I guess you either found the answer unhelpful or didn't click the link The link I gave was an 100% serious answer to the last question, it is possible to create models and import them into Java which saves you a hell of work! So then back to the first question, if you follow the link and learn how to easily create such models you will also learn how to rotate them and their specific parts (arms, legs or gun turret heads!). After learning that, figuring out the code to shoot something shouldn't be too hard, mostly you could look at how bow&arrows work or how an dispenser throws the fire bombs! That should give you the general idea on how to accomplish these tasks. Now if you are comfortable with the basics of the java language then creating and implementing the models and turrets wouldn't be too hard. For making them move, think(Have an A.I. I mean) and work as you want them to, well there comes the hard(but fun!) part of programming, constructing the logic
  5. Well have you tried to use the debugger and some breakpoints, to see what happens -WHEN the container's should be saved & loaded? - Are the read and write methods even called? - Do the containers they are writing to save, contain null? or do they contain items? - When the container is used, is it working as it should on the server side as well as for the client? - Maybe the client sees the items as added to the slot(s), but the server never gets the package? - Or more likely, are you reading from the NBT first, then inn the constuctor of the TE(or somewhere else) setting the IInventory to null by doing something like = new IInventory(); ?
  6. Here you go...
  7. I'm not understanding what you are trying to do, add custom GUI's to NEI? Don't you mean add custom blocks.
  8. What if block A checks the surrounding blocks by ID, if all blocks are Block B, then block A can do soemthing like this: - Create a new TileEntityA which handles the logic for whatever you want the block to do. - Loops trough all of the blockB's and set their TileEntityA field to it's own TileEntityA. both A and B blocks have "OnActivated -> if this.TileEntityA field != null -> openGui EDIT: I saw a thread like this yesterday, I belive its the same question and it has gotten an answer after mine which you might want to read :)http://www.minecraftforge.net/forum/index.php/topic,3162.0.html
  9. Hi! first if you look on the wiki there are several tutorials (All which are listed here: http://www.minecraftforge.net/wiki/Tutorials) Some which involve the ore dictionary. As for the multiple inputs and outputs(for a blockContainer?) I know I have seen tutorials on these kinds of things but I can't seem to recall where, if you browse youtube and the mc forums and do some searching I'm sure you will find them The last question is quite easy to answer, just open the TileEntityFurnace.java file inn eclipse while you are modding and read the code, you should be able to figure out exactly how it works and how long it burns and WHY I'm not really sure what you meant inn the first question, but I assume you want a furnace which outputs to two slots and if so, I know there are tutorials written about it
  10. Just throwing a wild guess here but perhaps it's just a block which onUpdate() checks to see if it's a part of a structure(by checking the blocks around it). and if it is, then create a new TileEntityXXX and let all the parts of the struct setTileEntity to that. OnBlockActiviated -> if this.TileEntity != null -> open GUI etc. The railcraft mod warns you that you should NOT use the block as a part of regular construction due to the fact that it will slow down the server with all it's constant checks to see if is a whole coke oven. I have no idea how it is actually done inn RC, but I guess it's something along those lines
  11. Hello! Blaueseichoern has some great GUI tutorials over on the minecraft forums. In post 4 he has a tutorial for the exact thing you are trying to accomplish Also the other GUI tutorials are working with forge as well, so it should give you a good read
  12. Are you sending any packets for this container of yours? how are you sending them? I'm asking since right before the crash it is working with packets so I assume there might be from there the array which is out of bounds comes from?
  13. counter-question: Why should it work the other way?
  14. If you have different packages for your mods you could have example dmillerw.mod1name.commonproxy and dmillerw.mod2name.commonproxy. As long as you import the correct one for the correct mod and use the correct one inn the @NetworkMod annotation.
  15. Yeah I guess that syncing issues, maybe you could look at how CPW handled it with his Chests mod? https://github.com/cpw/ironchest
  16. From the readme - mcp file inside the mcp directory/docs: So backup the files you have edited, then recompile, reobfuscate the code and everything is ready to go. Take the files, zip them up and done
  17. Show us the code you have tried using to achieve that then Have you taken a look at the dispenser's placement code?
  18. http://wuppy29.blogspot.nl/2012/08/modding-custom-textures-part-1.html Check this out You might also want to check his other tutorials after this one
  19. Not sure if you have seen this yet, but if you can answer to what you know and how you think about the problem I'd be happy to try to help
  20. I think this would be a good place to start atleast:
  21. Well you need to figure out a way to interact with the blocks around your block... So how would you get to know what kind of block is located 2 blocks to the north of the Terra Stone itself?
  22. Any difference inn where you place the textures or how you handle the textures inn the code itself then?
  23. How are you handling the sending and receiving of update packets for it then? Beacuse to me it sounds like the client belives it is giving and/or taking an item from the inventory, but the server does not know of this and therefore inr eality nothing has happened.
  24. Nothing would have worked if they didnt update forge since Minecraft's code changed for 1.3 Anyways I was going to post my code here but I found a tutorial on the forge wiki which would be of more use. Wuppy's Tutorial on how to add custom textures. Should help ya solve all ya problems http://wuppy29.blogspot.nl/2012/08/modding-custom-textures-part-1.html
  25. I have completed the initial goal of my Tagger Rails mod and while waiting for a friend to test it and give feedback I started working on my 2nd mod. I have just created the basic setup for creating a forge mod and try to run the client to confirm that the mod is working when it crashes with the following two errors: cpw.mods.fml.common.LoaderException: java.lang.IllegalArgumentException: Can not set static com.mazetar.aimod.common.Aimod field com.mazetar.aimod.common.Aimod.aimodInstance to com.mazetar.taggerrails.common.TaggerRails at cpw.mods.fml.common.LoadController.transition(LoadController.java:102) And error two: java.lang.IllegalArgumentException: Can not set static com.mazetar.taggerrails.common.TaggerRails field com.mazetar.taggerrails.common.TaggerRails.instance to com.mazetar.aimod.common.Aimod at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source) at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source) at sun.reflect.UnsafeStaticObjectFieldAccessorImpl.set(Unknown Source) at java.lang.reflect.Field.set(Unknown Source) at cpw.mods.fml.common.FMLModContainer.parseSimpleFieldAnnotation(FMLModContainer.java:331) So it seems to me that the @Instance annotation does for each mod is conflicting with each other? TaggerRails.Java - summary of content: package com.mazetar.taggerrails.common; // Some imports @Mod(modid = "MazTaggerRails", name = "TaggerRails", version = "0.0.1") @NetworkMod(clientSideRequired = true, serverSideRequired = true, clientPacketHandlerSpec = @SidedPacketHandler(channels = {"TaggerRailsChan"}, packetHandler = ClientPacketHandler.class), serverPacketHandlerSpec = @SidedPacketHandler(channels = {"TaggerRailsChan"}, packetHandler = ServerPacketHandler.class)) public class TaggerRails { @SidedProxy(clientSide = "com.mazetar.taggerrails.client.ClientProxy", serverSide = "com.mazetar.taggerrails.common.CommonProxy") public static CommonProxy proxy; @Instance public static TaggerRails instance; //Later inn the code @Init public void load(FMLInitializationEvent evt) { NetworkRegistry.instance().registerGuiHandler(instance, proxy); This mod was working fine on its own. Then I added my new project into its own package, named "com.mazetar.aimod". With its own package handlers, Proxy files and its own mod file. Aimod.java - summary of contents. package com.mazetar.aimod.common; // lots of imports @Mod(modid = "MazAiMod", name = "MazetarianAiMod", version = "0.0.2") @NetworkMod(clientSideRequired = true, serverSideRequired = true, clientPacketHandlerSpec = @SidedPacketHandler(channels = {"MazAiChan"}, packetHandler = ClientPacketHandler.class), serverPacketHandlerSpec = @SidedPacketHandler(channels = {"MazAiChan"}, packetHandler = ServerPacketHandler.class)) public class Aimod { @SidedProxy(clientSide = "com.mazetar.aimod.client.ClientProxy", serverSide = "com.mazetar.aimod.common.CommonProxy") public static CommonProxy proxy; @Instance public static Aimod aimodInstance; @PreInit public void preInit(FMLPreInitializationEvent event) { } @Init public void load(FMLInitializationEvent evt) { NetworkRegistry.instance().registerGuiHandler(aimodInstance, proxy); } I tried renaming the Aimod instance to aimodInstance incase the name of the variable itself would have something to say, it didn't change anything. Been trying to find places where I reffere to Aimod instead of TaggerRails and vica verca without finding any. Does anyone have a clue for how to solve this?

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.