All Aboard!Suggestion

Can we perhaps get an option in the config to spit out an editable chat message when the work cart is triggered by a Brake trigger?  Possibly trigger-dependent so that we can use different messages for different triggers?

Can you provide a little more information about the final experience you are looking to achieve? I appreciate you thinking about how features could be implemented in a modular and reusable fashion, but as the maintainer of the plugin, I need to do the due diligence to think about the features holistically, and to do that, I need as much information as possible about the final desired experience.

It sounds like you want an experience where, when the workcart stops, players within a certain distance will be notified that there is an opportunity to board a workcart.

  • Whether a player is notified could depend on X-Z distance, possibly with a different Y distance tolerance, depending on whether you want to players above a train station to be notified.
  • How a player is notified could be achieved multiple ways. We could send them a chat message, show a temporary UI, play an audio effect directly the player, or play an audio effect from the position of the workcart. Audio effects could possibly be just existing effect prefabs (easy), or could be an audio file to be played.
  • Players could potentially perform actions, such as typing in chat or clicking a UI button to reserve a seat, to delay the workcart from leaving by a few seconds to give players more time to board.

As for how we implement this, I leaning toward simply introducing hooks for when workcarts interact with triggers or reach a stop. An addon plugin could them be implemented to detect those events and notify players. This keeps the base plugin focused on the core functionality. An example of this pattern is the Workcart Card Readers plugin which I have not finalized. You might want to check it out.

https://github.com/WheteThunger/WorkcartCardReaders

Realistically, the possibilities here are sounding kind of extensive, so I don't think I'll be available to implement this. However, if you can find a developer who has time, I can work with them to build this.

Just wanting to spit out a chat message when the train hits the brake trigger, man.  Wasn't that critical, but okay.

dravenmeex

Just wanting to spit out a chat message when the train hits the brake trigger, man.  Wasn't that critical, but okay.

Speaking candidly, I find your message extremely disappointing and discouraging. I was excited about the opportunity that you put forth in this thread, and I began brainstorming multiple solutions. I was even considering putting aside my other planned work for the day to work on it, but it seems that you have decided to end this conversation because of something I wrote.

The purpose of my message was not to discourage you, nor was it a "no". It was to set expectations that this is not necessarily going to be a quick simple addition, and to work with you to find a path forward, which likely will require only a little bit of your time, and lots of my time.

To elaborate on the expectations I think you should have, I cannot simply add features without thinking them through. Any time a feature is added, people may want to add more similar features. If I do not plan and scope carefully, the plugin will eventually become bloated, complex, and difficult to maintain, at which point it will likely need backwards incompatible changes (which will impact existing users) in order to keep maintaining it, else the plugin may simply become abandoned. I have the responsibility as the current maintainer to plan carefully to prevent this plugin from becoming abandoned.

I am still willing to have a conversation with you about this if you decide to change your mind. I do not require that you spend time to think through how other people may want to use the feature, I simply require that you provide me with enough information about the experience you desire, so that I can think about all of the use cases holistically. Also, as general advice, I suggest you don't give up so easily when getting feedback from a developer about an idea you suggest.



Merged post

The design I ended up going with so far is to allow users to associate commands with each trigger, which will be ran every time an automated workcart colliders with the trigger. I've pushed this change to the develop branch on GitHub.

https://github.com/WheteThunger/AutomatedWorkcarts/tree/develop

I also implemented a separate plugin which simply creates a workcart.notify command for notifying nearby players via chat. You can find that plugin on GitHub as well.

https://github.com/WheteThunger/AutomatedWorkcartNotifications