Control Block Overhaul

WhitePaw2002

Aceba1
Jan 7, 2016
1,039
2,428
525
18
North-east America
github.com
Control Blocks : Overhaul Update
Pistons, swivels, rails and more!
Condition based programming!

External links:
-
Update info (Public, please read)
- Bloopers (Patrons only)
- Trello Status
-
Github Branch

This is an extensive rewrite of the Control Blocks mod on TTMM. It changes how pistons and swivels interact with blocks on the grid, and adds more capabilities for controlling how they manipulate them.

For those who do not know what the Control Block mod is, it's a mod () that adds pistons and swivels to the game. Which means that you can have moving parts on your tech. This is all based on a very old suggestion thread that I made when I didn't know anything about modding or modelling.

If you have any suggestions or bugs with this update, please poke me here or on the official TerraTech Discord. This mod is still a work in progress, and I have things planned that might take more time.

This is a separate thread from Control Blocks.
Over the past few weeks, there have been a lot of changes in how pistons and swivels will work:
  • Blocks on a blockmover are no longer individually moved; They are re-parented under a "Cluster body"
    • Cluster bodies are generated as needed, and attached to the blockmover's direct parent through a ConfigurableJoint
      • The joint's anchor is manipulated to push, pull and rotate the cluster body through physics. No more odd turning and shifting
      • Things such as friction and equal/opposite forces affect all bodies properly
      • To prevent bodies from freaking out or appearing softly connected, projection is used to keep it exactly where it should be
      • Joints can become unlocked, allowing for free-moving bodies (physics) as well as Springs / Suspension
        • Cluster-techs™
  • Swivels and Pistons use the same class now, instead of derived types of a base
  • The configurations for pistons and swivels has been replaced with a Process List
    • A series of "If Condition, Do Operation"
      • If Spacebar is pressed, set Position to 1
        If Spacebar is released, set Position to 0
        If RightArrow is held, shift Position by 0.1
        If LeftArrow is held, shift Position by -0.1
        (Example format may not reflect final result)
    • Expandable functionality of individual blocks
    • Copy-paste process lists to other blocks
    • Presets button will be available to load the old configurations identical to before the overhaul please don't hurt me
  • Added Rafs's HE dual sided swivel motor
  • Adding VEN piston, final design undecided
  • Adding BF extendable rail piston

This took a lot more work than I thought it would, trying to find the right solution to a lot of problems. That with Unity API not documenting enough of what I needed out of their physics integration, I'm really grateful that I am finally almost there. Will update with media when the time comes, as well as more details on the Process List.

If you would like to support my shenanigans, please take a look at my Patreon
or, you know, *cough* hire me
The overhaul update is available for public testing!
 
Last edited:

Skihiley

Trying to make NOVA bloccs a thing...
May 8, 2020
108
165
150
13
Last edited:

Thundercraft

Reliable Scrapper
Jan 3, 2018
82
108
435
I really like Control Blocks. Pistons and Swivels add a lot of possibilities to techs.

Anyway: Am I correct in thinking that the "FixedJoint MtMag" joint and "SwivelJoint Large MTMag" joint are from this mod? I was under the impression that it also added several joints.

I don't like seeing modded blocks and parts without an inventory icon. So I spent some time creating them. But then, searching my TerraTech and mod files, I could not find the .JSON related to these to parts (which I'd have to modify to get the game to use the inventory icons I made)...

Attached below are the icons I made. Feel free to use these, even if only as a placeholder. Hopefully, someone reads this who can actually implement them (or at lest tell me how do to so on my local machine). It would be appreciated.
 

Attachments