Jump to content

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


jakj

Recommended Posts

My test setup is a small frame construct with one engine, receiving signal from Chickenbone's wireless redstone. It has one world anchor on it. When I'm near it in the same dimension, it works fine and moves the world anchor. When I go through a nether portal, it does its normal loading, and then I get this crash. I didn't test being far enough away in the same dimension to cause the world anchor to start chunk loading, I was close enough to keep it loaded myself until using the nether portal. If you need any more info, I'm more than willing to get it for you. Apologies if chunk loading or world anchors are already known to be broken.

That's...odd. That line of code basically says "for each player that has that chunk loaded, do this". With no players present, it should simply have gotten an empty list back and done nothing, but for some reason Minecraft returned a null instead.

Since that part of the code just updates clients and doesn't do anything on the server, I'll just wrap it in a try/catch and let it error to the log without crashing.

Link to comment
Share on other sites

That's...odd. That line of code basically says "for each player that has that chunk loaded, do this". With no players present, it should simply have gotten an empty list back and done nothing, but for some reason Minecraft returned a null instead.

Since that part of the code just updates clients and doesn't do anything on the server, I'll just wrap it in a try/catch and let it error to the log without crashing.

Wow, fast response. Ok then, when new version is out I'll try it again. Loving your mod so far, my first task is a remote controlled mining machine, hence the chunk loaders.

Link to comment
Share on other sites

Hello jakj. My friend and I were recently playing FTB with your mod added in. We were trying to create a large flying city (A la Laputa) but ran into a couple snags. Snag #1: Your mod doesn't seem to play nice with immibis's microblocks. The city refuses to move an inch if there is a single microblock touching it. Snag #2: Our city is big. We estimate it to be somewhere around 8000 blocks. Naturally we upped the block limit in the config file, but our game still crashed when we tried to move the city. However, after we cut the city down the middle in creative, each half was able to move alright on its own. Which gave me an idea to suggest to you. For constructs larger than, say, a thousand blocks (configurable), why not have them move in pieces, so the game doesn't crash? EG; If I wanted to move the city northward, the northmost blocks of the structure would move first, then the second northmost, and so forth, until all blocks have been moved one forward. This would take longer, and look a little silly I realize, but better slow and silly than not at all.

Thank you for your consideration, and your great mod.

Link to comment
Share on other sites

Hello jakj. My friend and I were recently playing FTB with your mod added in. We were trying to create a large flying city (A la Laputa) but ran into a couple snags. Snag #1: Your mod doesn't seem to play nice with immibis's microblocks. The city refuses to move an inch if there is a single microblock touching it. Snag #2: Our city is big. We estimate it to be somewhere around 8000 blocks. Naturally we upped the block limit in the config file, but our game still crashed when we tried to move the city. However, after we cut the city down the middle in creative, each half was able to move alright on its own. Which gave me an idea to suggest to you. For constructs larger than, say, a thousand blocks (configurable), why not have them move in pieces, so the game doesn't crash? EG; If I wanted to move the city northward, the northmost blocks of the structure would move first, then the second northmost, and so forth, until all blocks have been moved one forward. This would take longer, and look a little silly I realize, but better slow and silly than not at all.

Thank you for your consideration, and your great mod.

It would be cooler if you designed your city to move in multiple pieces! You could even redesign it to be rearrangeable! :D

Link to comment
Share on other sites

It would be cooler if you designed your city to move in multiple pieces! You could even redesign it to be rearrangeable! :D

Like Columbia in Bioshock Infinite? :D

I'd pay to see that. Especially if you can wire up a working traffic controller to do time tables and stuff. :lizard:

Link to comment
Share on other sites

Like Columbia in Bioshock Infinite? :D

I'd pay to see that. Especially if you can wire up a working traffic controller to do time tables and stuff. :lizard:

Umm, I guess? I've never played Bioshock. My Idea was based on my 8th grade teacher's brother in college for architecture's conceptual design for a modular floating (ocean) city, but sure. Bioshock.

Link to comment
Share on other sites

It would be cooler if you designed your city to move in multiple pieces! You could even redesign it to be rearrangeable! :D

It's not really so much a city as it is a village. We just call it a city. Also, it's circular, and most of our tech is below the surface of the village. It wouldn't be feasible or convenient to divide it up.

Link to comment
Share on other sites

1) If you want me to diagnose crashes, I'll need logs (the Forge one, not the Minecraft one).

2) My carriages can't "refuse to move" unless something is blacklisted. They are designed in such a way that they will move anything, even if it doesn't do it right and ends up crunching it into little bits. Make sure you're not just configuring/signalling the engine incorrectly. (Try hooking up a Carriage Controller: That way you'll get a plain-text error message that tells you what's wrong.)

3) I can't split motion in layers like you suggest, because that would fuck up a lot of blocks. For example, if a block has a button on it, and the block but not the button moves, the button pops off as an item. Then (depending on how it's handled) you get either a block without a button on it anymore, or a block with the button back and one on the ground (dupe bug). Or else I'd have to write code to find nearby buttons and check for them...and redstone dust...and what about water flowing? No, impossible.

Link to comment
Share on other sites

First off, thank you for being so prompt in your reply! I checked the microblocks thing again, you were quite right, and I'm an idiot. Also, I see your reasoning as to your rejection of my suggestion. My friend suggested some sort of marker block that would allow players to chose how a structure would be moved in parts, so that it would be up to their own intelligent design to make sure things don't get cut in half.

Lastly, We have now upped our server's available RAM, upped the block limit to 70,000 and removed everything close to our city, yet we are fruitless in our efforts to make it budge. We have no idea what the problem is. If you would be so gracious as to see for yourself what the problem is, we would be perpetually grateful. Our world file is available here: https://www.dropbox.com/s/l7po91x66da2vct/world.zip and our city is located at (-219, 110, 98).

Link to comment
Share on other sites

First off, thank you for being so prompt in your reply! I checked the microblocks thing again, you were quite right, and I'm an idiot. Also, I see your reasoning as to your rejection of my suggestion. My friend suggested some sort of marker block that would allow players to chose how a structure would be moved in parts, so that it would be up to their own intelligent design to make sure things don't get cut in half.

Lastly, We have now upped our server's available RAM, upped the block limit to 70,000 and removed everything close to our city, yet we are fruitless in our efforts to make it budge. We have no idea what the problem is. If you would be so gracious as to see for yourself what the problem is, we would be perpetually grateful. Our world file is available here: https://www.dropbox.com/s/l7po91x66da2vct/world.zip and our city is located at (-219, 110, 98).

In order to load the world, I'd also need to know the complete list of mods (and their versions) you're using, as well as the block/item IDs in your config files. It would be much easier if you could zip the whole server folder for me.

In the mean time, do you have ComputerCraft installed? Because if you do, the carriage controller is the best way to get an error message.

(Also, if you're using the platform carriages, do make sure you're not accidentally connected somewhere to the continent itself. If you're touching the ground, or you have a waterfall that reaches the ground, or something similar, then it's trying to connect to several million blocks at once and it's certainly going to abort.)

Link to comment
Share on other sites

All entities now translocate both in the same dimension and between dimensions: 1.6 version of 2.2.0.0 is now done. Just have to backport it all to 1.5 which (hopefully) will take about an hour.

Also, has anyone had any issues with Immibis microblocks recently? (Not the Forge ones.) Do they work properly for everyone or are they wonky?

Link to comment
Share on other sites

Wiki-in-progress (just a bit over half done, right now) is here: https://github.com/jakj/Redstone-In-Motion/wiki/_pages

2.2.0.0 - MC 1.6.x

2.2.0.0 - MC 1.5.x

RECENT CHANGES (full list in "Changes.txt"):

2.1.0.2 -> 2.2.0.0

 -- names of platform and support carriages are now swapped to make them more intuitive

    ** blue carriage that carries everything everywhere has been renamed to 'support' (from 'platform')

    ** green carriage that carries everything in the direction it's pointing has been renamed to 'platform' (from 'support')

    ** this is cosmetic only and will not affect actual blocks/items in any way

       ## the only actual change is the name displayed in the tooltip

       ## internally (where most users will never see it without something like Waila) the names are the same as before

 -- entities (players, animals, minecarts, loose items, etc.) are now translocated along with carriages

    ** 95% of the time, it works flawlessly -- even things that are mounted on each other (like a player on a saddled pig) stay mounted

    ** should work for all custom dimensions too (Twilight Forest, Mystcraft, Dimensional Doors (maybe?), etc.), anything that registers itself as a full dimension with Minecraft itself

    ** small issues persist:

       ## if a minecart is on a rail on a carriage, when the carriage is converted to placeholder blocks, the rails cease to exist temporarily, so the minecart pops off the rails, and if someone was in the minecart, that will pop them out of the minecart too

          %% not too big of a deal: just get back in the minecart on the other end

       ## a minecart with a chest in it will drop its items on the ground when being translocated; the chest cart on the other end will seem to have the items in its inventory still, but they're just nonexistent client-side ghosts (not a dupe bug)

 -- template carriages can now be re-patterned without breaking them

    ** to add position to pattern, put unpatterned template carriage down in position to be added (must be touching an old position)

       ## turning on the ghost blocks can help in seeing where the old positions are, so you know it must be "touching" a ghost block

    ** to remove position from pattern, put unpatterned template carriage down in position to be removed

    ** use screwdriver while sneaking on patterned template carriage to trigger re-absorption of pattern

 -- added support for newest ComputerCraft API

    ** old one will still work unless I screwed something up

 -- added config option to output messages to the client/server log when drives fail to move

    ** if you know what 'stderr' means, that's where it outputs, so check wherever you have that piped

    ** if you don't know what 'stderr' means, look in your ForgeModLoader-client-0.log

    ** look for the string "*-*-* REDSTONE IN MOTION *-*-*" (in all capitals)

    ** not terribly useful on servers since players won't have access to the server log

    ** bad idea to have this on if you have any carriages anywhere in continuous mode, unless you like your logfiles to take up your entire hard drive

 -- added config option to not show the really long "what does this thing do" tooltip descriptions

    ** will still show carriage decorations and translocator labels in tooltips even with descriptions disabled

 -- added config options to control duration of motion and translocation

    ** minimum 10 ticks each, default 20 (1 second) for motion and 20 * 8 (8 seconds) for translocation

    ** if playing on a server that uses non-default values, make sure yours match or you'll have problems

 -- added config option to disable the items-in-buildcraft-pipes hack if it's giving people trouble

    ** if disabled, trying to use pipes the instant they're placed back into the world after motion will result in spew

    ** if disabled, items travelling through pipes during motion will come back weirdly and stutter at best

 -- added config option to blacklist all blocks that vanilla pistons refuse to move

    ** obsidian

    ** super-hard blocks similar to bedrock

    ** blocks registered as immovable like anvils

    ** (vanilla pistons can't move anything with a tile entity, but we don't blacklist those, because that's a limitation in vanilla, not a design decision)

 -- removed leftover code that was making transparent non-translucent blocks like glass render in a wonky way

 -- un-derped "render in final position during lag" for translocators

 -- worked around crash involving translocators and rendering

 -- worked around crash involving translocators teleporting to chunks not loaded by any players

 -- worked around crash involving carriages trying to render in chunks not loaded by client

 -- removed a little more old random cruft code


 


KNOWN ISSUES



*-*-* THINGS THAT ARE BUGS THAT WILL DEFINITELY BE FIXED *-*-*



Multipart blocks that need scheduled world ticks (such as buttons that need a tick to pop back out) aren't receiving their ticks properly.



Transparent blocks (like water) render in a bit of a wonky fashion in-transit.



*-*-* THINGS THAT ARE FLAWS THAT WILL HOPEFULLY BE FIXED AT SOME POINT *-*-*



Anything that already uses a display list to render will not properly render in-transit.



When translocated, some entities (especially chest-carts) behave strangely, but nothing major.



*-*-* THINGS THAT ARE NOT BUGS BUT HOPEFULLY WILL EVENTUALLY BE FIXED *-*-*



Portal spawners from iChun's "Portal Gun" mod do not yet work on carriages. Try finding some way (possibly using additional mods) to activate a portal gun directly instead.



"Billund" blocks have been reported to be wonky when moved by carriages.



Anything else that caches 'x/y/z' values for any reason (possibly some chunkloaders, likely anything that does teleportation) has a strong chance of misbehaving. These should be reported to me as bugs.



*-*-* THINGS THAT ARE NOT BUGS THAT PROBABLY WILL NEVER BE FIXED *-*-*



If you are using Optifine and get an error with the word "ConnectedTextures" in it, either disable connected textures in Optifine or disable/remove Optifine.



ComputerCraft programs that are carried by carriages and interact with the carriage's drive, need to have a delay added to their "startup" program to give time for things to settle before trying to interact again. Try "os.sleep(0.1)", and increase that number if it still doesn't work. (The more overloaded your machine or Minecraft is at the time, or the more computers or turtles you have on the same carriage, the higher this number will need to be. Making the number higher than it needs to be is fine: Too much won't hurt, but too little will.)



Computers on carriages that are running at the time of motion will reboot after motion, and run their 'startup' program. (Computers that are off at the time of motion will remain off.)



If a carriage is moving continuously, and the continuous-mode delay is set to 0, tile entities (like chests) will not render properly after the first motion until the carriage stops. This is purely cosmetic, and does no harm. To prevent this, make sure the continuous-mode delay is greater than zero. (The more Minecraft, your system, or the server is overloaded, or the longer delay there is between you and the server, the higher this number will need to be.)


 


PLANNED FEATURES



The ability to prevent individual blocks/items from being registered.



A config option to let a carriage treat blacklisted blocks as simple obstructions instead of completely aborting the motion.



The ability to selectively whitelist/blacklist blocks in-game for each drive, in addition to the overall config-file blacklist. These blocks will always be treated as simple obstructions instead of completely aborting the motion, regardless of the setting in the config file.



A form of "sticky carpeting" to allow finer control over where on a carriage entities are grabbed.



Different styles of controlling player position during carriage movement, to try to allow more freedom.



An optional "hardcore" mode, for people who want this mod to be expensive to use.

Link to comment
Share on other sites

For interesting parties here's a not-so-great-looking-but-functional CC program for moving a certain direction a certain number of times. Since the computer restarts after every transit it was a little tricky to get it down. It's actually two programs (the program and a startup program). Here's the source:

move:

local args = {...}

 

if #args < 2 then

  print("----------")

  print("Usage: move [perhipheral side] [direction] [count]")

  print("----------\n")

  return

end

 

side = args[1]

dir = args[2]

times = args[3]

dirtonum = {down = 0, up = 1, north = 2, south = 3, west = 4, east = 5}

 

if peripheral.isPresent(side) == false then

  print("The carriage motor is missing on the " .. side .. " side.")

  return

end

 

if times ~= nil then

  paramsf = fs.open("moveparams", "w")

  paramsf.writeLine(times)

  paramsf.writeLine(side .. " " .. dir)

  paramsf.close()

 

  drive = peripheral.wrap(side)

  drive.move(dirtonum[dir], false, false)

  return

else

  paramsf = fs.open("moveparams", "r")

 

  if paramsf == nil then

    print("You must supply a count!")

    return

  end

 

  count = paramsf.readLine()

  args = paramsf.readLine()

  paramsf.close()

 

  drive = peripheral.wrap(side)

  drive.move(dirtonum[dir], false, false)

  return

end


 

startup:


paramsf = fs.open("moveparams", "r")

 

if paramsf == nil then

  return

end

 

sleep(1)

count = paramsf.readLine()

args = paramsf.readLine()

paramsf.close()

 

newcount = count - 1

 

if newcount == 0 then

  shell.run("rm moveparams")

  print("Move complete")

  return

end

 

paramsf = fs.open("moveparams", "w")

paramsf.writeLine(newcount)

paramsf.writeLine(args)

paramsf.close()

 

 

shell.run("move " .. args)


 

Parameters:


move [side motor is on] [direction to go] [# of spaces to move]


 

Example:


move right north 3

Link to comment
Share on other sites

:lizard:

It's not my fault you update so fast.

I was about to say "ten days is fast?" but then I realize...it kind of is, in comparison. Geez. Although to be fair, even though I really have no life, it is actually comparable to people busier with work and family, because I've been spending my time on FFXIII. In the past ten days I think I've spent...maybe eight or nine hours actually coding. So...uh...I dunno. Maybe it's just the benefit of this being such a small project, that numerous quick changes are easier to make.

Link to comment
Share on other sites

Is it bad if I admire this?

Nah, it's quite relaxing. I live a life devoid of excitement that is not of my own making (meaning no unpleasant surprises, and I'm always doing something I want to do) and without significant responsiblity (meaning total self-determination of my schedule, environment, and behaviour). I count myself fortunate that my parents had only the one child, and I grew up being treated as an adult as soon as they felt me capable, because I turned out to be independent and self-fulfilling. I kiinda feel bad for the people out there who need more than I do just to feel "alive".

Link to comment
Share on other sites

Not until I get the wiki page done. Right now, the details are in the changelog, you can use something like NEI to get the recipe, and feel free to ask questions here.

Well I was messing around with them and couldn't figure out how they work.

1) Do they work with template carriages?

2) How do they know which one to link to?

3) How do you activate them?

4) Will it let you know at all if it's having trouble teleporting?

Alright, so I got it to work with the standard carriage frames. I'm guessing template frames are simply not supported?

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