Standalone exported

This commit is contained in:
AbstractConcept 2022-09-25 23:10:41 -05:00
parent 1e2c4fa6bf
commit 7e1680a7fb
605 changed files with 2169 additions and 3312 deletions

View file

@ -0,0 +1,137 @@
fileFormatVersion: 2
guid: e60958662eed5413d86143a0a69b731e
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude WebGL: 1
Exclude Win: 0
Exclude Win64: 0
Exclude WindowsStoreApps: 1
Exclude iOS: 1
- first:
: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
OS: AnyOS
- first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: Windows
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: LinuxUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXIntel64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 1
settings:
CPU: x86
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: x86_64
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
DontProcess: false
PlaceholderPath:
SDK: AnySDK
ScriptingBackend: AnyScriptingBackend
- first:
iPhone: iOS
second:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,92 @@
fileFormatVersion: 2
guid: 110fdfb459db4fc448a2ccd37e200fa4
folderAsset: yes
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux64: 1
Exclude OSXUniversal: 0
Exclude Win: 1
Exclude Win64: 1
Exclude WindowsStoreApps: 1
- first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXIntel
second:
enabled: 1
settings: {}
- first:
Standalone: OSXIntel64
second:
enabled: 1
settings: {}
- first:
Standalone: OSXUniversal
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: x86
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: x86_64
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
DontProcess: false
PlaceholderPath:
SDK: AnySDK
ScriptingBackend: AnyScriptingBackend
userData:
assetBundleName:
assetBundleVariant:

View file

@ -3,13 +3,13 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>18A391</string>
<string>21A559</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>StandaloneFileBrowser</string>
<key>CFBundleIdentifier</key>
<string>com.gkngkc.sfb</string>
<string>com.finoldigital.sfb</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
@ -31,16 +31,20 @@
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>10A255</string>
<string>13A1030d</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<string>12.0</string>
<key>DTSDKBuild</key>
<string>18A384</string>
<string>21A344</string>
<key>DTSDKName</key>
<string>macosx10.14</string>
<string>macosx12.0</string>
<key>DTXcode</key>
<string>1000</string>
<string>1310</string>
<key>DTXcodeBuild</key>
<string>10A255</string>
<string>13A1030d</string>
<key>LSMinimumSystemVersion</key>
<string>12.0</string>
</dict>
</plist>

View file

@ -1,8 +1,7 @@
fileFormatVersion: 2
guid: ce685769797f44046afa3e567860c94c
timeCreated: 1505756861
licenseType: Pro
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,8 +1,7 @@
fileFormatVersion: 2
guid: ddf122e0e89124ce78aacfeecb3ec554
timeCreated: 1508179371
licenseType: Pro
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 435c74f62ab57b448adeeb37cbc0f96b
guid: 7f3dc666a273b4a958e72a8b117c80ed
folderAsset: yes
DefaultImporter:
externalObjects: {}

View file

@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict/>
<key>files2</key>
<dict/>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View file

@ -1,8 +1,7 @@
fileFormatVersion: 2
guid: d97280fe82b874466870f709c3315d41
timeCreated: 1483902786
licenseType: Pro
guid: 4923ca71ad53a4a7586e9fbe4f5ff18b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -5,11 +5,14 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
'': Any
: Any
second:
enabled: 0
settings:
@ -61,7 +64,7 @@ PluginImporter:
second:
enabled: 0
settings:
CPU: x86_64
CPU: AnyCPU
- first:
Standalone: LinuxUniversal
second:

View file

@ -0,0 +1,137 @@
fileFormatVersion: 2
guid: 7d459a96865cc4aaab657012c6dc4833
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude WebGL: 1
Exclude Win: 0
Exclude Win64: 0
Exclude WindowsStoreApps: 1
Exclude iOS: 1
- first:
: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
OS: AnyOS
- first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: Windows
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: LinuxUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXIntel64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 1
settings:
CPU: x86
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: x86_64
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
DontProcess: false
PlaceholderPath:
SDK: AnySDK
ScriptingBackend: AnyScriptingBackend
- first:
iPhone: iOS
second:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -72,7 +72,7 @@ SpriteRenderer:
m_SortingLayerID: -2115984483
m_SortingLayer: 22
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: e6887bc2f64df4d4b91bd2d0ad0ffd98, type: 3}
m_Sprite: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
@ -107,19 +107,7 @@ PolygonCollider2D:
adaptiveTiling: 0
m_AutoTiling: 0
m_Points:
m_Paths:
- - {x: -0.11176471, y: -0.5117647}
- {x: 0.1, y: -0.5117647}
- {x: 0.20588236, y: -0.44117647}
- {x: 0.3, y: -0.052941177}
- {x: 0.2882353, y: 0.12352941}
- {x: 0.21764706, y: 0.20588236}
- {x: -0.04117647, y: 0.24117647}
- {x: -0.19411765, y: 0.21764706}
- {x: -0.2764706, y: 0.15882353}
- {x: -0.3, y: -0.07647059}
- {x: -0.21764706, y: -0.41764706}
- {x: -0.17058824, y: -0.4882353}
m_Paths: []
--- !u!114 &7811055239270456900
MonoBehaviour:
m_ObjectHideFlags: 0
@ -132,15 +120,15 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c55c83d4c4dd1145ad5fbbab3c3df36, type: 3}
m_Name:
m_EditorClassIdentifier:
AlphaTolerance: 20
DistanceThreshold: 2
AlphaTolerance: 50
DistanceThreshold: 4
Scale: 1
Decompose: 0
RunInPlayMode: 1
UseCache: 0
lastAlphaTolerance: 20
lastAlphaTolerance: 50
lastScale: 1
lastDistanceThreshold: 2
lastDistanceThreshold: 4
lastDecompose: 0
lastSprite: {fileID: 0}
lastRect:
@ -227,7 +215,7 @@ SpriteRenderer:
m_SortingLayerID: -2115984483
m_SortingLayer: 22
m_SortingOrder: 1
m_Sprite: {fileID: 21300000, guid: 0b37cc6354dc6a94cb2d2de2529baa4e, type: 3}
m_Sprite: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
@ -262,19 +250,7 @@ PolygonCollider2D:
adaptiveTiling: 0
m_AutoTiling: 0
m_Points:
m_Paths:
- - {x: -0.024999999, y: -0.265}
- {x: 0.13499999, y: -0.205}
- {x: 0.225, y: -0.044999998}
- {x: 0.225, y: 0.105}
- {x: 0.195, y: 0.16499999}
- {x: 0.105, y: 0.225}
- {x: -0.074999996, y: 0.235}
- {x: -0.175, y: 0.185}
- {x: -0.225, y: 0.105}
- {x: -0.21499999, y: -0.085}
- {x: -0.16499999, y: -0.175}
- {x: -0.074999996, y: -0.24499999}
m_Paths: []
--- !u!114 &6126300607907588871
MonoBehaviour:
m_ObjectHideFlags: 0
@ -287,15 +263,15 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c55c83d4c4dd1145ad5fbbab3c3df36, type: 3}
m_Name:
m_EditorClassIdentifier:
AlphaTolerance: 20
DistanceThreshold: 2
AlphaTolerance: 50
DistanceThreshold: 4
Scale: 1
Decompose: 0
RunInPlayMode: 1
UseCache: 0
lastAlphaTolerance: 20
lastAlphaTolerance: 50
lastScale: 1
lastDistanceThreshold: 2
lastDistanceThreshold: 4
lastDecompose: 0
lastSprite: {fileID: 21300000, guid: 0b37cc6354dc6a94cb2d2de2529baa4e, type: 3}
lastRect:
@ -514,7 +490,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8c55c83d4c4dd1145ad5fbbab3c3df36, type: 3}
m_Name:
m_EditorClassIdentifier:
AlphaTolerance: 20
AlphaTolerance: 50
DistanceThreshold: 2
Scale: 1
Decompose: 0

View file

@ -233,7 +233,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_SizeDelta: {x: -10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3650911576829993046
CanvasRenderer:
@ -269,7 +269,7 @@ MonoBehaviour:
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0

View file

@ -8185,7 +8185,7 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
- m_Target: {fileID: 168629124}
m_MethodName: CloseApplication
m_Mode: 1
m_Arguments:
@ -12850,6 +12850,8 @@ GameObject:
- component: {fileID: 1059017486}
- component: {fileID: 1059017488}
- component: {fileID: 1059017487}
- component: {fileID: 1059017489}
- component: {fileID: 1059017490}
m_Layer: 5
m_Name: ConsoleMessages
m_TagString: Untagged
@ -12906,6 +12908,44 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1059017485}
m_CullTransparentMesh: 0
--- !u!223 &1059017489
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1059017485}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 1
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 0
m_SortingLayerID: 0
m_SortingOrder: 100
m_TargetDisplay: 0
--- !u!114 &1059017490
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1059017485}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!1 &1073938046
GameObject:
m_ObjectHideFlags: 0

View file

@ -32,7 +32,7 @@ namespace RimWorldAnimationStudio
public bool ShouldSerializeraceOffsets() { return raceOffsets.NotNullOrEmpty(); }
public bool ShouldSerializeblacklistedRaces() { return blacklistedRaces.NotNullOrEmpty(); }
public bool ShouldSerializetags() { return tags.NotNullOrEmpty(); }
public bool ShouldSerializeinitiator() { return initiator; }
public bool ShouldSerializecontrolGenitalAngle() { return controlGenitalAngle; }
public bool ShouldSerializeisFucking() { return isFucking; }
public bool ShouldSerializeisFucked() { return isFucked; }
@ -89,6 +89,7 @@ namespace RimWorldAnimationStudio
{
bodyDefTypes = bodyDefTypes.Intersect(Tags.bodyDefTypes.Concat(CustomTags.bodyDefTypes))?.ToList();
requiredGenitals = requiredGenitals.Intersect(Tags.bodyParts.Concat(CustomTags.bodyParts))?.ToList();
raceOffsets = raceOffsets.Except(raceOffsets.Where(x => x.OffsetIsZero()))?.ToList();
}
public bool MakeNew()

View file

@ -8,6 +8,7 @@ using UnityEngine;
namespace RimWorldAnimationStudio
{
[Serializable]
public class AlienRaceDef
{
public string defName;
@ -17,10 +18,7 @@ namespace RimWorldAnimationStudio
public List<MultiDirectionalGraphic> bodyTypeGraphics = new List<MultiDirectionalGraphic>();
public MultiDirectionalGraphic headGraphics = new MultiDirectionalGraphic();
public AlienRaceDef()
{
}
public AlienRaceDef() { }
public AlienRaceDef(string defName)
{
@ -101,31 +99,17 @@ namespace RimWorldAnimationStudio
public void SetHeadGraphicPath(string path, CardinalDirection facing)
{
if (path == null || path.Any() == false || File.Exists(path) == false || Path.GetExtension(path) != ".png")
{ path = "Invalid file path"; }
switch (facing)
{
case CardinalDirection.North:
headGraphics.northGraphic.path = path;
headGraphics.northGraphic.sprite = LoadSprite(path); break;
case CardinalDirection.East:
headGraphics.eastGraphic.path = path;
headGraphics.eastGraphic.sprite = LoadSprite(path); break;
case CardinalDirection.South:
headGraphics.southGraphic.path = path;
headGraphics.southGraphic.sprite = LoadSprite(path); break;
default:
headGraphics.eastGraphic.path = path;
headGraphics.eastGraphic.sprite = LoadSprite(path); break;
case CardinalDirection.North: headGraphics.northGraphic.SetPath(path); break;
case CardinalDirection.East: headGraphics.eastGraphic.SetPath(path); break;
case CardinalDirection.South: headGraphics.southGraphic.SetPath(path); break;
default: headGraphics.eastGraphic.SetPath(path); break;
}
}
public void SetBodyTypeGraphicPath(string path, CardinalDirection facing, string bodyType = "None")
{
if (path == null || path.Any() == false || File.Exists(path) == false || Path.GetExtension(path) != ".png")
{ path = "Invalid file path"; }
MultiDirectionalGraphic bodyTypeGraphic = bodyTypeGraphics.FirstOrDefault(x => x.bodyType == bodyType);
if (bodyTypeGraphic == null)
@ -136,36 +120,16 @@ namespace RimWorldAnimationStudio
switch (facing)
{
case CardinalDirection.North:
bodyTypeGraphic.northGraphic.path = path;
bodyTypeGraphic.northGraphic.sprite = LoadSprite(path); break;
case CardinalDirection.East:
bodyTypeGraphic.eastGraphic.path = path;
bodyTypeGraphic.eastGraphic.sprite = LoadSprite(path); break;
case CardinalDirection.South:
bodyTypeGraphic.southGraphic.path = path;
bodyTypeGraphic.southGraphic.sprite = LoadSprite(path); break;
default:
bodyTypeGraphic.eastGraphic.path = path;
bodyTypeGraphic.eastGraphic.sprite = LoadSprite(path); break;
case CardinalDirection.North: bodyTypeGraphic.northGraphic.SetPath(path); break;
case CardinalDirection.East: bodyTypeGraphic.eastGraphic.SetPath(path); break;
case CardinalDirection.South:bodyTypeGraphic.southGraphic.SetPath(path); break;
default: bodyTypeGraphic.eastGraphic.SetPath(path); break;
}
}
public bool HasValidHeadGraphicPath(CardinalDirection facing)
{
string path;
switch (facing)
{
case CardinalDirection.North: path = headGraphics.northGraphic.path; break;
case CardinalDirection.East: path = headGraphics.eastGraphic.path; break;
case CardinalDirection.South: path = headGraphics.southGraphic.path; break;
default: path = headGraphics.eastGraphic.path; break;
}
if (path == null || path.Any() == false || File.Exists(path) == false || Path.GetExtension(path) != ".png") return false;
return true;
return headGraphics.HasValidPathForDirection(facing);
}
public bool HasValidBodyTypeGraphicPath(CardinalDirection facing, string bodyType = "None")
@ -178,33 +142,7 @@ namespace RimWorldAnimationStudio
bodyTypeGraphics.Add(bodyTypeGraphic);
}
string path;
switch (facing)
{
case CardinalDirection.North: path = bodyTypeGraphic.northGraphic.path; break;
case CardinalDirection.East: path = bodyTypeGraphic.eastGraphic.path; break;
case CardinalDirection.South: path = bodyTypeGraphic.southGraphic.path; break;
default: path = bodyTypeGraphic.eastGraphic.path; break;
}
if (path == null || path.Any() == false || File.Exists(path) == false || Path.GetExtension(path) != ".png") return false;
return true;
}
public Sprite LoadSprite(string path)
{
if (path == null || path.Any() == false || File.Exists(path) == false || Path.GetExtension(path) != ".png") return null;
byte[] pngBytes = File.ReadAllBytes(path);
Texture2D tex = new Texture2D(2, 2);
tex.LoadImage(pngBytes);
Sprite sprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 85.0f);
return sprite;
return bodyTypeGraphic.HasValidPathForDirection(facing);
}
}
}

View file

@ -10,10 +10,10 @@ namespace RimWorldAnimationStudio
public string defName = "Human";
public string offset = "(0, 0)";
public AlienRaceOffset()
{
public bool ShouldSerializedefName() { return OffsetIsZero() == false; }
public bool ShouldSerializeoffset() { return OffsetIsZero() == false; }
}
public AlienRaceOffset() { }
public AlienRaceOffset(string defName)
{
@ -35,5 +35,11 @@ namespace RimWorldAnimationStudio
return new Vector3(float.Parse(raceOffsets[0]), 0f, float.Parse(raceOffsets[1]));
}
public bool OffsetIsZero()
{
Vector3 vec = GetOffset();
return Mathf.Approximately(vec.x, 0f) && Mathf.Approximately(vec.y, 0f) && Mathf.Approximately(vec.x, 0f);
}
}
}

View file

@ -9,18 +9,12 @@ namespace RimWorldAnimationStudio
public string layer = "Pawn";
public List<string> tags;
//[XmlIgnore] public Dictionary<int, string> SoundEffects = new Dictionary<int, string>();
//[XmlIgnore] public int duration;
public virtual int duration { get { return 0; } }
public abstract void BuildSimpleCurves();
public bool ShouldSerializetags() { return tags.NotNullOrEmpty(); }
public virtual void ValidateData()
{
}
public virtual void ValidateData() { }
}
}

View file

@ -88,10 +88,7 @@ namespace RimWorldAnimationStudio
keyframes[keyframes.Count - 1].tickDuration = 1;
}
public override void ValidateData()
{
}
public override void ValidateData() { }
public bool MakeNew()
{

View file

@ -18,6 +18,11 @@ namespace RimWorldAnimationStudio
[XmlArray("animationStages"), XmlArrayItem("li")] public List<AnimationStage> animationStages = new List<AnimationStage>();
[XmlIgnore] public int animationTimeTicks = 0;
public bool ShouldSerializesexTypes() { return sexTypes.NotNullOrEmpty(); }
public bool ShouldSerializeinteractionDefTypes() { return interactionDefTypes.NotNullOrEmpty(); }
public bool ShouldSerializeactors() { return actors.NotNullOrEmpty(); }
public bool ShouldSerializeanimationStages() { return animationStages.NotNullOrEmpty(); }
public void Initialize()
{
animationTimeTicks = 0;

View file

@ -6,18 +6,14 @@ namespace RimWorldAnimationStudio
{
public class Keyframe
{
public int? atTick;
[XmlIgnore] public int? atTick;
public int tickDuration = 1;
public string soundEffect;
public List<string> tags = new List<string>();
public bool ShouldSerializeatTick() { return atTick != null; }
public bool ShouldSerializetags() { return tags.NotNullOrEmpty(); }
public virtual void ValidateData()
{
}
public virtual void ValidateData() { }
}
}

View file

@ -1,25 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
namespace RimWorldAnimationStudio
{
[Serializable]
public class MultiDirectionalGraphic
{
public string bodyType = "None";
public DirectionalGraphic northGraphic = new DirectionalGraphic();
public DirectionalGraphic eastGraphic = new DirectionalGraphic();
public DirectionalGraphic southGraphic = new DirectionalGraphic();
public MultiDirectionalGraphic() { }
public MultiDirectionalGraphic(string bodyType)
{
this.bodyType = bodyType;
}
}
}

View file

@ -1,4 +1,5 @@
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Serialization;
@ -6,9 +7,45 @@ using UnityEngine;
namespace RimWorldAnimationStudio
{
[Serializable]
public class DirectionalGraphic
{
public string path = "Invalid file path";
[XmlIgnore] public Sprite sprite = null;
public void SetPath(string path)
{
string streamingAssets = Path.GetFullPath(Application.streamingAssetsPath);
string combinedPath = Path.GetFullPath(Path.Combine(streamingAssets, path));
if (path == null || path.Any() == false || Path.GetExtension(path) != ".png")
{ this.path = null; return; }
if (File.Exists(path) == false && File.Exists(combinedPath) == false)
{ this.path = null; return; }
if (path.Contains(streamingAssets))
{
path = path.Replace(streamingAssets, "");
path = path.TrimStart(new char[] { '\\', '/' });
}
this.path = path;
sprite = LoadSprite(Path.GetFullPath(Path.Combine(streamingAssets, path)));
}
public Sprite LoadSprite(string path)
{
if (path == null || path.Any() == false || File.Exists(path) == false || Path.GetExtension(path) != ".png") return null;
byte[] pngBytes = File.ReadAllBytes(path);
Texture2D texture = new Texture2D(2, 2);
texture.LoadImage(pngBytes);
Sprite sprite = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), new Vector2(0.5f, 0.5f), 85.0f);
return sprite;
}
}
}

View file

@ -16,6 +16,8 @@ namespace RimWorldAnimationStudio
public SpriteRenderer headRenderer;
public SpriteRenderer appendageRenderer;
private Vector3 delta = new Vector3();
public bool actorBodyPartSelected { get { return GetComponentsInChildren<ActorBodyPart>().Any(x => x.isSelected); } }
public void Initialize(int actorID)
@ -51,12 +53,15 @@ namespace RimWorldAnimationStudio
if (keyframe == null)
{ Debug.LogWarning("Cannot alter actor - no keyframe data available"); return; }
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (delta == Vector3.zero)
{ delta = mousePosition - transform.position; }
if (Workspace.actorManipulationMode == ActorManipulationMode.Pan)
{
keyframe.bodyOffsetX = mousePosition.x - Workspace.animationDef.actors[actorID].GetAlienRaceOffset().x;
keyframe.bodyOffsetZ = mousePosition.y - Workspace.animationDef.actors[actorID].GetAlienRaceOffset().z;
keyframe.bodyOffsetX = mousePosition.x - delta.x - Workspace.animationDef.actors[actorID].GetAlienRaceOffset().x;
keyframe.bodyOffsetZ = mousePosition.y - delta.y - Workspace.animationDef.actors[actorID].GetAlienRaceOffset().z;
}
else if (Workspace.actorManipulationMode == ActorManipulationMode.Rotate)
@ -81,6 +86,7 @@ namespace RimWorldAnimationStudio
public void OnEndDrag(PointerEventData eventData)
{
Workspace.Instance.RecordEvent("Actor position / orientation");
delta = Vector3.zero;
}
public void Activate()

View file

@ -13,6 +13,8 @@ namespace RimWorldAnimationStudio
public bool isHead = false;
public bool isSelected = false;
private Vector3 delta = new Vector3();
public void Update()
{
if ((Workspace.actorID == parent.actorID && Workspace.selectedBodyPart == null) || Workspace.selectedBodyPart == this)
@ -41,13 +43,16 @@ namespace RimWorldAnimationStudio
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (delta == Vector3.zero)
{ delta = mousePosition - transform.position; }
if (isHead)
{
if (Workspace.actorManipulationMode == ActorManipulationMode.Pan)
{
// It's stupid but it works
Vector3 localPosA = transform.localPosition;
transform.position = mousePosition;
transform.position = mousePosition - delta;
Vector3 localPosB = transform.localPosition;
transform.localPosition = localPosA;
@ -88,6 +93,7 @@ namespace RimWorldAnimationStudio
public void OnEndDrag(PointerEventData eventData)
{
Workspace.Instance.RecordEvent("Actor position / orientation");
delta = Vector3.zero;
}
public void Activate()

View file

@ -45,8 +45,8 @@ namespace RimWorldAnimationStudio
if (type == LogType.Warning)
{
currentMessage.color = Constants.ColorGoldYellow;
logMessage.color = Constants.ColorGoldYellow;
currentMessage.color = Constants.ColorOrange;
logMessage.color = Constants.ColorOrange;
}
else if (type == LogType.Exception || type == LogType.Error)

View file

@ -102,7 +102,7 @@ namespace RimWorldAnimationStudio
var paths = StandaloneFileBrowser.OpenFilePanel("Select texture File", "", "png", false);
if (paths == null || paths.Any() == false || File.Exists(paths[0]) == false)
{ Debug.LogError("Selected file was null or invalid"); return; }
{ Debug.LogWarning("Selected file was null or invalid"); return; }
alienRaceDef.SetHeadGraphicPath(paths[0], direction);
@ -114,7 +114,7 @@ namespace RimWorldAnimationStudio
var paths = StandaloneFileBrowser.OpenFilePanel("Select texture File", "", "png", false);
if (paths == null || paths.Any() == false || File.Exists(paths[0]) == false)
{ Debug.LogError("Selected file was null or invalid"); return; }
{ Debug.LogWarning("Selected file was null or invalid"); return; }
alienRaceDef.SetBodyTypeGraphicPath(paths[0], direction, bodyType);

View file

@ -17,38 +17,7 @@ namespace RimWorldAnimationStudio
public void Start()
{
LoadCustomArrays();
/*AlienRaceDef human = new AlienRaceDef();
human.Initialize("Human");
human.SetHeadGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Heads/Head0.png"), CardinalDirection.North);
human.SetHeadGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Heads/Head1.png"), CardinalDirection.East);
human.SetHeadGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Heads/Head2.png"), CardinalDirection.South);
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Male0.png"), CardinalDirection.North, "Male");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Male1.png"), CardinalDirection.East, "Male");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Male2.png"), CardinalDirection.South, "Male");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Female0.png"), CardinalDirection.North, "Female");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Female1.png"), CardinalDirection.East, "Female");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Female2.png"), CardinalDirection.South, "Female");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Fat0.png"), CardinalDirection.North, "Fat");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Fat1.png"), CardinalDirection.East, "Fat");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Fat2.png"), CardinalDirection.South, "Fat");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Hulk0.png"), CardinalDirection.North, "Hulk");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Hulk1.png"), CardinalDirection.East, "Hulk");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Hulk2.png"), CardinalDirection.South, "Hulk");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Thin0.png"), CardinalDirection.North, "Thin");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Thin1.png"), CardinalDirection.East, "Thin");
human.SetBodyTypeGraphicPath(Path.Combine(Application.streamingAssetsPath, "Textures/Humanlike/Bodies/Thin2.png"), CardinalDirection.South, "Thin");*/
//AlienRaceDefs.allDefs.Add(human);
LoadAlienRaceDefs();
}
public void TryToCloseApplication()
@ -67,7 +36,7 @@ namespace RimWorldAnimationStudio
var paths = StandaloneFileBrowser.OpenFilePanel("Open AnimationDef File", "", "xml", false);
if (paths == null || paths.Any() == false)
{ Debug.LogError("Selected file was null or invalid"); return; }
{ Debug.LogWarning("Selected file was null or invalid"); return; }
Defs defs = XmlUtility.ReadXML<Defs>(paths[0]);
@ -83,7 +52,10 @@ namespace RimWorldAnimationStudio
public void LoadAnimation(AnimationDef animationDef)
{
LoadAlienRaceDefs();
LoadCustomArrays();
UpdateCustomArrays(animationDef);
RunPostLoadOperations(animationDef);
Debug.Log("Loaded AnimationDef: " + animationDef.defName);
@ -130,6 +102,11 @@ namespace RimWorldAnimationStudio
public void RunPreSaveOperations(AnimationDef animationDef)
{
animationDef.ValidateData();
foreach (Actor actor in animationDef.actors)
{ actor.ValidateData(); }
foreach (AnimationStage stage in animationDef.animationStages)
{
stage.ValidateData();

View file

@ -88,7 +88,7 @@ namespace RimWorldAnimationStudio
foreach (string bodyType in allTags)
{
path = alienRaceDef.GetBodyTypeGraphicPath(facing, bodyType);
Debug.Log(path);
if (path != null && path != "")
{ alienRaceDef.SetBodyTypeGraphicPath(path, facing, bodyType); }
}

View file

@ -0,0 +1,50 @@
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace RimWorldAnimationStudio
{
[Serializable]
public class MultiDirectionalGraphic
{
public string bodyType = "None";
public DirectionalGraphic northGraphic = new DirectionalGraphic();
public DirectionalGraphic eastGraphic = new DirectionalGraphic();
public DirectionalGraphic southGraphic = new DirectionalGraphic();
public MultiDirectionalGraphic() { }
public MultiDirectionalGraphic(string bodyType)
{
this.bodyType = bodyType;
}
public bool HasValidPathForDirection(CardinalDirection facing)
{
string path;
switch (facing)
{
case CardinalDirection.North: path = northGraphic.path; break;
case CardinalDirection.East: path = eastGraphic.path; break;
case CardinalDirection.South: path = southGraphic.path; break;
default: path = eastGraphic.path; break;
}
if (path == null || path.Any() == false || Path.GetExtension(path) != ".png")
{ return false; }
if (File.Exists(path) == false && File.Exists(Path.GetFullPath(Path.Combine(Application.streamingAssetsPath, path))) == false)
{ return false; }
return true;
}
//public bool ShouldSerializenorthGraphic() { return HasValidPathForDirection(CardinalDirection.North); }
//public bool ShouldSerializeeastGraphic() { return HasValidPathForDirection(CardinalDirection.East); }
//public bool ShouldSerializesouthGraphic() { return HasValidPathForDirection(CardinalDirection.South); }
//public bool ShouldSerializebodyType() { return ShouldSerializenorthGraphic() || ShouldSerializeeastGraphic() || ShouldSerializesouthGraphic(); }
}
}

View file

@ -1,145 +0,0 @@
fileFormatVersion: 2
guid: e60958662eed5413d86143a0a69b731e
timeCreated: 1491979494
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
'': Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude WebGL: 1
Exclude Win: 0
Exclude Win64: 0
Exclude iOS: 1
data:
first:
'': Editor
second:
enabled: 0
settings:
CPU: AnyCPU
OS: AnyOS
data:
first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: LinuxUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
iPhone: iOS
second:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,40 +0,0 @@
fileFormatVersion: 2
guid: 110fdfb459db4fc448a2ccd37e200fa4
folderAsset: yes
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Standalone: OSXIntel
second:
enabled: 1
settings: {}
- first:
Standalone: OSXIntel64
second:
enabled: 1
settings: {}
- first:
Standalone: OSXUniversal
second:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,145 +0,0 @@
fileFormatVersion: 2
guid: 7d459a96865cc4aaab657012c6dc4833
timeCreated: 1491979494
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
'': Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude WebGL: 1
Exclude Win: 0
Exclude Win64: 0
Exclude iOS: 1
data:
first:
'': Editor
second:
enabled: 0
settings:
CPU: AnyCPU
OS: AnyOS
data:
first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: LinuxUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
iPhone: iOS
second:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,119 +0,0 @@
using System.Collections;
using UnityEngine;
using SFB;
public class BasicSample : MonoBehaviour {
private string _path;
void OnGUI() {
var guiScale = new Vector3(Screen.width / 800.0f, Screen.height / 600.0f, 1.0f);
GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, guiScale);
GUILayout.Space(20);
GUILayout.BeginHorizontal();
GUILayout.Space(20);
GUILayout.BeginVertical();
// Open File Samples
if (GUILayout.Button("Open File")) {
WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", "", false));
}
GUILayout.Space(5);
if (GUILayout.Button("Open File Async")) {
StandaloneFileBrowser.OpenFilePanelAsync("Open File", "", "", false, (string[] paths) => { WriteResult(paths); });
}
GUILayout.Space(5);
if (GUILayout.Button("Open File Multiple")) {
WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", "", true));
}
GUILayout.Space(5);
if (GUILayout.Button("Open File Extension")) {
WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", "txt", true));
}
GUILayout.Space(5);
if (GUILayout.Button("Open File Directory")) {
WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", Application.dataPath, "", true));
}
GUILayout.Space(5);
if (GUILayout.Button("Open File Filter")) {
var extensions = new [] {
new ExtensionFilter("Image Files", "png", "jpg", "jpeg" ),
new ExtensionFilter("Sound Files", "mp3", "wav" ),
new ExtensionFilter("All Files", "*" ),
};
WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", extensions, true));
}
GUILayout.Space(15);
// Open Folder Samples
if (GUILayout.Button("Open Folder")) {
var paths = StandaloneFileBrowser.OpenFolderPanel("Select Folder", "", true);
WriteResult(paths);
}
GUILayout.Space(5);
if (GUILayout.Button("Open Folder Async")) {
StandaloneFileBrowser.OpenFolderPanelAsync("Select Folder", "", true, (string[] paths) => { WriteResult(paths); });
}
GUILayout.Space(5);
if (GUILayout.Button("Open Folder Directory")) {
var paths = StandaloneFileBrowser.OpenFolderPanel("Select Folder", Application.dataPath, true);
WriteResult(paths);
}
GUILayout.Space(15);
// Save File Samples
if (GUILayout.Button("Save File")) {
_path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "", "");
}
GUILayout.Space(5);
if (GUILayout.Button("Save File Async")) {
StandaloneFileBrowser.SaveFilePanelAsync("Save File", "", "", "", (string path) => { WriteResult(path); });
}
GUILayout.Space(5);
if (GUILayout.Button("Save File Default Name")) {
_path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", "");
}
GUILayout.Space(5);
if (GUILayout.Button("Save File Default Name Ext")) {
_path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", "dat");
}
GUILayout.Space(5);
if (GUILayout.Button("Save File Directory")) {
_path = StandaloneFileBrowser.SaveFilePanel("Save File", Application.dataPath, "", "");
}
GUILayout.Space(5);
if (GUILayout.Button("Save File Filter")) {
// Multiple save extension filters with more than one extension support.
var extensionList = new [] {
new ExtensionFilter("Binary", "bin"),
new ExtensionFilter("Text", "txt"),
};
_path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", extensionList);
}
GUILayout.EndVertical();
GUILayout.Space(20);
GUILayout.Label(_path);
GUILayout.EndHorizontal();
}
public void WriteResult(string[] paths) {
if (paths.Length == 0) {
return;
}
_path = "";
foreach (var p in paths) {
_path += p + "\n";
}
}
public void WriteResult(string path) {
_path = path;
}
}

View file

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 5148400295519405d82bb0fa65246ea2
timeCreated: 1483902788
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,248 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringMode: 0
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 0
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &382763637
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 382763642}
- component: {fileID: 382763641}
- component: {fileID: 382763640}
- component: {fileID: 382763639}
- component: {fileID: 382763638}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &382763638
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 382763637}
m_Enabled: 1
--- !u!124 &382763639
Behaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 382763637}
m_Enabled: 1
--- !u!92 &382763640
Behaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 382763637}
m_Enabled: 1
--- !u!20 &382763641
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 382763637}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &382763642
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 382763637}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &986049433
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 986049435}
- component: {fileID: 986049434}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &986049434
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 986049433}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5148400295519405d82bb0fa65246ea2, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &986049435
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 986049433}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View file

@ -1,53 +0,0 @@
using System.Text;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using SFB;
[RequireComponent(typeof(Button))]
public class CanvasSampleOpenFileImage : MonoBehaviour, IPointerDownHandler {
public RawImage output;
#if UNITY_WEBGL && !UNITY_EDITOR
//
// WebGL
//
[DllImport("__Internal")]
private static extern void UploadFile(string gameObjectName, string methodName, string filter, bool multiple);
public void OnPointerDown(PointerEventData eventData) {
UploadFile(gameObject.name, "OnFileUpload", ".png, .jpg", false);
}
// Called from browser
public void OnFileUpload(string url) {
StartCoroutine(OutputRoutine(url));
}
#else
//
// Standalone platforms & editor
//
public void OnPointerDown(PointerEventData eventData) { }
void Start() {
var button = GetComponent<Button>();
button.onClick.AddListener(OnClick);
}
private void OnClick() {
var paths = StandaloneFileBrowser.OpenFilePanel("Title", "", ".png", false);
if (paths.Length > 0) {
StartCoroutine(OutputRoutine(new System.Uri(paths[0]).AbsoluteUri));
}
}
#endif
private IEnumerator OutputRoutine(string url) {
var loader = new WWW(url);
yield return loader;
output.texture = loader.texture;
}
}

View file

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 331c95b7bf39e4792acecff50a972040
timeCreated: 1489946149
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,53 +0,0 @@
using System.Text;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using SFB;
[RequireComponent(typeof(Button))]
public class CanvasSampleOpenFileText : MonoBehaviour, IPointerDownHandler {
public Text output;
#if UNITY_WEBGL && !UNITY_EDITOR
//
// WebGL
//
[DllImport("__Internal")]
private static extern void UploadFile(string gameObjectName, string methodName, string filter, bool multiple);
public void OnPointerDown(PointerEventData eventData) {
UploadFile(gameObject.name, "OnFileUpload", ".txt", false);
}
// Called from browser
public void OnFileUpload(string url) {
StartCoroutine(OutputRoutine(url));
}
#else
//
// Standalone platforms & editor
//
public void OnPointerDown(PointerEventData eventData) { }
void Start() {
var button = GetComponent<Button>();
button.onClick.AddListener(OnClick);
}
private void OnClick() {
var paths = StandaloneFileBrowser.OpenFilePanel("Title", "", "txt", false);
if (paths.Length > 0) {
StartCoroutine(OutputRoutine(new System.Uri(paths[0]).AbsoluteUri));
}
}
#endif
private IEnumerator OutputRoutine(string url) {
var loader = new WWW(url);
yield return loader;
output.text = loader.text;
}
}

View file

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 99a65d6437df64949b37cba4eadc67a2
timeCreated: 1489946149
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,62 +0,0 @@
using System.Text;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using SFB;
[RequireComponent(typeof(Button))]
public class CanvasSampleOpenFileTextMultiple : MonoBehaviour, IPointerDownHandler {
public Text output;
#if UNITY_WEBGL && !UNITY_EDITOR
//
// WebGL
//
[DllImport("__Internal")]
private static extern void UploadFile(string gameObjectName, string methodName, string filter, bool multiple);
public void OnPointerDown(PointerEventData eventData) {
UploadFile(gameObject.name, "OnFileUpload", ".txt", true);
}
// Called from browser
public void OnFileUpload(string urls) {
StartCoroutine(OutputRoutine(urls.Split(',')));
}
#else
//
// Standalone platforms & editor
//
public void OnPointerDown(PointerEventData eventData) { }
void Start() {
var button = GetComponent<Button>();
button.onClick.AddListener(OnClick);
}
private void OnClick() {
// var paths = StandaloneFileBrowser.OpenFilePanel("Title", "", "txt", true);
var paths = StandaloneFileBrowser.OpenFilePanel("Open File", "", "", true);
if (paths.Length > 0) {
var urlArr = new List<string>(paths.Length);
for (int i = 0; i < paths.Length; i++) {
urlArr.Add(new System.Uri(paths[i]).AbsoluteUri);
}
StartCoroutine(OutputRoutine(urlArr.ToArray()));
}
}
#endif
private IEnumerator OutputRoutine(string[] urlArr) {
var outputText = "";
for (int i = 0; i < urlArr.Length; i++) {
var loader = new WWW(urlArr[i]);
yield return loader;
outputText += loader.text;
}
output.text = outputText;
}
}

View file

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 71c09849449d61e47a4599e06b964998
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,65 +0,0 @@
using System.IO;
using System.Text;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using SFB;
[RequireComponent(typeof(Button))]
public class CanvasSampleSaveFileImage : MonoBehaviour, IPointerDownHandler {
public Text output;
private byte[] _textureBytes;
void Awake() {
// Create red texture
var width = 100;
var height = 100;
Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false);
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
tex.SetPixel(i, j, Color.red);
}
}
tex.Apply();
_textureBytes = tex.EncodeToPNG();
UnityEngine.Object.Destroy(tex);
}
#if UNITY_WEBGL && !UNITY_EDITOR
//
// WebGL
//
[DllImport("__Internal")]
private static extern void DownloadFile(string gameObjectName, string methodName, string filename, byte[] byteArray, int byteArraySize);
// Broser plugin should be called in OnPointerDown.
public void OnPointerDown(PointerEventData eventData) {
DownloadFile(gameObject.name, "OnFileDownload", "sample.png", _textureBytes, _textureBytes.Length);
}
// Called from browser
public void OnFileDownload() {
output.text = "File Successfully Downloaded";
}
#else
//
// Standalone platforms & editor
//
public void OnPointerDown(PointerEventData eventData) { }
// Listen OnClick event in standlone builds
void Start() {
var button = GetComponent<Button>();
button.onClick.AddListener(OnClick);
}
public void OnClick() {
var path = StandaloneFileBrowser.SaveFilePanel("Title", "", "sample", "png");
if (!string.IsNullOrEmpty(path)) {
File.WriteAllBytes(path, _textureBytes);
}
}
#endif
}

View file

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 6e681018aa67241a69b8447678ec3b4e
timeCreated: 1489946149
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,52 +0,0 @@
using System.IO;
using System.Text;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using SFB;
[RequireComponent(typeof(Button))]
public class CanvasSampleSaveFileText : MonoBehaviour, IPointerDownHandler {
public Text output;
// Sample text data
private string _data = "Example text created by StandaloneFileBrowser";
#if UNITY_WEBGL && !UNITY_EDITOR
//
// WebGL
//
[DllImport("__Internal")]
private static extern void DownloadFile(string gameObjectName, string methodName, string filename, byte[] byteArray, int byteArraySize);
// Broser plugin should be called in OnPointerDown.
public void OnPointerDown(PointerEventData eventData) {
var bytes = Encoding.UTF8.GetBytes(_data);
DownloadFile(gameObject.name, "OnFileDownload", "sample.txt", bytes, bytes.Length);
}
// Called from browser
public void OnFileDownload() {
output.text = "File Successfully Downloaded";
}
#else
//
// Standalone platforms & editor
//
public void OnPointerDown(PointerEventData eventData) { }
// Listen OnClick event in standlone builds
void Start() {
var button = GetComponent<Button>();
button.onClick.AddListener(OnClick);
}
public void OnClick() {
var path = StandaloneFileBrowser.SaveFilePanel("Title", "", "sample", "txt");
if (!string.IsNullOrEmpty(path)) {
File.WriteAllText(path, _data);
}
}
#endif
}

View file

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 8e97f52f0bd664ee78305dae0094a755
timeCreated: 1489946149
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: c0e4eec5741834194a946535d535405c
timeCreated: 1483902786
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View file

@ -108,7 +108,7 @@ namespace RimWorldAnimationStudio
futureSnapshots.AddLast(recordToStore);
RestoreToHistoricRecord(recordToRead);
Debug.Log("Undo : " + recordToStore.eventDesc + " (record ID: " + recordToStore.recordID + ")");
//Debug.Log("Undo : " + recordToStore.eventDesc + " (record ID: " + recordToStore.recordID + ")");
}
public void Redo()
@ -121,7 +121,7 @@ namespace RimWorldAnimationStudio
pastSnapshots.AddLast(recordToReadAndStore);
RestoreToHistoricRecord(recordToReadAndStore);
Debug.Log("Redo : " + recordToReadAndStore.eventDesc + " (record ID: " + recordToReadAndStore.recordID + ")");
//Debug.Log("Redo : " + recordToReadAndStore.eventDesc + " (record ID: " + recordToReadAndStore.recordID + ")");
}
public void ClearHistory()
@ -132,7 +132,7 @@ namespace RimWorldAnimationStudio
public void RecordEvent(string eventDesc)
{
Debug.Log("Recording event: " + eventDesc + " (record ID: " + pastSnapshots.Count + ")");
//Debug.Log("Recording event: " + eventDesc + " (record ID: " + pastSnapshots.Count + ")");
MakeHistoricRecord(eventDesc);
}
}

View file

@ -8,178 +8,197 @@
<MultiDirectionalGraphic>
<bodyType>Male</bodyType>
<northGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Male0.png</path>
<path>Textures\Humanlike\Bodies\Male0.png</path>
</northGraphic>
<eastGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Male1.png</path>
<path>Textures\Humanlike\Bodies\Male1.png</path>
</eastGraphic>
<southGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Male2.png</path>
<path>Textures\Humanlike\Bodies\Male2.png</path>
</southGraphic>
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Female</bodyType>
<northGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Female0.png</path>
<path>Textures\Humanlike\Bodies\Female0.png</path>
</northGraphic>
<eastGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Female1.png</path>
<path>Textures\Humanlike\Bodies\Female1.png</path>
</eastGraphic>
<southGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Female2.png</path>
<path>Textures\Humanlike\Bodies\Female2.png</path>
</southGraphic>
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Fat</bodyType>
<northGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Fat0.png</path>
<path>Textures\Humanlike\Bodies\Fat0.png</path>
</northGraphic>
<eastGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Fat1.png</path>
<path>Textures\Humanlike\Bodies\Fat1.png</path>
</eastGraphic>
<southGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Fat2.png</path>
<path>Textures\Humanlike\Bodies\Fat2.png</path>
</southGraphic>
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Hulk</bodyType>
<northGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Hulk0.png</path>
<path>Textures\Humanlike\Bodies\Hulk0.png</path>
</northGraphic>
<eastGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Hulk1.png</path>
<path>Textures\Humanlike\Bodies\Hulk1.png</path>
</eastGraphic>
<southGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Hulk2.png</path>
<path>Textures\Humanlike\Bodies\Hulk2.png</path>
</southGraphic>
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Thin</bodyType>
<northGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Thin0.png</path>
<path>Textures\Humanlike\Bodies\Thin0.png</path>
</northGraphic>
<eastGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Thin1.png</path>
<path>Textures\Humanlike\Bodies\Thin1.png</path>
</eastGraphic>
<southGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Bodies/Thin2.png</path>
<path>Textures\Humanlike\Bodies\Thin2.png</path>
</southGraphic>
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>None</bodyType>
<northGraphic>
<path>C:\UnityDev\rimworld-animation-studio\Assets\StreamingAssets\Textures\Humanlike\Bodies\Hulk0.png</path>
<path>Textures\Humanlike\Bodies\Hulk0.png</path>
</northGraphic>
<eastGraphic>
<path>C:\UnityDev\rimworld-animation-studio\Assets\StreamingAssets\Textures\Humanlike\Bodies\Hulk1.png</path>
<path>Textures\Humanlike\Bodies\Hulk1.png</path>
</eastGraphic>
<southGraphic>
<path>C:\UnityDev\rimworld-animation-studio\Assets\StreamingAssets\Textures\Humanlike\Bodies\Hulk2.png</path>
<path>Textures\Humanlike\Bodies\Hulk2.png</path>
</southGraphic>
</MultiDirectionalGraphic>
</bodyTypeGraphics>
<headGraphics>
<bodyType>None</bodyType>
<northGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Heads/Head0.png</path>
<path>Textures\Humanlike\Heads\Head0.png</path>
</northGraphic>
<eastGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Heads/Head1.png</path>
<path>Textures\Humanlike\Heads\Head1.png</path>
</eastGraphic>
<southGraphic>
<path>C:/UnityDev/rimworld-animation-studio/Assets/StreamingAssets\Textures/Humanlike/Heads/Head2.png</path>
<path>Textures\Humanlike\Heads\Head2.png</path>
</southGraphic>
</headGraphics>
</AlienRaceDef>
<AlienRaceDef>
<defName>Wolf</defName>
<defName>Wolf_Timber</defName>
<isHumanoid>false</isHumanoid>
<scale>1</scale>
<bodyTypeGraphics>
<MultiDirectionalGraphic>
<bodyType>None</bodyType>
<northGraphic>
<path>Textures\Animals\Wolf_Timber\Wolf_Timber_north.png</path>
</northGraphic>
<eastGraphic>
<path>Textures\Animals\Wolf_Timber\Wolf_Timber_east.png</path>
</eastGraphic>
<southGraphic>
<path>Textures\Animals\Wolf_Timber\Wolf_Timber_south.png</path>
</southGraphic>
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Male</bodyType>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Female</bodyType>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Fat</bodyType>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Hulk</bodyType>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Thin</bodyType>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
</bodyTypeGraphics>
<headGraphics>
<bodyType>None</bodyType>
<northGraphic />
<eastGraphic />
<southGraphic />
</headGraphics>
</AlienRaceDef>
<AlienRaceDef>
<defName>Horse</defName>
<isHumanoid>false</isHumanoid>
<scale>1</scale>
<bodyTypeGraphics>
<MultiDirectionalGraphic>
<bodyType>Male</bodyType>
<northGraphic>
<path>Invalid file path</path>
</northGraphic>
<eastGraphic>
<path>Invalid file path</path>
</eastGraphic>
<southGraphic>
<path>Invalid file path</path>
</southGraphic>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Female</bodyType>
<northGraphic>
<path>Invalid file path</path>
</northGraphic>
<eastGraphic>
<path>Invalid file path</path>
</eastGraphic>
<southGraphic>
<path>Invalid file path</path>
</southGraphic>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Fat</bodyType>
<northGraphic>
<path>Invalid file path</path>
</northGraphic>
<eastGraphic>
<path>Invalid file path</path>
</eastGraphic>
<southGraphic>
<path>Invalid file path</path>
</southGraphic>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Hulk</bodyType>
<northGraphic>
<path>Invalid file path</path>
</northGraphic>
<eastGraphic>
<path>Invalid file path</path>
</eastGraphic>
<southGraphic>
<path>Invalid file path</path>
</southGraphic>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>Thin</bodyType>
<northGraphic>
<path>Invalid file path</path>
</northGraphic>
<eastGraphic>
<path>Invalid file path</path>
</eastGraphic>
<southGraphic>
<path>Invalid file path</path>
</southGraphic>
<northGraphic />
<eastGraphic />
<southGraphic />
</MultiDirectionalGraphic>
<MultiDirectionalGraphic>
<bodyType>None</bodyType>
<northGraphic>
<path>C:\UnityDev\rimworld-animation-studio\Assets\StreamingAssets\Textures\Animals\Wolf_Timber\Wolf_Timber_north.png</path>
<path>Textures\Animals\Horse\Horse_north.png</path>
</northGraphic>
<eastGraphic>
<path>C:\UnityDev\rimworld-animation-studio\Assets\StreamingAssets\Textures\Animals\Wolf_Timber\Wolf_Timber_east.png</path>
<path>Textures\Animals\Horse\Horse_east.png</path>
</eastGraphic>
<southGraphic>
<path>C:\UnityDev\rimworld-animation-studio\Assets\StreamingAssets\Textures\Animals\Wolf_Timber\Wolf_Timber_south.png</path>
<path>Textures\Animals\Horse\Horse_south.png</path>
</southGraphic>
</MultiDirectionalGraphic>
</bodyTypeGraphics>
<headGraphics>
<bodyType>None</bodyType>
<northGraphic>
<path>Invalid file path</path>
</northGraphic>
<eastGraphic>
<path>Invalid file path</path>
</eastGraphic>
<southGraphic>
<path>Invalid file path</path>
</southGraphic>
<northGraphic />
<eastGraphic />
<southGraphic />
</headGraphics>
</AlienRaceDef>
</ArrayOfAlienRaceDef>

View file

@ -3,13 +3,6 @@
<bodyParts />
<bodyDefTypes />
<sexTypes />
<interactionDefTypes>
<li>AnalSex</li>
<li>VaginalSex</li>
<li>VaginalSexF</li>
<li>VaginalRapeF</li>
<li>AnalSexF</li>
<li>AnalRapeF</li>
</interactionDefTypes>
<interactionDefTypes />
<soundDefs />
</CustomTagsHelper>