Discovery Gaming Community
[FLHook] SolarCntl - Printable Version

+- Discovery Gaming Community (https://discoverygc.com/forums)
+-- Forum: Discovery Development (https://discoverygc.com/forums/forumdisplay.php?fid=7)
+--- Forum: Discovery Developers Forum (https://discoverygc.com/forums/forumdisplay.php?fid=183)
+---- Forum: Discovery Unofficial Development (https://discoverygc.com/forums/forumdisplay.php?fid=389)
+----- Forum: Discovery Mod FLHook Projects (https://discoverygc.com/forums/forumdisplay.php?fid=266)
+----- Thread: [FLHook] SolarCntl (/showthread.php?tid=159987)



[FLHook] SolarCntl - Laz - 04-10-2018

I wonder how much work it'd take to add features to the Playerbase plu-.. Oookaay, that aint' happening.
Time for a redesign.



SolarCntl?
SolarCntl is a plugin which has been in the works for over 7 months by myself, and @Remnant back when he was around. It is intended to eventually replace the current playerbase plugin. Ultimately, the goal was to take what already existed in regards to playerbase operations, and create a framework which the PlayerBase system rests on top of.

The plugin handles spawning in all sorts of solar objects, be it static solars, weapon platforms, jumpholes, or playerbases by thoroughly abusing C++ virtual functions to delegate different features, into each type of object in question.

SolarCntl is being written in an objected oriented fashion, meaning that if any new features are requested, it's very, very easy not only for changes to be made to each piece using the framework, but new pieces to be made completely without very much analysis of existing logic.

This announcement is being made, because the core behind the plugin is reaching completion. I expect the barebones framework to be completed in a day or two of this posting date. Old news.

What does that mean, exactly?
Picture a pancake. It's easy to add butter to the pancake. If you wanted more, you simply place another pancake on top of the buttery pancake below.

Now picture this. A plugin which handles things such as playerbases, where it's rather easy to make tweaks to the code, with how the plugin is designed. But say that you decide that you wanted to make Siege Guns, which aren't exactly like playerbases.
That's just fine! With a new class, and implementation of virtual functions, custom logic can be created for the Siege Gun, and be seamlessly slotted into a list of spawned objects, and have it work without much qualms.

Basically: The rework makes extending the playerbase plugin extremely simple compared to how it is now. New features will no longer be scary to make. Most of the code has also been commented, which means it tells people exactly what it does, making it much more long lasting for future developers.



What does this mean for me?

Right now, this means very little for the user. By the time version 1.0 is released, the plugin will act almost identical to the current base plugin. There will be a few command changes, coupled with some basic additions and changes, like how the shop handles stock limits, for example. Ultimately, you wont notice much of a difference, it'll be like BasePlugin++. A majority of the current plugin has been refactored into code used by the new one.

There are some differences behind the scenes, but ultimately you as a user will notice very little. There will be some new commands and some commands will have new usage / different ways of being implemented. All PoBs will be carried over to the new system and with them all of their modules, equipment, cargo, etc.



It's good at being extended you say? Extended how?

Well, as stated up above, new types of solars with custom logic can be created. Say that you wanted for some reason, a jumpgate which you cannot dock with, but every 10 minutes, you see a large wave of energy come from it, teleporting all of the ships in the radius to a different location. That's something possible through this plugin's framework, without very much extra work. The basic logic already exists for spawned objects. One simply needs to override the logic which they need changed.

In regards to playerbases, perhaps the more relevant aspect to the plugin, the biggest change is going to be truly modular modules. Adding new modules for playerbases is simple. Picture refinery modules, science modules, you name it. New features can be quite literally, slotted into a list, and be made available for all users of playerbases.

What are these modules going to be? Who knows. That's something to look at after we get a 1.0 release out for solarcntl.



How far are you currently with the plugin?

Originally, when this announcement was made, the plugin was in it's early stages. The framework was nearly complete and we just about to make some serious changes and get the entire thing underway. A lot of time has passed since then. Remnant moved on to other things and I took over with this becoming my pain main project. I am not nearly as skilled as he was when it comes down to C++ or programming in general, but using the framework left to me, I've been able to get this plugin into a state that could be considered the "current base plugin++".

There are a few remaining bugs left over that I am working to fix, but other than that, things are almost ready to get reviewed and finalised. There are a lot of new features and changes to take note of, for a list, please see the most recent announcement within this thread.






Project Credits:
@Laz - Hi, it me. I did this.
@Remnant - I literally could not have got anywhere close to where I am with this project without this guy.
@Its Raisu - My trusty little helper. Has called me an idiot when I did things wrong and helped me test loads.


RE: [FLHook] SolarCntl - Laz - 04-16-2018

So a lot has changed and we need a proper update with what's going down. The purpose of this thread is to keep updates clear and concise for my progress on the PoB rework. It allows people to ask question, make proposals for new base modules, base types, base mechanics, or pretty much everything under the sun. It doesn't even have to be specific to player bases, it could be directly related to just solars in general.

At times I might respond with various code related jargon rather than a clear cut answer, but that is because I'm thinking in the way it would fit in with the rest of the plugin. However, ultimately, the only thing you need for me to add it into the plugin is good reasoning and examples of how it can benefit the server environment; whether for PvP, PvE, or otherwise.

The Trello link in the above post is updated rather frequently, and can even accept public comments on the cards. You are more than welcome to post ideas, suggestions, and the like, there, but I would ultimately prefer you to use this thread for such discussions.

If you have a question drop it here. If you want to have a massive discussion on the topic, PM me on Discord ( Laz#9427 ).




RE: [FLHook] SolarCntl - Laz - 11-19-2018

Okay it's time for a bump. This thread is much cleaner that it used to be, but rest assured most of the old suggestions have been documented.

So. This plugin is pretty much complete now. Many people have noticed I wont shut up about it and it's for a good reason. It's a lot nicer to change and make edits to than the current plugin. The plugin just needs some polishing and some bug fixing then it's ready to roll (after a review pass, of course). Considering my recent thread regarding playerbase repairs and siege mechanics, now is a good time to give this thread a revival.

Any solutions we come up with within that thread, and subsequently any suggestions accepted from this thread, will be added to the plugin with post-haste to make it into the 1.0 plugin version. I have edited the above update and announcements, so feel free to give them a read to understand what this thing I don't shut up about is. With that said, I'll write down some of the new features of the plugin then let you all go on with your day.
  • Most modules are now external meaning they have in-space representations. Things like storage modules and such can now be seen in space.
  • These external modules can be given custom names.
  • The shop now has a feature called a buy/sell state, which acts as a flag of whether the PoB will only buy an item, only sell an item, or do both.
  • All bases now have a class value that determines what models/loadouts they will use when deployed and upgraded.
  • An infinite amount of factory modules can now be created by the admins allowing for new factory types to be created on the spot by admins.
  • Like the above, the same goes for recipes.
  • This is also the same for storage modules and defence modules - allowing for SRP only defence platforms of any model/loadout.
  • Different base builder types are now a thing.
  • A stack of irritating PoB bugs are now fixed, I couldn't name them all.
  • A new module type called a Disruption Tower.
  • Modules in space are not just called "Base Name" anymore. They are given a unique name depending on the type of module they belong to.
  • Certain zones can be restricted so player bases cannot be built there.
  • ... probably some other stuff I'm forgetting but will add later.



RE: [FLHook] SolarCntl - DSE|= - 11-22-2018

I think the work done on the PoB's need a bit of time to see how effective it works. Tweak or change as necessary after a period of time. You have done a lot of great work here Laz. It's worth a good period of time to trial.

In the mean time PoB's that do not meet placement as per House Laws should simply be moved at the Admin's discretion to a place that meets that obligation. Discretion also means, for example, a Molly setting up an illegal base against BPA requirements should not necessarily be moved but BPA can siege it. After all. Unlawful means doing unlawful RP.

If the areas that have automatic illegal to build zones active, then that would deal a death blow to temp mining bases.

Just some thoughts.


RE: [FLHook] SolarCntl - Its Raisu - 11-22-2018

(04-10-2018, 06:38 PM)Laz Wrote: Project Credits:
@Laz - Hi, it me. I did this.
@Remnant - I literally could not have got anywhere close to where I am with this project without this guy.
@Its Raisu - My trusty little helper. Has called me an idiot when I did things wrong and helped me test loads.

You forgot to credit the Milkman. Angel