Commit graph

1624 commits

Author SHA1 Message Date
SpaceToad
3cf761226e Polymorph classes supported in serializer.
The serializer now supports cases where the actual object is different from
the object declared, sending once the class name on the stream.
2014-01-11 17:27:53 +01:00
SpaceToad
08d01c0394 Re-introduction of the builder block
Added back the builder block to the world, with fixes of initial obvious errors.
TileArchitect is now passing its name through RPCs.
2014-01-11 13:59:30 +01:00
SpaceToad
9dab76fc71 Support for multi-dimentional arrays in serialization.
Carrying on with the work on RPC, this patch implements support for multi-
dimension arrays in serialization.
2014-01-11 12:49:10 +01:00
SpaceToad
4e23782911 added nissing deprecated annotation 2014-01-11 10:56:01 +01:00
SpaceToad
4f4818bb35 Merge branch 'marmot' into builder 2014-01-11 10:49:45 +01:00
SpaceToad
c0cbc7f841 Merge branch 'nightly' into marmot 2014-01-11 10:49:34 +01:00
SpaceToad
7e4b66c127 Merge branch 'nightly' of github.com:BuildCraft/BuildCraft into nightly 2014-01-11 10:47:32 +01:00
SpaceToad
36c2d8d8e2 generalized change made for #1410 2014-01-11 10:46:30 +01:00
SpaceToad
3f591439f1 Merge branch 'TurtleQuarryFix' of https://github.com/acmihal/BuildCraft into acmihal-TurtleQuarryFix 2014-01-11 10:37:06 +01:00
acmihal
7e9f75a7bc Use rotationYaw to set quarry orientation.
Allows computercraft turtles to place quarries.
2014-01-10 21:28:08 -08:00
SpaceToad
498676bf0c updated documentation 2014-01-09 21:15:12 +01:00
SpaceToad
ce215587a8 Further changes in data synchronization.
ClassMapping now supports more advanced behavior, in particlar cases where
the destination object do not exist. It has now a much more comprehensive
documentation. TileNetworkData has been renamed NetworkData, as it's used
for more than just tile synchronization. Some additional markers have been
placed on the blueprints to make progress and identify which areas still
need support.
2014-01-09 09:02:23 +01:00
SpaceToad
17ed47d2a2 Improved RPC parameter support - now classes can be serialized through the
same system as tiles, and fields selected through @TileEntityNetwork. Improved
the TileLibrary rpc calls to take advantage of this new capability. The RPC
world identification has been fixed as well.
2014-01-08 22:43:25 +01:00
ArkeousAero
09e32da2c7 Added cylinder pattern for the filler. 2014-01-08 04:07:18 -06:00
CovertJaguar
282128d9a6 Close Gate GUI if someone removed the Gate 2014-01-07 16:33:36 -08:00
SpaceToad
1596c5ffc5 This patch is done in the context of TileLibrary synchronization and RPC
implementation.

Through the process of implementing RPC, a intrusive simplification in the
network message system has been implemented, completely removing the use
of PayloadArray. On top of that, ClassMapping is now much more flexible,
and doesn't need to be provided with a static size anymore, making it closer
to a suitable class for the needs of RPC message passing.

The result of this simplification is also a slight optimization of message
passing, where certain data needed to be passed over the network (for example
on null objects) which is not needed anymore.

With regards to the TileLibrary itself, the implementation is yet pretty
basic, showcasing the use of RPC to retreive a list of strings computed on
the server.
2014-01-07 22:52:10 +01:00
SpaceToad
ab37498ef1 Merge branch 'marmot' into builder 2014-01-06 20:37:23 +01:00
SpaceToad
78f62ffffb Merge branch 'nightly' into marmot 2014-01-06 20:24:58 +01:00
SpaceToad
da65d20282 removed unexpected network handler, fix #1405 2014-01-06 20:07:40 +01:00
SpaceToad
d697944364 added missing files for initial RPC implementation 2014-01-06 19:59:09 +01:00
SpaceToad
b1f5a4b96a initial set of experiments with RPC implementation 2014-01-06 19:57:54 +01:00
SpaceToad
69079dab94 Fixed lasers looking for tables on a regular basis, fix #1400
Attempt at improving SafeTimeTracker interface and implement
automatic randomization. If interface is confirmed, other places
in the code will need to be updated to the interface.
2014-01-05 17:47:48 +01:00
SpaceToad
c4cbdcc584 Implemented graphical animation for pulsing gates, close #1390
Fixed lit stage of gates, for #1401
2014-01-05 13:29:38 +01:00
CovertJaguar
8ee5270145 Merge branch 'marmot' into builder 2014-01-04 11:26:48 -08:00
CovertJaguar
b73a2d4f51 Fix Engine dupe
Closes #1361
2014-01-04 11:25:13 -08:00
CovertJaguar
f87e5c0add Fix Gate lit state 2014-01-04 07:42:53 -08:00
CovertJaguar
23a3a7004d Merge branch 'marmot' of https://github.com/BuildCraft/BuildCraft into marmot 2014-01-04 07:12:00 -08:00
CovertJaguar
2f7f6635fc comments 2014-01-04 07:11:43 -08:00
SpaceToad
fd058efd01 fixed location of icon for eneryg pulsar, following #1391 2014-01-04 16:06:33 +01:00
SpaceToad
197c5b7edf Implemented icons for pulsar and single pulsar, close #1391 2014-01-04 15:43:44 +01:00
CovertJaguar
5d9a9fa4e0 Add some stat tracking ability to the Power API 2014-01-03 16:47:30 -08:00
CovertJaguar
7fc7f25661 Bump Power API version 2014-01-03 01:32:19 -08:00
CovertJaguar
bb527bb48c Merge branch 'marmot' into builder
Conflicts:
	common/buildcraft/BuildCraftCore.java
2014-01-03 01:21:50 -08:00
CovertJaguar
ee71e86409 Merge branch 'nightly' into marmot 2014-01-03 01:19:52 -08:00
CovertJaguar
6c73c1a070 Convert Power API to use Double instead of Float
Closes #1288
2014-01-03 01:17:19 -08:00
CovertJaguar
da35a13f45 Fix derpy Filler Pattern selection
Closes #1394
2014-01-02 05:16:09 -08:00
CovertJaguar
3b0a047570 Finalize Gate Rework
-Added Integration Table Recipes
-Finished and tested Integration Table
-Re-added all Gate recipes
-Clean up Pipe Wires, Chipsets, etc...

Changes:
-Gate Logic Swap recipes moved from Workbench to Integration Table.
-Pipe Wires condensed into a single Item
-Pipe Wires are now distributed evenly between the gates: Red with the
Basic Gate, Blue with Iron, Yellow with Gold, and Green with Diamond.
Recipes adjusted to match.

As of this commit, Gates should be both craftable and usable again. The
Integration Table is also ready to be used. Gate Expansions are
completely implemented and usable.

Enjoy!
2014-01-02 04:58:08 -08:00
CovertJaguar
0c057f28d1 Flesh out remaining Integration Table details
No recipes defined yet, so no idea if it actually works.
2013-12-29 03:05:21 -08:00
CovertJaguar
173aabf91d Implement Integration Table logic 2013-12-28 23:01:15 -08:00
CovertJaguar
edf8f17a6f Add Integration Table Recipe API 2013-12-28 01:24:18 -08:00
CovertJaguar
4356c1098b Refactor Laser Tables to share common ancestor 2013-12-28 01:11:03 -08:00
CovertJaguar
fedb4d5a42 Merge branch 'nightly' into marmot 2013-12-28 00:43:25 -08:00
CovertJaguar
d77ee030c2 Modify Pipe RayTrace to better reflect EyeHeight 2013-12-28 00:41:05 -08:00
CovertJaguar
5150d01672 Add Redstone Fader Exp + major cleanup 2013-12-27 08:40:44 -08:00
Speiger Bär
d3a178375e Added gate changing on FluidPipes 2013-12-26 01:14:26 +01:00
CovertJaguar
4e3f4c1e94 Rewrite Timer Trigger so it actually works...
...and add Clock Timer Gate Expansion.
2013-12-24 00:22:17 -08:00
CovertJaguar
b3aa1aaafd Missed a line 2013-12-23 23:29:36 -08:00
CovertJaguar
d9f655d52b Merge branch 'marmot' into builder
Conflicts:
	common/buildcraft/BuildCraftCore.java
	common/buildcraft/builders/TileBuilder.java
2013-12-23 23:28:19 -08:00
CovertJaguar
f353d04feb Merge branch 'nightly' into marmot 2013-12-23 17:07:14 -08:00
CovertJaguar
46612e4e3c Desert Oil Biome should decorate
Closes #1374
2013-12-23 17:02:03 -08:00
CovertJaguar
f67d1a29b8 InventoryIterator should support Double Chests
Closes #1363
2013-12-23 16:58:46 -08:00
CovertJaguar
b64a8977c6 Modify Trigger API slightly to support Expansions
Unfortunately, this will break existing mods. But its a simple fix, just
implement the ITileTrigger interface.
2013-12-23 16:49:04 -08:00
CovertJaguar
1cb20ea59d Kill Gate Icon Provider, and cleanup unused icons 2013-12-21 19:49:20 -08:00
CovertJaguar
a0c2e5807c Serialize and Sync Gate Expansions
Expansions are synced in a similar manner to fluid ids. A packet is sent
on login with a String<->Byte mapping for each Expansion. The Pipe uses
this lookup table construct the Gate on the client side.

Remaining Todo List:
-Add Integration Table for adding Expansions to Gates
-Add Deconstruction Table for dismantling Gates
-Adapt Clock Timer Expansion to new framework
-Add Redstone Fader Expansion (name not final)
2013-12-21 19:11:51 -08:00
CovertJaguar
88c320a56b Move Pipe API into transport for now 2013-12-20 17:01:05 -08:00
CovertJaguar
c1cd0fa02b Remove IPipe, cleanup IPipeTile 2013-12-20 16:55:47 -08:00
CovertJaguar
0c438361e5 Code clean up 2013-12-20 16:27:01 -08:00
CovertJaguar
ae3a89bfe9 Clean up Fluid Update Packet
It was sending a ton of unused bytes, whoever did the Liquid->Fluid API
update left a bunch of old metadata related stuff in.

Also checking for valid fluids is necessary because its possible for
FluidStack.getFluid() to return null.
2013-12-19 20:36:58 -08:00
CovertJaguar
547c5d28ea Slow Item Pipe max speed so the code can keep up 2013-12-19 05:36:29 -08:00
CovertJaguar
986f407af6 Merge nightly into marmot 2013-12-19 05:35:40 -08:00
CovertJaguar
10daf6f202 Remove any possibility for CCMEs in Item pipes
Fixes
http://forum.feed-the-beast.com/threads/direwolf-20-1-6-4-public-beta.35476/page-18#post-500244

I should note that I still can't see how that could have happened, this
commit just made it utterly impossible.
2013-12-19 04:41:57 -08:00
CovertJaguar
c9acef05ca Improve perf of ACT by caching OreDict info 2013-12-19 03:33:22 -08:00
CovertJaguar
2936d76b95 Add a null check in dropItems() 2013-12-13 15:27:10 -08:00
CovertJaguar
35611e0bf7 ACT needs to support recipes with variable outputs
For example, ChristmasCraft Gifts that use input item NBT to determine
the output item.
2013-12-13 15:22:21 -08:00
CovertJaguar
70822c0178 Add additional support for Gate Expansions
Things left to do:
-Sync expansions on the pipe to the client
-Rewrite Assembly table to support modifying Item NBT so you can add
expansions to Gates
2013-12-10 02:02:35 -08:00
CovertJaguar
acef0b4d60 Fix Gate Rendering
Layers!
2013-12-10 01:02:21 -08:00
CovertJaguar
4a21f4ce24 Notify player of inv changes when filling 2013-12-08 21:03:29 -08:00
CovertJaguar
d7575d74ea Wrenches shouldn't stack 2013-12-08 21:02:46 -08:00
CovertJaguar
a4032762bc Merge branch 'marmot' of https://github.com/BuildCraft/BuildCraft into marmot 2013-12-08 16:57:03 -08:00
CovertJaguar
5be3a5c6a0 Fix Engine dupe
Closes #1361
2013-12-08 16:56:40 -08:00
Charles Comstock
ef71c35ad2 Extract GL.color(int color) for unpacking hex RGB
Centralizes all the unpacking of hex RGB values from an integer to a
single call to GL11.glColor4f.
2013-12-08 02:42:14 -06:00
CovertJaguar
0a4193b72e Some more minor optimizations 2013-12-05 18:05:32 -08:00
CovertJaguar
10015f8ffb Remove Fluid Motion Event, they cost too much CPU
And I'm told they are going away in the future.
2013-12-05 17:01:09 -08:00
CovertJaguar
7ee74d56a1 First Iteration of Gate Rewrite
GateKind enum is gone, replaced with two enums: GateMaterial and
GateLogic.

Pulsars and Timers are abstracted into GateExpansions that can be
applied to "upgrade" a gate. (Incomplete)

GateExpansions will eventually be moved to the API so that other can
define new expansions easily.

GateExpansions are not currently serialized or synced to the client.
This remains to be done.

Legacy migration support is included, but untested.

Currently only the base logic texture layer (white/black) are being
rendered. Eventually the material and expansions will each render an
additional texture layer onto the gate.
2013-12-05 13:38:00 -08:00
CovertJaguar
f41cc82eca Allow water springs to be disable independently of everything else 2013-12-05 09:56:03 -08:00
CovertJaguar
b788dfde6a Merge master into builder 2013-12-03 18:41:13 -08:00
CovertJaguar
5f9e171de9 Merge pull request #1353 from ItsMeElConquistador/marmot
Added colorRenderCache to refinery filter slots
2013-12-03 00:13:43 -08:00
CovertJaguar
1acf4ba5b5 Cache Traveling Items
There existed a race condition where either the client could pass an
item from one pipe to another (with intact ItemStack NBT data) or a
packet could arrive from the server to inject the item into the pipe
(without NBT data). This resulted in incorrect Icons being occasionally
displayed for a moment for Items that use NBT to determine the Icon
(Forestry Bees/Trees).

To eliminate this race condition, all Traveling Items are now cached
(weakly) and ItemStacks are no longer sent as part of the Traveler
Packet. The client must instead request the ItemStack from the server.
The bonus being that the ItemStack (NBT and all) needs only be requested
when it first enters the network.

This also has the affect of further reducing bandwidth usage by Item
pipes, though it should be noted that Item pipes where already the least
bandwidth intensive pipe.

Additionally I rewrote the Item Grouping code. I'd never looked at it
before, but I figured I should make sure it properly maintains the pipe
state after grouping. What I found was 200 lines of wtf code that was
horribly outdated and broken. I replaced it with 20 lines of code that
are less dependent on implementation details of how pipes work. -.-
2013-12-02 17:45:08 -08:00
ElConquistador
76c35e28af Added colorRenderCache to refinery filter slots 2013-12-02 21:09:22 +01:00
CovertJaguar
4b80435f3d Merge Timer into Marmot 2013-12-01 22:27:42 -08:00
CovertJaguar
a6a4d46b29 Merge branch 'master' into marmot 2013-12-01 22:21:38 -08:00
CovertJaguar
c802c45c93 Random Pipe API musings 2013-12-01 22:15:03 -08:00
CovertJaguar
cc0298ce5b Clean up Recipe API 2013-12-01 21:57:31 -08:00
ElConquistador
3776286e2e Combustion Engine also now uses the colorRenderCache 2013-12-01 19:48:08 +01:00
ElConquistador
fb52387094 Added colorRenderCache to Tank and Refinery 2013-12-01 08:18:19 +01:00
ElConquistador
4a0d2d2478 Merge remote-tracking branch 'upstream/master' 2013-12-01 07:40:08 +01:00
CovertJaguar
b9b2f1a238 Add some API failsafes 2013-11-30 14:08:38 -08:00
CovertJaguar
1f65388c80 Another perf tweak 2013-11-30 13:57:25 -08:00
ElConquistador
5aab6ecf88 Merge remote-tracking branch 'upstream/master' 2013-11-30 18:20:03 +01:00
CovertJaguar
0dd0c6c885 Various minor performance tweaks 2013-11-30 08:49:10 -08:00
ElConquistador
6c770a90a1 Added a fluid color render cache so fluids that use colors will get properly renderered in pipes 2013-11-30 17:14:43 +01:00
SandGrainOne
ae67ae3a2c Corrected method names in gold and void pipe. 2013-11-30 13:41:49 +01:00
CovertJaguar
5dd82d7a95 Don't render fluid in disconnected pipes 2013-11-29 19:32:45 -08:00
CovertJaguar
0cbc63e919 Version 4.2.0 2013-11-29 17:08:49 -08:00
ganymedes01
17e7cb9a11 Fix for Gates with ItemStacks with NBT data
Closes #1344
2013-11-29 06:56:52 -08:00
CovertJaguar
8fb3197276 Allow placement of Facades over Plugs 2013-11-29 06:50:07 -08:00
taelnia
3c51073653 Add call to onInventoryChanged to extraction pipes 2013-11-29 06:50:06 -08:00
CovertJaguar
38a6c81ab3 Pipe Block shouldn't appear in creative 2013-11-27 06:21:53 -08:00
CovertJaguar
ff227f9de9 Fix texture fighting on tank bottom 2013-11-27 06:21:52 -08:00
Yopu
25ee549253 Added quartz gates and chipsets.
Quartz gates act like gold gates with 2 exceptions:
They can connect to all pipe wire types.
There are 3 additional gate triggers that function as timers.

The timers have a short, medium, and long mode which can be set via config.
2013-11-25 20:29:36 -05:00