Jump to content

[1.6.x/1.5.x] Redstone In Motion (Redpower Frames) 2.3.0.0 (October 8)


jakj

Recommended Posts

Ok, I did a lot more testing this morning, I grabbed a bunch of screenshots, but now that I've tested, I don't think they are needed. I can post them if my explanation isn't enough.

I can get it to happen reliably every time. But ONLY if I'm "riding" the carriage when I save / quit. If I'm off the carriage, it saves and is intact when I log back in.

Simplest test:

3x3 template carriage with middle block being the one you "collapse". Build a platform around the middle block (where the template was). Put an engine on the middle block. Put a redstone torch next to engine. Wait for it to start moving. Hit ESC. Save and quit. If you were on the platform and moving with it, it's gone. If you were off the platform, not moving with it, it's there.

Link to comment
Share on other sites

3x3 template carriage with middle block being the one you "collapse". Build a platform around the middle block (where the template was). Put an engine on the middle block. Put a redstone torch next to engine. Wait for it to start moving. Hit ESC. Save and quit. If you were on the platform and moving with it, it's gone. If you were off the platform, not moving with it, it's there.

AHA!@% Finally, I am able to reproduce that exact behaviour. Thank you for the testing: I will now get to debugging it. Knowing that it matters whether or not you are on the carriage at the time should help me track down this bug.

Link to comment
Share on other sites

Heh, that was quick. The bug turned out to be in the code that runs when it reads the tile entity back from disk after having saved it, which caused Forge to say "your tile entity is bugged, we're going to delete it so your entire world doesn't crash", and THEN everything broke down because the tile entity was uninitialized when it tried to run.

This is exactly why I tell people, don't truncate the logs! You were deleting the actual error and just giving me what looked like the error but turned out to be just another symptom of the real problem. Truncating logs is bad!

Anyway, it will be fixed in the next release.

Link to comment
Share on other sites

Ahh, actually, it wasn't in the crash-log, and I didn't look at the forge log until you just mentioned it. Probably should have done that first. Apologies. :)

Aye, the Forge log is always the go-to log.

Link to comment
Share on other sites

Hey, have been playing with the mod increasingly but I've found that freezing the player when the carriage is moving is very awkward. I think this still needs a bit of work, otherwise would it be possible to make this feature optional via config or maybe you could add a CC command to turn it on or off?

Link to comment
Share on other sites

Hey, have been playing with the mod increasingly but I've found that freezing the player when the carriage is moving is very awkward. I think this still needs a bit of work, otherwise would it be possible to make this feature optional via config or maybe you could add a CC command to turn it on or off?

Link to comment
Share on other sites

-- all vanilla blocks are now rendered in-transit EXCEPT the following:

...

-- *) ender portals and frames of ender portals

Wait, we can have portals on frames? Nether portals as well? Will they generate new portals when they move out of range for the old one? I assume they will.

If a blacklisted block would otherwise be picked up by the carriage, the carriage assembly is aborted. This prevents you from making a downward-facing support carriage and pulling up cores of the earth to get to resources easily and quickly.
What about sky worlds that don't have bedrock at bottom?

I haven't had the chance to actually try the mod yet but is there a way to limit support carriages so they wouldn't pick up everything above them? I mean some kind of a roof or something. E.g another layer of different carriages type. That way it would be easy to build underground tunnel bores with support carriage bottom and having a roof of something else.

-- ** blocks will fall through the carriage only if, after the carriage stops moving, there won't be anything supporting those blocks

-- ** in that case, things will fall through the carriage immediately, even though visually the carriage is still moving; this is not a bug

I know it's not a bug and mostly just a cosmetic thing but what about having temporary extra blocks that get removed only after the movement has finished?

For example you have a frame machine like this (x - block of the machine that moves):

xxx

xxx

xxx

Above that you have sand:

sss

xxx

xxx

xxx

Now I assume at the moment when the machine starts to move you remove all machine blocks and create placeholders for where the machine would end up moving (a - air, p - placeholder):

sss

appp

appp

appp

So that means the left-most sand would immediately start falling.

What I propose is to have placeholder blocks for both where the machine was before the move and where it will end up:

sss

pppp

pppp

pppp

Once the movement is complete you again remove all the placeholders and re-create the machine blocks in their designation:

sss

axxx

axxx

axxx

That way the sand would start falling the moment the machine has actually finished moving.

Link to comment
Share on other sites

Wait, we can have portals on frames? Nether portals as well? Will they generate new portals when they move out of range for the old one? I assume they will.

Vanilla code for nether portals re-calculates portal position every time you travel, and simply re-uses an existing destination portal if it finds one acceptably close, so yes, as you travel further, it will keep generating new portals. On the other hand, Mystcraft portals will always teleport you to the same destination no matter how far you move the source portal, but moving the source portal will not change the point at which its book is linked, so when you travel back, you'll end up where the carriage was, not where it is.

What about sky worlds that don't have bedrock at bottom?

It would pull cores up of that just fine. It's absurd to try to balance your mod against any other mod, unless your mod actually requires that mod to be installed and won't run otherwise. My mod is balanced against vanilla since it requires no other mod.

I haven't had the chance to actually try the mod yet but is there a way to limit support carriages so they wouldn't pick up everything above them? I mean some kind of a roof or something. E.g another layer of different carriages type. That way it would be easy to build underground tunnel bores with support carriage bottom and having a roof of something else.

I think making tunnel bores is easy enough already. :P Vanilla has no "block breaker", which means anyone making a tunnel bore is using other mods, which means they probably have a quick way to get lots of wood. The #1 best way to make a tunnel bore is going to be with template carriages, deciding how big you want it to be and filling the space with the template carriages so you can build a nice roof.

Another option would be to use the upcoming whitelist feature to say "only the blocks already on my tunnel bore should get moved by it", and also the upcoming config option that says "just ignore blacklisted blocks instead of aborting the motion if they're found". That way, as long as you don't use smoothstone, sand, gravel, lava, water, obsidian, cobblestone, or ores (i.e., anything you can find underground as blocks) to construct your bore, it will just slide along the ceiling as you dig and let it all pass by.

I know it's not a bug and mostly just a cosmetic thing but what about having temporary extra blocks that get removed only after the movement has finished?

I could, but the slowest part of the entire process is changing blocks in the world, so adding any block alterations that aren't strictly necessary will really hurt for giant carriages, slow computers, or busy servers. I don't think the extra overhead is worth it for correcting what indeed is only a cosmetic issue.

Link to comment
Share on other sites

jakj, this has been mentioned in this thread before, but I'll just repeat it here. Nobody knows how, but RP2 frames did not reset the CC computers when moving them. It might have changed since 1.4.7 (when I was able to do it on an SMP server), but somehow, I doubt it.

Also, are you planning on implementing transparent ghost blocks for the template carriages?

Link to comment
Share on other sites

jakj, this has been mentioned in this thread before, but I'll just repeat it here. Nobody knows how, but RP2 frames did not reset the CC computers when moving them. It might have changed since 1.4.7 (when I was able to do it on an SMP server), but somehow, I doubt it.

My best guess is that Redpower transfers the tile entity directly instead of making it write itself out to NBT and read itself back in. At some point, I'm going to try to implement that to see if I can get it to work too, but there's no guarantee.

Also, are you planning on implementing transparent ghost blocks for the template carriages?

If you mean so you can see which blocks are in the template after it's been formed, yes, that will come in a future update.

Link to comment
Share on other sites

I know complete CC integration is not your top priority, but considering how complex builds and machinery can become once you include frames/carriages, an advanced form of control like CC is almost a necessity. I mean, I could make a system where there is a rooted computer acting as an intermediate storage for all the variables in the moving one (using CC rednet to send and receive the set of variables to keep the program working), but honestly, it's an ad-hoc solution, and is definitely not quick/responsive enough for some builds.

I do not, by any means, attempt to put pressure on you, but am just begging you to reconsider this matter.

As for the ghost blocks, will they be visible any time a block is not present in the given position? Would be nice in case you want to repair your structure after it's been build and then blown up by TNT/creepers/whatever, or if you want to change the material of the structure.

Finally, I just found an interesting contestant for the RP2 frame replacement: http://www.minecraftforum.net/topic/1852349-truss-mod-rp2-style-frames/

It's not NEARLY as functional as your delicious carriage system, but I think it looks pretty fancy anyway, and you might be able to pick up some tips there, I dunno.

Link to comment
Share on other sites

I know complete CC integration is not your top priority, but considering how complex builds and machinery can become once you include frames/carriages, an advanced form of control like CC is almost a necessity. I mean, I could make a system where there is a rooted computer acting as an intermediate storage for all the variables in the moving one (using CC rednet to send and receive the set of variables to keep the program working), but honestly, it's an ad-hoc solution, and is definitely not quick/responsive enough for some builds.

I do not, by any means, attempt to put pressure on you, but am just begging you to reconsider this matter.

As for the ghost blocks, will they be visible any time a block is not present in the given position? Would be nice in case you want to repair your structure after it's been build and then blown up by TNT/creepers/whatever, or if you want to change the material of the structure.

Finally, I just found an interesting contestant for the RP2 frame replacement: http://www.minecraftforum.net/topic/1852349-truss-mod-rp2-style-frames/

It's not NEARLY as functional as your delicious carriage system, but I think it looks pretty fancy anyway, and you might be able to pick up some tips there, I dunno.

Until you tell me what you want my mod to do regarding CC, I can't tell you whether or not I'll make it do it.

You will be able to use a screwdriver on a patterned template carriage to cause it to render blocks in the positions it can move them. It will not actually place any ghost blocks in the world, but it will appear to have done so.

My mod and the Truss mod are roughly equivalent, except his looks prettier and mine has more features. It also has the benefit of not being tainted by being hosted by Technic, and has a thread on MCF. So I expect his to get 50x the traffic (at least) that mine ever will. Doesn't much matter, though.

Link to comment
Share on other sites

On the part of CC, the only thing that needs to be figured out is avoiding the restart. It was done in RP2 somehow, and that's what saved the RP2 frames for me. I would never bother to learn stack-based programming to use RP2 computers with frames (I am way too lazy for that), and logic gates become increasingly irrelevant as the structure increases in complexity. Thus, a properly working CC (i.e. one that does not go into restart every time it's moved) is incredibly handy.

Link to comment
Share on other sites

On the part of CC, the only thing that needs to be figured out is avoiding the restart. It was done in RP2 somehow, and that's what saved the RP2 frames for me. I would never bother to learn stack-based programming to use RP2 computers with frames (I am way too lazy for that), and logic gates become increasingly irrelevant as the structure increases in complexity. Thus, a properly working CC (i.e. one that does not go into restart every time it's moved) is incredibly handy.

I'll make them not reboot on movement if I can, but remember they reboot anyway if the game is reloaded or the chunk is reloaded, and nobody but dan200 can do anything about that. Assume I will not be able to get them to not reboot, and make a startup program that works intelligently.

The only thing the computer on the carriage needs to do is relay commands, anyway: There's no reason it needs to have any logic of any kind. Have your logic running in your base or nearby control center or whatever, and calculate the direction to move. Then all your computer on the carriage does is conenct to rednet, connect to the drive, and listen for "move" commands and return the result. I don't know how much code that would be, but I can't imagine it would even be a screenful. In pseudocode:

startup()

-- connect to drive on left side

-- connect to rednet channel "ufo"

-- infiniteloop

-- {

-- -- read int from channel "ufo"

-- -- boolean result = drive.move(int,false)

-- -- send result to channel "ufo"

-- }

Link to comment
Share on other sites

The game reload and chunk load/unload has always been a thing, and the second one can be avoided by using 2 independently moving chunk loaders (which I have used previously, for my long-range Thaumcraft aura node moving machine).

Speaking of which, I will have to do some testing with the TC3 crystal core. RP2 frames were very interesting in handling it. If the whole obelisk/core structure was encased in frames properly, it could move the core without disabling its tractor beam. Also, the core remained affixed to one single node, even after moving it with frames. It would not move any other node but the one it was originally set to move.

Also, I suppose you have a point about using CC as a simple relay, but again, it could potentially lead to lag problems in the program execution. I dunno, I'll have to experiment with this, too.

Link to comment
Share on other sites

It would pull cores up of that just fine. It's absurd to try to balance your mod against any other mod, unless your mod actually requires that mod to be installed and won't run otherwise. My mod is balanced against vanilla since it requires no other mod.
Doesn't End have anything useful in it in vanilla? Never been there without mods, really :D

I could, but the slowest part of the entire process is changing blocks in the world, so adding any block alterations that aren't strictly necessary will really hurt for giant carriages, slow computers, or busy servers. I don't think the extra overhead is worth it for correcting what indeed is only a cosmetic issue.
Understandable. Then again if I've understood correctly you are doing some chunk manipulation already at the moment the machine stops moving (adding the original blocks back to world to replace placeholders). If so then my idea would just mean you have a few extra blocks to be modified, not a whole different chunk modification action.

But, as you said, it's mostly just a cosmetic thing anyway.

Link to comment
Share on other sites

The End has nothing but end stone and endermen, as far as I know. That said, with the new configuration option I'm adding, someone could just change the blacklist behaviour to ignore instead of abort, and it will let them start pulling up cores as soon as they get some iron and redstone. The player must be able to choose the game experience they want, and if they cannot resist changing it and instead want me to lock out features for everyone just because they have no willpower, then my recommendation will be to visit a local psychiatrist.

Link to comment
Share on other sites

HI guys,

Is there a way to hook the carriage motors up to Computer craft? I want to use these frames to make compound doors and launch bay doors.. Looking at the OP I can't see how you can have the engines connected to a computer network given that as soon as they move they will disconnect from the systems :-)

Thanks

Link to comment
Share on other sites

HI guys,

Is there a way to hook the carriage motors up to Computer craft? I want to use these frames to make compound doors and launch bay doors.. Looking at the OP I can't see how you can have the engines connected to a computer network given that as soon as they move they will disconnect from the systems :-)

Thanks

Carriage Controllers (the carriage drives that can be controlled by ComputerCraft) act as motors, not engines, so they do not move when you give them commands.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...