Jump to content

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


Recommended Posts

Posted

Hello jakj,

i have small idea about new possible frame which will allow to make ships or submarines.

2uz8b4n.jpg

So except that we cant use any mod for this, most common problem for those mods which get "close enough" had problem with blocks around ship/sub. If you try to emerge submarine you will make mess on surface if you "move water blocks on top" with you. Same when you try to submerge and "bring top air blocks with you"(top 3 images).

My idea is to make frames check for Y-level or height. Those frames "under" Y=64 will fill adjected external blocks with water and "above" Y=64 with air after movement.

(bottom 6 pictures)

To preordain external and internal blocks or "which side to check" you can use screwdriver and "open/close carriage side" system. This way frames dont fill interior of submarine with water.

Next thing is to allow windows, doors, any block surrounded with frames(inside wall) to act as frame.(top right picture) This way you just construct skeleton border frames and fill walls with your own materials.

Only thing i am not sure is about making all adjected blocks "inside" connected so there is no need for support frame walls everywhere.

Not sure if its possible its just an idea.

Posted

That sounds a lot more like something that would belong in MFFS, creating a shell of air around yourself. If I were you, I'd post a suggestion to Calclavia to make a kind of force field that handles regeneration of water as you pass.

Posted

INFORMAL BUGFIX RELEASE

1.2.0.1

This is a release, but without the usual fanfare, since I'm doing stuff right now but wanted to get these bugfixes out. It (should) now be safe to use in play worlds and open servers with Buildcraft pipes and ComputerCraft, without issue. (There was a report of an issue with IC2, but only in a super-new development build, so I won't worry about that for the moment.)

https://www.dropbox.com/s/mm9646mh2pv9qgf/RedstoneInMotion_1.2.0.1_mc1.5.zip

1.2.0.0 -> 1.2.0.1

 -- removed some vestigal server->client data transmission

 -- fixed buildcraft pipes not accepting items immediately after transit

 -- fixed items in buildcraft pipes stuttering/slowing after transit

 -- fixed ComputerCraft synchronization with Minecraft thread of execution to clear a bunch of crashes

 -- continuous-mode cooldown can now be changed back to 0, though the default for new configurations will still be 5

    ** note that with no cooldown, after the first step of transit, many tile entities will no longer render correctly until transit stops

       ## this is cosmetic only, and does not occur if there is a cooldown of at least a couple of ticks unless server->client transmission is super-slow

Posted

Sweet, thanks.

There was a report of an issue with IC2, but only in a super-new development build, so I won't worry about that for the moment.

And right you are; just tested it with the latest version of IC2 (I belatedly realized that there was one available not requiring the latest forge dev build), and the issue ceased to exist. Sorry for the distraction.

Posted

just built this:

4TjWXW8.png

Unfortunately the terminal glasses bridge (grey block) from open peripherals seems to lose connection with the glasses after the first move.

Here is my code:

direction = {"down","up","left","right","back","forward"}

local event, command = os.pullEvent("chat_command")

function go()

for i=1,7 do

if i == 7 then

print("Invalid")

go()

elseif command == direction then

peripheral.call("back","move",(i-1),false,false)

end

end

end

go()

Would it be possible to make the connection maintain after movement?

Posted

Unfortunately the terminal glasses bridge (grey block) from open peripherals seems to lose connection with the glasses after the first move.

Here is my code:

direction = {"down","up","left","right","back","forward"}

local event, command = os.pullEvent("chat_command")

function go()

for i=1,7 do

if i == 7 then

print("Invalid")

go()

elseif command == direction then

peripheral.call("back","move",(i-1),false,false)

end

end

end

go()

Would it be possible to make the connection maintain after movement?

1) Computers reboot when they are moved (or when the chunk or world is reloaded), so there's no way your go() function will ever complete beyond the first iteration. To implement a loop like this, you'd need to somehow store your 'i' variable persistently and read it back in after the move, and put your code in the "startup" program.

2) Remember that computers need a short warm-up period to start working after a move, so you'll need something like "os.sleep(0.1)" at the beginning of "startup" (and if 0.1 is not enough, raise it higher, possibly up to 0.25).

Posted

1) Computers reboot when they are moved (or when the chunk or world is reloaded), so there's no way your go() function will ever complete beyond the first iteration. To implement a loop like this, you'd need to somehow store your 'i' variable persistently and read it back in after the move, and put your code in the "startup" program.

2) Remember that computers need a short warm-up period to start working after a move, so you'll need something like "os.sleep(0.1)" at the beginning of "startup" (and if 0.1 is not enough, raise it higher, possibly up to 0.25).

1) This is for single moves. The i loop checks if my input matches the any of the entries in the directions array. The go() function is for if I type something wrongly. Just noticed that I have put 'direction' instead of direction(i) though (might be the problem here) will check.

2) Will add when I decided to implement multiple moves on one command.

Posted

1)Just noticed that I have put 'direction' instead of direction(i) though (might be the problem here) will check.

I was right. The terminal link loses connection with the glasses after a movement.

Posted

How do you establish the connection in the first place? If it's a command, just add the command to the startup program after the sleep.

Posted

How do you establish the connection in the first place? If it's a command, just add the command to the startup program after the sleep.

Unfortunately to make the link the player has to click the bridge with the glasses. I was hoping to be able to use the glasses to control the carriage remotely.

Posted

Unfortunately to make the link the player has to click the bridge with the glasses. I was hoping to be able to use the glasses to control the carriage remotely.

Well, it's probably storing the absolute X/Y/Z coordinates, then. I'll put it on the list for whenever.

Posted

I finally bothered to get some multi movement code together. Thus far it can only accept single digit distances and has no check to make sure the number is valid but it works thus far. Though people might be interested.

direction = {"d","u","l","r","b","f"}

 

function move()

    os.sleep(0.5)

    dir = tonumber(dir)

    peripheral.call("back","move",dir,false,false)

    dis = dis-1

    h = fs.open("/disk/variables","w")

    h.write(dis)

    h.write(dir)

    h.close()

end

 

function start()

    print("Direction? d,u,l,r,b,f ")

    dirname = read()

    for i=1,7 do

        if i == 7 then

            print("Invalid")

            start()

            elseif dirname == direction[i] then

            dir = i-1

            print("Distance?")

            dis = read()

            move()

        end

    end

end

 

 

if fs.exists("/disk/variables") then

    h = fs.open("/disk/variables","r")

    string = h.readAll()

    dis = string.sub(string,1,1)

    dir = string.sub(string,4,4)

    h.close()

    if tonumber(dis) == 0 then

        start()

    else

        move()

    end

else

    start()

end

Any suggestions welcome.

EDIT: just thought that if I change 'dir = string.sub(string,4,4)' to ' dir = string.sub(string,4)' it should work fine

Posted

I finally bothered to get some multi movement code together. Thus far it can only accept single digit distances and has no check to make sure the number is valid but it works thus far. Though people might be interested.

{snip}

Any suggestions welcome.

Sweet. Some ideas, since you asked :) 1) Why not use textutils.serialize/unserialize instead of string manipulation for saving your state? I think that would make the code more readable (and be less error-prone). 2) It may be safer to write the state to disk before calling peripheral.call, in case the computer is reset before that returns. Even better: call it in simulation mode first, save if it's OK, then do the actual move.

Posted

Sweet. Some ideas, since you asked :) 1) Why not use textutils.serialize/unserialize instead of string manipulation for saving your state? I think that would make the code more readable (and be less error-prone). 2) It may be safer to write the state to disk before calling peripheral.call, in case the computer is reset before that returns. Even better: call it in simulation mode first, save if it's OK, then do the actual move.

I will have to look into that. Also I realised I had cocked up a bit on the dir/dis order but I fixed that now. I will look into serialise later but just about to go on holiday for a couple of days. Will repost when back

Posted

I get two same bugs(in different time and different places) from players on my server(using screwdriver on frame(not yellow)):

http://pastebin.com/s3znAxk2

Bug frames crashs every player in their location

version: RedstoneInMotion_1.2.0.0_mc1.5

Client crash only.

Solving the bug: replace all frames(by id) with WorldEdit to other block

Posted

I get two same bugs(in different time and different places) from players on my server(using screwdriver on frame(not yellow)):

http://pastebin.com/s3znAxk2

Bug frames crashs every player in their location

version: RedstoneInMotion_1.2.0.0_mc1.5

Client crash only.

Solving the bug: replace all frames(by id) with WorldEdit to other block

That's Optifine being a piece of shit. Nothing I can do about it. If they turn off "connected textures" in their video options, the crash will stop.

Posted

That's Optifine being a piece of shit. Nothing I can do about it. If they turn off "connected textures" in their video options, the crash will stop.

thx

Posted

I want to use this mod for my elevator.

When i use Structure Carriages and Carriage Enginge/Drive and use it with levers it works.

Now i want to use CC to move it. The Carriage Controller is in the left of the computer and touches a frame.

When i use my program the frames don't move and i get the message fail (which i told it in the code)

My code : http://pastebin.com/EvRVdbM6

Sorry for any bad english :D

Posted

The carriage controller issues a plain-text error message if it fails to move something. Try issuing commands directly to the computer instead of using your program and see what happens.

Posted

Hrm, noticed a new Tinker's Construct build was released with the Drawbridge block that mDiyo was playing around with. So I threw that into the testing pack to see how that would behave on a carriage.

I would describe what I've seen so far as "peculiar", but not game-breaking, ie. it works, but it does interesting things when you move it while it's extended, so I wouldn't worry about adding support for that anytime soon. (The Fancy Redstone Block with an extended activation range doesn't affect engines/motors indirectly, but we can call that a feature here--you coded for an explicit strength here, I believe.)

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