Jump to content

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


jakj

Recommended Posts

I'm in a slight predicament here. I'm trying to build an elevator with structure carriages which would rise into a floating city of sorts, commandeered by platform carriages. I can't seem to put the elevator engine inside the structure carriage, which would allow me to make an independent elevator without requiring having to replace levers on the outside of the structure when it moves and knocks them off. Please advise.

Link to comment
Share on other sites

And here I was thinking "oh look, it's the Half-Life intro!"

I thought that too. Whatever it's meant to be, it's pretty awesome and a good showcase of the possibility with this mod.

Link to comment
Share on other sites

I'm in a slight predicament here. I'm trying to build an elevator with structure carriages which would rise into a floating city of sorts, commandeered by platform carriages. I can't seem to put the elevator engine inside the structure carriage, which would allow me to make an independent elevator without requiring having to replace levers on the outside of the structure when it moves and knocks them off. Please advise.

Template carriages can handle anything.

Link to comment
Share on other sites

I thought that too. Whatever it's meant to be, it's pretty awesome and a good showcase of the possibility with this mod.

That's what I am thinking. Screw making simple elevators and shit, let's make multi-stage airlocks, reconfigurable geometry train tracks and other shit. All these carriage types certainly allow us.

Link to comment
Share on other sites

That's what I am thinking. Screw making simple elevators and shit, let's make multi-stage airlocks, reconfigurable geometry train tracks and other shit. All these carriage types certainly allow us.

I'm pleased that more people are creating intricate and novel contraptions with the carriages, rather than just complaining about how it doesn't use enough nether stars. The overall-higher maturity on this site is keeping me sane and balanced.

Link to comment
Share on other sites

But it STILL doesn't use enough nether stars!!!!!!1

Make a massive, intricate train network to transport Nether Stars through a series of airlocks including extending underwater tunnels, inter-dimensional links and a crane arm to remove the container full of your precious nether stars into a secure facility straight out of the train.

Problem solved.

Link to comment
Share on other sites

Make a massive, intricate train network to transport Nether Stars through a series of airlocks including extending underwater tunnels, inter-dimensional links and a crane arm to remove the container full of your precious nether stars into a secure facility straight out of the train.

Problem solved.

How long until the Anti-Mass Spectrometer is recreated using carriages?

Link to comment
Share on other sites

There seems to be some sort of bug with computers where if you have a lot of them on frames some will randomly not turn back on, this is really bad considering that computers are very useful for controlling frames and turtles are one of the only block breakers that dont require power. The weird part is how often this happens seems to be proportionate to how big your frame machine is, when I made a small one with just one turtle it never happened, it rarely happened with three and happened every 5 cycles or so with 5 turtles

Link to comment
Share on other sites

There seems to be some sort of bug with computers where if you have a lot of them on frames some will randomly not turn back on, this is really bad considering that computers are very useful for controlling frames and turtles are one of the only block breakers that dont require power. The weird part is how often this happens seems to be proportionate to how big your frame machine is, when I made a small one with just one turtle it never happened, it rarely happened with three and happened every 5 cycles or so with 5 turtles

Are you saying it's proportionate to the carriage size, to the computer count on the carriage, or both together? Because those aren't the same thing. So does it happen if you have a lot of computers carried by only a few carriage blocks, or does it happen if you have just a couple computers but it's a huge carriage construction, or what?

Also possibly relevant: Does the behaviour change based on whether or not the computers are directly adjacent to each other or separated by some airspace? Does the behaviour change based on whether the computers are labelled? Are the computers being moved in continuous mode or is there always at least some sort of delay between operations? Does the number of failed-to-turn-back-on computers change based on how long the delay is? Are the computers connected to anything (like a peripheral), or do they connect to anything before/after motion?

Another interesting test: Set everything up like you're going to move it, but instead of moving it, close and open the world a bunch of times quickly, as many times as you would have moved the carriage to get it to fail. Does it fail then too?

This could be yet another complication caused by ComputerCraft trying to do things in a multithreaded way.

Link to comment
Share on other sites

A series of tests should probably be set up. Several carriages, each carrying a number of computers increasing by 1. Find out at how many computers they start failing, and their failing percentage. Then find out of any stationary computers are affected by this. Etc.

Also, I wanted to ask you, masterzh, what kind of mod adds the slanted blocks?

Link to comment
Share on other sites

Are you saying it's proportionate to the carriage size, to the computer count on the carriage, or both together? Because those aren't the same thing. So does it happen if you have a lot of computers carried by only a few carriage blocks, or does it happen if you have just a couple computers but it's a huge carriage construction, or what?

Also possibly relevant: Does the behaviour change based on whether or not the computers are directly adjacent to each other or separated by some airspace? Does the behaviour change based on whether the computers are labelled? Are the computers being moved in continuous mode or is there always at least some sort of delay between operations? Does the number of failed-to-turn-back-on computers change based on how long the delay is? Are the computers connected to anything (like a peripheral), or do they connect to anything before/after motion?

Another interesting test: Set everything up like you're going to move it, but instead of moving it, close and open the world a bunch of times quickly, as many times as you would have moved the carriage to get it to fail. Does it fail then too?

This could be yet another complication caused by ComputerCraft trying to do things in a multithreaded way.

I tried the opening/closing world a bunch of times really quickly but all the computers (I had 15 side by side) turned on fine and ran the hello world program I gave them every time. I did notice something pretty important, when I had the frame machine move every .5 seconds, the turtles didnt reboot on average once every ten times, but when I set it to move every second it looks like it happens half that much and it seems to happen even less with 2 seconds, etc.

Link to comment
Share on other sites

I tried the opening/closing world a bunch of times really quickly but all the computers (I had 15 side by side) turned on fine and ran the hello world program I gave them every time. I did notice something pretty important, when I had the frame machine move every .5 seconds, the turtles didnt reboot on average once every ten times, but when I set it to move every second it looks like it happens half that much and it seems to happen even less with 2 seconds, etc.

Another question to check if I may, do you run computercraft as a zipped file (normal download) or as an extracted folder (for direct access to the rom folder for adding/editing api's or programs there from notepad/other editor on your computer)?

I ask because I was having a similar problem while coding a mobile quarry, where the computer on the quarry attached to the computercraft carriage would give a file not found/other fail to start issue at random times while moving it, sometimes only after a couple moves.

Edit: Though it did perhaps seem like the quicker the frame was trying to be moved the quicker there would be a computer start issue, prior to the the fix below.

After some research I found there were others having similar problems that tracked down to using the mod as an extracted folder (which is way the author has that people can run that mod) for the easier direct access to the rom, when using computercraft as the normal zip in mods it would not have the issue.

After i re-downloaded the original zip of the mod and ran that, and used the slightly more work method of using pastebin to get my API code onto a computer and using os.loadAPI, I haven't had any issues with computers starting while moving frames since.

Just my two cents that solved a similar issue for me.

Link to comment
Share on other sites

Okay, combining the "increased delay reduces the problem" with "changing how the mod is located/structured on disk reduces the problem", I'll give you an explanation I currently feel about 85% confident in: It's the multithreading again, and not actually a bug in my mod, nor is it actually a bug in ComputerCraft.

ComputerCraft is running all of the computers' setup/startup code plus your own startup program in its own thread, and this can be slowed by the disk (because disk is much slower than memory) and IS NOT SYNCHRONIZED WITH MINECRAFT.

That's the key here: Normally, if Minecraft is doing something disk-intensive, shit just slows down: You get intense lag (like generating new chunks with lots of mods) or similar behaviour. That works fine for Minecraft, because even though it's being slowed down, all the rest of Minecraft has to wait until the slow part is done, so nothing gets out-of-step.

ComputerCraft does most things in its own thread, specifically to prevent Minecraft from being slowed down. That's why a more computers causes this to happen more, and more delay causes this to happen less: You're giving everything time to finish.

Why does it not happen when Minecraft is actually loading the world versus moving the carriage? Because Minecraft is slow as fuck, especially when loading world from disk, and by the time the world has loaded enough for you to even see it, ComputerCraft has had plenty of time to finish initializing everything as it's being loaded. My mod lags Minecraft very little for a small carriage, so it doesn't have time to finish in that case.

This is the same reason I had to get people to add an os.sleep() to the start of their programs if those programs need to move carriages multiple times in a row: It takes a bit for the computer to actually start running again, and sometimes ComputerCraft tries to do things too early and sometimes too late.

Why is this not a bug in my mod? Because it's the way ComputerCraft is designed. Why is this not a bug in ComputerCraft? Because ComputerCraft is designed for vanilla, where the only two times a computer loads are 1) from disk, either opening the world or loading a chunk, in which case Minecraft is plenty slow for it to work, and 2) when putting down a computer from your hand, in which case the computer doesn't even turn on right away, so it's done initializing by the time you click on it again.

So, basically, the only solution is to add more delay as you add more computers. Trying to use computers as block breakers in this case really just isn't going to work unless you want a super-freaking-slow tunnel bore. I recommend switching over to something like MFR for your block-breaking needs.

Link to comment
Share on other sites

Okay, combining the "increased delay reduces the problem" with "changing how the mod is located/structured on disk reduces the problem", I'll give you an explanation I currently feel about 85% confident in: It's the multithreading again, and not actually a bug in my mod, nor is it actually a bug in ComputerCraft.

ComputerCraft is running all of the computers' setup/startup code plus your own startup program in its own thread, and this can be slowed by the disk (because disk is much slower than memory) and IS NOT SYNCHRONIZED WITH MINECRAFT.

That's the key here: Normally, if Minecraft is doing something disk-intensive, shit just slows down: You get intense lag (like generating new chunks with lots of mods) or similar behaviour. That works fine for Minecraft, because even though it's being slowed down, all the rest of Minecraft has to wait until the slow part is done, so nothing gets out-of-step.

ComputerCraft does most things in its own thread, specifically to prevent Minecraft from being slowed down. That's why a more computers causes this to happen more, and more delay causes this to happen less: You're giving everything time to finish.

Why does it not happen when Minecraft is actually loading the world versus moving the carriage? Because Minecraft is slow as fuck, especially when loading world from disk, and by the time the world has loaded enough for you to even see it, ComputerCraft has had plenty of time to finish initializing everything as it's being loaded. My mod lags Minecraft very little for a small carriage, so it doesn't have time to finish in that case.

This is the same reason I had to get people to add an os.sleep() to the start of their programs if those programs need to move carriages multiple times in a row: It takes a bit for the computer to actually start running again, and sometimes ComputerCraft tries to do things too early and sometimes too late.

Why is this not a bug in my mod? Because it's the way ComputerCraft is designed. Why is this not a bug in ComputerCraft? Because ComputerCraft is designed for vanilla, where the only two times a computer loads are 1) from disk, either opening the world or loading a chunk, in which case Minecraft is plenty slow for it to work, and 2) when putting down a computer from your hand, in which case the computer doesn't even turn on right away, so it's done initializing by the time you click on it again.

So, basically, the only solution is to add more delay as you add more computers. Trying to use computers as block breakers in this case really just isn't going to work unless you want a super-freaking-slow tunnel bore. I recommend switching over to something like MFR for your block-breaking needs.

the problem with MFR block breakers it they require MJ, I cant think of a way to hook up MJ pipes and transport pipes to the same block

Edit: do you know how Eloraam handled computers on her frames? because it seemed they didnt actually reboot every time.

Double edit: it appears extra utils cables can hold items and power at the same time,

Link to comment
Share on other sites

the problem with MFR block breakers it they require MJ, I cant think of a way to hook up MJ pipes and transport pipes to the same block

Edit: do you know how Eloraam handled computers on her frames? because it seemed they didnt actually reboot every time.

Double edit: it appears extra utils cables can hold items and power at the same time,

The Applied Energistics ones use unified item-transport and power cables.

Eloraam probably transferred the tile entities directly instead of indirectly recreating them like I do it. Doing it her way 1) would not save past a crash/reload, so I'd have to have my method in there anyway as a backup, and 2) is not general, requiring all kinds of manual special handling for bullshit like CJ's code that works against blocks being moved, or Buildcraft item pipes that cache coordinates, or what-have-you. Essentially, more trouble than it's worth, since "write a better startup program" works too.

Link to comment
Share on other sites

the problem with MFR block breakers it they require MJ, I cant think of a way to hook up MJ pipes and transport pipes to the same block

Edit: do you know how Eloraam handled computers on her frames? because it seemed they didnt actually reboot every time.

Double edit: it appears extra utils cables can hold items and power at the same time,

If you use Applied Energetics as Jyzarc said, the ME cable is both power and instant item transport, also all ME blocks 'connect' to eachother when adjacent so you have a cable going to one block then all blocks that are adjacent to that block by any other ME block are connected as well.

And Applied Energetics has its own block breaker called the transition plane, so if you place a 'wall' of those in whatever direction you wish to quarry, then a ME cable to one of them, all of them are connected to the network both power wise and any item they 'break' will instantly be added to the network they are connected to.

Link to comment
Share on other sites

If carriage moves function returns true, but if it can't move it close program. But what I need to do if I want to wait few seconds.

It's like: wait and try to move carrige every 1 second.

Here is my code (unworkable):

while true do

    if rs.getInput("top") then

        sleep(12)

        drive = peripheral.wrap("back")

        while drive.move(4,true,false) ~= true do

            sleep(1)

        end

        drive.move(4,false,false)

    else

        sleep(1)

    end

end

Link to comment
Share on other sites

I have found this code:

local drive = peripheral . wrap ( side )

local motionSucceeded , errorMessage , obstructX , obstructY , obstructZ = drive . move_anchored ( direction )

if ( motionSucceeded )

    return

if ( obstructX == nil )

    do whatever in case of general error

    return

do whatever in case of obstruction using the coordinates given

But when I try to use "drive . move_anchored ( direction )" (direction = 4) I get an error "Attemp to call nil"

Link to comment
Share on other sites

I have found this code:

local drive = peripheral . wrap ( side )

local motionSucceeded , errorMessage , obstructX , obstructY , obstructZ = drive . move_anchored ( direction )

if ( motionSucceeded )

    return

if ( obstructX == nil )

    do whatever in case of general error

    return

do whatever in case of obstruction using the coordinates given

But when I try to use "drive . move_anchored ( direction )" (direction = 4) I get an error "Attemp to call nil"

No no, that's just us discussing how to do it in the next update. You want code using the "pcall" function of Lua.

Link to comment
Share on other sites

Sorry for last post. I've found this. Now it works pretty good.

while true do

    if rs.getInput("top") then

        sleep(12)

        local drive = peripheral.wrap("back")

        while true do

            local status, error = pcall(drive.move, 4, false, false)

            if status then

                break

            else

                print(error)

                sleep(1)

            end

        end

    else

        sleep(1)

    end

end

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...