[B19-B18] Spdskatr's mods | We Factorio now? (20 Jun)

Started by Spdskatr, February 25, 2017, 08:36:57 PM

Previous topic - Next topic

Spdskatr

So uh... hey
This will be where I will release all my future mods, as well as showcase some of the mods I made already. So without further ado
Spdskatr's Mods


















Project RimFactory
Project RimFactoryAutomation, yes.B18 (B19 public beta is out!)
Quality of Life
Damage IndicatorsDamage indicators! They show damage taken.B19
Power
Bigger BatteriesA simple xml mod that adds some compact but harder to build batteries in the game.B19
Bigger FusesAn extension mod of RT Fuse that accommodates for the massive explosion you get when 256000 watt days of power collapse on top of a single conduit. Requires RT Fuse to be loaded before this mod.B19
Lightning RodHarness the power of lightning! Also acts as a counter to thunderstorms, flashstorms and mechanoid bosses that shoot lightning bolts out of nowhere :DB19
Other
Weather DisruptorBuilding that can use orbital beams to stop tornadoes. The tornado incident has been disabled in B19 - the mod will be discontinued in B19.B18
ClocksJust a little mod that adds clocks to display time in 12h format - as well as being more accurateB18
No Rogue RobotsJust a fix to stop pawns with mechanoid flesh type that aren't even from the mechanoid faction spawning in ancient dangers. Useful for the Raiderpede mod!B19
Raiders Can SwimWith this mod, raiders can swim through deep water! But that means your colonists can as well...B18
Researchable Stat UpgradesAdds stat upgrades that can be researched.B19
(WIP) PlasticA long term project to add a variety of plastics to the game. More content coming soon! maybe?A16
Deprecated
Mass StorageAn endgame storage solution for storing up to 2147483647 items of the same kind.B18
Factory FrameworkFramework mod to pull my factory machinery mods together with respect to compatibility. I'm planning on deprecating this in A17.A16
Animal StationsAdds animal stations that can take care of your animals by automatically shearing wool / harvesting milk. Double as feeding boxes.A17
S.A.L.: Station Automation and LogisticsS.A.L, formerly Project S.A.L, adds a building that can automatically craft items at any workbench. It takes the bills from the workbench in front of it and produces the products.A17
Cultivator ToolsAutomatic crop cultivation! Plant growth enhancement solutions!A17




I'll probably be checking this thread most often, so it would be best to put your bug reports, requests, community chest cards etc. here so that I can reply as soon as possible.
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

Spdskatr

#1
SS Clocks



SUMMARY:

Adds 2 types of clocks: AI Clock and Wall Clock

AI Clock:
Displays time in 12h format
Can tell time to the nearest second and tick
Unlocked with shipbuilding basics research

Wall Clock:
Displays time in 12h format
Can tell time to the nearest minute
Unlocked with microelectronics basics research

Also adds 1 item: AI Timekeeper
AI Timekeeper is crafted at the machining table with 50 steel, 25 plasteel, 20 gold and 10 components
Used to make the AI clock

MOD CONFLICTS(For modders):
This mod uses Harmony 1.0.8 prefix on RimWorld.DateReadout.DateOnGUI. The nature of this patch is "destructive" if there are clocks on the map, meaning any other mod that patches the same method probably won't work if there are clocks on the map.

Download - Github(A18) - Steam - Github(All earlier releases)
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

Spdskatr

SS Factory Framework



Framework mod to pull my factory machinery mods together with respect to compatibility. Does not add any new items. Repeat: DOES NOT ADD NEW ITEMS.

This mod is meant to be a dependency for some of my other mods.

Download - Github - Steam
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

Spdskatr

SS Animal Stations

A.K.A Ramsi's Wishlist #9



Adds 2 different machines:

Milker: A 2x2 feeding box for your farm animals, but underneath the box is a complicated set of robotic arms and collecting machinery that harvest animals' milk with minimal invasiveness. Works on any tamed animal(can be from another faction). Can only collect milk.
Milker has an internal refrigeration device which can store 200 units of milk at below zero. Milk will not go bad if machine loses power.

Shearer: A 2x2 feeding box for your farm animals, but underneath the box is a set of robotic arms and shears to shear wool with minimal invasiveness. Drops wool where the animal is standing. Works on any tamed animal(can be from another faction).
Shearer just drops wool on the ground beneath the pawn.

Generic animal harvester: A generic animal harvester, I guess? It can harvest from any animal that has a gatherable body resource. I added it at the request of everyone.

Info for modders:
There should be no mod conflicts (duh it's just a machine).
Also, for A16 users, the mod version stored in the release has the wrong target version label on it (silly me). It's nothing, load the mod everything works

Download - Github(A17) - Steam -
Github(All earlier releases)
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

AngleWyrm

Quote from: AngleWyrm on January 03, 2017, 01:00:05 AM
Please don't use Core+Mod design pattern

  • It creates version incompatibilities.
  • It creates installation headaches.
  • It creates leftover garbage from uninstalled mods.
It was a bad idea, let Minecraft mod community be a lesson learned.
My 5-point rating system: Yay, Kay, Meh, Erm, Bleh

Spdskatr

Quote from: AngleWyrm on March 10, 2017, 05:39:07 PM
Quote from: AngleWyrm on January 03, 2017, 01:00:05 AM
Please don't use Core+Mod design pattern

  • It creates version incompatibilities.
  • It creates installation headaches.
  • It creates leftover garbage from uninstalled mods.
It was a bad idea, let Minecraft mod community be a lesson learned.
Heh, the only reason I made this framework is for this mod and my future mods to be compatible with each other and to work together more smoothly. I see Haplo using it file, but I guess that doesn't mean I will do it well...

The RW modding system has differences from Minecraft though, such as there actually being official modding support (none of that Minecraft Forge nonsense) and therefore version incompatibilities can be solved just a few days after a new release, without needing Minecraft Forge to update first and change all the definitions.

As with installation headaches, I guess...? It's just one mod and if you put it at the top of the list like everyone puts HugsLib (Right?) there shouldn't be a problem.

And here's the trick - Factory Framework is only and will only be a file full of tools and interfaces, and there probably won't be any definitions inside it. This makes the mod incredibly tiny and compact.

If problems come up in the future (or the present) I will deal with them.
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

AngleWyrm

#6
By version incompatibilities I mean that the task of maintaining concurrent versions of both the core and the mod is duplicated on every system that uses the mod, creating the opportunity to get out of sync. By installation headaches I mean that every user must go through the additional process of downloading a second mod for it to work. It's a design flaw of exposing components of a system instead of a complete package.

An improvement would be to use the library of re-usable code internally, and package it in a manner so that it's included in the mod's zip without further interaction. This makes installation and removal a much easier process and eliminates the opportunity for version incompatibilities to arise on user systems as development continues on several different mods.
My 5-point rating system: Yay, Kay, Meh, Erm, Bleh

Lethe

Quote from: AngleWyrm on March 11, 2017, 08:05:36 AM
By version incompatibilities I mean that the task of maintaining concurrent versions of both the core and the mod is duplicated on every system that uses the mod, creating the opportunity to get out of sync. By installation headaches I mean that every user must go through the additional process of downloading a second mod for it to work. It's a design flaw of exposing components of a system instead of a complete package.

An improvement would be to use the library of re-usable code internally, and package it in a manner so that it's included in the mod's zip without further interaction. This makes installation and removal a much easier process and eliminates the opportunity for version incompatibilities to arise on user systems as development continues on several different mods.

Version incompatibles can occur anyways, which ever method he/she chooses to use. At the end of the day either the mod author or the user will have to make sure the 'core' library is updated for each mod, whether it's standalone or separated, and the end user would still have to keep multiple things updated for compatibility reasons (if using more than 1 mod of the future series).

Standalone doesn't mean it's in a sealed vacuum and it won't affect other mods he/she is planning on releasing. Quite the opposite in fact; just look at Harmony. Harmony is built into various mods and is not updated by its end users, however some old versions of Harmony are not playing well at all with newer releases of Harmony. Until the mod authors all update their standalone built in copies of Harmony there's going to be problems. :\ End user can't much about it.

Your gripe makes sense if a user is just using 1 of their mods out of like, oh let's say 5 they're planning on developing on their core system. Sure, for that one user updating 2 things instead of one is a slight bit more work, however, in the scenario a user is using like 3 of the 5 related mods then instead of a user installing 3 mod updates when/if the library is updated then they only have to download 1, the core.

I believe it's a reasonable expectation to have more updates for bugs/issues/fixes for the core than the actual mods themselves that use the core. For example let's say Spdskatr's SS fuses and batteries used the same core. Neither of these mods are really heavily in development, they're more of a 'Ok, mod added bigger batteries/fuse compatibility. It works. Done.' They're more like mods that get updated every like 2-3 months on their own. The core would contain things that would contain the more complex things that break/broken and be worked on more frequently (gui issues, etc).

Sure, if Rimworld's mods all unnecessarily started using cores then yeah, it'd be a huge pain. Occasionally the situation warrants it useful though.

Um, when you say it creates garbage from uninstalling mods... Some mods are not meant to be uninstalled from an ongoing game, others are meant for new games only. Tbh, it seems like you shouldn't really be trying to remove a ton of mods from ongoing games. Bulk Meal's removal from steam broke people's saves. All that mod does is add the ability to make 4, or 5, meals at once at a stove instead of 1 by 1. The main game is also in alpha. Shrugs. It seems removing mods is way riskier than adding them or leaving them in play. [If the mod isn't causing problems that is.]

Spdskatr

#8
The funny thing is, my intermediate mod references very little to the Verse namespace. Only two classes without any mention of their methods or fields. Further, the entire C# file is only 2 kb! I've known the pandora's box I may have opened for a while so I've tried to make the mod as simple as possible on my side while retaining its use. Also, I doubt those classes I referenced are ever gonna change name.

P.S. Guess what the maintainability index is. (Hint: Higher than 99.99) I've also attached an image of Visual Studio's code metrics breakdown. I'd say it would be pretty easy to fix anything wrong. :P

EDIT: Changed in newest version, patches a resource readout bug
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?

RawCode

do not follow advises of random people, it won't make you any good.

lib\shared data + mod is perfectly fine and actually recommended way, if shared method is faulty, you replace single mod - library and problem solved.

if you copypaste your code around, you will need to manually fix same code N times (and you may forget few places in process) and update all and every mod, making lots of useless work.

AngleWyrm

#10
Quote from: RawCode on March 12, 2017, 12:58:17 AM
if you copypaste your code around, you will need to manually fix same code N times

That doesn't happen in java, because such tasks are automated through scripting languages such as ant or gradle. I don't know about C# and the capabilities of it's IDEs.

Quote from: Lethe on March 11, 2017, 05:02:43 PM
Standalone doesn't mean it's in a sealed vacuum and it won't affect other mods he/she is planning on releasing. Quite the opposite in fact; just look at Harmony. Harmony is built into various mods and is not updated by its end users, however some old versions of Harmony are not playing well at all with newer releases of Harmony.

Are you saying that C# doesn't support making libraries private to a mod?
My 5-point rating system: Yay, Kay, Meh, Erm, Bleh

RawCode

statically linked libs are still part of assembly and still loaded, you "suggestion" is about "loading same code N times", please tell us is providing JVM (of random version) with your java application OK?

AngleWyrm

#12
Quote from: RawCode on March 12, 2017, 11:57:07 PM
statically linked libs are still part of assembly and still loaded, you "suggestion" is about "loading same code N times", please tell us is providing JVM (of random version) with your java application OK?
  • I assume you don't mean to suggest that C# creates a virtual machine for every mod.
  • Here is a library I included in a series of MineCraft mods, which extends the default RNG to include the ability to return a random heading and also an integer from the set {common, uncommon, rare, ... } to any desired level of detail. It takes up almost no space and worked fine for me.
  • Contrary to popular belief, updating the code used by several mods can break one or more of the mods that depend on it. A problem such multiple dependencies creates is the illusion of not needing to test each combination. Thus the rebirth of the saying If it ain't broke, don't fix it.
My 5-point rating system: Yay, Kay, Meh, Erm, Bleh

RawCode

please read article about "DLL hell" and special cases of that issue (jar hell, lib hell and so on), thx.
and don't assume for other people, this is unsmart.

Spdskatr

#14
*ahem*
SS Mass Storage

====DESCRIPTION====
SS Mass Storage is an endgame storage solution for storing up to 2 147 483 647 items of the same kind which couldn't possibly fit in any stockpile. It sucks items from the stockpile it is in and adds it to its internal storage.

Like a Deep Storage Unit in Minecraft, it can internally store up to exactly 2 147 483 647 items. It can also store 300 items on top of itself, making it 2 147 483 947 items altogether.

It consumes 100W power when idle, 300W power with 10 items stored, 900W with 100, 2700W with 1000 items, 8100W with 10 000 items etc.

====RESEARCH====
This is NOT an earlygame item. It is a transcendent research after Shipbuilding Basics. Also, its power consumption cumulatively increases as more items are stored in it.

====HOW TO USE====
After research, place building on top of stockpile. Then, set its storage settings. It will proceed to suck in any items that you have allowed into itself.

You can see how many items are stored internally by selecting it.

====MOD CONFLICTS====
None. (duh it's just a machine)

Download - Github(B18) - Steam - Github(All earlier releases)
My mods

If 666 is evil, does that make 25.8069758011 the root of all evil?