jakj

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

Recommended Posts

I don't have any documentation to give you but even in my SP world I've had times when my CPU is loaded enough to drop the tickrate to <20. I think there are mods out there that allow configuring tick rate as well but I've never used any of them.

But why not just use actual ticks instead of real-time? Instead of needing one second to move one block just require 20 ticks to pass. Though I'm not quite sure how it would work in SMP environment where rendering and world simulation is done in different machines and probably not synced every single tick. Perhaps just use floating average of tickrate over past few seconds for client-side animation?

I am using real ticks, though. I use a function called updateEntity that is called in the tile entity exactly once per physical game tick pass, and I increment a counter; On the server, when the counter reaches 20, it re-emits all the blocks it had absorbed, and on the client, it uses the counter to say "draw everything ticksExisted/20 blocks offset from their starting position". The rendering function is provided a "partial tick" argument, to make things smooth when the visual framerate is faster than the actual tickrate.

I thought you were saying that the game could be designed to actually run at more or fewer than 20 ticks per second at full speed. If a server is supposed to run at 20 ticks per second but it can't keep up, then the process will take more than one real-world second.

The issue comes at if the server is configured so that at full speed it's only doing, say, 10 ticks per real-world second, and could never get up to 20. In that case, at full speed, every single motion would take 2 seconds instead of 1. If that's the case, I'll have to add a configuration option to say "how many ticks per second is your server configured to run". And I will hate doing that, because I hate how shitty Minecraft is in a server environment, but I won't have a choice really.

Share this post


Link to post
Share on other sites

I cant get this mod working on a server, even on a clean server with nothing but forge and the mod,

Ive tried multiple forge versions, that doesnt seem to fix the problem. Am I doing something wrong?

No, that's a bug in the current version of my mod. I've already got it fixed and it will work in a server on the next update, which (hopefully) will be before the end of tonight.

Share this post


Link to post
Share on other sites

I thought you were saying that the game could be designed to actually run at more or fewer than 20 ticks per second at full speed. If a server is supposed to run at 20 ticks per second but it can't keep up, then the process will take more than one real-world second.

Ah, my bad :)

Though I think mystcraft accelerated ages will still be a source of headace:

"Adds extra random ticks to the world, causing things that occur on random ticks to occur more rapidly."

Share this post


Link to post
Share on other sites

Ah, my bad :)

Though I think mystcraft accelerated ages will still be a source of headace:

"Adds extra random ticks to the world, causing things that occur on random ticks to occur more rapidly."

No, that calls updateTick on the block, not updateEntity on the tile entity. Won't be a problem.

Accelerated worlds make happen faster things like leaf decay, fire spread, and grass growth.

Share this post


Link to post
Share on other sites

No, that's a bug in the current version of my mod. I've already got it fixed and it will work in a server on the next update, which (hopefully) will be before the end of tonight.

Ah, that makes sense, Ill be looking forward to that then.

I have some blueprints lying around from 1.4.7 for a flying base. They are drawn based on redpower frames restrictions, but now I can make it look much better. Expect screenshots soon. :)

Share this post


Link to post
Share on other sites

Jakj, have you thought about a replacement for covers or panels? I know about the micro blocks mod, but I liked the way you could disguise a frame with panels/covers: they don't take up a block, they, in a way, retexture a side of the frame.

Share this post


Link to post
Share on other sites

Jakj, have you thought about a replacement for covers or panels? I know about the micro blocks mod, but I liked the way you could disguise a frame with panels/covers: they don't take up a block, they, in a way, retexture a side of the frame.

Hmm. I could allow you to craft a carriage block with another block, and when it's drawing a closed side, it draws it as the side of that block instead of the normal carriage texture. Open sides would continue to render normally.

Share this post


Link to post
Share on other sites

Might want some means of changing that texture as well. Perhaps re-craft it with an another block to change the closed texture?

Share this post


Link to post
Share on other sites

Might want some means of changing that texture as well. Perhaps re-craft it with an another block to change the closed texture?

Yeah, all I would do is make a custom crafting handler that says "carriage block + decoration block = carriage block with decoration" and "carriage block with decoration = carriage block without decoration". Easy peasy.

Share this post


Link to post
Share on other sites

@ covers, IC2 had a recent commit saying "implement forge block coloring api for painters, hardened cf and cables". Assuming "coloring" really means "apply a random texture" then this could perhaps be a better solution

Share this post


Link to post
Share on other sites

@ covers, IC2 had a recent commit saying "implement forge block coloring api for painters, hardened cf and cables".Assuming "coloring" really means "apply a random texture" then this could perhaps be a better solution

I just looked through the IC2 code, and I don't see any reference to any Forge API, nor is there any Forge commit referencing one. If there is an API forthcoming, it's not in the builds yet. I do see that IC2 is generating some arrays that hold block Id/Meta combinations for retexturing, but it's skeletal, and it's no different than what I would do anyway.

If something good pops up in the future, I can switch to that, but in the mean time, I'm not going to chase after some phantom scent coming out of the "elite inner circle" of developers.

Share this post


Link to post
Share on other sites

Version 0.1.0.0 is now available (should work on all of local SSP, LAN SMP, and remote/dedicated SMP):

http://j-a-k-j.com/RedstoneInMotion_0.1.0.0.zip

Recent changes (full list in "Changes.txt"):

0.0.2.0 -> 0.1.0.0

 -- fixed a crash on dedicated servers relating to packet classes

 -- all entities (e.g., players, animals, monsters, minecarts, items on the ground) now move with the carriage

 

 

Known issues:

 


A carriage being driven by an engine cannot be moved downward if the block providing the downward redstone signal is part of the carriage.



Blocks affected by gravity (e.g., sand and gravel) that are not part of a carriage fall through that carriage even if that carriage in its new position would support them.



Some modded blocks (like ComputerCraft computers) do not retain their state after motion.



Forge information file (mcmod.info) not yet implemented.



Some blocks in-transit are not yet rendered.



Drives will not work on structure carriages when placed on an edge instead of a corner.

 

Planned features:

 


Crafting carriage blocks with decoration blocks to turn closed sides of those carriage blocks into facades of those decoration blocks.



Native-resolution (i.e., 16x) texture pack.



ComputerCraft support, including carriage drives as peripherals for wired and wireless control.



Omni-Wrench support.

Share this post


Link to post
Share on other sites

Version 0.2.0.0 now available: Accounted for a bit of lag, added carriage-block disguise functionality, added mcmod.info, fixed an oversight, and added in-transit rendering for almost every vanilla block.

http://j-a-k-j.com/RedstoneInMotion_0.2.0.0.zip

Recent changes (full list in "Changes.txt"):

0.1.0.0 -> 0.2.0.0

 -- entities being moved by carriages should behave a bit better when there is a lot of server-to-client lag

 -- carriage blocks can now be disguised to look like other blocks

 -- ** craft a carriage block with any regular block to set it as the disguise

 -- ** it will let you craft things that look silly, such as with torches, so test first before throwing away a stack of them

 -- ** craft a disguised carriage block by itself to remove the disguise

 -- ** only closed sides will be disguised

 -- ** being disguised will not change the function of the carriage block in any way

 -- ** most of the time, disguised carriage blocks will not stack; this is a vanilla issue and cannot be fixed without a coremod

 -- all vanilla blocks are now rendered in-transit EXCEPT the following:

 -- *) regular, locked, trapped, and ender chests

 -- *) regular signs and signs on walls

 -- *) enchantment tables

 -- *) ender portals and frames of ender portals

 -- *) beacons

 -- *) mob/player skulls

 -- mcmod.info now present

 -- suddenly remembered the need to keep the in-mod version string up-to-date

 

Known issues:

 


Blocks affected by gravity (e.g., sand and gravel) that are not part of a carriage fall through that carriage even if that carriage in its new position would support them.



Some modded blocks (like ComputerCraft computers) do not retain their state after motion.



Fire does not render correctly.



Some blocks in-transit are not yet rendered.



Drives will not work on structure carriages when placed on an edge instead of a corner.



Recipes do not use the Forge material dictionary.

 

Planned features:

 


Native-resolution (i.e., 16x) texture pack.



ComputerCraft support, including carriage drives as peripherals for wired and wireless control.



Omni-Wrench support.

Share this post


Link to post
Share on other sites

Regarding ComputerCraft compatibility:

As I say, I'm not very familiar with ComputerCraft, so I'm relying on detailed bug reports from all of you, but so far in my testing and looking through decompiled CC, the only thing I can see that is caused by my mod is that the computers/turtles reboot after the carriage is moved. Everything is still in the right place: Turtles still have their inventories and names, their programs are intact, and so forth. If they were off, they stay off, and if they were on, they reboot.

Looking at the code, he has really set up a rather instanced system that is reliant upon the computer rebooting like this: For the same reason, it's designed to reboot if the chunk unloads and is reloaded. It might be possible, with surgical dedication, to reflect my way in there and restore every single variable of state, but that would be so much work and I really think it works better this way anyway.

All you have to do, if you want to have a computer-controlled carriage while the computer is actually on the carriage, is design your startup program to begin with each movement, putting the appropriate control flow in the "startup" program. You could even be crafty and use the fact that you rebooted as a signal that the carriage just moved.

Thoughts? Again, if anyone finds any instance of something in ComputerCraft actually getting corrupted/destroyed by my mod, I really want to know, but if the only issue is computers/turtles rebooting after movement, I think that's alright how it is. (I am open to feedback, though, from people who actually use the CC mod.)

In the mean time, I'm going to begin researching peripheral support.

Share this post


Link to post
Share on other sites

Hey jakj, I'm not sure if your aware or not but I'll state a bug I've found anyways, if you put a Carriage Engine into Continuous mode while standing on the carriage frame your are unable to escape from the frame unless your brake the engine or the lever, but when you break them the carriage frames and the engine disappear. Just thought I'd give a heads up to that one because I didn't see it located in the known issues.

Using version 0.2.0.0

Share this post


Link to post
Share on other sites

Hey jakj, I'm not sure if your aware or not but I'll state a bug I've found anyways, if you put a Carriage Engine into Continuous mode while standing on the carriage frame your are unable to escape from the frame unless your brake the engine or the lever, but when you break them the carriage frames and the engine disappear. Just thought I'd give a heads up to that one because I didn't see it located in the known issues.

Using version 0.2.0.0

That's because you were still in creative mode: In normal (survival) mode, the block that represents the moving carriage is unbreakable. And yes, if you trigger a continuous-mode engine while you're standing on it and you haven't set up anything to make it stop, it will keep going and trap you. During transit, none of the blocks actually exist, meaning you can't flip levers, you can't break the engine, you can't do anything. This is why you have to explicitly put an engine into continuous mode: It is dangerous.

If you are experimenting with continuous mode, always make sure to put up at least a few dirt pillars around you to stop you if you trigger it prematurely, or even better, try it with continuous-mode motors first, because the motors stay put, and eventually they will run out of carriage to move and will stop.

Share this post


Link to post
Share on other sites

I've started to play with this. It looks really great!

Of course, the first thing I tried to create was a bore.

The main issue I'm having is getting power to the "block breakers" while still having the frame be intact. Is there no way to do this currently?

I'm using the latest version of Applied Energistics, which adds a type of block breaker. The problem is that I need a complete "wall" of frames to attach to the block breakers, but I also need to somehow connect a cable to the block breakers.

So, either AE works, or the Frame works, but I can't figure out a way to get both to work.

AE works:

AEworks.png

Frame works:

FrameWorks.png

If there were a Frame Carriage block that made any block immediately above it act like a Frame Carriage block, this would work.

My current workaround plan is to have a ComputerCraft turtle break / place the AE cables and Frame Carriage block as needed, but that's sub-optimal. :(

So, is there any way to make this work currently? If not, are there any plans in the future that could make this work?

Thanks, keep up the great work!

Share this post


Link to post
Share on other sites

I got a feeling im missing out something really obvious since no one in this thread has occured this issue yet.

The frames/engines/motors just work absolutely randomly. In very rare cases I can move frames once, generally I'm unable to get the frames moving.

The Screenshots show one of many set-ups I tried.

Screenshot 1

Screenshot 2

Why won't the motor switch on? :(

(Btw: Using Version 0.2.0.0)

Update:

Interesting... After switching it on and off a billion times it suddenly worked. Now I broke it down and rebuild it. Again it doesn't work...

Update 2:

Haha, never mind. For no obvious reason my frames started to work as they're supposed to. Sorry about that. I still wonder why it didn't use to work though.

Great work you're doing there :)

Share this post


Link to post
Share on other sites

The main issue I'm having is getting power to the "block breakers" while still having the frame be intact. Is there no way to do this currently?

If there were a Frame Carriage block that made any block immediately above it act like a Frame Carriage block, this would work.

Try using support carriages instead:

zwJ0KdT.png

Support carriages will treat everything above them but not to the sides as part of the carriage. Notice how I have one extra row of block breakers facing up instead of forward, so it can break the ceiling too. What you'll want to do is a stutter-step pattern: Activate it once, and it will break in front of it and above it. Then, you will need to move the carriage up one block and break again, which will clear the blocks that would otherwise block from moving the upward-pointing block breakers. Then, move it down one block again and move forward.

The only issue you'll have to deal with is falling sand/gravel: You'll need to keep activating the block breakers as sand/gravel fall on them until no more falls on them. You'll also have to deal with water/lava falling on you somehow.

Share this post


Link to post
Share on other sites

The frames/engines/motors just work absolutely randomly. In very rare cases I can move frames once, generally I'm unable to get the frames moving.

From the screenshots you posted, I don't see anything that is going wrong. Maybe more detailed screenshots or a video?

Common conditions which can prevent carriages from moving:

  • The signal isn't direct. Sometimes, simple redstone won't work like you might think: Try a redstone block and see if that does, and if so, you'll need to move your redstone.
  • Trying to move carriages directly toward or away from a motor.
  • Forgetting to close the sides of carriages that are touching walls, ceiling, or the ground.
  • Having more than one carriage touching the drive, or having more than one side of the drive getting a redstone signal, at the same time.

Share this post


Link to post
Share on other sites

Thanks for the ideas so far. I believe I obey the rules so far.

Here is a video of my issue.

Thank you for the video: It really helped me to understand what you're doing. However.......what you did works for me. I even tried it while facing different directions in the world, and with different carriage faces open and closed, with redstone blocks and with levers, and it all worked.

The only thing I can suggest now is maybe there's a conflict or corruption somehow? If you try it with a brand-new world, does it still fail? If you try it with no other mods installed except Forge, does it still fail? Which version of Forge are you using? Does your log file ("ForgeModLoader-client-0.log") have any errors in it? (Sometimes it prints out errors that don't actually crash Minecraft.)

Share this post


Link to post
Share on other sites

The Logs don't contain anything interesting.

A new, empty world did not bring any advantages. However on maincraft without any mods it seemed to be working fine.

I manually added railcraft to my tekkit. I removed that mod now and there we go - your mod seems to be working perfectly fine on a new map on tekkit. So apparently there is a conflict with railcraft - tough decision i have to make now ;)

Share this post


Link to post
Share on other sites

Could be those buggy, useless trail blocks which break *Everything*.

They're probably connecting your frames to the ground in their eternal useless crappiness.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.