[A14] Miniaturisation - Mod support

Started by syntax1993, July 24, 2016, 10:00:56 AM

Previous topic - Next topic

syntax1993

notfood made this mod into a dll which fixes the issues that were happening with this xml-based mod. Please download his version here. It's crazy easy to add mod support.


Description:
Enables core game mechanics of miniaturisation for more than just furniture.
This means you can move workbenches like you would move a chair.

This mod can be used by itself and does not require the original mod although it is recommended. Without the original mod, you will only be able to move the mod-specific workbenches and not the vanilla ones.

Suggestions are always welcome, I'll see what I can do. Heck, you might even be able to ask the mod maker to include it themselves.

The original mod was created by hwfanatic (https://ludeon.com/forums/index.php?topic=20619.0). I simply modified it to support the mods below:

Download
Changelog EPOE
[25/07/2016] - Changed so this only supports the EPOE workbenches. Download the original mod to be able to move vanilla workbenches
[24/07/2016] - Changed forums link
[24/07/2016] - Initial upload


Changelog Craftable Medicines
[25/07/2016] - Initial upload

License
Can modpack makers include your mod in their modpack? Yes.
Can other modders make derivative mods based on yours? Yes.

Credits
Modders
Expanded Prosthetics and Organ Engineering by Ykara
Craftable Medicines by Anonemous2

Inspiration
Bucketsmith

Hargut

Hi,

whats the load order ?

I get some error messages about this mod. (not with the original one)

syntax1993

Quote from: Hargut on July 24, 2016, 04:58:42 PM
Hi,

whats the load order ?

I get some error messages about this mod. (not with the original one)
For me, this mod loads as the very last. It has to be after EPOE.
I will be changing it so that this is sort of an extension to the original Miniaturisation mod, where you would need the original mod for this to work.

So as of right now, disable the original Miniaturisation mod and enable this one.

SURU

Imho mod like this should be implemented in basic game. You should have a possibility for moving tables, items or something like that without smashing it with hammer.. It really annoying me when i have to deconstruct and construct again items when i put it 1 square wrong. Argh, thanks for mod.
CraPC: AMD Phenom X3 8750 | Club 3D Radeon 7770 | Gigabyte GA-MA770-DS3 | 4GB RAM DDR2 2x2GB Kingston
Don't go this way!

syntax1993

Quote from: SURU on July 25, 2016, 04:09:26 AM
Imho mod like this should be implemented in basic game. You should have a possibility for moving tables, items or something like that without smashing it with hammer.. It really annoying me when i have to deconstruct and construct again items when i put it 1 square wrong. Argh, thanks for mod.
It indeed should be in the vanilla game. I will probably be making this mod a bit smaller by making it as a sort of addon mod for the original one (since he deserves most/all credit). Perhaps even create some more addons for other mods, so you would only need the base + the addons for the mods you use.

syntax1993

Quote from: Hargut on July 24, 2016, 04:58:42 PM
Hi,

whats the load order ?

I get some error messages about this mod. (not with the original one)

Try it now. I've updated it to be some sort of addon (you don't actually need the original mod, nothing I can do about that). This means you need the original mod to move vanilla workbenches and mine to move EPOE specific workbenches.

kaptain_kavern

If you put the "<minifiedDef>MinifiedFurniture</minifiedDef>" in :

<ThingDef Name="BenchBase" ParentName="BuildingBase" Abstract="True">
    <castEdgeShadows>true</castEdgeShadows>
    <staticSunShadowHeight>0.20</staticSunShadowHeight>
  </ThingDef>


any benches (modded or not) that use ParentName="BenchBase" without redefine/overwrite the Parent class will inherit the minified tag.

That something i do in my computer, never wanna realease because of the already existing one. In fact that's how it's coded in vanilla for furnitures

  <ThingDef Name="FurnitureBase" ParentName="BuildingBase" Abstract="True">
    <comps>
      <li>
        <compClass>CompQuality</compClass>
      </li>
    </comps>
    <DesignationCategory>Furniture</DesignationCategory>
    <minifiedDef>MinifiedFurniture</minifiedDef>
    <tradeTags>
      <li>Furniture</li>
    </tradeTags>
  </ThingDef>


That way your mod can become the miniaturisation mod that handle modded stuff if loaded first ;)

On an other hand, i find it nice to see you "reduce" your mod in order to respect/credit the original modders. I'm sure you will find lots of ideas about things to mod (look here in the forum, people often request mods/suggest mod idea and some very old dead/abandoned mods just wait for someone to revive them :p )

Cheers

syntax1993

Quote from: kaptain_kavern on July 25, 2016, 11:27:37 AM
If you put the "<minifiedDef>MinifiedFurniture</minifiedDef>" in :

<ThingDef Name="BenchBase" ParentName="BuildingBase" Abstract="True">
    <castEdgeShadows>true</castEdgeShadows>
    <staticSunShadowHeight>0.20</staticSunShadowHeight>
  </ThingDef>


any benches (modded or not) that use ParentName="BenchBase" without redefine/overwrite the Parent class will inherit the minified tag.

That something i do in my computer, never wanna realease because of the already existing one. In fact that's how it's coded in vanilla for furnitures

  <ThingDef Name="FurnitureBase" ParentName="BuildingBase" Abstract="True">
    <comps>
      <li>
        <compClass>CompQuality</compClass>
      </li>
    </comps>
    <DesignationCategory>Furniture</DesignationCategory>
    <minifiedDef>MinifiedFurniture</minifiedDef>
    <tradeTags>
      <li>Furniture</li>
    </tradeTags>
  </ThingDef>


That way your mod can become the miniaturisation mod that handle modded stuff if loaded first ;)

On an other hand, i find it nice to see you "reduce" your mod in order to respect/credit the original modders. I'm sure you will find lots of ideas about things to mod (look here in the forum, people often request mods/suggest mod idea and some very old dead/abandoned mods just wait for someone to revive them :p )

Cheers

Thank you. The thing is, it works for the EPOE mod but I just added the Crafting Medicines and their workbench derives from their own BuildingBase. If only it would be consistent, this would indeed be a lot easier.

I've been looking into simply defining the Def and only overriding (or adding in this case) a single value but it seems it doesn't work that way. For some reason, it overrides the whole object.

I'll have a look at the suggestions, although I doubt I'll have the time or experience to make something (actually complex, not like this) myself.

skullywag

Can mods reference abstract classes in other mpds if loaded after? It only kind of works with some classes in core from what i know.
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

syntax1993

Quote from: skullywag on July 25, 2016, 12:56:00 PM
Can mods reference abstract classes in other mpds if loaded after? It only kind of works with some classes in core from what i know.

That's a good question... I wonder too.

kaptain_kavern

Yes you have to redefine it for each mods, right?

syntax1993

Quote from: kaptain_kavern on July 25, 2016, 03:29:10 PM
Yes you have to redefine it for each mods, right?

Yep. Will be trying to find a good solution in the future, but I don't want to make all items able to move. Moving a steel wall would be weird.

BaconBits

#12
I'm not a 100% sure it's your mod, but, I keep getting these errors:

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

Could not resolve cross-reference to Verse.RecipeDef named CreateJoywire

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

Could not resolve cross-reference to Verse.RecipeDef named CreatePainstopper

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

Cannot call ItemFromXmlFile with resolveCrossRefs=true while loading is already in progress.

I made sure before I posted that I had your latest update and I do. I have you mod after EPOE and both mods are very last in the mod order. When I take your mod out the errrors go away.

Any Ideas?

syntax1993

#13
Quote from: WolfKing on July 28, 2016, 06:26:36 PM
I'm not a 100% sure it's your mod, but, I keep getting these errors:

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

Could not resolve cross-reference to Verse.RecipeDef named CreateJoywire

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

Could not resolve cross-reference to Verse.RecipeDef named CreatePainstopper

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

Cannot call ItemFromXmlFile with resolveCrossRefs=true while loading is already in progress.

I made sure before I posted that I had your latest update and I do. I have you mod after EPOE and both mods are very last in the mod order. When I take your mod out the errrors go away.

Any Ideas?

Are there any more errors? I'm looking at this part in the TableSynthetics workbench:

    <recipes>
        <li>CreateAIChip</li>
        <li>CreateJoywire</li>
        <li>CreatePainstopper</li>
        <li>CreateSyntheticLung</li>
        <li>CreateSyntheticHeart</li>
        <li>CreateSyntheticKidney</li>
        <li>CreateSyntheticStomach</li>
        <li>CreateSyntheticLiver</li>
    </recipes>


It would seem weird that it only throws errors on two of these items, which is why I'm asking.

The workbench contains the references to the recipes, and the recipes are defined in the EPOE mod (I downloaded the latest EPOE and checked whether something changed but not as far as I can see).

EDIT: Can you also make sure you're running the latest version (1.71) of EPOE? Perhaps also provide the other mods you are running.

eberkain

Anyone want to make one for Colony Manager?  There are several workbenches that you can't relocate with that mod.