Jump to content

jakj

Members
  • Posts

    3240
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by jakj

  1. Re: ? TekkitCraft ? 128 Slots, Same map since early feb, we are the real deal! Why would you need a rule against stealing to know you shouldn't do it?
  2. You get Modloader source by putting it into MCP and decompiling it, chucklehead. And if you don't know that, you are going to be able to do exactly jack shit with the source when if you get it.
  3. Come on, 8 bits is one whole dollar. You can buy a lot for a dollar.
  4. Am I the only one who sees the title of this thread, and every time, thinks "They're talking about the people responsible for the administration of dicks?"
  5. jakj

    Projectile mining

    Hmm, both good suggestions; Thank you. I think I'm going to see how difficult it is to restore EE's old functionality, of dropping everything as individual blocks instead of those new item balls. The balls are nice for slower computers, but I like entity spam. :-)
  6. You are laboring under a misapprehension, that Notch's decision to use limited multithreading was because he thought it would be too difficult, or too inefficient, or not beneficial enough, or any of the reasons you just mentioned. The fact of the matter is, he's just fucking awful. He even admitted it himself, in an oblique way, in his blog post about how he failed to get a programming job because he was so visibly self-taught and unlikely to work well in groups. Just look at his code, and see all the places where he does crazy-ass things for no good reason. I mean, just look at this: The following is the main part of the algorithm that handles the decay of leaf blocks based on the absence of log blocks. int l = world.getBlockMetadata(i, j, k); if ((l & 8) != 0 && (l & 4) == 0) { byte byte0 = 4; int i1 = byte0 + 1; byte byte1 = 32; int j1 = byte1 * byte1; int k1 = byte1 / 2; if (adjacentTreeBlocks == null) { adjacentTreeBlocks = new int[byte1 * byte1 * byte1]; } if (world.checkChunksExist(i - i1, j - i1, k - i1, i + i1, j + i1, k + i1)) { for (int l1 = -byte0; l1 <= byte0; l1++) { for (int k2 = -byte0; k2 <= byte0; k2++) { for (int i3 = -byte0; i3 <= byte0; i3++) { int k3 = world.getBlockId(i + l1, j + k2, k + i3); if (k3 == Block.wood.blockID) { adjacentTreeBlocks[(l1 + k1) * j1 + (k2 + k1) * byte1 + (i3 + k1)] = 0; continue; } if (k3 == Block.leaves.blockID) { adjacentTreeBlocks[(l1 + k1) * j1 + (k2 + k1) * byte1 + (i3 + k1)] = -2; } else { adjacentTreeBlocks[(l1 + k1) * j1 + (k2 + k1) * byte1 + (i3 + k1)] = -1; } } } } for (int i2 = 1; i2 <= 4; i2++) { for (int l2 = -byte0; l2 <= byte0; l2++) { for (int j3 = -byte0; j3 <= byte0; j3++) { for (int l3 = -byte0; l3 <= byte0; l3++) { if (adjacentTreeBlocks[(l2 + k1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] != i2 - 1) { continue; } if (adjacentTreeBlocks[((l2 + k1) - 1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] == -2) { adjacentTreeBlocks[((l2 + k1) - 1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] = i2; } if (adjacentTreeBlocks[(l2 + k1 + 1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] == -2) { adjacentTreeBlocks[(l2 + k1 + 1) * j1 + (j3 + k1) * byte1 + (l3 + k1)] = i2; } if (adjacentTreeBlocks[(l2 + k1) * j1 + ((j3 + k1) - 1) * byte1 + (l3 + k1)] == -2) { adjacentTreeBlocks[(l2 + k1) * j1 + ((j3 + k1) - 1) * byte1 + (l3 + k1)] = i2; } if (adjacentTreeBlocks[(l2 + k1) * j1 + (j3 + k1 + 1) * byte1 + (l3 + k1)] == -2) { adjacentTreeBlocks[(l2 + k1) * j1 + (j3 + k1 + 1) * byte1 + (l3 + k1)] = i2; } if (adjacentTreeBlocks[(l2 + k1) * j1 + (j3 + k1) * byte1 + ((l3 + k1) - 1)] == -2) { adjacentTreeBlocks[(l2 + k1) * j1 + (j3 + k1) * byte1 + ((l3 + k1) - 1)] = i2; } if (adjacentTreeBlocks[(l2 + k1) * j1 + (j3 + k1) * byte1 + (l3 + k1 + 1)] == -2) { adjacentTreeBlocks[(l2 + k1) * j1 + (j3 + k1) * byte1 + (l3 + k1 + 1)] = i2; } } } } } } int j2 = adjacentTreeBlocks[k1 * j1 + k1 * byte1 + k1]; if (j2 >= 0) { world.setBlockMetadata(i, j, k, l & -9); } else { removeLeaves(world, i, j, k); } } That's right: All of that, to determine whether log blocks are present, and to apply a scaling decay rate based on the density of leaves remaining. Do you really want to see what a greatly-multithreaded application would have been like, made by somebody who writes that?
  7. Other than the IC laser, what are some good mods that provide the abilith to shoot or fire in a direction and get the blocks ot hits? Block-destroying explosive explosive arrows or whatever, but that give you all the bits like ee bombs do. Or alternately, something that lets me fire a nova catalyst at a wall and have it detonate.
  8. The color indicates programmer/modder.
  9. Classiness of avatar (directly-proportional to) Value of posts
  10. Duct tape is amazing, but does not qualify as magic.
  11. Mojang doesn't want the shitfest that enforcing the tos...even a modified tos supporting modding...would entail. It would consume a year profit in legal fees. Modders have copyright on anything independent of Minecraft's code, like gui elements not adapted from base gui (which means doesn't use the builtin slot functionality either) or an abstract or generic algorithm that does not rely on minecraft data structure or class hierarchy to function. So really, very little of any mod. Here's a fun little game for the skeptical: Name a mod, and ai will detail its parts and why each is ether copyrightable or not by the modder.
  12. Their e-status is their substitute for self-respect and actual life purpose. Maintaining strict control over how and where and when something you make is used, is a placebic prosthetic to make people feel as if they have power and authority when in reality they are just another peon in middle-class society. In other words, "Fuck you, because fuck me."
  13. In this thread: Blatantly-unfounded assumptions and accusations without any evidence or even demonstration of incidence. Winner. Also, slopes seems to work without issue with 4096, so describe the issue and it may be resolvable.
  14. The Battlegear mod has shields and has a shield-bash move with knockback. I recommend you go decompile that mod and see what it does, and think about adapting it. It would not be trivial to add something like a "disarm" into every mob, though, because some use inventories and some don't.
  15. public static boolean Rotate ( InputStream Base , InputStream Fulcrum , OutputStream Result ) { final int Complement = 0xFF ; final int Width = 8 ; try { int Carry = 1 ; while ( true ) { int FulcrumByte = Fulcrum . read ( ) ; if ( FulcrumByte < 0 ) { return ( true ) ; } int BaseByte = Base . read ( ) ; if ( BaseByte < 0 ) { BaseByte = 0 ; } int ResultByte = BaseByte + ( Complement - FulcrumByte ) + Carry ; Result . write ( ResultByte & Complement ) ; Carry = ResultByte >> Width ; } } catch ( Exception Exception ) { return ( false ) ; } } To create the patch file, the first parameter/argument is the file that you want to patch (the original, that will be on their computer, that you do not distribute), the second is the new version of the file that you made, and the result is the patch file. To do the patch, the first parameter/argument is the original file on their computer, the second is the patch that you distribute, and the result is the new file you made. It works by simple math: It treats the entire file as one massive integer, and uses the "method of complements" (http://en.wikipedia.org/wiki/Method_of_complements) to subtract one from the other. In effect, if the original file is O, the changed file is N, and the patch file is P, then "O - N = P" and "O - P = N". The reason all this is necessary, and you can't just use something simple like XOR or binary diff, is because both XOR and binary diff can leave very large sections of the original file plain to see if the changes you make are very small (like if you were to just change one function, or a single constant). XOR will leave all unchanged portions of the file plain to see in the patch (meaning you are distrubting them) and binary diff includes both the changed and unchanged portions of the code for comparative purposes. This method, though, works flawlessly (so far as I have tested), because it includes information for only the changed parts, and the information is not decipherable without the original. Imagine the original file is "99864516548" and the new file is "98924516548". The patch file will be "00940000000", which as you can see, doesn't include any of the original number at all, and is useless unless you have the original number available. (You should use something like a checksum, digest, or md5sum to verify the original file before patching.)
  16. Re: "Minecraft Enhanced" Addon for Technic - The Good News And The Bad News No luck yet. I'm going to keep fiddling with it, though. But unless it's a bug/limitation with Optifine or Forge that can eventually be corrected, there will be no good solution, even if there is -a- solution, because it will involve extra steps that go beyond the fundamental concept of Technic (that it "just works"). If you feel up to it, though, you should experiment two. N heads are better than 1, for all N >= 2.
  17. Five, actually. This is something people don't realize: Software has to be written to take advantage of multiple cores. For the vast majority of games out there, it is much better to have a 3.4 GHz 4-core than to have a 2.8 GHz 6-core, even though the latter is potentially 3.2 GHz faster with properly-written software.
  18. Let's be honest, here: A lot of mods have some small (sometimes resolvable) incompatibilities, but BTW bites Minecraft in half and chews it up to freshen its breath. "A bit incompatible" suddenly becomes a reasonable descriptor to describe everything -except- BTW.
  19. But seriously, fuck Blizzard. I may as well play it, because I didn't pay anything for it (I got the WoW annual pass for the horse and Diablo III comes with it), but yeah. Hooray for Blizzard = Ubisoft.
  20. Mo' Creatures. It's the thing that lets you have an in-game settings editor ("Global Mod Settings"). Hopefully, eventually, all mods will begin to use a similar system, to not have to edit config files anymore except for ID conflicts.
  21. The front-page post, Jay.
  22. Since we're doing lists, I've got: ModLoader Forge 4096 ID Fix PlayerAPI MystCraft Optifine (Smooth) (Finite Liquid (currently turned off due to bugs and incompatibilities)) ChickenCore/NEI/NEIplugins Gui Api AudioMod a couple handwritten tweaks here and there ccsensors computercraft portalgun rei's minimap battlegear somnia advanced machines armor stand atmosmobs (disabled, but a really nice mod) buildcraft + abo + addlpipes + logisticpipes crafting table ii/iii crystal wing custom mob spawner mo creatures ee2 enderstorage extrabiomesxl (disabled due to bugs) forestry IC2 invtweaks kaevator super slopes matmos compact solars iron chests railcraft redpower seed manager shelf sneaky pipes steve's carts TC2 treecapitator (disabled because I want to use axe of the stream) balkon's weapon mod chickenbones wireless
  23. That isn't even updated for 1.2.5 yet.
  24. I don't know about Cheap, but Kaker's pretty flexible. You should have seen him last thursday at the barbecue.
×
×
  • Create New...