jakj Posted July 14, 2013 Author Posted July 14, 2013 Oh thank goodness. I guess it is only the active object that gets synchronized, then. Good to know. Quote
masterzh Posted July 14, 2013 Posted July 14, 2013 Hello jakj, i have small idea about new possible frame which will allow to make ships or submarines. 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. Quote
masterzh Posted July 14, 2013 Posted July 14, 2013 Sorry. My mistake for this second post. (missclick) Quote
jakj Posted July 14, 2013 Author Posted July 14, 2013 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. Quote
jakj Posted July 14, 2013 Author Posted July 14, 2013 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 Quote
Gendalph Posted July 14, 2013 Posted July 14, 2013 jakj, you rock! CC issue seems to have been resolved, so IMO this mod is now ready to be used on stable servers. Quote
Sangar Posted July 14, 2013 Posted July 14, 2013 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. Quote
Spaceshipable Posted July 15, 2013 Posted July 15, 2013 just built this: 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? Quote
jakj Posted July 15, 2013 Author Posted July 15, 2013 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). Quote
Spaceshipable Posted July 15, 2013 Posted July 15, 2013 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. Quote
Spaceshipable Posted July 15, 2013 Posted July 15, 2013 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. Quote
jakj Posted July 15, 2013 Author Posted July 15, 2013 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. Quote
Spaceshipable Posted July 15, 2013 Posted July 15, 2013 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. Quote
jakj Posted July 15, 2013 Author Posted July 15, 2013 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. Quote
Spaceshipable Posted July 15, 2013 Posted July 15, 2013 I msged the open peripherals as well to see what could be done. Quote
Spaceshipable Posted July 16, 2013 Posted July 16, 2013 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 Quote
Sangar Posted July 16, 2013 Posted July 16, 2013 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. Quote
Spaceshipable Posted July 16, 2013 Posted July 16, 2013 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 Quote
BrainTtyh Posted July 16, 2013 Posted July 16, 2013 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 Quote
jakj Posted July 17, 2013 Author Posted July 17, 2013 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. Quote
BrainTtyh Posted July 17, 2013 Posted July 17, 2013 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 Quote
Alexander0507 Posted July 17, 2013 Posted July 17, 2013 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 Quote
jakj Posted July 17, 2013 Author Posted July 17, 2013 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. Quote
Alexander0507 Posted July 18, 2013 Posted July 18, 2013 First it said no carriage or to many carriages atached. then i replaced the controller with a new one and it worked with lua. but when i try it using my program i get fail again Quote
Lethosos Posted July 18, 2013 Posted July 18, 2013 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.) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.