Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - sulusdacor

#16
rimfire has an option in modsettings to disable guns. maybe it is using a better solution?
#17
Unfinished / Re: WIP[A17] Superior Crafting Revived
January 24, 2018, 06:39:27 AM
for anyone interested a "standalone": http://steamcommunity.com/sharedfiles/filedetails/?id=1279138912
(update of  the old version to b18 by pesky little rascal)
#18
Mods / Re: EPOE and Cybernetic Storm
January 23, 2018, 08:34:59 AM
for pets bionics+prothtics: A dog said
(i dont think there i currently another animal surgery mod out there.)

as for your first question: (have not played cybernetic storm so grain of salt here ;))
if they are compatible you can.
from looking over the description it looks quite similar to epoe. depends really on your playstyle from personal experience i usally end up only using one prosthic mod, and if in the later game, if two different items can be implantent the colonist usally gets simply the better one. i used multiple brain operation mods in the past and ended up only using one.
but thats assuming both add sth similar like epoe and rah's surgery do (if both were compatible).
#19
Mods / Re: Modding induced gaming fatigue
January 23, 2018, 08:19:48 AM
maybe some additions:

- for balancing: spread sheets  ;D

made this for adv power to get a ressource/cost/power ratios and to calculate the costs i wanted. maybe not the most fun way to go about things, but it does the job and you dont just put in super high/low numbers in. for new alphas i just check if sth changed on the base items i used to calcute and then adjust a bit. its a bit of work and thats the reason i only did this for beds/medic stuff at the start and did not update like adv power, but if you don't play much it gives you some average numbers to use in the beginning.
in the end balance depends on mods used and playstyle too. as a modder you can hardly account for all. its a single player game, players can use dev mode etc. i'm usally a bit lax on that if its not super gamebreaking.

- "themed runs"

since the "not played" is quite a problem. i usally do some "themed runs" when playing. i try to get at least one run per alpha in (emphasis on try^^). this is usally ends in a "high tech" colony since i find that the most fun for me. choosing a bit of a theme i feel helps to keep me motivated to play at least a "run". it tends to run out at certain number of colonists and/or boredom, but still gives me some gametime other then testing in devmod+quickstart.
since i pick the mods after that and i end up being more willing to play the colony a bit further. it's usally some good new mods from others and includes a bunch of my mods (for testing balance/bugs). i tend to look around a bit and after the new version is out and see whats new or look at other mods i have not played with. currently stumbeled on the animal mount mod (giddy up) and the mining co spaceship landing pad one. both i simply wanted to give a try myself (curently in progress :P). in the past i did a medieval run, vanilla+only few mods i made, rainforest biome, ocean biome, caves biome, hardcore sk modpack. all usally still include me starting out initally and them restarting a bunch, because i still forgot to add "that one mod" i definitly need for this playthrough. (the star wars ones i still have not tried^^)
(or try another persons modlist, kinda how i started my medieval run)

- watch/listen to some rimworld streams/lp's

maybe not everybodies thing. but i feel it helps to get a bit of another playstyle/view. maybe you even find a streamer/letsplayer that is using your mod and you can get a bit of a feedback/testing this way? maybe someone is doing a fun themed run you want to try or stumble up on a new mod you did not know about? even if played with completly different mods from what you are working on, it gives some insight in the state/balancing of the current rimworld version. so i think this is quite usefull to have in the background form time to time if you don't want to start a colony yourself.

- take a break

at the end, take a break. no matter what you are doing.

for example i did not much in a17, just updating my mods really. i came back and found a bunch of really good new mods that i wanted to test out in b18. so just take a step back. kinda helps the "i could just fix/tweak/adds this"-urge.

cya
#20
Unfinished / Re: WIP[A17] Superior Crafting Revived
January 20, 2018, 04:39:35 PM
this is the version that is posted in the first message of this topic a17 in the github, updated to b18
#21
Releases / Re: [B18] Vegetable Garden Project [1/8/18]
January 20, 2018, 03:31:53 PM
Quote from: dismar on January 20, 2018, 01:29:40 PM
Was there an issue with it? i'm not sure !

the linked textures changed from a16 to a17 from size 256x256 to 320x320 resolution, having some borders basicly. (you still have 64x64 squares.) so you just have to readjust the textures, cutting out the 64x64 pieces and putting them in the new 320x - thats what i did. if you dont that the  256x textures still work (you get no error), but it cuts out borders basicly and looks funky. so technicly no issue in terms of it working properly, but optics matter^^ since i wanted to use the adv hydros in my playthrough and could not stand that, i did that for myself.

for comparison what i mean. i had the problem in with mechanical walls. if you look at the embrasures you see the difference with the missing borders:
256x256: https://i.imgur.com/ehpZbXQ.png
320x320: https://i.imgur.com/vlZx2el.png

otherwise great mod. love vegetable garden and one of the ones i usally use when playing myself. kepp up the good work ;)
cya

#22
Help / Re: Texture Loading Problem
January 20, 2018, 11:48:05 AM
QuoteI think its with the texture I made
if you test/make mods only load stuff you absolutly need. means vanilla+your mod or if you have other mods it wants to add on to and uses items form them, then these. first you should make sure all runs without error before adding "your stuff" ;)

Could not load UnityEngine.Texture2D at Things/Item/DualSword in any active mod or in base resources.
the game looks for Rimworld/mods/yourmodnamefolder/Textures/Things/Item/DualSword.png

make sure:
- your texture path/folder is the right one (compare to vanilla/other mods)
- texture is the right format+size (usally png and most weapons have 64x64 pixels i think)

the vanilla art ressource and the auto xml documentation help alot (both things pinned here in the subforum). you can just look for a melee weapon in vanilla: the texture and then find the xml files path via autodocumentation in your core folder.

in the end i would look for something that does something similar or quite similar to what you want to do - compare and work of it as a preset. the smaller and less complex your preset the better.

good luck :D
#24
Unfinished / Re: WIP[A17] Superior Crafting Revived
January 20, 2018, 11:07:22 AM
#25
Help / Re: XPATH: PatchOperationTest
January 07, 2018, 04:16:23 PM
missing a line in the test section.

quite good introduction to patchoperations,that covers most:
https://gist.github.com/Zhentar/4a1b71cea45b9337f70b30a21d868782
#26
Releases / Re: [B18]Mods Revived - hope all works fine?
January 05, 2018, 07:42:06 AM
Mechanical Defense 2 - mechanical walls




This is just an update of the Mechanical Defense 2 mod from here. the description and all content is taken from there. thanks to the original creator of the mod 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.

>>Mechanical Walls - walls that be raised or lowered to allow access. (Idea courtesy of this post)

Details:

requires MD2 - base

- adds mechanical walls
- adds 1 research projects for the structure

mechanical walls have 3 states: extended (normal wall), embrasure (you can shoot through), lowered (you can walk through).
to switch between the states you need to power them (take 15 power). if they have no power you can not switch!

embrasures fillpercent is set to 0.99 (=99% cover) and they are impassable walls. i did not change the original values.


Note

when they are out of syn and you multiselect you still get a null map error. that is harmless, all still works. simply due to how the toggle effect works.

Author

original mod by mipen

>>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

thx to BrokenValkyrie's help with the code here

updated by sulusdacor


Download

Steamworkshop: http://steamcommunity.com/sharedfiles/filedetails/?id=1258261161

Dropbox: https://www.dropbox.com/s/6h0qlctmlog1yzc/MD2_mechanicalwalls_v1.7z?dl=0

GitHub: https://github.com/sulusdacor/MD2_mechanicalwalls/releases

source code for modders: https://www.dropbox.com/s/wdjzdxb3q5qre2j/MD2_mechanicalwalls_v1_source.7z?dl=0

Version for previous Rimworld versions can be found in my dropbox folder with older mods: https://www.dropbox.com/sh/zicyfuehl0aeta2/AADHVYYYU8yhJ2yUWttwnf1ma?dl=0

How to install:
- Unzip the contents and place them in your RimWorld/Mods folder.
- Activate the mod in the mod menu in the game.

Changelog
personal changelog for mod "MD2 mechanical walls"

- 06/01/2018

- added short description to what the walls are in about file
- fixed the linked textures (style changed form a16 to a17)
- fixed a bit of an issue on the embrasure (2,3 and 2,4 positions in the grid)
where the corner would connect strangely to other straights
(t-conections sideways still seem a bit cut off)

- 20/01/2018

- added modsync

- 03/11/2018

- 1.0 update
#27
Help / Re: md2 mechwall null map error
January 05, 2018, 07:34:29 AM
thx a lot.
i did not even think to look at destroy XD
#28
Releases / Re: [B18] sd Mods - mostly stuff
January 05, 2018, 05:46:01 AM
floorpaint


Description:

"simple shapes to make stuff -> totally necessary to not get your colonists killed!!!!!!"

- adds 1 research paint
- adds item paintbucket
- adds recipe to make paint bucket at stonecutter table
- adds category and in there a bunch of shapes that you need (you can build on top of them like carpet basicly)



Details

you don't really need this mod. just me messing around.


the shapes are all 1x1 "buildings" with no hitpoints (=indestructible). you can deconstruct them, but get nothing back. they can stack on top, but i have no idea in what order and which/why some come out on top and some below.

you should be able to build almost anything on top of them (set to altitude level floor). you can build carpet/floors belwo them.

so yeah have fun planting your decorations in your base or show the raids with arrows where to go^^

Author
sulusdacor

Download
Steamworkshop: http://steamcommunity.com/sharedfiles/filedetails/?id=1258140195

Dropbox: https://www.dropbox.com/s/myqo7jw4fgr2lod/sd_floorpaint_v1.7z?dl=0

GitHub: https://github.com/sulusdacor/sd_floorpaint/releases

Version for previous Rimworld versions can be found in my dropbox folder with older mods: https://www.dropbox.com/sh/zicyfuehl0aeta2/AADHVYYYU8yhJ2yUWttwnf1ma?dl=0


How to install:
- Unzip the contents and place them in your RimWorld/Mods folder.
- Activate the mod in the mod menu in the game.

Changelog
personal changelog for mod "[sd] floorpaint"

- 15/01/2018

- added modsync file

- 09/11/2018

- 1.0 update
- added dragabledimensions
#29
Help / Re: Art learning resource.
January 04, 2018, 01:26:47 PM
the 1% black bg layer is the general solution for the white artifacts around textures most/all modders use. for the soft focus i think it was suggest to me by someone else,when i asked about the white edges. not sure if it is used much. from looking at other modders textures i would think so, but just a guess.

for the filter itself:
in my photoshop there is just a taskbar option with: filters -> soft-focus filters -> soft-focusing (then it does it simply XD)

seems to be a preset filter option. never really thought much about what excatly it does, worked fine so^^. (by googeling: says on another site these gives pixels an average value of adjacent pixels and smoothes out some harsher colors transitions.)

you can probably just use other filters too, to have the same effect. simply blurs it out a bit.

it really is a small change if you look at the attached message table psd file and png and compare them(png has soft focus, psd not). the main thing is that it helps a bit with the outlines, since it blurs the black a bit on the outside. that i think helps the textures alone blend in a bit better in my opinion. the inside loses some details, but i think thats fine.
#30
Help / [solved]md2 mechwall null map error
January 04, 2018, 11:34:16 AM
trying to get the mechanical walls to work with b18 and they do, but still produce a null map error. i'm unsure why so maybe someone can help me there.

i assume it has sth to do with the genspawn line/section. but since the wall/embrasure spawns the map somehow gets used (which confuses me a lot XD). when i tried the public Map one it did not spawn at all. found the vanilla blueprint.TryReplaceWithSolidThing, which uses a bit similar code. the genspawn seems the same to me and the handling of the map variable too. so probably some lack of understanding sth there on my part and would be nice if someone could point that out to me, sicne i don't see it.

below log and code for all.

log (full output log as attachement):
Constructed TargetInfo with cell=(76, 0, 61) and a null map.
Verse.Log:Warning(String)
Verse.TargetInfo:.ctor(IntVec3, Map, Boolean)
MD2_mechwalls.Building_MechWall:DoDustPuff()
MD2_mechwalls.Building_MechWallExtended:ToggleStateOne()
MD2_mechwalls.Building_MechWallExtended:<GetGizmos>b__2()
Verse.Command_Action:ProcessInput(Event)
Verse.GizmoGridDrawer:DrawGizmoGrid(IEnumerable`1, Single, Gizmo&)
RimWorld.InspectGizmoGrid:DrawInspectGizmoGridFor(IEnumerable`1)
RimWorld.MainTabWindow_Inspect:DrawInspectGizmos()
RimWorld.InspectPaneUtility:ExtraOnGUI(IInspectPane)
RimWorld.MainTabWindow_Inspect:ExtraOnGUI()
Verse.WindowStack:WindowStackOnGUI()
RimWorld.UIRoot_Play:UIRootOnGUI()
Verse.Root:OnGUI()


code (full mod file as attachement, base just adds the research tab):
/*
* Created by SharpDevelop.
* User: sulusdacor
* Date: 31.12.2017
* Time: 22:06
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using RimWorld;
using System;
using UnityEngine;
using Verse;
using Verse.Sound;
using System.Collections.Generic;
using System.Runtime.CompilerServices;

namespace MD2_mechwalls
{
[DefOf]
public static class Keys
{
public static KeyBindingDef BuildingOnOffToggle
{
get
{
return Keys.Named("BuildingOnOffToggle");
}
}

public static KeyBindingDef ExtendMechWall
{
get
{
return Keys.Named("ExtendMechWall");
}
}

public static KeyBindingDef ExtendMechEmbrasure
{
get
{
return Keys.Named("ExtendMechEmbrasure");
}
}

public static KeyBindingDef RecessMechWall
{
get
{
return Keys.Named("RecessMechWall");
}
}

public static KeyBindingDef DeactivateDroid
{
get
{
return Keys.Named("DeactivateDroid");
}
}

public static KeyBindingDef FissureGeneratorChangeFissure
{
get
{
return Keys.Named("FissureGeneratorChangeFissure");
}
}

public static KeyBindingDef Named(string defName)
{
return DefDatabase<KeyBindingDef>.GetNamed(defName, true);
}
}

public class Building_MechWallRecessed : Building_MechWall
{
[CompilerGenerated]
private IEnumerable<Gizmo> FabricatedMethod9()
{
return base.GetGizmos();
}

public override IEnumerable<Gizmo> GetGizmos()
{
Command_Action command_Action = new Command_Action
{
action = delegate
{
this.ToggleStateOne();
},
defaultDesc = Translator.Translate("MD2.MechWallExtendWallDesc"),
defaultLabel = Translator.Translate("MD2.MechWallExtendWallLable"),
activateSound = SoundDef.Named("Click"),
// hotKey = Keys.Named("ExtendMechWall"),
disabled = false,
groupKey = 313740010,
icon = Building_MechWall.ExtendIcon
};
yield return command_Action;
command_Action = new Command_Action
{
action = delegate
{
this.ToggleStateTwo();
},
defaultDesc = Translator.Translate("MD2.MechWallOpenEmbrasureDesc"),
defaultLabel = Translator.Translate("MD2.MechWallOpenEmbrasureLable"),
activateSound = SoundDef.Named("Click"),
// hotKey = Keys.Named("ExtendMechEmbrasure"),
disabled = false,
groupKey = 313740011,
icon = Building_MechWall.EmbrasureIcon
};
yield return command_Action;
if (this.FabricatedMethod9() != null)
{
using (IEnumerator<Gizmo> enumerator = this.FabricatedMethod9().GetEnumerator())
{
while (enumerator.MoveNext())
{
Command command = (Command)enumerator.Current;
yield return command;
}
}
}
yield break;
}

public override void ToggleStateOne()
{
if (base.HasPower)
{
// IntVec3 position = base.Position;
Thing thing = ThingMaker.MakeThing(Building_MechWall.MechWallExtended, this.Stuff);
thing.SetFactionDirect(base.Faction);
thing.HitPoints = this.HitPoints;
Map map = base.Map;
this.Destroy(0);
this.DoDustPuff();
GenSpawn.Spawn(thing, Position, map, Rotation);
}
}

public override void ToggleStateTwo()
{
if (base.HasPower)
{
// IntVec3 position = base.Position;
Thing thing = ThingMaker.MakeThing(Building_MechWall.MechWallEmbrasure, this.Stuff);
thing.SetFactionDirect(base.Faction);
thing.HitPoints = this.HitPoints;
Map map = base.Map;
this.Destroy(0);
this.DoDustPuff();
GenSpawn.Spawn(thing, Position, map, Rotation);
}
}
}

public class Building_MechWallExtended : Building_MechWall
{
[CompilerGenerated]
private IEnumerable<Gizmo> FabricatedMethod9()
{
return base.GetGizmos();
}

public override IEnumerable<Gizmo> GetGizmos()
{
Command_Action command_Action = new Command_Action
{
action = delegate
{
this.ToggleStateOne();
},
defaultDesc = Translator.Translate("MD2.MechWallRecessWallDesc"),
defaultLabel = Translator.Translate("MD2.MechWallRecessWallLable"),
activateSound = SoundDef.Named("Click"),
// hotKey = Keys.Named("RecessMechWall"),
disabled = false,
groupKey = 313740009,
icon = Building_MechWall.RecessIcon
};
yield return command_Action;
command_Action = new Command_Action
{
action = delegate
{
this.ToggleStateTwo();
},
defaultDesc = Translator.Translate("MD2.MechWallOpenEmbrasureDesc"),
defaultLabel = Translator.Translate("MD2.MechWallOpenEmbrasureLable"),
activateSound = SoundDef.Named("Click"),
// hotKey = Keys.Named("ExtendMechEmbrasure"),
disabled = false,
groupKey = 313740010,
icon = Building_MechWall.EmbrasureIcon
};
yield return command_Action;
if (this.FabricatedMethod9() != null)
{
using (IEnumerator<Gizmo> enumerator = this.FabricatedMethod9().GetEnumerator())
{
while (enumerator.MoveNext())
{
Command command = (Command)enumerator.Current;
yield return command;
}
}
}
yield break;
}

public override void ToggleStateOne()
{
if (base.HasPower)
{
// IntVec3 position = base.Position;
Thing thing = ThingMaker.MakeThing(Building_MechWall.MechWallRecessed, base.Stuff);
thing.SetFactionDirect(base.Faction);
thing.HitPoints = base.HitPoints;
Map map = base.Map;
this.Destroy(0);
this.DoDustPuff();
GenSpawn.Spawn(thing, Position, map, Rotation);
}
}

public override void ToggleStateTwo()
{
if (base.HasPower)
{
// IntVec3 position = base.Position;
Thing thing = ThingMaker.MakeThing(Building_MechWall.MechWallEmbrasure, base.Stuff);
thing.SetFactionDirect(base.Faction);
thing.HitPoints = base.HitPoints;
Map map = base.Map;
this.Destroy(0);
this.DoDustPuff();
GenSpawn.Spawn(thing, Position, map, Rotation);
}
}
}

public class Building_MechWallEmbrasure : Building_MechWall
{
private IEnumerable<Gizmo> FabricatedMethod9
{
get
{
return base.GetGizmos();
}
}

public override IEnumerable<Gizmo> GetGizmos()
{
new List<Gizmo>();
Command_Action command_Action = new Command_Action
{
action = delegate
{
this.ToggleStateOne();
},
defaultDesc = Translator.Translate("MD2.MechWallExtendWallDesc"),
defaultLabel = Translator.Translate("MD2.MechWallExtendWallLable"),
activateSound = SoundDef.Named("Click"),
// hotKey = Keys.Named("ExtendMechWall"),
disabled = false,
groupKey = 313740010,
icon = Building_MechWall.ExtendIcon
};
yield return command_Action;
command_Action = new Command_Action
{
action = delegate
{
this.ToggleStateTwo();
},
defaultDesc = Translator.Translate("MD2.MechWallRecessWallDesc"),
defaultLabel = Translator.Translate("MD2.MechWallRecessWallLable"),
activateSound = SoundDef.Named("Click"),
// hotKey = Keys.Named("RecessMechWall"),
disabled = false,
groupKey = 313740009,
icon = Building_MechWall.RecessIcon
};
yield return command_Action;
if (this.FabricatedMethod9 != null)
{
using (IEnumerator<Gizmo> enumerator = this.FabricatedMethod9.GetEnumerator())
{
while (enumerator.MoveNext())
{
Command command = (Command)enumerator.Current;
yield return command;
}
}
}
yield break;
}

public override void ToggleStateOne()
{
if (base.HasPower)
{
// IntVec3 position = this.Position;
Thing thing = ThingMaker.MakeThing(Building_MechWall.MechWallExtended, base.Stuff);
thing.SetFactionDirect(Faction.OfPlayer);
thing.HitPoints = base.HitPoints;
Map map = base.Map;
this.Destroy(0);
this.DoDustPuff();
GenSpawn.Spawn(thing, Position, map, Rotation);
}
}

public override void ToggleStateTwo()
{
if (base.HasPower)
{
// IntVec3 position = base.Position;
Thing thing = ThingMaker.MakeThing(Building_MechWall.MechWallRecessed, base.Stuff);
thing.SetFactionDirect(Faction.OfPlayer);
thing.HitPoints = base.HitPoints;
Map map = base.Map;
this.Destroy(0);
this.DoDustPuff();
GenSpawn.Spawn(thing, Position, map, Rotation);
}
}
}

[StaticConstructorOnStartup]
public abstract class Building_MechWall : Building
{
public static readonly Texture2D EmbrasureIcon = ContentFinder<Texture2D>.Get("UI/Icons/Metal", true);

public static readonly Texture2D ExtendIcon = ContentFinder<Texture2D>.Get("UI/Commands/DumpContentsUI", true);

public static readonly ThingDef MechWallEmbrasure = DefDatabase<ThingDef>.GetNamed("MD2MechEmbrasure", true);

public static readonly ThingDef MechWallExtended = DefDatabase<ThingDef>.GetNamed("MechWallExtended", true);

public static readonly ThingDef MechWallRecessed = DefDatabase<ThingDef>.GetNamed("MechWallRecessed", true);

public CompPowerTrader power;

public static readonly Texture2D RecessIcon = ContentFinder<Texture2D>.Get("UI/Commands/RecessWall", true);

private static readonly SoundDef sound = SoundDef.Named("ChunkRock_Drop");

public bool HasPower
{
get
{
return this.power != null && this.power.PowerOn;
}
}

public virtual void DoDustPuff()
{
MoteMaker.ThrowDustPuff(base.Position, Map, 1f);
SoundStarter.PlayOneShot(Building_MechWall.sound,new TargetInfo(base.Position, base.Map, false));
}

public override void SpawnSetup(Map map, bool respawningAfterLoad)
{
base.SpawnSetup(map, respawningAfterLoad);
this.power = base.GetComp<CompPowerTrader>();
}

public abstract void ToggleStateOne();

public abstract void ToggleStateTwo();
}
}


[attachment deleted by admin: too old]