jakj Posted July 21, 2013 Author Posted July 21, 2013 I presume this would be replicable with vanilla pistols, too. As for better player movement, did you actually manage to figure out a way to bypass the issue of moving entities on top of moving carriages? Could you enlighten us? Vanilla pistons don't move unrecognized tile entities, and destroying the block would close the GUI. My method is too sneaky, and it doesn't trigger the GUI to close (which is no excuse for writing code client-side that should be server-side). For player movement, it's just a matter of relaxing restrictions in exchange for risk of players not moving correctly in unusual conditions. It'll be set with config options most likely. The trick comes of doing it in multiplayer environments: The "sticky carpeting" may be the only option there. It's too much work to be able to configure every piddly little thing for every single carriage separately. Quote
jirok769 Posted July 21, 2013 Posted July 21, 2013 minecraft crashes when i'm trying to move construction contains ME chest with vanilla hopper on side, why? Quote
jakj Posted July 21, 2013 Author Posted July 21, 2013 minecraft crashes when i'm trying to move construction contains ME chest with vanilla hopper on side, why? Congratulations! You're the first in the thread to put forth an entirely worthless and shitty bug report. If you were to actually give me any information of any kind I could actually use, since I'm not currently resident in your frontal cortex, I would be able to answer your question. Quote
jirok769 Posted July 21, 2013 Posted July 21, 2013 Congratulations! You're the first in the thread to put forth an entirely worthless and shitty bug report. If you were to actually give me any information of any kind I could actually use, since I'm not currently resident in your frontal cortex, I would be able to answer your question. thanks, minecraft crashes when i'm trying to move construction with this blocks from Applied Energestics mod with vanilla hopper on top side: ME chest, ME controller, ME power relay. crash report with ME controller: http://pastebin.com/EtKC93bK Quote
jakj Posted July 21, 2013 Author Posted July 21, 2013 thanks, minecraft crashes when i'm trying to move construction with this blocks from Applied Energestics mod with vanilla hopper on top side: ME chest, ME controller, ME power relay. crash report with ME controller: http://pastebin.com/EtKC93bK That stacktrace just leads me into the crash-report function, and doesn't tell me what actually crashed. (Minecraft's builting crash reporting is pretty much useless most of the time.) Post the actual Forge log (ForgeModLoader-client-0.log or ForgeModLoader-server-0.log, depending on if you're using the actual Minecraft program or the dedicated server) and we'll see. Quote
jirok769 Posted July 21, 2013 Posted July 21, 2013 That stacktrace just leads me into the crash-report function, and doesn't tell me what actually crashed. (Minecraft's builting crash reporting is pretty much useless most of the time.) Post the actual Forge log (ForgeModLoader-client-0.log or ForgeModLoader-server-0.log, depending on if you're using the actual Minecraft program or the dedicated server) and we'll see. http://pastebin.com/JzG3DsPB Quote
jakj Posted July 21, 2013 Author Posted July 21, 2013 http://pastebin.com/JzG3DsPB 2013-07-21 23:13:34 [WARNING] [Minecraft-Server] The save is being accessed from another location, aborting 2013-07-21 23:13:44 [iNFO] [sTDERR] net.minecraft.world.MinecraftException: The save is being accessed from another location, aborting I don't know what in the world is going on with that, but I can't imagine what in my code could possibly be causing it. Best thing you can do is start with a fresh vanilla minecraft, add nothing but forge, my mod, and the exact mods necessary for the blocks you're trying to move. See if it still crashes then. Quote
jirok769 Posted July 21, 2013 Posted July 21, 2013 2013-07-21 23:13:34 [WARNING] [Minecraft-Server] The save is being accessed from another location, aborting 2013-07-21 23:13:44 [iNFO] [sTDERR] net.minecraft.world.MinecraftException: The save is being accessed from another location, aborting I don't know what in the world is going on with that, but I can't imagine what in my code could possibly be causing it. Best thing you can do is start with a fresh vanilla minecraft, add nothing but forge, my mod, and the exact mods necessary for the blocks you're trying to move. See if it still crashes then. i don't know why, but minecraft don't crashes now, i'll try to install other mods. Quote
Spaceshipable Posted July 22, 2013 Posted July 22, 2013 @Spaceshipable: in short, it means you won't have to worry about move() throwing errors (unless you input bad variables, say wrong types or values, which is something you can control/check before calling the function). Plus it sounds like we'll get an extra function for the movement simulation. So instead of local drive = peripheral.wrap(side) local canMove, whyNot = pcall(drive.move, 0, true, true) you would then write something along these lines local drive = peripheral.wrap(side) local canMove, whyNot = drive.simulate(0, true) which is a lot clearer when reading the code. Note that I don't know what that function will be called, it might well be something else like drive.test (which in hindsight I think would be nicer) or drive.check or whatever. So will this return a table like {false,"obstruction",{10,-40,9}} for example? local drive = peripheral.wrap(side) local canMove, whyNot = drive.simulate(0, true) what does this return presently? Just the error string? local drive = peripheral.wrap(side) local canMove, whyNot = pcall(drive.move, 0, true, true) Quote
jakj Posted July 22, 2013 Author Posted July 22, 2013 It will not return a table: It will just return a series of values. So you would do this (probably goofy since I don't actually know Lua syntax): 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 So for example, you could use the coordinates of obstruction to implement some sort of subway tram, where you keep going until it is obstructed by a block you placed there (by comparing the X/Y/Z coordinates to the one you placed), then you change its direction, or whatever. That way you don't even have to write out how many blocks it's moved in one direction during motion. Quote
Sangar Posted July 22, 2013 Posted July 22, 2013 So will this return a table like {false,"obstruction",{10,-40,9}} for example? local drive = peripheral.wrap(side) local canMove, whyNot = drive.simulate(0, true) what does this return presently? Just the error string? It won't return a table, it'll return a tuple, i.e. multiple values (see the Lua documentation for a more in-depth explanation). Currently move() will throw an error if it fails, even the simulation, which is why you have to wrap it with a pcall. The pcall in turn does almost the same thing the new version will do without the pcall: it will return multiple values. The only difference to the returned values will be in the "success" case, where pcall returns (true, true), the first indicating the called function didn't cause an error, the second being the returned value of the called function, and the new move() version will return only true (meaning "whyNot" will be nil -- again: in the case of success). If something goes wrong, move will return the same thing as pcall would now (or almost, depends on how the error is formatted). It may be that if whyNot == "obstructed" we will get some additional values, that being the coordinates, but we'll have to wait and see about that. If we do, you could write something like this Edit: Oh well, that took too long to type up :P -- DISCLAIMER: again, this is all hypothetical until we get the new version local didMove, whyNot, x, y, z = drive.move(direction, anchored) if not didMove then if whyNot == "obstructed" then print(string.format("obstacle at (%d, %d, %d)", x, y, z)) else print(whyNot) end end Quote
Spaceshipable Posted July 22, 2013 Posted July 22, 2013 I didn't know it was possible to have it return multiple values like that. makes sense though. thanks for explaining Quote
masterzh Posted July 23, 2013 Posted July 23, 2013 (double gif speed) "continuous mode" Any ideas how to make it more smooth? (as you sad "without any pause between") Quote
jakj Posted July 23, 2013 Author Posted July 23, 2013 "continuous mode" Any ideas how to make it more smooth? (as you sad "without any pause between") First, I'm assuming you went into your config file and turned the continuous-mode delay to 0. If you haven't, go ahead and do that. (Make sure you're using 1.2.0.1.) The second factor here is lag: That's why it seems to move more than a block and then snap back: The client keeps rendering motion even past the first block's distance until the server catches up and finishes putting the blocks back down. The reason for this is to reduce confusion: If rendering stopped so that it looked like everything was back in place, but it wasn't actually there yet, people might get annoyed that they can't interact with it, whereas now at least it's clear it's not done yet. I'm open to feedback on how to do this better, if anyone can think of a better way. To be clear, the "extra" motion should happen only when the server->client is super laggy, the server is super overloaded, the carriage is super huge (like, thousands of blocks), or your computer is super shitty. In singleplayer with a normal computer and a normal carriage, this should never ever happen. If the extra rendering is doing more harm than good, I could just turn it off, and make it render everything in its final place even if it isn't there yet. Quote
masterzh Posted July 23, 2013 Posted July 23, 2013 Didnt know about First, I'm assuming you went into your config file and turned the continuous-mode delay to 0. If you haven't, go ahead and do that. (Make sure you're using 1.2.0.1.) The second factor here is lag: That's why it seems to move more than a block and then snap back: The client keeps rendering motion even past the first block's distance until the server catches up and finishes putting the blocks back down. The reason for this is to reduce confusion: If rendering stopped so that it looked like everything was back in place, but it wasn't actually there yet, people might get annoyed that they can't interact with it, whereas now at least it's clear it's not done yet. I'm open to feedback on how to do this better, if anyone can think of a better way. To be clear, the "extra" motion should happen only when the server->client is super laggy, the server is super overloaded, the carriage is super huge (like, thousands of blocks), or your computer is super shitty. In singleplayer with a normal computer and a normal carriage, this should never ever happen. If the extra rendering is doing more harm than good, I could just turn it off, and make it render everything in its final place even if it isn't there yet. Sorry didn't know about any config-delay i will do it asap and post result. About lag its SP on powerful PC with custom java setting to get enough ram for everything.(120+mods) But yes there can be another thousands of possibilities why its so laggy. Quote
jakj Posted July 23, 2013 Author Posted July 23, 2013 Didnt know about Sorry didn't know about any config-delay i will do it asap and post result. About lag its SP on powerful PC with custom java setting to get enough ram for everything.(120+mods) But yes there can be another thousands of possibilities why its so laggy. Lag in singleplayer on powerful PC? That's...unexpected. But then again, 120+ mods with increased memory is quite something, so it may just be that. Quote
masterzh Posted July 23, 2013 Posted July 23, 2013 Please can you point me to that "ninja bugfix"? Cant find it. (or maybe i am blind ) [EDIT]Ok found it page 32. [EDIT:2]Btw I:"Cooldown (in ticks) between motions in continuous mode"=0 was already set by default. You are right about smoothness i just tested continuous mod in clear MC so i will now try to find why its so laggy. Quote
fingerboxes Posted July 23, 2013 Posted July 23, 2013 I've made some improvements to my control server, though the latest revisions have been made without access to minecraft. Any testing or feedback is appreciated. FlightControl (startup) FlightControLib enneractLib The basic idea is that you place a computer adjacent to the Controller with those programs, and a modem. You then send that computer rednet messages of the form 'MOVE VECTOR <direction> <distance>', until you've constructed the path you want, and then 'MOVE EXECUTE' to kick off the process. If movement isnt possible, the entire path should be aborted, but the program should not crash. <direction> can be up/down/north/south/east/west, u/d/n/s/e/w, or -y/+y/-x/+x/-z/+z Quote
Spaceshipable Posted July 23, 2013 Posted July 23, 2013 I've made some improvements to my control server, though the latest revisions have been made without access to minecraft. Any testing or feedback is appreciated. FlightControl (startup) FlightControLib enneractLib The basic idea is that you place a computer adjacent to the Controller with those programs, and a modem. You then send that computer rednet messages of the form 'MOVE VECTOR <direction> <distance>', until you've constructed the path you want, and then 'MOVE EXECUTE' to kick off the process. If movement isnt possible, the entire path should be aborted, but the program should not crash. <direction> can be up/down/north/south/east/west, u/d/n/s/e/w, or -y/+y/-x/+x/-z/+z could you condense it to one computer? Quote
jakj Posted July 23, 2013 Author Posted July 23, 2013 Yeah, I've been super lazy and played games for a while instead of coding. Figured a break was okay since there aren't any massive destructive bugs right now and I had coded nonstop for weeks to get it out. I'll do a proper update at some point not too absurdly in the future. Poll time: Is it more confusing to have the blocks keep moving during lag, or would it be less confusing to have them stop but not yet exist? Quote
TheBytemaster Posted July 23, 2013 Posted July 23, 2013 Poll time: Is it more confusing to have the blocks keep moving during lag, or would it be less confusing to have them stop but not yet exist? I vote in favor of having the blocks keep moving during lag. It lets you know that something's still happening, and that something is not quite right yet. When things look like they have finished, but actually don't work yet, I get annoyed. I'd much rather know what's going on than have things look pretty but not always work. May I, however, suggest a config option for this as it seems to me that it would not effect servers? Quote
jakj Posted July 23, 2013 Author Posted July 23, 2013 I vote in favor of having the blocks keep moving during lag. It lets you know that something's still happening, and that something is not quite right yet. When things look like they have finished, but actually don't work yet, I get annoyed. I'd much rather know what's going on than have things look pretty but not always work. May I, however, suggest a config option for this as it seems to me that it would not effect servers? A config option would work, yes. I'll have it default to the current behaviour of continuing motion, so people won't be confused who think a config is a type of fruit salad. Quote
Spaceshipable Posted July 23, 2013 Posted July 23, 2013 I would rather they stop as I think them continuing makes them look broken whereas them not existing yet implies the problem is just lag. would probably lead to less bug reports Quote
jakj Posted July 23, 2013 Author Posted July 23, 2013 I would rather they stop as I think them continuing makes them look broken whereas them not existing yet implies the problem is just lag. would probably lead to less bug reports It's taken five weeks for anyone to even mention this, so I'm not worried about fewer bug reports. A config option will do nicely. 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.