[A12C] Mechanical Defence 2 (Update 23 - quick fix)

Started by mipen, November 10, 2014, 03:58:33 AM

Previous topic - Next topic

mipen



Description:
This mod aims to add new and wonderful technologies for your colony to utilise. From autonomous droids to do your every bidding to coal-burning power generators, you'll find all your technological thirsts satiated here! This mod incorporates a modular structure, meaning there are many different independent modules that you can choose from, so that you can play with the features that you want and leave out the ones you don't. Just remember that all modules require MD2Base to be installed and loaded before them in order to work.

Features:
>>Mechanical Walls - walls that be raised or lowered to allow access. (Idea courtesy of this post)
>>Ore extractor - Machine that digs precious metals from the earth. Has a small chance to find rubies which can sell for a good amount  ;)
>>Fissure generator - Machine capable of creating fissure in the earth for the ore extractor to reach the metals buried deep within.
>>Deep Storage Unit - A storage unit that is used to store a large quantity of a type of item.
>>Coal Power - This building burns coal to produce power; simple and effective.
>>Offworld Manufacturing Plant - this system is used to produce goods:
     This is a powerful system which can be used to craft any craftable item in the game. It is very costly to make and takes time to finish construction. First you must build the Manufacturing Control Console, located in the production menu. This building requires power based on the amount of work the manufacturing plant is doing. This building has a command button which will open the main UI for the manufacturing plant. In this menu, click on the "Construct new Assembly Line" button and confirm the dialog. You will need to place the needed resources near a trade-beacon, just as if you were going to trade them. The manufacturing plant will take what it needs from trade-beacons. Once it has acquired the needed materials, it will spend some time finishing the construction of the Assembly Line. This amount of time can be configured in the settings def. While the UI is open, the game is paused. Select the assembly line once it has been built and then click the add recipe button. Search for the recipe you want to complete and then set up the completion mode and number of times you want it completed, then press add. The plant will finish the recipes and then send them down in drop pods to a trade-beacon.
>>Droids:
     -Build your own droids to help in the colony.
     -Droids require power to run. Build droid Charge Pads, and they will go to them when they need to recharge
     -If droids run out of power, their energy cores go critical and they explode! This also happens when the are critically damaged (killed).
     -Most droids are specialised to a specific task; mining, crafting, building, cleaning and hauling.
     - Now includes the crematorius! This hulking monster will roam blasted battlefields and strip the dead - before going on to incinerate the corpses.
     -They can be built at the Droid Assembly - the recipes are unlocked as they are researched.
Big credit goes to Shinzy and jabbamonkey for their awesome jobs on the droids' textures! :D

How to build droids:
To build droids, you must first do the research requirements. The research tree diagram provided with the mod shows what unlocks what. You will also need access to some vanilla work tables: the Electric Smelter, the Stonecutters Table and the Machining Table. Droids require you to produce some circuitry. To make circuitry, you need silicon, which comes from sand. Build a Stonecutters Table and set up a bill to crush rock chunks down into sand. Once you have some sand, build an Electric Smelter and set up a bill to melt down sand into silicon. Build a Machining Table, and set up a bill to combine metal, silver and silicon into some circuitry. The most basic droid requires 20 circuitry, so make a bit of it. When you are ready to build your first droid, construct a Droid Assembly. The recipes for each droid are unlocked after completing the associated research. So researching logistics droids will unlock the recipe in the Droid Assembly. To build a droid, just set up the bill and have the required materials ready! :D

Downloads:

Mechanical Defence 2 now requires Community Core Library to be loaded before it!

You can download the modules from GitHub:
Remember to only grab the latest release and not the master branch.

IMPORTANT:
! Make sure that the load order is correct, or you will experience issues! All modules require MD2Base to be loaded first. MD2 droids requires BackstoriesCore to be loaded before it in addition to MD2Base. If you are having troubles with getting the correct load order, I heavily recommend EdB's Mod Order mod. This is an extremely useful mod to help loading other mods (and in my opinion should be part of the vanilla game).

When updating from a previous version, make sure to delete the old version first. Do not simply overwrite with the new version as this will cause problems!

Licence information:

This mod is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license.

Powered By


A Request:
To anyone willing to give me a hand with textures. Mine are awful and I would greatly appreciate some good-looking work.

Bugs/Suggestions
If you find a bug, please open a new issue on GitHub with [bug] in the title to report it. This will make it much easier for me to track bugs and remember what needs fixing.
Likewise, if you have a suggestion or idea, please open a new issue on GitHub with [suggestion] in the title. This will make it much easier for me to collect everyone's ideas. Thanks!

Credits:
>>Haplo for his great help with crushing some major bugs and his general assistance.
>>Jaxxa and PunisheR007 for the 'Embrasures' code and texture.
>>Shinzy for his work on the droids' textures.
>>mrofa for his textures of the Fissure Generator and Extractor, and the Manufacturing Control Console
>>jabbamonkey for his textures of most buildings and items :D
>>bigmap001 for their work on a Chinese translation
>>Leucetius for updating the mod to A11B, plus some useful additions :D

I will be working continuously to update and add to the mod. If you have any questions, or find any bugs/problems, feel free to let me know in the comments. Any and all feedback is welcome!


Modules mentioned in the changelog require redownloading and updating. If a module isn't mentioned in the changelog for an update, then you don't need to update it! :)
Changelog:

>>Update 23
--MD2Base:
-Quick fix to enable the designators for collecting sand/clay
>>Update 22
--All modules apart from droids:
-Updated to Alpha 12C
-Changed version system to proper semantic versioning (All have now started at 12.0.0)
-All modules now require Community Core Library
>>Update 21
--MD2Droids:
-Merged Leucetius' addition to allow droids to interrupt their current job if they are about to run out of power
>>Update 20
-All modules kindly updated to a11B by leucetius, a massive thanks! :D
>>Update 19
--MD2Base:
-Misc changes.
-Sand is now a buildable floor.
--MD2Droids:
-Fixed bug with droids repairing.
-Medic droids can now rescue and capture people.
-Droids spawn with a numbered name for easier identification.
-A message pops up when a droid is destroyed.
>>Update 18
--All modules:
-Updated to Alpha 11.
--MD2Droids:
-Droids can once again be told to equip weapons.
-Droids can now arrest people.
-Droids can now man things.
-Droids will not equip clothing now.
-Big changes and improvements to the crematorius. It can now be set to butcher or cremate any kind of corpse using a new ITab.
>>Update 17
--MD2Droids:
-Fixed research prerequisite for the droid charger and repair station supplier.
>>Update 16
--MD2Base:
-Misc fixes and changes.
--MD2Droids:
-Changed how backstories are handled. This module now requires BackstoriesCore to be installed.
- Changed intelligence, now droids don't count towards colony count and don't show alerts.
- New droid work settings OTab.
- Added droid power critically low alert.
- Combat droids temporarily broken :(
- Increased droid power usage.
- Decreased droid power storage.
- Added new cleaning droid - small and fast, does nothing but clean.
- Droids now disabled by solar flares, research to protect them against it.
- Droid power usage set in def.
- Droids now have no needs.
- Finished and incorporated droid body def.
- Added droid repair station, accompanying workgiver,  worktype, jobdriver.
- Droids now repaired at repair station.
- Added repair station supplier; to fix missing droid body parts, takes steel.
- Droids now never auto-undraft.
- Added research for repair station.
- Added repair station graphic.
>>Update 15
--MD2Base:
-New coal and charcoal texture.
-Coal now generates naturally, like steel and silver.
-Included bigmap001's Chinese translation.
--MD2Industry:
-Fixed fissure generator save/load issue.
-Fix to fissure generator inspect panel.
--MD2Fortifications:
-Removed research defs that shouldn't have been there.
-Included bigmap001's Chinese translation.
>>Update 14
-MD2Manufacturing:
--Fixed error when trying to create new line
-MD2Droids:
--Fixed droids not doing smithing
--Fixed droids not generating
>>Update 13
-MD2Base:
--Misc changes and fixes
-MD2Droids
--Fixed droids timetables causing bugs. They now spawn with a timetable fully set for work and nothing else. Poor guys!
--Re-enabled the Disable button on droids and changed how it works. Shouldn't cause any bugs now
--Misc changes
>>Update 12
--Updated droids to Alpha 10. May contain bugs, but hopefully not!
>>Update 11
--All modules updated to Alpha 10 except for MD2Droids.
>>Update 10
-MD2Base:
--Sand is now tradeable
-MD2Manufacturing:
--Changed how plant finds recipes to use. By default, it will use any recipe who's work skill is Crafting, Cooking or Artistic. Specific recipes can be blacklisted in the defs
-MD2Industry:
--Added clay collector texture from mrofa
--Extractors now output at different times
--Extractors don't through as many dust puffs
>>Update 9
-MD2Base:
--Misc fixes and adjustments
--Added order to change mud and shallow water terrain to sand terrain
-MD2Industry:
--Moved some things to MD2Base
-MD2Manufacturing:
--Fixed bug when saving caused by assembly lines
>>Update 8
-MD2Storage:
--Changed how Deep Storage buildings work - they now properly show the number of stored items and allow for small volume items (so can store 20x the amount of silver)
>>Update 7
-MD2Base:
--Added clay as a new resource
--Added a designator in 'Orders' to collect clay from mud and shallow water terrains
--Added support for easily adding new designators
--Change most strings in the mod to use keyed language data to allow for translation
-MD2Manufacturing:
--Finished development!
--Added upgrades for assembly lines
--Fixed sculptures not generating a tale
--Increased building cost of control console
--Added research requirement for control console
-MD2Industry:
--Added clay collector, automatic clay collecting machine
>>Update 6
--Many, many fixes for droids
--Added charcoal, which can be made at the Electric Smelter and used for fuel for the coal burner
--Added a designator in the Orders menu which can be used to collect sand from sand terrain
--Manufacturing plant help buttons on most ui pages
--Added texture for manufacturing control console, courtesy of mrofa
--Lots of fixes and changes
>>Update 5
--Droids will now fight fires if they are set to do so.
--Droids AI fixed so that disabling a work type in the overview will disable them from doing it.
--Began implementing settings def for easy customisation of parts of the mod.
--Fixed droid renaming. They will now save their names.
--Various other updates and fixes.
>>Update 4
--Finally managed to update to Alpha 9 after much headache
>>Update 3.0.4
--Added more graphics from jabbamonkey
>>Update 3.0.3
--Added some unique textures for combat droid, medic droid and building droid
--Changed textures of fissure gen and extractor to mrofa's awesome ones
--Fixed crematorius burning animal bodies
--Coal generator now produces heat
--Extractor finding rubies is disabled for now
>>Update 3.0.2
--some small fixes
>>Update 3.0.1
--Fixed some recipes up - droids now require plasteel.
>>Update 3
--Updated the mod to Alpha 8! (Finally).
--Added a Coal Power Generator
--Various tweaks and adjustments
>>Update 2.2.5
--Fixed droids priorities - they will now prioritise the correct jobs in the correct order.
--Increased the amount of metals the extractor produces.
--Decreased the amount of time required to produce a steam geyser - it now takes 5-7 days.
>>Update 2.2.4.1
-- Fixed download.
>>Update 2.2.4
-- Added embrasure option to mechanical walls.
>>Update 2.2.3
-- Extractor is no longer an addon.
-- Extractor now has an interaction square, which is where the materials it produces will be placed.
-- Added support for conveyor mod. Building a conveyor loader next to the Extractor will cause the extractor to output its produce onto the loader instead of the interaction square.
-- Droids can now be renamed and will keep their individual renames.
>>Update 2.2.2
-- Crematorius now has its own texture.
-- Cleaned up droid race def.
>>Update 2.2.1
-- Fixed the ore extractor not saving the selected resource.
>>Update 2.2
-- Added the crematorius - a droid that cremates corpses and can strip them if you so desire. To unlock it, you must have completed the cremation research(vanilla research)
and also the appropriate droid research.
-- Fixed the bug where Mechanical Walls couldn't be deconstructed after having been toggled.
-- Reduced the energy requirement of Mechanical Walls.
>>Update 2.1
-- Added in combat capable droids
-- Increased droid costs
-- New research option required to research droids.
>>Update 2.0.4
-- Fixed droids not consuming power after reloading the game
-- Added ability to be able to set the droids' priorities on tasks
>>Update 2.0.1
-- Fixed some research defs
-- Added in cooking droid
-- Updated research diagram
>>Update 2
-- Added in droids
>>Update 1.2:
-- Ore extractor is now optional and disabled by default. Check the readme on how to install it if you wish to use it.
-- The ore extractor has been nerfed, it now produces much less metal.
-- Added a new way to define what the ore extractor can mine. Check the 'ResourceInfo.xml' file. You can also add materials from other mods using this.
-- Fixed the ore extractor not showing the power controls.
-- Fissure Generator now requires more metal and some plasteel to build, and requires much more work to finish.
--Fissure Generator has a small chance to be damaged while it is operating, also has a miniscule chance to uncover a buried mechanoid centipede while operating.
>>Initial release:
-- Uploaded the first release of the mod.

superiorx

Mipen,
This new mod sounds amazing! "Mechanical Walls"! :D
I'll be trying it out shortly. Thanks for creating some new content for Rimworld.

skullywag

Interested in the deep storage unit. Im not near a pc do cant check the code. Can you just explain how it works in more depth, is it based off of one youve seen here already (haplos?)
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

Wex

Mechanical walls..? Like in a trash compactor..?  8)
A fun new meaning to the word killbox!
"You are not entitled to your opinion. You are entitled to your informed opinion. No one is entitled to be ignorant."
    Harlan Ellison

mipen

Quote from: superiorx on November 10, 2014, 04:12:36 AM
Mipen,
This new mod sounds amazing! "Mechanical Walls"! :D
I'll be trying it out shortly. Thanks for creating some new content for Rimworld.
Thanks :D I read the idea from the linked post, so props to the op from coming up with it. I thought it would be really neat and would fit in well with what I wanted to do :)

Quote from: skullywag on November 10, 2014, 04:18:58 AM
Interested in the deep storage unit. Im not near a pc do cant check the code. Can you just explain how it works in more depth, is it based off of one youve seen here already (haplos?)
They are a rewrite from a mod I made in A5. I have always wanted to add some form of chests into the game, having my resources spread out all over the floor really bugs me! :P Basically it looks at which two spaces it occupies (hard coded to a 2,1 building) and assigns one to be the output slot, and the other to be the input. The whole thing is designated as a storage zone, so pawns will haul what you set it to accept onto it, and items placed on the input slot will be 'stored' (basically destroyed and their stack count added to the internal storage count) the inspection panel shows how much is stored and what it is. The item on the output slot stays where it is, and when some items are taken from the stack it is replenished by the internal storage. If the whole stack is taken, then it creates a new one. I have probably added waaay too many checks to make sure that items aren't wasted (ie too many added to the stack and therefore some destroyed) but I think it's worth it. If the DSU is destroyed, it creates a random percentage of the stored items to be destroyed along with it then spits out the rest( so you want to keep it really safe!). If it is deconstructed then everything is spit out onto the floor. I have a made a method so that it will not put more than one for stack in a cell, and will only place them on available cells. The problem with the way I have done it, is that only one pawn can take from the storage/add to it at a time. I am looking at making a way of have a single cell building that acts as a 'pseudo' resource, and pawns will walk up to it and be given the resources they need, but this requires extensive workgiver and jobdriver coding, which are a real pain because all the core ones are obfuscated so it's hard to know how they work. Ooph sorry for that long winded message :P

mipen

Quote from: Wex on November 10, 2014, 04:29:52 AM
Mechanical walls..? Like in a trash compactor..?  8)
A fun new meaning to the word killbox!
Now that's an idea! Unfortunately mine only go up and down at the moment :( But you have given me a nasty little idea for an execution box >:D

V3cta

Hey mipen. I'm not sure but there was clay in your mod, didn't it? It would be great if it comes back. I loved the graphics of the clay walls. :D
Peace is a lie, there is only passion.
Through passion, I gain strength.
Through strength, I gain power.
Through power, I gain victory.
Through victory, my chains are broken.
The Force shall free me.

skullywag

So is that an individual item type per chest or can it handle more?
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

Matthiasagreen

so raiders will not target these walls when attacking? I have wanted this for a long time ( i called it a secret door). I figure it would be good as a way to get out of your base without having to walk through the killbox, but still have the raiders want to go through it. I will try this on my next game!
Hi, my name is Matthias and I am a Rimworld Addict. It has been five seconds since my last fix...

Haplo

A small hint for the jobdrivers:
Mostly it is overlooked, but Tynan provided a bunch of the basic Jobdrivers with the game. Take a look into the Source folder, specifically the Pawn Ai folders ;)
Also I have a small template for how Jobdriver work in the Source of my Miscellaneous mod.

DracoGriffin

Current Mods (A-Z):
AnimuHair, EdBInterface, Extended Stoneworking, FastFloors, Immersive Pack, kilroy Turret Pack, Modular Tables, MoreHair, MoreHydroponics, PowerSwitch, RecipeNurse, skullywag Pack, SurgeryExtendedAndBionics, Synthmeat, T-Mod Pack

mipen

Quote from: Exampl3 on November 10, 2014, 08:55:49 AM
Hey mipen. I'm not sure but there was clay in your mod, didn't it? It would be great if it comes back. I loved the graphics of the clay walls. :D
Yeah I can add that! I'll probably add it as stuff, so you can use it to build anything

Quote from: Haplo on November 10, 2014, 02:41:07 PM
A small hint for the jobdrivers:
Mostly it is overlooked, but Tynan provided a bunch of the basic Jobdrivers with the game. Take a look into the Source folder, specifically the Pawn Ai folders ;)
Also I have a small template for how Jobdriver work in the Source of my Miscellaneous mod.
Oh, that is really helpful Haplo! Thanks, I'll make sure to look in to that!

mipen

Quote from: skullywag on November 10, 2014, 12:28:17 PM
So is that an individual item type per chest or can it handle more?
Yeah just one type of item per chest. It's meant more of a way of compressing down the thousands of metal I usually end up with haha.

Quote from: DracoGriffin on November 10, 2014, 03:01:23 PM
Looks interesting! Can't wait to try.
Thanks! :D let me know what you think, or if there is anything you you think I should add!

Quote from: Matthiasagreen on November 10, 2014, 02:37:25 PM
so raiders will not target these walls when attacking? I have wanted this for a long time ( i called it a secret door). I figure it would be good as a way to get out of your base without having to walk through the killbox, but still have the raiders want to go through it. I will try this on my next game!
As far as I am aware, when they are extended they will acts as normal walls, so raiders might attack them if they can't find any other path in. When they are recessed they should just act like power conduits - ie things on the floor that aren't targeted and can be stood on/ walked over

Vas

Quote from: mipen on November 10, 2014, 04:34:11 AMThe whole thing is designated as a storage zone, so pawns will haul what you set it to accept onto it, and items placed on the input slot will be 'stored' (basically destroyed and their stack count added to the internal storage count) the inspection panel shows how much is stored and what it is. The item on the output slot stays where it is, and when some items are taken from the stack it is replenished by the internal storage. If the whole stack is taken, then it creates a new one.
Interesting, does this work with trade zones?  So I can build a bunch of these in a single trade zone and store specific items in them?  I'd like to not have to build 10 illogical orbital beacons to trade items.  :P

Quote from: mipen on November 10, 2014, 04:34:11 AMIf it is deconstructed then everything is spit out onto the floor. I have a made a method so that it will not put more than one for stack in a cell, and will only place them on available cells. The problem with the way I have done it, is that only one pawn can take from the storage/add to it at a time.
You do realize, it is possible to stack an item more than it's stack max, right?  I've had this happen with events that spawn an item.  For example, 400 is the Silver max stack, correct?  When I save an outlaw from a bounty hunter on the event, the outlaw drops a stack of 2200 silver in one single slot.  So if the building is destroyed or deconstructed, you can stack all of it, in a single stack rather than spilling it everywhere risking a glitch of no space found.

This might also be one way you can store the items from then on, just let them place the stack on one side, it then adds it to the stack beside it till that stack hits a set number.  Maybe 10x it's default storage. 750 berries, 4000 silver, etc.  or 20 times.  I'm not sure though, the game may possibly have issues with amounts larger than 9999, I don't think it's ever been tested.  You could try and see.  :P  If so, 25x storage of each item's default stack size, would be great for this mod's storage item.




The walls, if they are raised, do they still count as a door?  Would the NPCs go right to them?  Or would they think it is a wall?
Click to see my steam. I'm a lazy modder who takes long breaks and everyone seems to hate.

Dragoon

Quote from: faltonico
I truly can't understand that sense of balancing a LOT of modders have, pouring more resources on something doesn't make it more difficult, but more annoying. It is not engaging, even if i'm swimming in silver at late game ¿why to bother?, why all the effort to get there?.