Allow force color to be locked/set

aaron311
Inserter
Inserter
Posts: 21
Joined: Sun Mar 22, 2020 2:30 am
Contact:

Allow force color to be locked/set

Post by aaron311 »

Hi,

This could quite possibly be a bad/terrible idea™ but here goes...

Issue summary:
I'd like to have a way to programmatically set/override a force's color. Or, if that's not possible/easy/advisable, lock it from alteration due to the first player in the force changing.

Details:
At present, a force's "color" appears to be automatically equivalent to the color of the first player member of the force. While this default behavior seems to make sense, there are ways to (ab)use multiple forces in the game such that players switch around to different forces temporarily. When this happens, you get a sort of "light show" where the entity colors in your base keep changing whenever player 1 moves. This can seem buggy/distracting.

Use case:
I'm experimenting with creating a mod that temporarily relocates the player to an alternative (but allied) force along with any entities that have construction requests within the player's roboport range. This effectively allows the player to hit a toggle and make his local roboport service the requests in his immediate vicinity despite possibly the nearby stationary network already trying to service those requests.

Edit: If you want to see what I mean, look for "Tactical Construction" on the mod portal and use it in a multiplayer game. If the first player toggles it on and off you'll see the base colors change around :-)

Thank you for your consideration.
Heinermann
Manual Inserter
Manual Inserter
Posts: 3
Joined: Wed Jul 21, 2021 11:01 am
Contact:

Re: Allow force color to be locked/set

Post by Heinermann »

+1 on this. All the entities in my new script-controlled force are black and there doesn't appear to be a way to change it.
KeepResearchinSpoons
Long Handed Inserter
Long Handed Inserter
Posts: 77
Joined: Tue Dec 01, 2020 6:57 pm
Contact:

Re: Allow force color to be locked/set

Post by KeepResearchinSpoons »

+1
force.default_color to have rw state we could use to set colors of turrets, and the like.


OR, better yet,
a color attribute to a all the turrets :> If nil default to the "force color".


This alone would allow this kind of stuff to go for groups of "discovered" turrets.
vid-with-color-flicker
Turns out you can't do this in mp reliably :> Or even in sp for destinct groups :>

Unless you spam dummy offline players in lan into the map beforehand. For each slot of "turret groups" you want to use.
Feels gross? Yesh it does. Very much so.
You need to escape those dummies to not delete them with player-cleaning on soft-resets? You guessed it.
Is sharing the script to spam-login "dummy-players" over the defined list of names into the headless considered against the terms of use? Probably so.
I won't show you how it is done to prevent the possible harm for both of our parties.

But well, the force.color nil to default to force.players[1].color should be just an easy getter override?
PLEASE, let us fade turret colors around like an old Dracula "bloody-red to black" pulsing cape!
We do want either Force.color or turret.color, pretty please?
Would just be awesome.
Attachments
colorflicker_decoupled.webm
(3.38 MiB) Downloaded 170 times
KeepResearchinSpoons
Long Handed Inserter
Long Handed Inserter
Posts: 77
Joined: Tue Dec 01, 2020 6:57 pm
Contact:

Re: Allow force color to be locked/set

Post by KeepResearchinSpoons »

You know what? I've made you a full proof-of-concept example on how to color turrets.
[edit:] With the current lua only, by populating dummy forces with dummy "core" players.[/edit]
It does not include the framework on how to deal with them further... but... You'll be fine.

Here's the 3 minute youtube vid as a short demo.

For what is worth, you might also want the code.
Here's the lua "playbook" that you can copypaste the lua part from (to get a head-start).
dummy_forces.lua
(11.52 KiB) Downloaded 189 times

here's the tricky zip. (js insied!)
spam_dummies_v1.zip
(5.42 KiB) Downloaded 191 times
It's tricky cuz it is a bit in the gray zone. Kinda on the edge of it.
Well, it auto-connects local "fake" players only, so... should be fine?

Get the zip-version of factorio, unzip it somewhere, edit the path_to_client thing to point to a new unzipped factorio and launch it when ready.
DO NOT POINT IT TO YOUR REAL GAME FOLDER :>
You can then just host a MP world (NOT PUBLIC) and (without password! we have NO option or flag to batch-connect with pass afaik).

You can see that cars and tanks do not change the color via force.
They have "personal color" that you would need to change each time "by-hand".
Guess what? you can't lock it up to a certain color either. So good luck changing the driver color, car's color back and forth :>


All these files are safely licensed to you with Apache-2.0; should Wubes visit the thread, Apache-2.0 is also "safe" as in "not copyleft".
Have fun and let's wait for the force.color together!
(anyone +1? kappa)
aaron311
Inserter
Inserter
Posts: 21
Joined: Sun Mar 22, 2020 2:30 am
Contact:

Re: Allow force color to be locked/set

Post by aaron311 »

Yo!

This feature was added in version 1.1.64. Can a mod move this thread to the 'implemented' folder?
Post Reply

Return to “Implemented mod requests”