Jump to content

[1.7.2] Starting with an Energy System


SilentThief

Recommended Posts

Hello, I would like to know how I'd start creating an energy system like the one Thermal Expansion, AE, Etc. has. Such as:

 

Create Energy > Store Energy > Send Energy > Receive Energy > Store Energy > Do Something With the Energy

 

or

 

Create Data > Store Data > Send Data > Receive Data > Store Data > Do Something with the Data

 

How would I get started with that exactly?

Link to comment
Share on other sites

Currently I have the same thoughts. Well I think you should take a look on the code of some open source mods. I think buildcraft is pretty up to date, and contains some kind of "energy" system.

 

After I took a look on the code of some mods, I discovered Universal Electricity. This is a mod / API, which helps modders(like us), to not create a system on their own, but integrate their mods into the Universal Electricity API. This will make as example the electricity generated by one of your generators usable with a furnace from another mod. I hope this will help you.

try {

...

}catch(Throwable t) {

    MagicAppErrorSolver.solveProblem(t, this);

}

//Programmers will lose work

Link to comment
Share on other sites

Okay, it sort of depends on exactly what you want to do.  But generally you will make blocks that have TileEntities that will help manage the information related to the energy in the block.

 

TileEntities can "look around" them for neighboring blocks with TileEntities.  Basically you would write code that would look at each position around the TileEntity for others.  This will allow you to control transmission of energy, activate machinery and such.

 

So imagine it like this.  You would create certain energy sources.  Then you would create certain transmission blocks.  The transmission blocks would have code that checks for neighboring energy sources, and if there is a source then the transmission block would get energized too.  The transmission blocks would also look for neighboring transmission blocks that happen to be energized, and if there is a neighboring energized transmission block then it would be energized too.  In this way you can have a chain of energy transmission.  Lastly you would have machinery blocks that would activate if they have either an energy source or an engergized transmission block neighboring it.

 

Basically each of these blocks would have a field that indicated isEnergized.  And each block would just check around itself to see if it is able to get energy to energize.

 

Make sense?

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

Currently I have the same thoughts. Well I think you should take a look on the code of some open source mods. I think buildcraft is pretty up to date, and contains some kind of "energy" system.

 

After I took a look on the code of some mods, I discovered Universal Electricity. This is a mod / API, which helps modders(like us), to not create a system on their own, but integrate their mods into the Universal Electricity API. This will make as example the electricity generated by one of your generators usable with a furnace from another mod. I hope this will help you.

@ruabmbua I can perfectly capable of creating the energy system, just needed an explanation of how it'd work.

 

@jabelar Thank you very much for the explanation, it will help me out with this. :)

 

Question: Is there any references that would help me with this also?

Link to comment
Share on other sites

Question: Is there any references that would help me with this also?

 

Well the redstone implementation itself is an energy system so you can just look at the source code for how that is done, although there would be a lot of extra stuff in there that is very specific to redstone.

 

I'm pretty sure some other mods are open source.  Also, as mentioned, while it is fun to code stuff up on your own, there are options to make use of API that some others have already provided. 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

I made a working energy system, but it has some flaws, and it took me days to figure out when something doesn't work, and when i solved it, another problem came up. I worked about a week to make a energy system with some flaws, so if you wan't a flawless system, it's gonna take a big amount of time. I just want to say that it's a big project and you really need to put some time in it.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

I think you're best bet is to sit down with a pen and paper (what? are you serious? yes...I'm serious) and outline your thoughts on paper. Is your energy going to be wireless? Is it going to involve actual mechanics (all energy systems are roughly based on physics)? Etc. Once you have done this, you will need to actually read up on real energy to see how it's done: i.e. how much energy dissipates over time/distance, resistances of certain objects, maximum currents/voltages allowed, emf in batteries. Now that it is outlined in paper, and you have a basic understanding of how real energy works, you can begin to start writing your code. I'd suggest using Interfaces instead of coding the methods straight into the Blocks themselves. This will make them more accessible, API-friendly, and most of all: simple. DO NOT MAKE YOUR ENERGY SYSTEM OVERLY COMPLICATED. This will lead to screaming, shouting, and/or a broken computer. Remember to K.I.S.S. when coding these things. Hope this helps!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.