<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Object Cleanup</title><link>https://sourceforge.net/p/semaintenanceutility/wiki/Object%2520Cleanup/</link><description>Recent changes to Object Cleanup</description><atom:link href="https://sourceforge.net/p/semaintenanceutility/wiki/Object%20Cleanup/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 29 Jul 2014 00:55:22 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/semaintenanceutility/wiki/Object%20Cleanup/feed" rel="self" type="application/rss+xml"/><item><title>Object Cleanup modified by Davo Mac</title><link>https://sourceforge.net/p/semaintenanceutility/wiki/Object%2520Cleanup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -53,7 +53,7 @@

 This means that by just reading the save, it's not easily possible to check that out. Until it can be worked out how to map those joints, all objects that have a joint on them will never be removed for fear of breaking things.

-This can be ignored by using [--ignore-joints] but by using it, you accept the fact that it will likely produce 1-ended joints with parts of an object cluster being removed while others remain.
+This can be ignored by using [--ignore-joint] but by using it, you accept the fact that it will likely produce 1-ended joints with parts of an object cluster being removed while others remain.

 Examples
 ----------
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davo Mac</dc:creator><pubDate>Tue, 29 Jul 2014 00:55:22 -0000</pubDate><guid>https://sourceforge.neted080f86a7732c270226f72fdb6ad1de37e7fdfd</guid></item><item><title>Object Cleanup modified by Davo Mac</title><link>https://sourceforge.net/p/semaintenanceutility/wiki/Object%2520Cleanup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -7,7 +7,7 @@
 + [--cleanup-include-solar]
 + [--cleanup-missing-attrib]
 + [--cleanup-missing-subtype]
-+ [--ignore-joints]
++ [--ignore-joint]

 Unpowered
 ---------
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davo Mac</dc:creator><pubDate>Tue, 29 Jul 2014 00:55:02 -0000</pubDate><guid>https://sourceforge.net4274c1aaf97910f8c319a94fb65681d04e65c2bc</guid></item><item><title>Object Cleanup modified by Davo Mac</title><link>https://sourceforge.net/p/semaintenanceutility/wiki/Object%2520Cleanup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -3,11 +3,11 @@
 If a cleanup is to be run, SEMU will loop through the SectorObjects and when it hits a CubeGrid (e.g. a space station or ship), it'll run a check to see if it should be removed.

 The following commands are involved with a cleanup;
-* [--cleanup-unpowered]
-* [--cleanup-include-solar]
-* [--cleanup-missing-attrib]
-* [--cleanup-missing-subtype]
-* [--ignore-joints]
++ [--cleanup-unpowered]
++ [--cleanup-include-solar]
++ [--cleanup-missing-attrib]
++ [--cleanup-missing-subtype]
++ [--ignore-joints]

 Unpowered
 ---------
@@ -26,6 +26,8 @@

 You can force the matter using [--cleanup-include-solar], but it won't check to see if it's working so you run the risk of having dead objects with dead solar panels floating about.

+When used with the Subtypes / Attrib cleanup commands, it will be an AND comparison. Even if an object matches the required attribs or subtypes, if it doesn't have power, it's going to be removed. Likewise, if it has power but doesn't have at least one of the required attribs or subtypes, it will still be removed.
+
 Attributes and Subtypes
 -------------------------------
 [--cleanup-missing-attrib], [--cleanup-missing-subtype]
@@ -39,6 +41,12 @@

 These two commands work together. E.g. if you've got a set of required attributes and subtypes and an object has the subtypes but not the attributes, it's still safe because it's got at least one of the required subtypes.

+**Attributes**
+DO THIS LIST
+
+**Subtypes**
+DO THIS LIST
+
 Joints
 -------
 Joints include motors (rotors and stators) and pistons (pistontops and pistonbases). Unfortunately, SE has stopped recording joint entities in the saves and the joints themselves are calculated when the game loads. If a rotor is really close to a stator when the save is loaded, it will join them.
@@ -46,3 +54,14 @@
 This means that by just reading the save, it's not easily possible to check that out. Until it can be worked out how to map those joints, all objects that have a joint on them will never be removed for fear of breaking things.

 This can be ignored by using [--ignore-joints] but by using it, you accept the fact that it will likely produce 1-ended joints with parts of an object cluster being removed while others remain.
+
+Examples
+----------
+Nice and easy, if it's not powered, remove it.
+--cleanup-unpowered
+
+Want all objects to have a powered beacon to survive?
+--cleanup-unpowered --cleanup-attrib MyObjectBuilder_Beacon
+
+Want to keep things that have power providers, even if they're dead?
+--cleanup-attrib MyObjectBuilder_Reactor MyObjectBuilder_BatteryBlock MyObjectBuilder_SolarPanel
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davo Mac</dc:creator><pubDate>Tue, 29 Jul 2014 00:54:37 -0000</pubDate><guid>https://sourceforge.net2da77540045f35ed0d28dc540375cb1c5e5ad3bf</guid></item><item><title>Object Cleanup modified by Davo Mac</title><link>https://sourceforge.net/p/semaintenanceutility/wiki/Object%2520Cleanup/</link><description>&lt;div class="markdown_content"&gt;&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#unpowered"&gt;Unpowered&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#why-skip-solar-panels-by-default"&gt;Why skip solar panels by default?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#attributes-and-subtypes"&gt;Attributes and Subtypes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#joints"&gt;Joints&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;If a cleanup is to be run, SEMU will loop through the SectorObjects and when it hits a CubeGrid (e.g. a space station or ship), it'll run a check to see if it should be removed.&lt;/p&gt;
&lt;p&gt;The following commands are involved with a cleanup;&lt;br /&gt;
&lt;em&gt; &lt;a class="alink" href="/p/semaintenanceutility/wiki/--cleanup-unpowered"&gt;[--cleanup-unpowered]&lt;/a&gt;&lt;br /&gt;
&lt;/em&gt; &lt;a class="alink" href="/p/semaintenanceutility/wiki/--cleanup-include-solar"&gt;[--cleanup-include-solar]&lt;/a&gt;&lt;br /&gt;
&lt;em&gt; &lt;a class="alink" href="/p/semaintenanceutility/wiki/--cleanup-missing-attrib"&gt;[--cleanup-missing-attrib]&lt;/a&gt;&lt;br /&gt;
&lt;/em&gt; &lt;a class="alink" href="/p/semaintenanceutility/wiki/--cleanup-missing-subtype"&gt;[--cleanup-missing-subtype]&lt;/a&gt;&lt;br /&gt;
* &lt;span&gt;[--ignore-joints]&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="unpowered"&gt;Unpowered&lt;/h2&gt;
&lt;p&gt;The unpowered cleanup is basically what it says. It'll clean up objects that don't have;&lt;br /&gt;
1. an enabled reactor with fuel in it or&lt;br /&gt;
2. a battery that is charged and either set to discharge or semi-auto&lt;br /&gt;
3. if the &lt;a class="alink" href="/p/semaintenanceutility/wiki/--cleanup-include-solar"&gt;[--cleanup-include-solar]&lt;/a&gt; has been used, enabled solar panels&lt;/p&gt;
&lt;h2 id="why-skip-solar-panels-by-default"&gt;Why skip solar panels by default?&lt;/h2&gt;
&lt;p&gt;It's nice and easy to detect the existence of a solar panel, it's rather difficult to check if it's powered or not.&lt;/p&gt;
&lt;p&gt;To make that determination, it's orientation to the sun would need to be calculated and checks to see if the sun is being blocked need to be made, either blocked by itself or another object.&lt;/p&gt;
&lt;p&gt;Doing this purely from the save file is next to impossible and a world simulation would likely be required, which would be overkill just to check if a solar panel was being powered.&lt;/p&gt;
&lt;p&gt;You can force the matter using &lt;a class="alink" href="/p/semaintenanceutility/wiki/--cleanup-include-solar"&gt;[--cleanup-include-solar]&lt;/a&gt;, but it won't check to see if it's working so you run the risk of having dead objects with dead solar panels floating about.&lt;/p&gt;
&lt;h2 id="attributes-and-subtypes"&gt;Attributes and Subtypes&lt;/h2&gt;
&lt;p&gt;&lt;a class="alink" href="/p/semaintenanceutility/wiki/--cleanup-missing-attrib"&gt;[--cleanup-missing-attrib]&lt;/a&gt;, &lt;a class="alink" href="/p/semaintenanceutility/wiki/--cleanup-missing-subtype"&gt;[--cleanup-missing-subtype]&lt;/a&gt;&lt;br /&gt;
Using these commands, you can specify what objects are required for an object not to be cleaned up. &lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;Subtype&lt;/strong&gt; is a definition of what kind of block it is. E.g. LargeHeavyArmorBlock&lt;/p&gt;
&lt;p&gt;An &lt;strong&gt;Attribute&lt;/strong&gt; is a special tag given to some XML nodes of blocks within CubeGrids and could also be called Categories. Whereas you could use the subtypes "LargeBlockLargeReactor", "LargeBlockSmallReactor", etc... you can just the attrib "MyObjectBuilder_Reactor" which encompasses all reactors.&lt;/p&gt;
&lt;p&gt;The list of attribs &amp;amp; subtypes are an OR comparison. So as long as the object has at least one block that matches the given attributes or subtypes, it will be marked as OK.&lt;/p&gt;
&lt;p&gt;These two commands work together. E.g. if you've got a set of required attributes and subtypes and an object has the subtypes but not the attributes, it's still safe because it's got at least one of the required subtypes.&lt;/p&gt;
&lt;h2 id="joints"&gt;Joints&lt;/h2&gt;
&lt;p&gt;Joints include motors (rotors and stators) and pistons (pistontops and pistonbases). Unfortunately, SE has stopped recording joint entities in the saves and the joints themselves are calculated when the game loads. If a rotor is really close to a stator when the save is loaded, it will join them.&lt;/p&gt;
&lt;p&gt;This means that by just reading the save, it's not easily possible to check that out. Until it can be worked out how to map those joints, all objects that have a joint on them will never be removed for fear of breaking things.&lt;/p&gt;
&lt;p&gt;This can be ignored by using &lt;span&gt;[--ignore-joints]&lt;/span&gt; but by using it, you accept the fact that it will likely produce 1-ended joints with parts of an object cluster being removed while others remain.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Davo Mac</dc:creator><pubDate>Tue, 29 Jul 2014 00:36:09 -0000</pubDate><guid>https://sourceforge.net18ea899d27ca6b887f94f9282d4467394618b43a</guid></item></channel></rss>