Allow pipette of any applicable LuaGuiElement

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

Zomis
Inserter
Inserter
Posts: 40
Joined: Fri Apr 21, 2017 7:01 pm
Contact:

Allow pipette of any applicable LuaGuiElement

Post by Zomis »

A lot of mods use LuaGuiElements which are sprite-buttons or choose-elem-buttons to display items, fluids, signals, etc.

It would be very handy for a player to be able to pipette any of those buttons to set their cursor to that item, fluid, or virtual-signal.
Rseding91
Factorio Staff
Factorio Staff
Posts: 15871
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: Allow pipette of any applicable LuaGuiElement

Post by Rseding91 »

They already can - for choose elem buttons. For sprite buttons the widget itself has no idea what the underlying prototype was so it simply doesn't work. It's like trying to pipette a png and expect the game logic to know "this PNG means iron-plate, this one means steam"
If you want to get ahold of me I'm almost always on Discord.
Zomis
Inserter
Inserter
Posts: 40
Joined: Fri Apr 21, 2017 7:01 pm
Contact:

Re: Allow pipette of any applicable LuaGuiElement

Post by Zomis »

I will admit that getting the sprite and converting it to a signal is a bit of a hack, but it's a hack worth making in my opinion. When the sprite path begins with "item/", or "fluid/", etc. then you DO know which the underlying game prototype is.

A choose-elem-button is either clickable and opens up the UI to choose another element, or it is not clickable at all. A lot of utility mods are using sprite-buttons with items, fluids and/or virtual signals.

It's really easy to figure out based on the sprite path if it is something pipettable (item, fluid, or signal), and the value of this would - for me, and I believe for many other players who play with more complicated mods - be massive.

When I play, I want to spend as little time as possible to accomplish what I want. Something that takes a lot of time is switching between mouse and keyboard, and currently this is something that is required to do whenever you need to select a signal for e.g. circuit conditions, inserter filters, or similar.

You might think that "Oh but searching is so quick", but no it isn't. Not when there's a gazillion different things called "tin" (PyBlock) and it's very easy to mistype on the keyboard when switching back and forth between keyboard and mouse.

I highly wish for either this feature or this modding interface feature be implemented. (If that modding interface would be implemented, then I could implement this feature myself in a mod).
Rseding91
Factorio Staff
Factorio Staff
Posts: 15871
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: Allow pipette of any applicable LuaGuiElement

Post by Rseding91 »

There’s a disconnect here: the mod is dealing with that string but when the actual GUI widget is shown on screen it’s using the internal sprite representation which has no string to reference - just the GPU texture and size info.
If you want to get ahold of me I'm almost always on Discord.
Zomis
Inserter
Inserter
Posts: 40
Joined: Fri Apr 21, 2017 7:01 pm
Contact:

Re: Allow pipette of any applicable LuaGuiElement

Post by Zomis »

When the actual GUI widget is shown on screen, sure, it's just using the GPU texture. But when clicking the actual GUI widget, the appropriate mod is informed and has access to the string. Therefore, it is possible to achieve somehow. There is a connection between the actual GUI widget and the mod somewhere, otherwise the GUI widget wouldn't be clickable. Correct?

Alternatively, when the mod passes the string "item/iron-plate" and the GUI sets up the widget, it could be possible to parse the string and lookup if it matches a game prototype, and connect that to the underlying widget. It's just a matter of connecting the string to a prototype - which is possible.

I am confident that it's possible to accomplish this feature request *somehow*.
Post Reply

Return to “Ideas and Suggestions”