Commit graph

163 commits

Author SHA1 Message Date
Rseifert
6b72ce462b Fixed save/loading liquid in a network
Got it for sure this time though it looks like i need to fix the
autoDrain method some more. As well prevent the fill method from trying
to refill the source of the liquid.
2013-03-30 02:27:42 -04:00
Rseifert
5a2034015a Added autoDrain && Fixed network saving
Pipes on each connection update should try to drain liquid from there
connected sources. I'll improve this later to limit the network from
getting surged all at once.

Also fixed, i think, the network saving its stored liquid to all
connected parts that can stored liquid. There still might be a bit of a
lose but i'll fix that later
2013-03-30 01:31:23 -04:00
Rseifert
7488a448f0 Made my own path finder checker
It worked without this but just too be safe i copied and changed the one
i was using from UE.
2013-03-30 00:21:33 -04:00
Rseifert
72932508d4 Add combined internal storage to pipe network
Pipe networks can now store up to so much liquid in the network.
Though untested it should save, load,  merge, split the stored liquid
2013-03-30 00:21:00 -04:00
Rseifert
7aed9a4618 Working out how to do pressure
At this point i'm a bit lost on how to do pressure in the system. I know
that the pressure will decrease with each part in the system it pass
threw. Which means later i'll need to add a path finder to simulate
this. However, right now i can't figure out how to do pressure produced
and pressure load needed. The only way i know is with one source of
pressure but in minecraft people will not just add one source of
pressure for a system.
2013-03-29 18:00:37 -04:00
Rseifert
3cfa7d33fe Fixed the render issue better 2013-03-29 16:44:10 -04:00
Rseifert
24e4f1f853 Merged network pipe with old pipe
Now that the new network pipes function up to the same level as the old
pipes its time to retire the old pipe. Only thing left too do with the
new pipes after this is too refine the code, add PSI methods, and make
it more compatible with other mods. Though as far as i can tell it
should work with other mods. However, if a mod doesn't use some methods
right then the pipes will not fill them as fast.
2013-03-29 16:43:59 -04:00
Rseifert
6eaaa91849 corrected an update issue with the pipes
pipes would only update there connection once and never again due to a
missing !
2013-03-29 16:34:13 -04:00
Rseifert
99331db20c Changed tank update style
I believe i am now using the built in update system that sends a
description packet if the block is marked for update by the game. This
should simplify it a little and i think correct a few other errors with
updating server side.
2013-03-29 16:27:15 -04:00
Rseifert
6a2a2f8809 change the tank to better work with the network
The  fluid network use the get tank side method to better find which
tank to fill first. However, i neglected to use this method correctly in
the tank and most likely something else but I'll get to that later.
2013-03-29 16:14:05 -04:00
Rseifert
b9c64dff24 Fixed a big stack Overflow with Network
still need to add more measures against this if a TileEntityNetworkPipe
gets on the Fill list it will infinite loop tile it crashes.
2013-03-29 15:54:41 -04:00
Rseifert
50cf28cbdb got rid of stacks args for canConnect
as cool of an ideal as it was it didn't get used as much. As well if
someone wants they can check the connecting pipe's colorCode for stack
info or threw some other way.
2013-03-29 15:28:52 -04:00
Rseifert
26af793479 Cleanup on tank
fixed model rendering north and south connector wrong
fixed water gauge not rendering with a texture
changed read out string for the tank to use a formatted string
2013-03-29 15:11:11 -04:00
Rseifert
90539dd231 Some cleanup for the tank's render
Still haven't fixed that odd error with the connector rendering on the
wrong face. Though the plan is to remove the connector render as you
can't see it past the pipe.
2013-03-29 14:54:10 -04:00
Rseifert
f24732fed4 setting up tank for IConnectionProvider
for now I will just use it for connection rules for rendering, and trade
processing. However, in the future i might use this with the path finder
to make a more uniform movement of liquids in the connected tanks. Might
even have them update all as one entity instead of each one at a time.
Though that will take some time if i set it up just like the UE wire's
network. As i will have to make sure that the liquid always travels to
the lowest tank first, and saves to the lower tanks. Which means that
i'll end up storing the tank's Y pos or getting it during
saving/loading/processing.
2013-03-29 14:53:19 -04:00
Rseifert
24ce9b59aa No sure were that came from
Looks like my computer picked up some very old code and included it on
push.
2013-03-29 14:49:37 -04:00
Rseifert
bb02bce6e9 reworked Tank's fill pipe function
changed/ merged fill pipe and fill tank bellow into one method that
doesn't care what is bellow it as long as its an ITankContainer
2013-03-29 14:08:24 -04:00
Rseifert
b92214e864 updated LiquidHandler's comments and methods
Still need to work on this and maybe break it up into better classes.
2013-03-29 14:05:18 -04:00
Rseifert
e8d553c4ef added code for setColor() to pipe
as well caught myself on the setColor() function for the tank were i
left out the ! in from of the check for client.
2013-03-29 13:26:58 -04:00
Rseifert
b604dafa50 Reworked the tank a bit
*changed how it sends packets to only update if something changes or at
random points in time.
*changed the getColor() to use the blocks metadata and not a var
*added code to the setColor to change the blocks metadata
*Fixed load function to not set content if it read as unkown
2013-03-29 13:24:54 -04:00
Rseifert
3dd19fc09d Fixed pipe connection for colors
Also change the name of a few classes in the process
2013-03-26 19:47:35 -04:00
Rseifert
ef6e6fde06 Fixed pipe update on load
ya that simple (face palm)
2013-03-26 18:16:30 -04:00
Rseifert
14578b179c Fixed network and pipes connections
Changed name of network part so save me from miss typing it every time
Fixed connection rules for pipes so that they will connect and render
Fixed networks merging and not crashing on merge
Fixed pipe gauge item's texture so it showed
Added a render for the network pipe (temp_use)
Bug connections/networks don't update on load just yet.
2013-03-26 18:11:38 -04:00
Rseifert
b685fda4c3 Created a new networkPipe base on UE's Conductor
My network code is about the same as UE's short of the fact i have to
still ably to net.minecraftForge.Liquids interfaces in order to keep my
mod compatibly with other mods. So its only logical that my network pipe
updates, reacts, and works the same as the UE conductor.  Though i will
be making change to mine in order to have it function with liquids more
and more.
2013-03-26 15:09:20 -04:00
Rseifert
0a020c24df Change out the canConnect methods
removed the old canConnect methods from every class that used it and
replaced it with the new one still matching how the class used the old
one. Though i'm concerned that the new method might increase processor
use a bit since it sifts threw all stacks that the pipe can handle
instead of the first valid one.
2013-03-26 13:49:00 -04:00
Rseifert
b6048c7cac Cleanup
removed old canConnect method from psiCreator and cleanup the comments
for the new one so they are easier to understand.
2013-03-26 13:27:47 -04:00
Rseifert
ca9c037fa6 worked on pressure updating in the network
this will not be easy as i've forgot some of my hydraulic's class. As
well if the pressure or load changes i have to update the entire network
to the change and recalculate the network's pressure.
2013-03-25 13:49:50 -04:00
Rseifert
15759fb7f1 cleanup 2013-03-25 13:30:14 -04:00
Rseifert
dff62a74bf added code to apply pressure to IPsiRecievers
even if the tileEntity is a ITankContainer it will call
IPsiReceiver.onRecieve first then if there is anything left of the stack
it will call ITankContainer.fill. I still need rework this too work
better, and use the path finder but for now it will do.
2013-03-25 13:01:00 -04:00
Rseifert
5823ad2c85 reworked the network code
added comments and change comments in several places
added can connect method to psi receiver and change the receiver method
to get a liquid stack so it can pass that stack to the next network.
changed onOverCharge to onPressureChange that will check each time the
pressure network increases if one of the parts will bust.
2013-03-25 12:33:32 -04:00
Rseifert
2d41e3031d merged IPsiMachine with IFluidPipe
They are now known as ILiquidNetworkPart since any tileEntity can act as
a conveyor of liquids in the network as long as they use that interface
and its methods right. This allows for pipes, as well as guages, fluid
motors, and other things to exist in the network without its spliting or
changing the over all network.
2013-03-25 11:56:16 -04:00
Rseifert
8c110124e4 cleanup and reformating
trying to save myself grief later with the hydraulic system for when
other use it. I've split it into two parts api for working with FM and
core for using the pipe network system.
2013-03-14 08:42:11 -04:00
Rseifert
99578a289f Fixed pump 2013-03-14 07:48:19 -04:00
Rseifert
1d084e6301 renamed files & changed psi to use LiquidStack 2013-03-14 07:38:28 -04:00
Rseifert
a1a17343e8 Fixed Textures
Getting close to being done now that the pre update stuff is out of the
way. Now its on to testing and bug hunting. After that its on to working
on the new pipe system and getting it done some time this week.
2013-03-14 07:09:25 -04:00
Rseifert
74a7cce60e killed all the errors
This doesn't mean done as i'm sure there are bugs to smash plus i still
need to implement the new network system as well fix the pump.
2013-03-14 06:28:19 -04:00
RSeifert
feceea5b7b working on update to 1.5
Not done yet not sure if i will be any time soon.
2013-03-14 01:38:07 -04:00
RSeifert
01e0d80b85 renamed pump
mainly just a sync up
2013-03-12 22:58:16 -04:00
RSeifert
21a60d5c13 cleanup 2013-03-09 04:24:49 -05:00
RSeifert
3783314c6f Worked on pump
Still need to work on this more to fix some issue before the 1.5 update
2013-03-09 04:24:42 -05:00
RSeifert
fc6fbcb560 . 2013-03-04 20:44:16 -05:00
RSeifert
f7c6588335 Corrected a possible pump connection issue 2013-03-02 18:22:08 -05:00
RSeifert
f2bdbd3cb0 Moved prefab out of core package 2013-03-02 18:21:36 -05:00
Rseifert
56eb239685 .. 2013-03-01 12:44:49 -05:00
Rseifert
ff3ff4ec50 reducing down path finder code
more work is still needed and no testing has been done yet.
2013-03-01 12:37:58 -05:00
Rseifert
9e3c7b0245 Converting Path Finder to Vector3
There might be a few issue here with how it should work and how it will
work now. As well for more advanced path finding that needs to check for
tileEntity it can be done in is Valid Node.
2013-03-01 12:20:14 -05:00
Rseifert
76d9927483 added a copy of Calclavia's Path Finder
For the moment its just added and not used. I will have to rewrite it in
a way that it doesn't care for TileEntities. This way i can use it for
the pump to make sure that water sources are connected to the pump.
2013-03-01 11:50:10 -05:00
Rseifert
601a6e591e add colorCode support for new pipe 2013-02-25 13:47:21 -05:00
Rseifert
df0e745f4f Finished addFluidToNetwork Method
This method will take the input stack not carring where it came from and
try to add it to the tank with the lowest volume.
2013-02-25 13:41:29 -05:00
Rseifert
49cadce1ea reformating and removal of un usable methods
As nice as UE's network is it turns out i can use it that way due to
Forge Liquid Api. So i have to setup a network system that will just
track all TileEntities and add liquid or apply pressure as needed.
2013-02-25 13:03:43 -05:00