Jump to content

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


Recommended Posts

Posted

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.

Posted

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.

Posted

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

Posted

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.

Posted

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

Posted


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.

Posted


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.

Posted

@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)

Posted

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.

Posted

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

Posted

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

Posted

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.

Posted

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.

Posted

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.

Posted

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

Posted

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?

Posted

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?

Posted

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?

Posted

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.

Posted

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.

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