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.

Draco18s

Members
  • Joined

  • Last visited

Everything posted by Draco18s

  1. Well, your read/write methods are saving sides and the energy, but not anything else. I also wouldn't trust "sides" to be sufficiently unique to avoid collision with something else. As for your log method, try using System.out.println() instead, I am not sure what the LogHelper class is and how it works, but a line printed directly to the console should show up.
  2. And this is why I haven't updated any of my mods. <3
  3. Just to jump in real quick. While not required, there are totally legitimate reasons to do untyped code blocks. I was working on something just the other week where I wanted to tab stuff in just to reduce the mental gymnastics necessary to understand what it was doing, and the IDE kept untabbing it, so I said "fuck it, code block." Incidentally, code blocks also add another level of local scope. int v = 1; { int v = 2; System.out.println("v is " + v); //prints 2 }
  4. Yeah, do that. Without it your post is useless and we can't help you. You may as well have waited to post until you got home.
  5. Turns out I misremembered something. doExplosionB(bool) is what actually destroys the blocks, there's no flag for it, it just does it.
  6. [quote name="UberAffe" post="193884" timestamp="1455814549"] So you can only have one NBTTagCompound or NBTTagList per nest level? [/quote] Incorrect. NBTTagCompound is a dictionary. You can only have one object [i]with a given name[/i]. Both of these are using the same name: [code nbt.setTag(RefStrings.TAGLIST, list); nbt.setInteger(RefStrings.TAGLIST, count); I'm sure the others are, too.
  7. There is also a parameter to the explosion function that means "destroy blocks: true"
  8. I'll be honest, I haven't looked at the newer files. I just know that it was that way for friggin' ages (I pulled that from 1291, the latest 1.7.10 version I have).
  9. ...because, right now, you're adding the effect every tick and Regen specifically wants to know how long the potion has left in order to do any healing. Because it does this: if(timeLeft % 10 == 1) { heal(); }
  10. It says "dev" and should say "decomp." They've never changed it, as far as I know.
  11. You forgot your mod ID in your registerBlockIcons method.
  12. setupDecompWorkspace gives you the source, setupDevWorkspace doesn't. Yes, thank you. That's not what I said is it? THAT is what I was referring to.
  13. If it is just private field members, then use Reflection.
  14. Alert: supplied code is 1.8ish. 1.7.10 does not require IUpdatePlayerListBox and all pos and Blockpos objects should be some variant of x , posx , or xCoord .
  15. @Override protected boolean canPlaceBlockOn(Block block) { return block == Blocks.farmland; } And what do you think this does when you go to place the next block?
  16. TL;DR: Don't You should be able to accomplish this with the event system, although your biggest problem (regardless of what you do, codewise) is going to be doing the actual animations and rendering them. But on the off-chance that the events fired are not sufficient for this, creating a coremod is a huge, huge headache. You thought coding animations was hard? Coding ASM is much harder. Here's an example: private void patch(ClassNode classNode) { MethodNode method = ASMHelper.findMethod(classNode, "func_149674_a", VOID_TYPE, WORLD_TYPE, INT_TYPE, INT_TYPE, INT_TYPE, RANDOM_TYPE); InsnList patch = new InsnList(); AbstractInsnNode absNode = findLast(RETURN, method.instructions); patch.add(new VarInsnNode(ALOAD, 1)); patch.add(new VarInsnNode(ILOAD, 2)); patch.add(new VarInsnNode(ILOAD, 3)); patch.add(new VarInsnNode(ILOAD, 4)); patch.add(new MethodInsnNode(INVOKESTATIC, "com/draco18s/hardlibcore/asm/HardLibPatcher", "eventFunc", getMethodDescriptor(VOID_TYPE, WORLD_TYPE, INT_TYPE, INT_TYPE, INT_TYPE))); method.instructions.insertBefore(absNode, patch); } I only changed the names of the methods in order to opaque the point of the patch. Can you figure out what it does?
  17. Not sure how the classing is done, but at the block-ID point (its possible they use the same class, the way redstone (and a few other blocks) ore do), wall and floor signs are two different blocks.
  18. I've complained before that the guide says "setupDecompWorkspace" and not dev, but whoever is in charge of that file hasn't bothered changing it.
  19. The client is a lying, cheating bastard. If Cheat Essentials doesn't report itself to the server as being installed, you can't do a damn thing about it.
  20. Pretty sure those diagonal side faces are cheated. That is: they're still squares with fully transparent pixels.
  21. Its supposed to work like that. Vanilla tools that have not been used show a full durability bar. Their damage is 0/XXX . When its used up (no bar left), damage is XXX/XXX .
  22. Your invisible blocks should also be transparent, so the model gets light.
  23. Yes, it's backwards. Just do 1 - whatever

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.