Posts by Myrathi

    Q&A


    Q. How do the pads work?
    A.
    You attach IC2 power into the bottom of a pad and then stand on top of it. If a pad has power, it'll emit an electrical field upwards that will recharge your items and armour. You can insert upgrade modules to alter pads' functionality, too (see below). You can also insert redstone dust or single-use batteries into the charging slot of pads as minor boosts to the energy, if away from a power cable, and the fission pads will even accept and process the various types of uranium cells (with a very slight chance of creating depleted cells).

    • NOTE: Running a pad off uranium cells has associated risks (since it's powered by a small nuclear reactor). Ensure you use a wrench when moving the pad!


    Q. How many different pads are there?
    A.
    There are four (4), matching IC2's general tiering system, and they're named around technology you'll find in each tier (though the fission pad is more of an extension).

    • Tier 1: Static Charge Pad
    • Tier 2: Crystalizor Charge Pad
    • Tier 3: Lapotronic Charge Pad
    • Tier 3+: Fission Charge Pad


    Q. What sort of upgrades can the pads use?
    A.
    All four (4) pads can accept and use core IC2 upgrade modules, a new efficiency upgrade module and Crystalizor, Lapotronic and Fission pads can have their emitter projectors and fields upgraded via several different modules. Higher tier pads can accept more types of upgrade at once and you can only ever use one (1) projector module and one (1) field conversion module at most, per pad.

    • Overclocker (16): increases overall charge rate but also increases energy consumption
    • Efficiency (16): counteracts overclocker energy consumption plus minor charge ratio bonus
    • Storage (16): increases maximum energy storage capability
    • Transformer (4): improves how much EU/t can be handled as input (32 > 128 > 512 > ...)
    • Drain: converts an emitter to drain items instead of charge them
    • Damage: converts an emitter to cause damage to anything in the field
    • Armour Priority: causes an emitter field to prioritise armour before held items
    • Proximity: improves the projector, simultaneously recharging items beside the held item
    • Wide-Band: improves the projector, simultaneously recharging every item on the hot-bar
    • Field Expander: improves the projector range, charging things further from the pad
    • NOTE: Damage and Drain emitter modules can be turned off via system configuration (in the /config folder)


    Q. I have lower tier pads and want to upgrade. How can I do that?
    A.
    There are three (3) kits that can upgrade LV, MV and HV pads into the next better. The first is the Crystalizor Upgrade Kit: it will upgrade a Static pad into a Crystalizor pad. The second is the Lapotronic Upgrade Kit - requiring a new MFS Upgrade - which will upgrade a Crystalizor pad into a Lapotronic pad. The third is the Fission Upgrade Kit: it will upgrade a Lapotronic pad into a Fission pad. You can either combine a pad and a kit in a crafting bench (as a shapeless recipe) or you can simply right-click a kit onto the power panel of a pad (the bottom) to upgrade it in-place!

    • HINT: The pad will keep its existing power AND any items currently charging it!
    • NOTE: Upgrading a pad that someone is using may give you a nasty shock! Be careful!
    • NOTE: Upgrades can be used on any side via system configuration (in the /config folder)
    • NOTE: Upgrade electrocution damage can be altered or turned off via configuration.


    Q. Do pads actively require power?
    A.
    Usually. Assuming you have power feeding into the bottom of the pad, it will not only receive that power but it will store it for later use, exactly the way a batbox, MFE or MFSU would (it's made from one, after all). Right-clicking on a pad will show its GUI, which allows you to view the current charge storage, the maximum safe input rate and manipulate upgrade modules.

    • NOTE: There's no "Out" EU/t rating, as the pad only ever *accepts* power.


    Q. Why does the pad run out of power when I'm not charging anything?
    A.
    Creating an electrical field actually takes a small amount of power (it really is a very small amount) but if you're not hooked up to a constant source, you can actually use up the pad's personal storage, completely. At that point, the field will collapse.

    • HINT: Open the GUI while you stand on an unpowered pad and you can see it trickle out!
    • NOTE: Some upgrades cause the pad to consume more power per tick.


    Q. Why can't I access the GUI of my pad? Or use a wrench on it?
    A.
    If a pad has a drain or damage emitter conversion upgrade installed, then it also restricts access to the internals from anywhere other than the underside of the pad (where a power-cable enters it). This is to stop "enemies" from being able to quickly access and remove hostile emitter upgrades from a defensive pad before walking onto it (not to mention swiftly stealing your expensive modules!). In short: you need to activate/wrench the pad from underneath to access the pad and remove modules.


    Q. Why doesn't my item/armour charge when I stand on the pad? Why does it lose charge?!
    A.
    There are a few reasons this may happen:

    • If there's no "electrical field" above the pad, it's not charging anything.
    • Charge pads can only charge items of appropriate tier: your item's too high-tech!
    • Normally, a pad will charge held items before starting on armour (this is reversed if an armour priority upgrade is installed, charging all armour before items)
    • If the field looks yellow/orange then it has a drain module installed!
    • If the field looks red, then it has a damage module installed!


    Q. I have a <something> pad and it doesn't charge fast enough! Grr!
    A.
    If you're holding several items (with a proximity or wide-band upgrade installed) or wearing multiple chargeable armour items, the electrical field will distribute the charge equally between all of them, slowing down the charge rate of individual items. High-tier items have a lot of power to recharge, so this can take a noticeable amount of time! Try upgrading to the next tier of pad or add overclocker upgrades.

    • HINT: If you stand just right, you can be in the electrical field of more than one pad, at the same time! ;)
    • HINT: Pads can be upgraded with overclockers to improve charge rate
    • NOTE: If multiple people stand on a pad, the energy is distributed amongst *all* of the items in the electrical field! It will not increase the field power as it cannot guarantee proper control with the limited circuitry and may, in fact, cause physical harm!


    Q. My pad blew up! Whyyy?!
    A.
    Did you feed the wrong tier of power into it? Like with most IC2 machines: that's bad!

    • NOTE: BEWARE! Fission pads with installed uranium cells will explode like a nuke!!
    • HINT: Pads can be upgraded with transformer modules to accept higher tiered input


    Q. I hopped onto a pad and almost died! Why'd it hurt so much!?
    A.
    Did you drop onto one? Pads are highly complex electrical devices that EMIT electrical fields! Jumping on them causes them to discharge more electricity than their systems can safely limit. In layman's terms: they give you an electric shock! The more advanced the pad: the less abuse they'll withstand (the harder you jump, the bigger a shock you'll receive)! Alternatively, if the electrical field is red, then the pad has a damage conversion module installed and the emitter causes harm, instead! Ow!

    • NOTE: Jump damage and emitter upgrades can be turned off via system configuration (in the /config folder)


    Q. I tried to move the pad and it electrocuted me! To death! Ooooww!
    A.
    Shocking! Charge pads require proper technical expertise to disable and move. If this isn't done properly then the energy they contain will almost certainly discharge into the nearby environment in a rather disruptive fashion: this has, in virtually all tests, caused varying levels of physical trauma and, in some cases, death. If you're fortunate, and you're standing at a distance, the power field may not actually reach you (or won't hurt you quite as much, if it does). More advanced pads can store a significantly higher amount of energy and will cause proportionally greater levels of pain! Fission pads with installed uranium cells will rupture the cell and cause a nuclear explosion! (the bigger the cell, the greater the nuke!)

    • HINT: Use a wrench!!
    • NOTE: Electrocution DOES ignore armour. This is not a bug: it's a design choice! ;)
    • NOTE: This can be turned off via system configuration (in the /config folder)


    Q. I want to know when someone is using my pads!
    A.
    When pads are activated (specifically, when you stand on them), they emit a signal on a frequency that affects redstone dust! This signal is emitted from the bottom and all four sides of a charge pad with a force similar to that of a redstone repeater (it energises the whole block which will, for example, affect dust or lamps connected to it). Friction - caused by pressure on the pad - is more than enough for the circuitry to produce the signal, so it will be emitted even if the pad contains no power.


    Q. Are we done, yet?
    A.
    We are. Enjoy your new Charge Pads!

    Screenshots showing the interfaces of the machines as well as them in use would be helpful.


    Those are in progress. :] (though the GUIs are actually based upon the BatBox/MFE/MFSU, with the top slot "permanently in use by the emitter circuit" - so everyone should already be right at home using them).

    Get them pictures up, I had thought about doing something like this a while ago but never did. You sir are a hero. Now instead of spending forever charging my lapos I can just hold them all and walk away from my computer and come back to them charged.


    For the moment, the pads only charge what you're actually "holding out" (i.e. in your currently selected slot) and whatever you're wearing (if chargable). Charging up anything/everything in your hotbar will, however, be an upgrade (which is already on the TODO list). :]

    If I may suggest change the recipes of the top two tiers to include the item of the lower tier. So you can't jump straight to tier 3.


    I'd considered that when I first worked them out but figured that requiring the actual storage items for the relevant tier in the recipes, themselves, meant that you had to BE at that tier to even consider making them. You can't just skip straight to making the lapotronic pad unless you're already AT tier 3 (since you have to be able to make advanced circuits, carbon plates and an MFSU). They're really just meant to be a useful utility-extension to the storage blocks, themselves, so the stepping-stone concept seemed a bit much?

    However, you've hilighted a valid issue: making the next tier of pad would effectively leave you with a lower-tier pad that you've little use for. So, perhaps having a way to upgrade an old pad to the new tier is in order! (that and nattering about this on IRC brought up a nifty idea that having to physically pick up the block to upgrade it could be annoying, too, as you'd lose all the stored EU... soooo, to borrow a concept from IronChests: in-place upgrading via an emitter toolkit, perhaps? I see no reason that's not viable - replacing buffer corners and circuitry shouldn't be THAT hard... so long as you're prepared for the occasional shock if you do it to a fully powered pad. >:])

    *adds stuff to his TODO list*

    nice, this will definitly be useful
    (p.s: grats on your first addon!)


    Good to hear - and thanks. :]

    This mod is PERFECT!
    :Industrial Diamond: :Industrial Diamond: :Industrial Diamond: :Industrial Diamond: :Refined Iron: 4.5/5


    Woohoo! Diamonds! ;D

    (banner image will go here =P)


    ChargePads is an addon that provides new blocks which, when stood upon, will recharge IC2 items that are held in your hand or worn (like batpacks or parts of a nanosuit).


    NOTE: Bug-reports and feature requests will no longer be accepted on this forum.
    Please refer to the issue tracker on GitHub.

    Downloads & Installation


    Q. Where do I get the latest version?
    A.
    You can find it here: 1.6.2--v2.8.0.93 (or via the Curse Client)

    Q. How do I install it?
    A.
    You place the ZIP file into the client's (and server's, if SMP) /mods folder.

    Q. Do I need anything else to use it?
    A.
    You'll need:

    • For 1.6.2: Forge (build 789+) and IC2 (build 1.118.401+)
    • For 1.5.2 (#89): Forge (build 705+) and IC2 (build 1.115.325+)


    Q. Where can I find the older versions?
    A.
    You can find them here: 'Files' page

    Recipes
    Charge Pads

    Static Charge Pad

    (2 x Rubber, Stone Pressure Plate, 2 x Electronic Circuit, BatBox)

    Crystalizor Charge Pad

    (2 x Rubber, Stone Pressure Plate, 2 x Electronic Circuit, MFE Unit)

    Lapotronic Charge Pad

    (2 x Carbon Plate, Stone Pressure Plate, 2 x Advanced Circuit, MFS Unit)

    Fission Charge Pad

    (2 x Iridium Plate, Lapotronic Charge Pad, 2 x TFBP - Chilling, Nuclear Reactor)

    Upgrade Kits

    Crystalizor Upgrade Kit

    (Electric Wrench, Electronic Circuit, MFS Unit)

    MFS Upgrade

    (Advanced Circuit, Wrench, Advanced Machine, 6 x Lapotron Crystal)

    (Wrench, MFS Unit)

    Lapotronic Upgrade Kit

    (2 x Advanced Circuit, Electronic Wrench, 2 x Carbon Plate, MFS Upgrade)

    Fission Upgrade Kit

    (2 x Iridium Plate, Electronic Wrench, 2 x TFBP - Chilling, Nuclear Reactor)

    Charge Pads - Shapeless Upgrades

    Crystalizor Charge Pad

    (Static Charge Pad, Crystalizor Upgrade Kit)

    Lapotronic Charge Pad

    (Crystalizor Charge Pad, Lapotronic Upgrade Kit)

    Fission Charge Pad

    (Lapotronic Charge Pad, Fission Upgrade Kit)

    Upgrade Modules
    General

    Efficiency Upgrade

    (2 x RE-Battery <Fully Charged>, Glass Fibre Cable, 2 x 2xIns.Gold Cable, Advanced Circuit)

    Projector Modulators

    Proximity Booster Module (Projector Only)

    (4 x Advanced Circuit, 2 x Overclocker Upgrade, Splitter Cable, 2 x 2xIns.Gold Cable)

    Wide-Band Booster Module (Projector Only)

    (4 x Advanced Circuit, 2 x Proximity Booster Module, 2 x Energy Crystal, Splitter Cable)

    Field Expansion Module (Alpha) (Projector Only)

    (4 x Neutron Reflector, 2 x Detector Cable, 2 x Splitter Cable, Wide-Band Booster Module)

    Field Expansion Module (Delta) (Projector Only)

    (4 x Field Expansion Module <Alpha>, 2 x Efficiency Upgrade, 2 x Splitter Cable, Advanced Circuit)

    Field Expansion Module (Theta) (Lapotronic Projector Only)

    (2 x Thick Neutron Reflectors, Overclocker Upgrade, 2 x Field Expansion Module <Delta>,
    Splitter Cable, 2 x Efficiency Upgrade, Advanced Circuit)

    Field Modulators

    Armour Priority Module (Field Only)

    (2 x Glowstone Dust, Ender Pearl, 2 x 2xIns.Gold Cable, Proximity Booster Module)

    Drain Conversion Module (Field Only)

    (3 x Glowstone Dust, 2 x 2xIns.Gold Cable, Advanced Circuit)

    Damage Conversion Module (Field Only)

    (3 x Near-depleted Uranium Cell, 2 x 2xIns.Gold Cable, Advanced Circuit)

    Videos

    v2.3.0 : Mod Spotlight - IC2 ChargePads (courtesy of DireWolf20)

    v1.1.0 : Mod Spotlight - ChargePads v1.1.0 (courtesy of MCHeavy11)
    v1.0.0 : Godcraft Spotlight (courtesy of Kane_Hart)

    Texture Packs

    Please note: These textures are created by other people and, as such, are unsupported by me.

    Sphax PureBDcraft: [512x - 32x] IC² Mod - ChargePads v2.5.0 & v2.6.0 (and older versions)

    Q&A

    Due to post-length issues, the FAQ is now in a post further down the thread: click here

    Change Log
    • v2.8.0.93 - Update for MC v1.6.2, IC2-1.118.401-lf and Forge 789. Now uses a language asset file (Translators HAYO!).
    • v2.7.1.89 (3,229) - Update for IC2-1.115.325-lf API and Forge 705. Minor GUI fix. ISidedInventory fix.
    • v2.7.0.86 (5,928) - Update for Minecraft v1.5.2 and IC2-1.115.308-lf. Informative message when using kit on wrong side of pad.
    • v2.6.1.80 (1,838) - API update (IC2-1.115.304-lf).
    • v2.6.0.74 (4,064) - Update for Minecraft v1.5.1 and IC2-1.115-lf.
    • v2.5.0.72 (2,939) - New fission charge pads! Charging Item slot access via bottom face. Efficiency Upg recipe fix.
    • v2.4.1.66 (7,057) - Configuration files no longer re-save if unmodified.
    • v2.4.0.64 (1,566) - Update for MC v1.4.7 and IC2-1.115. GUI redesign and six new modules! (FE suggestion by DireWolf20)
    • v2.3.1.61 - Code cleanup. Use IC2 EnergyNet events.
    • v2.3.0.58 (13,107) - Update for Minecraft v1.4.6 and IC2-1.112.
    • v2.2.0.52 (1,893) - Update for IC2-1.110.
    • v2.1.1.51 (2,789) - Separate out GUI elements for high-res texture pack makers.
    • v2.1.0.49 (159) - Update for Minecraft v1.4.5 and IC2-1.109. Fixed armour drain.
    • v2.0.2.47 - Fixed shift-clicking to move upgrades to/from the pad.
    • v2.0.1.46 (482) - New MFS Upgrade recipe. Wrench ejects inventory. Offensive pads wrench via base.
    • v2.0.0.45 (1,035) - Update for Minecraft v1.4.2 and IC2-1.108 (and NEI support)
    • v1.2.2.43 (286) - Pads now accept IC2 Upgrade Modules + new modules!
    • v1.1.0.21 (3,680)- New upgrade kits for existing pads! (suggestion by Monoxide)
    • v1.0.0.19 (701) - Initial release


    ChargePads is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. Appropriate restrictions are waived for the IC2 team as required by their publishing notes.

    just do what you want, none trolling here (this thread).


    I love the "this thread" bit... heh. ; )

    Quote

    Case 1: you dont know how block works and does not have source, so you not able to implement anything inside it's class, but want to debug this block:
    А) You code something generic and execute it, this possibly will reveal data you want.
    B) You hardcode params you need from block into your debugger and debug. (CURRENTLY IN IC2)
    C) You implement your own "interface" and allow user to map data into it via config or runtime. (HOW BUKKIT AND FORGE WORKS)


    I'm well aware of how forge works (though, I'll admit, I've completely avoided bukkit), but I think I now see what you're actually getting at and the functionality you're seeking (and why).

    What you're suggesting could (would?), indeed, be useful but that's totally not what I'm looking to achieve with this Suggestion. : )

    I'm seeking a very simple interface that's very specifically useful "for the block you're developing within your own mod." This interface shouldn't care about other blocks or other mods; it's purely for accessing a status/debug message in a test environment. It's as simple as it is because that's all it has to do. The "extraneous boolean test" is actually exceptionally useful, as it allows *your code* to choose *at any point*, whether you want a message (or not) for your block, and no-one else's.

    That last, italicized part is the most important: this interface is not to allow hooks into other blocks or code! It is purely and simply to allow one item (the debugItem) to show a message when it's clicked on the block the interface is implemented on. That's it. Nothing more. It's that simple. There is not meant to be any mechanism for hooking into anything.

    Regarding the boolean method: I suppose it would be just as easy to signal "no message," at any time, simply by returning a null or an empty string from the getDebugText() method (and the debugItem's code would ignore both) but I like to be explicit in my usage tests and it makes the supporting code look much cleaner (in my opinion).

    The support/functionality you're looking for would, I think, deserve its own Suggestion, entirely, as the scope for that is much larger and would require significantly deeper hooks into IC2.

    Mine is deliberately designed to be as simple as it looks: easy to implement on both the IC2dev and mod-maker sides.
    I suppose it could just as easily be called IDebugItem since that's all it's designed to be: an interface into that item. : )

    Apologies for being so harsh by way of response - we were definitely looking at entirely different "levels" of debugging support. ; )

    *we* can do anything, there is no limits, two possible methods exist:
    add debug code into TE code
    add debug code into Debug code


    I fail to see what either of those have to do with this interface and its use with the debugItem. If I want to dump info to the console, I can already do that in a multitude of ways. This interface is very specifically for allowing the "debugItem" (the little purple-squares thing) in IC2 to output a "chat string" to the item-user, in exactly the same way that it already does for existing IC2 blocks (that are hard-coded into the debugItem, in various ways).

    For example: not every op or admin user on a server is going to have access to the console or logfiles and, therefore, it can't be guaranteed that those people will be able to check for your "console debug messages." This makes the debugItem the perfect tool for providing 'status debug messages' to them.

    Extra example: when you're developing an IC2-reliant mod, being able to just click your item and get a status message right there and then, instead of having to "do stuff in the client" while simultaneously watching the console like a hawk, is exceptionally useful. As is having a helper/tester do something to a block WHILE you're clicking it with the debug item, right there in the client/world.

    Quote

    add eventhandler and register debuggers inside it, on execution enumerate every registered debug handler


    That's complete overkill for something as simple as "showing a text string when you click a specific item on your block." You're overcomplicating things and suggesting an idea that could add significant overhead to using a single item on a single block.

    Quote

    3rd method is best, since you may register debug code for one class into other class, ever inside addons, without any need to edit original TE code.


    This has nothing to do with addon or class debug and everything to do with a block relaying its immediate "status" when clicked on by a specific IC2 item. Again, you're massively overcomplicating something that's meant to be exceptionally simple to implement (as two interface method definitions).

    Quote


    without interface method class implementing interface WONT COMPILE and wont return INSTANCEOF


    That's why they're abstract: you MUST define them. Are you being deliberately obtuse?

    Quote

    there is COMPLETELY no reason to check isDebuggable after checking instanceof


    You're completely wrong: implementation of the interface simply informs the debugItem (IF it's clicked on the block) that "the block it just clicked MAY have a status message". The debugItem then tests the isDebuggable() method return and, if it's true, gets and prints the status message; if it's false, it can safely ignore it and continue on its merry way (for that click).

    The isDebuggable() method exists so that the BLOCK can choose when IT WANTS to pass a status message to the debugItem, dependant entirely on its own internal state. Sometimes, it may want to provide a message; sometimes, it may not. Whether it does or not, may depend upon a config entry for the mod; it may depend on the status of something else, in the mod, entirely. The point is that such a decision has NO place in the debugItem's code itself and is best left to the mod implementing the interface: which is exactly as it should be.

    I fail to understand how any of this is anything but clear. If you still don't get it, I'm just going to assume you're trolling.

    it actually already implemented as interface, just hardcoded into base class.


    The internal code checks for very specific interfaces and TE classes and outputs very specific data dependant upon what it finds. There is no "generic debug interface," as such, which is why this suggestion exists. : )

    Btw, How did you got the Codetags working?


    The code tags seem to be extremely particular about the line-endings that are pasted into the block, especially if you're using "Editor" mode. I switched to the "Source code" tab, to edit my text directly, and no longer had a problem.

    I would implement something like this to allow much more flexible CustomDebug method.


    The check for a non-null TE should be done within IC2's internal debugItem method and is beyond the scope of my Suggestion. That check would (should?) be done long before it even gets to the small block of test code that I supplied - if the TE was null, the code would complain at the first of its own checks. : )

    That aside: the point of the IDebuggable interface was to make it so that the *block* could decide if and when it wanted to return a status message - if it wanted to, at all; if your block is inactive and has no status - isDebuggable() would return false and the process ends; if the block is active, it returns true and getDebugText() is polled for a string to send to the player using the debugItem.

    If you always want to return a status, it's as simple as always returning true from isDebuggable().

    Some people may not want their blocks to return a debug status at all times. Your method, unfortunately, lacks that functionality... and your method name isn't exactly clear as to its purpose.

    If block lack CustomDebug interface, we can list EVERY field also we can do this with method invocation without use of API or interface, but at cost of speed.


    Actually, you can shift-click use the debugItem and it switches to a different mode that does exactly that, when used on a block (displays all of the block's interfaces, fields and TE fields) - it's useful but exceptionally verbose X( and not very useful for a one- or two-line status message as it currently works on existing IC2 blocks.

    Name: ic2.api.IDebuggable

    Description:

    It would be useful to have an IDebuggable interface available that would allow mods using the IC2 API to output their own message to the player when the debug item is clicked on their block(s).

    Implementation on a mod's own tile entities would follow the same approach as any other interface in the ic2.api package.

    Recipe: ;)

    The interface:

    This could be implemented in ItemDebug's right-click function with this:
    (the sendChat function is obviously just for demonstration)

    Code
    TileEntity te = world.getBlockTileEntity(x, y, z);
    if ((te instanceof IDebuggable))
    {
    	IDebuggable dbg = (IDebuggable)te;
    	if (dbg.isDebuggable()) {
    		sendChat(player, dbg.getDebugText());
    	}
    }