Plan is to replace IExtraObjectInfo with annotations to be used in combo
with the new reflection based block registration system. Might try this
on a few more things and see were it goes.
Used reflection to create new block instances. This was done to prevent
disabled block from trying to take block IDs without doing a if
statement per block declaration. As well to make it a bit easier all
around to work with the system.
Also from Basic Components but they are just temporary to get things
rolling. I do not plan to create release with this code. Most of it will
rewritten to support my collective block designs.
based on Old Basic Component machines. I do plan to rework every aspect
but am trying to maintain that same fill as the old machines. This is
why some of the code is copied so that the handling, and slot IDs match
up.
The item handler for FluidHelper fluid item interaction now returns true
only if the itemStack changed. This way right click with non-fluid
container items will work.
meta for recipes that had no defined meta was getting set to max meta
value. This catches on that and sets its to zero. Later after i work out
other bugs i'll flip this to being random to allow for more complex
salvaging.
unused and when it was it caused more errors that is was worth. Refresh
should be handled by world triggers anyways. Eg. blocks placed next to
network blocks.
Yes the fluid code is based off of Build Craft fluid render and has been
for a while. This is not a copy though as the code is not 100%
buildcraft and has been modified to meet my use of the code.
Didn't noticed that these needed called inorder to function correctly.
Though i guess the UE loader mod would have covered this for me its
better to be safe than sorry.
Instead of ints i've changed it to string IDs too allow for more defined
ids per tile. Should remove any issues with super tiles using the same
packet ID as the tiles that extend them.
This will be the first block of many to have its own config file. The
idea when i created the BlockRegistry was to also implement a system to
allow blocks to declare custom configs. In other words allowing them to
define settings that can easily be linked to the block without large
config files.
Idea is to create a flex-able system to handle block registration,
settings, features, and setup. This include calling methods to register
block ore names, tile entities, and extra settings configuration files.
This will be connected to a more advanced config, id, and a few other
handlers. This way all block/items will be in sync when it comes to
creations, and handling.
The ammount of files in this project are getting out of hand tbh. I will
need to sit down later and sort them all out and remove any that are not
needed.
Mainly just copied the methods but its needed due to future changes to
these methods that were copied. Mainly the collision methods will need
to be redone when the logic is finished for lay down wires.
This was honestly very stupid why it wasn't working. It all came down
the a method called getOutputdirections. Honestly why did this stupid
enumset stuff return when its a bad way to track connections. It makes
rotation more complex, and can connect is good enough to handle both.
Any complex connection mojo should be handled by the update tick or
custom mod method rather then by default be there.
To be honest adding support for all things electrical will take time.
Main focus is to cover the basic UE machines, and parts. Then i will
move on to IC2 and buildcraft support if its easy to test. As well i
might have to cover mekanism in case it doesn't use the UE interfaces
for its machines.
Honestly i have to say this was done poorly but then again i think this
render is left over from when UE started. Also this will need to be
redone some more later to prevent issues were the client sees a
connection different then the server. A simple boolean array sent by
packet should solve this issue later on.
Not tested nor really done yet. The idea in creating these is to provide
a sure way to test basic functions of machines. Since these debug block
are very simple no real issue should arise of the block failing.
Added a basic packet handler system to the prefab TileEntityMachine
class to make sorting packet data easier for other tiles. This was
original part of assembly line but it seems more fitting to make it part
of the base prefab.
It now contains an extra update flag var allowing more control on how
the block is set after its was changes. This was mainly done to allow
the starter pump in FM to still function as an infinite water source
while drain several blocks at a time.