{"action":"created","issue":{"url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2/issues/2438","repository_url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2","labels_url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2/issues/2438/labels{/name}","comments_url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2/issues/2438/comments","events_url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2/issues/2438/events","html_url":"https://github.com/AppliedEnergistics/Applied-Energistics-2/issues/2438","id":181013531,"number":2438,"title":"Support for 3rd party energy systems","user":{"login":"yueh","id":151949,"avatar_url":"https://avatars.githubusercontent.com/u/151949?v=3","gravatar_id":"","url":"https://api.github.com/users/yueh","html_url":"https://github.com/yueh","followers_url":"https://api.github.com/users/yueh/followers","following_url":"https://api.github.com/users/yueh/following{/other_user}","gists_url":"https://api.github.com/users/yueh/gists{/gist_id}","starred_url":"https://api.github.com/users/yueh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yueh/subscriptions","organizations_url":"https://api.github.com/users/yueh/orgs","repos_url":"https://api.github.com/users/yueh/repos","events_url":"https://api.github.com/users/yueh/events{/privacy}","received_events_url":"https://api.github.com/users/yueh/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2/labels/type-feature","name":"type-feature","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2/milestones/5","html_url":"https://github.com/AppliedEnergistics/Applied-Energistics-2/milestones/rv4%20-%201.10","labels_url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2/milestones/5/labels","id":1158354,"number":5,"title":"rv4 - 1.10","description":"Initial porting,\r\ngood chance to rework internals,\r\ncause no fear of breaking APIs","creator":{"login":"thatsIch","id":2210496,"avatar_url":"https://avatars.githubusercontent.com/u/2210496?v=3","gravatar_id":"","url":"https://api.github.com/users/thatsIch","html_url":"https://github.com/thatsIch","followers_url":"https://api.github.com/users/thatsIch/followers","following_url":"https://api.github.com/users/thatsIch/following{/other_user}","gists_url":"https://api.github.com/users/thatsIch/gists{/gist_id}","starred_url":"https://api.github.com/users/thatsIch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thatsIch/subscriptions","organizations_url":"https://api.github.com/users/thatsIch/orgs","repos_url":"https://api.github.com/users/thatsIch/repos","events_url":"https://api.github.com/users/thatsIch/events{/privacy}","received_events_url":"https://api.github.com/users/thatsIch/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":25,"state":"open","created_at":"2015-06-10T11:34:02Z","updated_at":"2016-10-04T21:47:13Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2016-10-04T21:47:13Z","updated_at":"2016-10-05T08:33:29Z","closed_at":null,"body":"With our own energy system being a bit lacking, we have to support at least one 3rd party one. Ideally more.\r\n\r\n## Should have (or even must)\r\nThese should be limited to capability based ones or at least require no hard dependency and method stripping. `@Optional` should really be avoided due to being not reliable.\r\n\r\n* [ ] **Tesla** (Capability)\r\n* [ ] **Forge one** (Capability)\r\n\r\n## Nice to have\r\nNot necessarily capability based, but should be usable as soft dependency.\r\n\r\n* [ ] **IC2 EU**. Not a capability, but due to its design it should be possible to instanciate a different object like a null object should the API not be present. So likely no stripping of methods. Not that commonly used anymore.\r\n\r\n## Unlikely to be supported\r\nThese will require us to keep our own method stripping or switch to `@Optional`.\r\nThis should also allow us to drop the core mod.\r\nMight be an idea to support them as second class member just with the energy acceptor, but no other tile entity.\r\n\r\n* **RF**. Same interface based approach since forever. No Caps. Hard dependency.\r\n* **Mekanism**. Same as RF."},"comment":{"url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2/issues/comments/251614525","html_url":"https://github.com/AppliedEnergistics/Applied-Energistics-2/issues/2438#issuecomment-251614525","issue_url":"https://api.github.com/repos/AppliedEnergistics/Applied-Energistics-2/issues/2438","id":251614525,"user":{"login":"yueh","id":151949,"avatar_url":"https://avatars.githubusercontent.com/u/151949?v=3","gravatar_id":"","url":"https://api.github.com/users/yueh","html_url":"https://github.com/yueh","followers_url":"https://api.github.com/users/yueh/followers","following_url":"https://api.github.com/users/yueh/following{/other_user}","gists_url":"https://api.github.com/users/yueh/gists{/gist_id}","starred_url":"https://api.github.com/users/yueh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yueh/subscriptions","organizations_url":"https://api.github.com/users/yueh/orgs","repos_url":"https://api.github.com/users/yueh/repos","events_url":"https://api.github.com/users/yueh/events{/privacy}","received_events_url":"https://api.github.com/users/yueh/received_events","type":"User","site_admin":false},"created_at":"2016-10-05T08:33:29Z","updated_at":"2016-10-05T08:33:29Z","body":"Yes, it is probably the first capabality based energy system. Or at least the first one being mostly used by tech mods even if that is still not a huge number. The alternatives were usually custom ports of RF or their own old energy system based on interfaces. You could argue about some issues like using long and some idiot will make a mod producing 2^63 T/tick. But who cares really. RF by itself is more or less completely unbalanced.\r\n\r\nThen there is the forge energy system, which is basically a straight port of RF to be capability based, but made as worse as possible. Like no separation between receiver and providers anymore. No `canConnect()` anymore for the mods desperately needing it, etc.\r\n\r\nInjecting power into something is probably something like for each operation.\r\n```\r\nif( te.hasCapability(ForgeEnergy, side) ) {\r\n  val cap = te.getCapability(ForgeEnergy, side)\r\n  if ( cap != null && cap.canReceive() ) {\r\n    cap.receiveEnergy(amount, simulate)\r\n  }\r\n}\r\n```\r\nIt might be possible to cache the cap locally and like hope every other mod out there does send a neighbour update everytime the configuration changes and it no longer exports the cap on this side. But this is modded minecraft...\r\n\r\n"}}
{"actor":{"display_login":"yueh"}}