Posts by MachineMuse

    I've set my config settings for client and server to use Gregtech recipes but they do not show up in NEI in game. What might I be doing wrong?


    There were some changes in the gregtech API recently that I didn't have time to look at because I was busy with school. Andrew2448 just went through and figured them out for me today, so if you try the latest experimental version (build 332) it should work.

    Build #329 is now recommended!


    -GUI now shows what modules are installed, as well as which ones are disabled in config.
    -Module list can now be scrolled - small blue arrows will indicate when there is more on a page, and you can click the arrows or use the mousewheel to scroll. This mostly won't be noticed unless Andrew2448's addons is installed (which have had quite a few new additions!).
    -Various bugfixes (item names, API mismatches)
    -Custom models are go!


    As promised, the visor and the crystals can be coloured separately from the main armor bits, and they glow in the dark! Extra bits and animations still to come, but this sets the groundwork for a variety of other .obj armor models if people want to make them.

    If I record some sound effects for the mod, is there any chance they could get put in? It would be a lot more satisfying to have one when you install a module for instance. Maybe a special walk sound if you weigh too much, though that is probably non-trivial.


    Sorry, I should have addressed this sooner but I didn't know what I was going to say. Lurch1985 (who did the sounds for IC2 I believe) already made a bunch but I haven't gotten around to figuring out Minecraft's sound system yet... but there are still plenty more to go.


    The thing is, they have to be VERY heavily compressed AND still sound good in order to fit in a mod jar that millions of people are going to be downloading.

    I saw you were even counting 500 nanoseconds as loading Lag. That is not really necessary to look at these small amounts of initial loading time. Nobody would complain about 10 seconds more loading time. It's only bad if the loading time gets enlengthened by something like an online Check for a stupid Changelog.


    As for Proxy Class, I meant one Item Class for everything (what is something what we here in germany call "Egglaying Woolmilkpig"), and use that Class as base for all the invokated Interfaces.


    For dynamic/reflection proxy: it's not loading time, it's every time the method is invoked, which is several times per tick if they have e.g. night vision or active camouflage modules or are flying or any of a dozen other things.


    I'll try it anyway. It could be negligible in the long run.


    For having a separate handler that the classes just redirect to: That is roughly what I'm currently already doing, just with 1 class. It would be really easy to separate them out into different classes, but I don't want to make 32 class files for each of the possibilities.


    EDIT: This is what I am thinking about: http://docs.oracle.com/javase/…ide/reflection/proxy.html


    EDIT2: judging by more research, it is not that much more expensive in actual practice, maybe 2x on the affected method calls. So as long as it's not used in rendering for example (it's not) the performance impact should be negligible. So that's what I'll do then :) thanks for calling me out on this, made me figure something out that will make other bits a bit easier...


    EDIT3: If it gets really bad I guess I can just use a map by player name and only update the item once per second or something.



    This dynamic proxy won't work for Item or whatever because it must have Proxy as a superclass... I will have to do bytecode manipulation after all.


    I wonder if I can use http://www.csg.is.titech.ac.jp…st/tutorial/tutorial.html to avoid making a coremod... probably not since it needs a classloader.

    It's getting to be kind of a pain to maintain all the different recipes and I kinda want to get rid of the component items entirely to go for a materials-based approach. That way we could just distribute different configs for each set of recipes and let servers put whichever they want in. Another infrastructure side project...

    You need to call the Invocation only once, when you use Proxy Items, and that is when initializing the Item. You could put all the Interface implementation into the Proxy Class without having the actual Interfaces in it, and then a few Dummies which are extending your Base Item and just add the Interfaces. But you cant indeed get rid of the combinatorical Problem, thats true.


    Err, I was unclear. I mean Java reflection proxies not FML proxies. So I can add the interfaces dynamically at runtime by creating a class 'on the fly' that extends my base item and implements whatever other interfaces. But it's ugly because it just passes in the object it's being invoked on, a method object for the method being invoked, and the arguments as Object[]s and leaves it to your proxy to work out how to handle the invocation. So even without the 500ns overhead from reflecting everything, it still has to work out which method is being invoked and handle it accordingly, which with ~20 methods on 5 different interfaces is still a bit of a problem...


    Granted, I guess I could make my own electric item interface and implement those statically, that way the only time it takes the performance hit is when interfacing via IC2's API, e.g. when using the electric drill or when charging in a batbox. Still, that might be a lot in some cases. :/

    Hm, it looks like a dynamic proxy will add about 500 ns per invocation. Not much on its own, but when you only have 50 ms to work with, and you could be accessing it 50 times per tick, that's not so great compared to 9ns for a static invocation.
    Which leaves asm. I want to learn more about that anyway, but it's going to be a few weeks before I have more than a few hours here and there.

    I have learned that trick from fallenbeast. Just create multiple Classes for one Item, and then just put the one with the potentially missing Interface inside a "try", and put the Item which doesnt contain the Interface into the "catch(Throwable e)". That way you can initialize Items, without including Interfaces of the Mods. I did that for Nuclear Control and for Buildcraft (the MJ-System) compatibility.


    That would be fine if I only had 1 or 2, but right now I have 5 (ue, ic2, as, icbm, galacticraft) and that number will grow in the future. Since this is a combinatorial problem I will have to conditionally implement 2^n = currently 32 copies of the item, later 64 or 128 with TE, Xycraft, mekanism, and others.


    I think I can do it with reflection and proxy classes but I don't know how slow it will be.

    MPS Version 0.4.1-292 is now recommended!


    New modules:
    -Shears (to be replaced by projectile blade launcher eventually) - longer range than normal shears (10m!)
    -Rototiller - till a circle up to an 8m radius, all at once!
    -Airtight Seals - allows the helmet to act as a Galacticraft oxygen mask. Air tanks sold separately.


    New functionality on old modules:
    -Limited treecapitator emulation on woodcutting module
    -Flight control now responds to 'sneak' and has a tinker option, 'verticality', which controls how much your view angle contributes to the direction of movement (can be more like creative flight if you want)


    New configuration options:
    -Mode-switching and flight control 'go down' now have Forge keybinds
    -Mousewheel mode-switching can be turned off in config file
    -Max. flight speed can be capped so people don't load chunks too fast and bog down the server.


    Other tweaks:
    -Using items while climbing a ladder or swimming should no longer paradoxically give you a speed boost
    -Player input updates now only send on changes - should save on bandwidth for high-population servers with many idle
    -Plasma bolt rendering improved - better lightning effect and should no longer appear as a flat panel in another player's hand
    -IC2 for 1.5.1 should now be supported. **UNTESTED**
    -All items in your inventory (batteries included) should now count towards your energy & weight total - no more need to install batteries in the power tool
    -Fixed a couple crash cases (removing items while flying, shooting entities beyond 64 blocks with railgun)

    Is there an advantage to taking total armor value over 20?


    Yes, 20 armor value is only 80% protection (20% per item). By default it is capped at 24% per item (96% total). Also, MPS armor has a max absorption of 3 points of damage per point of armor, so a 20 armor value suit will absorb up to 60 hearts depending on the size of the explosion (because what else is going to do that much damage?)


    P.S. YAYYYY IC2 has a tentative update so I can support the new api :3


    aaand it's done!

    That seems likely. I havent updated since the start of the client back in October.


    EDIT: Not sure if config or not, but whenever i blink, Console states so about 10 times.


    There's a config option for 'debugging info' which defaults to 'false', unless you're using an old version of MPS as well..


    *wiggles* can't wait for IC2 to update so I can play with all the lovely API changes Player has been making

    Probably being a noob, but how can i charge my suit with only the Thermal expansion config?


    Well.. if you don't have IC2 or UE installed, you can still use Powercrystals's Powerconverters ( http://www.minecraftforum.net/…ters-netherores-and-more/ ) which has a charging pad. But I probably shouldn't support non-ic2 use on these forums.


    Note that if you have IC2 installed and just have the recipe set turned off, you can still recharge the powersuit in a batbox for example.

    Hi, first off, looooove the power suit, comes in real handy when exploring goes horribly wrong.


    Thanks for the support.

    I had a few ideas I was hoping to share, so I hope I'm not spamming by posting them here.


    You are.

    Whats about making the Multimeter capable of reading EU like a EU-Reader does?


    As are you.

    If possible also making it read MJ in redstone conduicts (there is a tool, just don't remember what it is called) and making it read charge (factorization Charge Meter).


    And you.

    That's the Multimeter. Allow it to work on the Liquiducts too!


    Additionally, while we're at it, Redpower 2 multimeters!


    And you.