Compare commits
6 Commits
932955cb05
...
e47a1fc4f0
Author | SHA1 | Date |
---|---|---|
ghostclinic3YTB | e47a1fc4f0 | |
ghostclinic3YTB | b501ddfb0f | |
ghostclinic3YTB | 5d0da3bc88 | |
ghostclinic3YTB | ac3b77b5ba | |
ghostclinic3YTB | a5ed05c17b | |
ghostclinic3YTB | 9a3d9f4185 |
|
@ -0,0 +1,398 @@
|
||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.rsuser
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Mono auto generated files
|
||||||
|
mono_crash.*
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
[Ww][Ii][Nn]32/
|
||||||
|
[Aa][Rr][Mm]/
|
||||||
|
[Aa][Rr][Mm]64/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Ll]og/
|
||||||
|
[Ll]ogs/
|
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# Visual Studio 2017 auto generated files
|
||||||
|
Generated\ Files/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
# NUnit
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
nunit-*.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
|
||||||
|
# ASP.NET Scaffolding
|
||||||
|
ScaffoldingReadMe.txt
|
||||||
|
|
||||||
|
# StyleCop
|
||||||
|
StyleCopReport.xml
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_h.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*_wpftmp.csproj
|
||||||
|
*.log
|
||||||
|
*.tlog
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# Visual Studio Trace Files
|
||||||
|
*.e2e
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool
|
||||||
|
.axoCover/*
|
||||||
|
!.axoCover/settings.json
|
||||||
|
|
||||||
|
# Coverlet is a free, cross platform Code Coverage Tool
|
||||||
|
coverage*.json
|
||||||
|
coverage*.xml
|
||||||
|
coverage*.info
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# NuGet Symbol Packages
|
||||||
|
*.snupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
*.appxbundle
|
||||||
|
*.appxupload
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!?*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Including strong name files can present a security risk
|
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||||
|
#*.snk
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
ServiceFabricBackup/
|
||||||
|
*.rptproj.bak
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
*.rptproj.rsuser
|
||||||
|
*- [Bb]ackup.rdl
|
||||||
|
*- [Bb]ackup ([0-9]).rdl
|
||||||
|
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
|
||||||
|
*.vbp
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
|
||||||
|
*.dsw
|
||||||
|
*.dsp
|
||||||
|
|
||||||
|
# Visual Studio 6 technical files
|
||||||
|
*.ncb
|
||||||
|
*.aps
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# CodeRush personal settings
|
||||||
|
.cr/personal
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
# tools/**
|
||||||
|
# !tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
|
|
||||||
|
# OpenCover UI analysis results
|
||||||
|
OpenCover/
|
||||||
|
|
||||||
|
# Azure Stream Analytics local run output
|
||||||
|
ASALocalRun/
|
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log
|
||||||
|
*.binlog
|
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file
|
||||||
|
*.nvuser
|
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder
|
||||||
|
.mfractor/
|
||||||
|
|
||||||
|
# Local History for Visual Studio
|
||||||
|
.localhistory/
|
||||||
|
|
||||||
|
# Visual Studio History (VSHistory) files
|
||||||
|
.vshistory/
|
||||||
|
|
||||||
|
# BeatPulse healthcheck temp database
|
||||||
|
healthchecksdb
|
||||||
|
|
||||||
|
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||||
|
MigrationBackup/
|
||||||
|
|
||||||
|
# Ionide (cross platform F# VS Code tools) working folder
|
||||||
|
.ionide/
|
||||||
|
|
||||||
|
# Fody - auto-generated XML schema
|
||||||
|
FodyWeavers.xsd
|
||||||
|
|
||||||
|
# VS Code files for those working on multiple tools
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
|
# Local History for Visual Studio Code
|
||||||
|
.history/
|
||||||
|
|
||||||
|
# Windows Installer files from build outputs
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# JetBrains Rider
|
||||||
|
*.sln.iml
|
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
latest source build: SizedApparel1.4WIP22
|
|
@ -0,0 +1,131 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>AOC</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,127 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Alien_Bori</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Alien_Miho</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Rabbie</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Ratkin</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Ratkin_Su</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,131 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Alien_SP</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,717 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Human</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<!-- Wip -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Nipples</partName> -->
|
||||||
|
<!-- <boneName>Breasts</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Breasts</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Breasts</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Nipple</colorType> -->
|
||||||
|
<!-- <isBreasts>true</isBreasts> -->
|
||||||
|
<!-- <mustHaveBone>false</mustHaveBone> -->
|
||||||
|
<!-- <centeredTexture>false</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0114</south> -->
|
||||||
|
<!-- <north>0.0011</north> -->
|
||||||
|
<!-- <east>0.0114</east> -->
|
||||||
|
<!-- <west>0.0114</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Hulk</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Fat</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Breasts</partName> -->
|
||||||
|
<!-- <boneName>Breasts</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Breasts</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Breasts</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>true</isBreasts> -->
|
||||||
|
<!-- <mustHaveBone>false</mustHaveBone> -->
|
||||||
|
<!-- <centeredTexture>false</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0113</south> -->
|
||||||
|
<!-- <north>0.001</north> -->
|
||||||
|
<!-- <east>0.0113</east> -->
|
||||||
|
<!-- <west>0.0113</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Vagina</partName> -->
|
||||||
|
<!-- <boneName>Vagina</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Vagina</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Vagina</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <mustHaveBone>true</mustHaveBone> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0088</south> -->
|
||||||
|
<!-- <north>0.0100</north> -->
|
||||||
|
<!-- <east>0.0088</east> -->
|
||||||
|
<!-- <west>0.0088</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Anus</partName> -->
|
||||||
|
<!-- <boneName>Anus</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Anus</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Anus</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0093</south> -->
|
||||||
|
<!-- <north>0.0105</north> -->
|
||||||
|
<!-- <east>0.0093</east> -->
|
||||||
|
<!-- <west>0.0093</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Belly</partName> -->
|
||||||
|
<!-- <boneName>Belly</boneName> -->
|
||||||
|
<!-- <defaultHediffName>BellyBulge</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Belly</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>false</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0098</south> -->
|
||||||
|
<!-- <north>0.0002</north> -->
|
||||||
|
<!-- <east>0.0098</east> -->
|
||||||
|
<!-- <west>0.0098</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Penis</partName> -->
|
||||||
|
<!-- <boneName>Penis</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Penis</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Penis</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0108</south> -->
|
||||||
|
<!-- <north>0.0025</north> -->
|
||||||
|
<!-- <east>0.0108</east> -->
|
||||||
|
<!-- <west>0.0108</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Balls</partName> -->
|
||||||
|
<!-- <boneName>Balls</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Penis</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Balls</bodyPartOf> -->
|
||||||
|
<!-- <customPath>Penis/Balls</customPath> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0096</south> -->
|
||||||
|
<!-- <north>0.0085</north> -->
|
||||||
|
<!-- <east>0.0096</east> -->
|
||||||
|
<!-- <west>0.0096</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,717 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Human</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<!-- Wip -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Nipples</partName> -->
|
||||||
|
<!-- <boneName>Breasts</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Breasts</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Breasts</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Nipple</colorType> -->
|
||||||
|
<!-- <isBreasts>true</isBreasts> -->
|
||||||
|
<!-- <mustHaveBone>false</mustHaveBone> -->
|
||||||
|
<!-- <centeredTexture>false</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0114</south> -->
|
||||||
|
<!-- <north>0.0011</north> -->
|
||||||
|
<!-- <east>0.0114</east> -->
|
||||||
|
<!-- <west>0.0114</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Hulk</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Fat</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<!-- Sized Apparel will Use defName for TextureSearch -->
|
||||||
|
<defName>Default</defName>
|
||||||
|
<!-- texPath must be set for styling station! -->
|
||||||
|
<texPath>SizedApparel/BodyParts/Human/PubicHair/Default</texPath>
|
||||||
|
<!-- Actual Texture must have "_south" name. -->
|
||||||
|
<!-- for example of this: Default_south.png -->
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<!-- Sized Apparel will Use defName for TextureSearch -->
|
||||||
|
<defName>Line</defName>
|
||||||
|
<!-- texPath must be set for styling station! -->
|
||||||
|
<texPath>SizedApparel/BodyParts/Human/PubicHair/Line</texPath>
|
||||||
|
<!-- Actual Texture must have "_south" name. -->
|
||||||
|
<!-- for example of this: Default_south.png -->
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<!-- Sized Apparel will Use defName for TextureSearch -->
|
||||||
|
<defName>Wild</defName>
|
||||||
|
<!-- texPath must be set for styling station! -->
|
||||||
|
<texPath>SizedApparel/BodyParts/Human/PubicHair/Wild</texPath>
|
||||||
|
<!-- Actual Texture must have "_south" name. -->
|
||||||
|
<!-- for example of this: Default_south.png -->
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<defName>None</defName>
|
||||||
|
<noGraphic>true</noGraphic>
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<!-- Sized Apparel will Use defName for TextureSearch -->
|
||||||
|
<defName>Wild</defName>
|
||||||
|
<!-- texPath must be set for styling station! -->
|
||||||
|
<texPath>SizedApparel/BodyParts/Human/PubicHair/Wild</texPath>
|
||||||
|
<!-- Actual Texture must have "_south" name. -->
|
||||||
|
<!-- for example of this: Default_south.png -->
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>AOC</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Alien_Bori</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,233 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Alien_Miho</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.148)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.150)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.143)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.129)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.139</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.061, 0, -0.155)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.004, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.141))</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.004, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.121)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.109)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.004, 0, -0.123)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.148)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.150)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.143)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.129)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.061, 0, -0.155)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.004, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.004, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.004, 0, -0.123))</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.121)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.109)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.004, 0, -0.123)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,233 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Rabbie</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,233 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Ratkin</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,233 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Ratkin_Su</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Alien_SP</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,668 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Human</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.340)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.346)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.047, 0, -0.238)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.289)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.289)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.174, 0, 0.254)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.01, 0, -0.338)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.062, 0, -0.221)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.01, 0, -0.338)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.062, 0, -0.221)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.301)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.318)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.059, 0, -0.186)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.312)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.318)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.006, 0, -0.256)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.260)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.266)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.137, 0, -0.211)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.307)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.305)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.008, 0, -0.248)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.307)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.305)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.007, 0, -0.248)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.281)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.291)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.021, 0, -0.219)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.002, 0, -0.311)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.057, 0, -0.258)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.268)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.252)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.113, 0, -0.234)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.301)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.311)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.068, 0, -0.250)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.0, 0, -0.301)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.0, 0, -0.311)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.066, 0, -0.250)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.275)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.277)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.066, 0, -0.219)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Hulk</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.004, 0, -0.434)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.453)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.020, 0, -0.395)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.006, 0, -0.383)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.406)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.238, 0, -0.328)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.436)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.0, 0, -0.445)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.029, 0, -0.387)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.436)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.445)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.028, 0, -0.387)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.395)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.027, 0, -0.375)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, -0.424)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Fat</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.002, 0, -0.352)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.002, 0, -0.359)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.148, 0, -0.352)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.297)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.297)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.238, 0, -0.271)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.357)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.363)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.168, 0, -0.348)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.357)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.363)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.168, 0, -0.348)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.307)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.158, 0, -0.338)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.002, 0, -0.209)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.205)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.043, 0, -0.174)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.289)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.002, 0, -0.164)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.084, 0, -0.127)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.047, 0, -0.170)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.047, 0, -0.170)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.166)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.164)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.057, 0, -0.145)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,668 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Human</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.340)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.346)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.047, 0, -0.238)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.289)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.289)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.174, 0, 0.254)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.01, 0, -0.338)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.062, 0, -0.221)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.01, 0, -0.338)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.062, 0, -0.221)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.301)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.318)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.059, 0, -0.186)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.312)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.318)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.006, 0, -0.256)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.260)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.266)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.137, 0, -0.211)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.307)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.305)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.008, 0, -0.248)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.307)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.305)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.007, 0, -0.248)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.281)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.291)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.021, 0, -0.219)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.002, 0, -0.311)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.057, 0, -0.258)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.268)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.252)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.113, 0, -0.234)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.301)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.311)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.068, 0, -0.250)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.0, 0, -0.301)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.0, 0, -0.311)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.066, 0, -0.250)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.275)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.277)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.066, 0, -0.219)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Hulk</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.004, 0, -0.434)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.453)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.020, 0, -0.395)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.006, 0, -0.383)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.406)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.238, 0, -0.328)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.436)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.0, 0, -0.445)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.029, 0, -0.387)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.436)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.445)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.028, 0, -0.387)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.395)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.027, 0, -0.375)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, -0.424)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Fat</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.002, 0, -0.352)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.002, 0, -0.359)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.148, 0, -0.352)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.297)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.297)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.238, 0, -0.271)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.357)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.363)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.168, 0, -0.348)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.357)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.363)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.168, 0, -0.348)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.307)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.158, 0, -0.338)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.002, 0, -0.209)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.205)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.043, 0, -0.174)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.289)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.002, 0, -0.164)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.084, 0, -0.127)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.047, 0, -0.170)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.047, 0, -0.170)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <name>PubicHair</name> -->
|
||||||
|
<!-- <south> -->
|
||||||
|
<!-- <InitialPosition>(0, 0, -0.166)</InitialPosition> -->
|
||||||
|
<!-- <InitialAngle>0</InitialAngle> -->
|
||||||
|
<!-- </south> -->
|
||||||
|
<!-- <north> -->
|
||||||
|
<!-- <InitialPosition>(-0.002, 0, -0.164)</InitialPosition> -->
|
||||||
|
<!-- <InitialAngle>0</InitialAngle> -->
|
||||||
|
<!-- </north> -->
|
||||||
|
<!-- <east> -->
|
||||||
|
<!-- <InitialPosition>(0.057, 0, -0.145)</InitialPosition> -->
|
||||||
|
<!-- <InitialAngle>0</InitialAngle> -->
|
||||||
|
<!-- </east> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
Binary file not shown.
|
@ -0,0 +1,52 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
|
||||||
|
<Patch>
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Biotech</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationSequence">
|
||||||
|
<success>Normal</success>
|
||||||
|
<operations>
|
||||||
|
<li Class="PatchOperationConditional">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Sash"]/apparel/tags</xpath>
|
||||||
|
<nomatch Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Sash"]/apparel</xpath>
|
||||||
|
<value>
|
||||||
|
<tags>
|
||||||
|
<li>SizedApparel_IgnorBreastSize</li>
|
||||||
|
<li>SizedApparel_ShowPrivateCrotch</li>
|
||||||
|
</tags>
|
||||||
|
</value>
|
||||||
|
</nomatch>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Sash"]/apparel/tags</xpath>
|
||||||
|
<value>
|
||||||
|
<li>SizedApparel_IgnorBreastSize</li>
|
||||||
|
<li>SizedApparel_ShowPrivateCrotch</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</li>
|
||||||
|
<li Class="PatchOperationConditional">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Bandolier"]/apparel/tags</xpath>
|
||||||
|
<nomatch Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Bandolier"]/apparel</xpath>
|
||||||
|
<value>
|
||||||
|
<tags>
|
||||||
|
<li>SizedApparel_IgnorBreastSize</li>
|
||||||
|
<li>SizedApparel_ShowPrivateCrotch</li>
|
||||||
|
</tags>
|
||||||
|
</value>
|
||||||
|
</nomatch>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Bandolier"]/apparel/tags</xpath>
|
||||||
|
<value>
|
||||||
|
<li>SizedApparel_IgnorBreastSize</li>
|
||||||
|
<li>SizedApparel_ShowPrivateCrotch</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</li>
|
||||||
|
</operations>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
</Patch>
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
|
||||||
|
<Patch>
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Biotech</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationSequence">
|
||||||
|
<success>Normal</success>
|
||||||
|
<operations>
|
||||||
|
<li Class="PatchOperationConditional">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Sash"]/apparel/tags</xpath>
|
||||||
|
<nomatch Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Sash"]/apparel</xpath>
|
||||||
|
<value>
|
||||||
|
<tags>
|
||||||
|
<li>SizedApparel_IgnorBreastSize</li>
|
||||||
|
<li>SizedApparel_ShowPrivateCrotch</li>
|
||||||
|
</tags>
|
||||||
|
</value>
|
||||||
|
</nomatch>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Sash"]/apparel/tags</xpath>
|
||||||
|
<value>
|
||||||
|
<li>SizedApparel_IgnorBreastSize</li>
|
||||||
|
<li>SizedApparel_ShowPrivateCrotch</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</li>
|
||||||
|
<li Class="PatchOperationConditional">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Bandolier"]/apparel/tags</xpath>
|
||||||
|
<nomatch Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_Bandolier"]/apparel</xpath>
|
||||||
|
<value>
|
||||||
|
<tags>
|
||||||
|
<li>SizedApparel_IgnorBreastSize</li>
|
||||||
|
<li>SizedApparel_ShowPrivateCrotch</li>
|
||||||
|
</tags>
|
||||||
|
</value>
|
||||||
|
</nomatch>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/ThingDef[defName = "Apparel_HeavyBandolier"]/apparel/tags</xpath>
|
||||||
|
<value>
|
||||||
|
<li>SizedApparel_IgnorBreastSize</li>
|
||||||
|
<li>SizedApparel_ShowPrivateCrotch</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</li>
|
||||||
|
</operations>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
</Patch>
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
class AlienRaceSupport
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
//Does it better to optimize?
|
||||||
|
public class Graphic_BodyParts : Verse.Graphic_Multi
|
||||||
|
{
|
||||||
|
public float serverity;
|
||||||
|
public string bodyPart; // such as breasts, penis
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using UnityEngine;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
//Does it better to optimize?
|
||||||
|
public class Graphic_SizedApparel : Graphic_Multi
|
||||||
|
{
|
||||||
|
public string TargetBodyParts = "Breats";
|
||||||
|
//Sized Graphics.
|
||||||
|
public List<Graphic_Multi> graphics;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,321 @@
|
||||||
|
using HarmonyLib;
|
||||||
|
using RimWorld;
|
||||||
|
//using Rimworld_Animations;
|
||||||
|
//using AlienRace;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
public class SizedApparelPatch
|
||||||
|
{
|
||||||
|
|
||||||
|
public static bool alienRaceActive = false;
|
||||||
|
public static bool SJWActive = false;
|
||||||
|
public static bool RJWActive = false;
|
||||||
|
public static bool DubsApparelTweaksActive = false;
|
||||||
|
public static bool rimNudeWorldActive = false;
|
||||||
|
public static bool OTYNudeActive = false;
|
||||||
|
public static bool LicentiaActive = false;
|
||||||
|
public static bool RimworldAnimationActive = false; //rjw animation
|
||||||
|
public static bool MenstruationActive = false; //rjw_menstruation
|
||||||
|
public static bool StatueOfColonistActive = false;
|
||||||
|
|
||||||
|
static SizedApparelPatch()
|
||||||
|
{
|
||||||
|
|
||||||
|
//check SJW
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.Name == "SafeJobWorld"))
|
||||||
|
{
|
||||||
|
SJWActive = true;
|
||||||
|
}
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId == "safe.job.world"))
|
||||||
|
{
|
||||||
|
SJWActive = true;
|
||||||
|
}
|
||||||
|
//check RJW
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.Name == "RimJobWorld"))
|
||||||
|
{
|
||||||
|
RJWActive = true;
|
||||||
|
}
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId == "rim.job.world"))
|
||||||
|
{
|
||||||
|
RJWActive = true;
|
||||||
|
}
|
||||||
|
//check Dubs Apparel Tweaks
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.Name == "Dubs Apparel Tweaks"))
|
||||||
|
{
|
||||||
|
DubsApparelTweaksActive = true;
|
||||||
|
}
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId == "Dubwise.DubsApparelTweaks"))
|
||||||
|
{
|
||||||
|
DubsApparelTweaksActive = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//check Alien Race
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.Name == "Humanoid Alien Races 2.0"))
|
||||||
|
{
|
||||||
|
alienRaceActive = true;
|
||||||
|
}
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.Name.Contains("Humanoid Alien Races")))
|
||||||
|
{
|
||||||
|
alienRaceActive = true;
|
||||||
|
}
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId == "erdelf.HumanoidAlienRaces"))
|
||||||
|
{
|
||||||
|
alienRaceActive = true;
|
||||||
|
}
|
||||||
|
//check RimNudeWorld
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId == "shauaputa.rimnudeworld"))
|
||||||
|
{
|
||||||
|
rimNudeWorldActive = true;
|
||||||
|
}
|
||||||
|
//check OTYNude
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId.Contains("OTY")&& x.PackageId.Contains("Nude")))
|
||||||
|
{
|
||||||
|
OTYNudeActive = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//check Licentia Lab
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId.ToLower() == "LustLicentia.RJWLabs".ToLower()))
|
||||||
|
{
|
||||||
|
LicentiaActive = true;
|
||||||
|
}
|
||||||
|
if (!LicentiaActive)
|
||||||
|
{
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId.ToLower() == "Euclidean.LustLicentia.RJWLabs".ToLower()))
|
||||||
|
{
|
||||||
|
LicentiaActive = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!LicentiaActive)
|
||||||
|
{
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId.ToLower().Contains("LustLicentia.RJWLabs".ToLower())))
|
||||||
|
{
|
||||||
|
LicentiaActive = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//check rjw animation
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId.ToLower() == "c0ffee.rimworld.animations".ToLower()))
|
||||||
|
{
|
||||||
|
RimworldAnimationActive = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//check rjw_menstruation
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId.ToLower() == "rjw.menstruation".ToLower()))
|
||||||
|
{
|
||||||
|
MenstruationActive = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//check statue of Colonist
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.PackageId.ToLower() == "tammybee.statueofcolonist".ToLower()))
|
||||||
|
{
|
||||||
|
StatueOfColonistActive = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Log.Message("[SizedApparel] start");
|
||||||
|
var harmony = new Harmony("SizedApparelforRJW");
|
||||||
|
|
||||||
|
harmony.PatchAll();
|
||||||
|
/*
|
||||||
|
try
|
||||||
|
{
|
||||||
|
((Action)(() => {
|
||||||
|
if (LoadedModManager.RunningModsListForReading.Any(x => x.Name == "OTY_NUDE"))
|
||||||
|
{
|
||||||
|
Log.Message("Sized Apparel for RJW : OTY_NUDE founded");
|
||||||
|
usingOversized = true;
|
||||||
|
usingBackBreaking = true;
|
||||||
|
}
|
||||||
|
}))();
|
||||||
|
}
|
||||||
|
catch (TypeLoadException ex)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//RJW Patch
|
||||||
|
try
|
||||||
|
{
|
||||||
|
((Action)(() =>
|
||||||
|
{
|
||||||
|
if (RJWActive)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
Log.Message("[SizedApparel] RimJobWorld Found");
|
||||||
|
//harmony.Patch(AccessTools.Method(typeof(rjw.JobDriver_SexBaseInitiator), "Start"),
|
||||||
|
//postfix: new HarmonyMethod(typeof(SexStartPatch), "Postfix"));
|
||||||
|
|
||||||
|
//harmony.Patch(AccessTools.Method(typeof(rjw.JobDriver_SexBaseInitiator), "End"),
|
||||||
|
//postfix: new HarmonyMethod(typeof(SexEndPatch), "Postfix"));
|
||||||
|
|
||||||
|
//harmony.Patch(AccessTools.Method(typeof(rjw.SexUtility), "DrawNude"),
|
||||||
|
//postfix: new HarmonyMethod(typeof(DrawNudePatch), "Postfix"));
|
||||||
|
|
||||||
|
harmony.Patch(AccessTools.Method(typeof(Sexualizer), "sexualize_pawn"),
|
||||||
|
postfix: new HarmonyMethod(typeof(SexualizePawnPatch), "Postfix"));
|
||||||
|
|
||||||
|
Log.Message("[SizedApparel] RimJobWorld Patched");
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] RimJobWorld Patch canceled");
|
||||||
|
}
|
||||||
|
}))();
|
||||||
|
}
|
||||||
|
catch (TypeLoadException ex) { }
|
||||||
|
|
||||||
|
|
||||||
|
//Alien Race Patch
|
||||||
|
//Alien Race No longer supported.
|
||||||
|
/*
|
||||||
|
try
|
||||||
|
{
|
||||||
|
((Action)(() =>
|
||||||
|
{
|
||||||
|
if (alienRaceActive)
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] AlienRace Found");
|
||||||
|
|
||||||
|
//harmony.Patch(AccessTools.Method(typeof(AlienRace.HarmonyPatches), "DrawAddons"),
|
||||||
|
//prefix: new HarmonyMethod(typeof(DrawAddonPatch), "Prefix"));
|
||||||
|
|
||||||
|
Log.Message("[SizedApparel] AlienRace Patched");
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] AlienRace Patch canceled");
|
||||||
|
}
|
||||||
|
}))();
|
||||||
|
}
|
||||||
|
catch (TypeLoadException ex) { }
|
||||||
|
*/
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
((Action)(() =>
|
||||||
|
{
|
||||||
|
if (RimworldAnimationActive)
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] RimworldAnimaion(rjw animation) Found");
|
||||||
|
|
||||||
|
harmony.Patch(AccessTools.Method(typeof(Rimworld_Animations.CompBodyAnimator), "tickClip"),
|
||||||
|
postfix: new HarmonyMethod(typeof(RimworldAnimationPatch), "TickClipPostfix"));
|
||||||
|
|
||||||
|
harmony.Patch(AccessTools.Method(typeof(JobDriver_SexBaseInitiator), "End"),
|
||||||
|
postfix: new HarmonyMethod(typeof(RimworldAnimationPatch), "EndClipPostfix"));
|
||||||
|
|
||||||
|
|
||||||
|
Log.Message("[SizedApparel] RimworldAnimaion(rjw animation) Patched");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] RimworldAnimaion(rjw animation) Patch canceled");
|
||||||
|
}
|
||||||
|
}))();
|
||||||
|
}
|
||||||
|
catch (TypeLoadException ex) { }
|
||||||
|
|
||||||
|
//Rim Nude World Patch
|
||||||
|
try
|
||||||
|
{
|
||||||
|
((Action)(() =>
|
||||||
|
{
|
||||||
|
if (alienRaceActive && rimNudeWorldActive)
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] RimNudeWorld Found");
|
||||||
|
/*
|
||||||
|
harmony.Patch(AccessTools.Method(typeof(AlienRace.AlienPartGenerator.BodyAddon), "CanDrawAddon"),
|
||||||
|
postfix: new HarmonyMethod(typeof(RimNudeWorldBreastHidePatch), "Postfix"));
|
||||||
|
*/
|
||||||
|
//harmony.Patch(AccessTools.Method(typeof(RimNudeWorld.GenitalPatch), "Postfix"),
|
||||||
|
//prefix: new HarmonyMethod(typeof(SizedApparelRNWPatch), "Prefix"));
|
||||||
|
|
||||||
|
//Log.Message("SizedApparelforRJW::AlienRacePatch");
|
||||||
|
Log.Message("[SizedApparel] RimNudeWorld Patching...: RevealingApparel");
|
||||||
|
harmony.Patch(AccessTools.Method(typeof(RevealingApparel.RevealingApparel), "CanDrawRevealing"),
|
||||||
|
postfix: new HarmonyMethod(typeof(RevealingApparelPatch), "Postfix"));
|
||||||
|
Log.Message("[SizedApparel] RimNudeWorld Patched: RevealingApparel");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] RimNudeWorld Patch canceled");
|
||||||
|
}
|
||||||
|
}))();
|
||||||
|
}
|
||||||
|
catch (TypeLoadException ex)
|
||||||
|
{
|
||||||
|
Log.Warning("[SizedApparel] Activated RimNudeWorld version not match to patch!\nSome patch for RimNudeWorld may not work!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Dubs Apparel Tweaks Patch
|
||||||
|
try
|
||||||
|
{
|
||||||
|
((Action)(() =>
|
||||||
|
{
|
||||||
|
if (DubsApparelTweaksActive)
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] Dubs Apparel Tweaks Found");
|
||||||
|
//harmony.Patch(AccessTools.Method(typeof(QuickFast.bs), "SwitchIndoors"),
|
||||||
|
//postfix: new HarmonyMethod(typeof(SizedApparelDubsApparelPatch), "indoorPostFixPatch"));
|
||||||
|
Log.Message("[SizedApparel] Dubs Apparel Tweaks (not) Patched (just debug message)");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] Dubs Apparel Tweaks Patch canceled");
|
||||||
|
}
|
||||||
|
}))();
|
||||||
|
}
|
||||||
|
catch (TypeLoadException ex) { }
|
||||||
|
|
||||||
|
|
||||||
|
//SizedApparelPatch
|
||||||
|
try
|
||||||
|
{
|
||||||
|
((Action)(() =>
|
||||||
|
{
|
||||||
|
Log.Message("[SizedApparel] doing PawnRenderer Patch");
|
||||||
|
|
||||||
|
//disable for 1.3
|
||||||
|
/*
|
||||||
|
var original = typeof(PawnRenderer).GetMethod("RenderPawnInternal", BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] {typeof(Vector3),typeof(float), typeof(bool), typeof(Rot4), typeof(Rot4), typeof(RotDrawMode), typeof(bool), typeof(bool), typeof(bool) }, null );
|
||||||
|
var postfix = typeof(DrawPawnPatch).GetMethod("RenderPawnInternalPostfix");
|
||||||
|
var prefix = typeof(DrawPawnPatch).GetMethod("RenderPawnInternalPrefix");
|
||||||
|
harmony.Patch(original, prefix: new HarmonyMethod(prefix), postfix: new HarmonyMethod(postfix));
|
||||||
|
*/
|
||||||
|
|
||||||
|
//1.3
|
||||||
|
var original0 = typeof(Pawn_ApparelTracker).GetMethod("Notify_ApparelChanged");
|
||||||
|
var original1 = typeof(Pawn_ApparelTracker).GetMethod("Notify_ApparelAdded");
|
||||||
|
var original2 = typeof(Pawn_ApparelTracker).GetMethod("Notify_ApparelRemoved");
|
||||||
|
var postfix = typeof(ApparelTrackerPatch).GetMethod("Changed");
|
||||||
|
harmony.Patch(original0, postfix: new HarmonyMethod(postfix));
|
||||||
|
//harmony.Patch(original1, postfix: new HarmonyMethod(postfix));
|
||||||
|
//harmony.Patch(original2, postfix: new HarmonyMethod(postfix));
|
||||||
|
|
||||||
|
Log.Message("[SizedApparel] PawnRenderer Patch complete");
|
||||||
|
|
||||||
|
}))();
|
||||||
|
}
|
||||||
|
catch (TypeLoadException ex)
|
||||||
|
{
|
||||||
|
Log.Error("[SizedApparel] Cannot Patch for \"RenderPawnInternal\" Method! the mod may not work!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,107 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
using HarmonyLib;
|
||||||
|
using UnityEngine;
|
||||||
|
//using Rimworld_Animations;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
|
||||||
|
public class RimworldAnimationPatch
|
||||||
|
{
|
||||||
|
//since instance (CompBodyAnimator class) must be soft dependency, Get as System.Object.
|
||||||
|
public static void TickClipPostfix(System.Object __instance) //CompBodyAnimator __instance, AnimationDef ___anim, int ___curStage, int ___actor, int ___clipTicks, float ___clipPercent
|
||||||
|
{
|
||||||
|
Rimworld_Animations.CompBodyAnimator instance = __instance as Rimworld_Animations.CompBodyAnimator;
|
||||||
|
|
||||||
|
if (instance == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!instance.controlGenitalAngle)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var comp = instance.parent.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
comp.SetPenisAngle(instance.genitalAngle - instance.bodyAngle); //genitalAngle is global Angle value in rjwanimation... fix with body Angle;
|
||||||
|
|
||||||
|
|
||||||
|
if (!SizedApparelSettings.AnimationPatch)//Rotating Penis Setting(avobe) is set from RimworldAnimation Setting, not in SizedApparel.
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (var actor in instance.actorsInCurrentAnimation)
|
||||||
|
{
|
||||||
|
//comp.ForceUpdateTickAnimation = true;
|
||||||
|
var actorcomp = actor.GetComp<ApparelRecorderComp>();
|
||||||
|
if (actorcomp == null)
|
||||||
|
continue;
|
||||||
|
//actorcomp.SetBreastJiggle(true);
|
||||||
|
actorcomp.ForceUpdateTickAnimation = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
bool isFuckTick = false;
|
||||||
|
/*
|
||||||
|
var soundEffects = ((PawnAnimationClip)___anim.animationStages[___curStage].animationClips[___actor]).SoundEffects;
|
||||||
|
if (soundEffects.ContainsKey(___clipTicks) && (soundEffects[___clipTicks].Contains("Fuck") || soundEffects[___clipTicks].Contains("Suck")))
|
||||||
|
{
|
||||||
|
isFuckTick = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const int jiggleTime = 3;
|
||||||
|
for(int i = 0; i < jiggleTime; i++)
|
||||||
|
{
|
||||||
|
if (soundEffects.ContainsKey(___clipTicks - i) && soundEffects[___clipTicks - i].Contains("Fuck"))
|
||||||
|
{
|
||||||
|
isFuckTick = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
//need to find partner's breasts.
|
||||||
|
/*
|
||||||
|
if (isFuckTick)
|
||||||
|
{
|
||||||
|
foreach (var actor in __instance.actorsInCurrentAnimation)
|
||||||
|
{
|
||||||
|
actor.GetComp<ApparelRecorderComp>().SetBreastJiggle(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var actor in __instance.actorsInCurrentAnimation)
|
||||||
|
{
|
||||||
|
actor.GetComp<ApparelRecorderComp>().SetBreastJiggle(false);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
//may have some tick issue? too fast jiggle?
|
||||||
|
}
|
||||||
|
|
||||||
|
//rjw's JobDriver_SexBaseInitiator end patch
|
||||||
|
public static void EndClipPostfix(System.Object __instance)//CompBodyAnimator __instance
|
||||||
|
{
|
||||||
|
Rimworld_Animations.CompBodyAnimator instance = __instance as Rimworld_Animations.CompBodyAnimator;
|
||||||
|
if (instance == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!instance.controlGenitalAngle)
|
||||||
|
return;
|
||||||
|
var comp = instance.parent.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
comp.SetBreastJiggle(false, -1);
|
||||||
|
comp.ForceUpdateTickAnimation = false;
|
||||||
|
comp.SetPenisAngle(0);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -17,7 +17,7 @@ namespace SizedApparel
|
||||||
|
|
||||||
if (graphicSet == null)
|
if (graphicSet == null)
|
||||||
return;
|
return;
|
||||||
var comp = pawn.TryGetComp<ApparelRecorderComp>();
|
var comp = pawn.GetComp<ApparelRecorderComp>();
|
||||||
if (comp == null)
|
if (comp == null)
|
||||||
return;
|
return;
|
||||||
comp.needToCheckApparelGraphicRecords = true;
|
comp.needToCheckApparelGraphicRecords = true;
|
|
@ -0,0 +1,39 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using UnityEngine;
|
||||||
|
using Verse;
|
||||||
|
using RJW_Menstruation;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
public class Patch_Menstruation
|
||||||
|
{
|
||||||
|
|
||||||
|
public static Color? GetNippleColor(Hediff breastHediff)
|
||||||
|
{
|
||||||
|
var breastcomp = breastHediff.TryGetComp<HediffComp_Breast>();
|
||||||
|
if (breastcomp == null)
|
||||||
|
return null;
|
||||||
|
return breastcomp.NippleColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float? GetNippleSize(Hediff breastHediff)
|
||||||
|
{
|
||||||
|
var breastcomp = breastHediff.TryGetComp<HediffComp_Breast>();
|
||||||
|
if (breastcomp == null)
|
||||||
|
return null;
|
||||||
|
return breastcomp.NippleSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float? GetAreolaSize(Hediff breastHediff)
|
||||||
|
{
|
||||||
|
var breastcomp = breastHediff.TryGetComp<HediffComp_Breast>();
|
||||||
|
if (breastcomp == null)
|
||||||
|
return null;
|
||||||
|
return breastcomp.AreolaSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,10 +18,10 @@ namespace SizedApparel
|
||||||
{
|
{
|
||||||
if (!UnityData.IsInMainThread)
|
if (!UnityData.IsInMainThread)
|
||||||
return;
|
return;
|
||||||
ApparelRecorderComp comp = pawn?.TryGetComp<ApparelRecorderComp>();
|
ApparelRecorderComp comp = pawn?.GetComp<ApparelRecorderComp>();
|
||||||
if (comp == null)
|
if (comp == null)
|
||||||
return;
|
return;
|
||||||
comp.SetDirty();
|
comp.SetDirty(true,true,true);
|
||||||
/*
|
/*
|
||||||
comp.ClearAll();
|
comp.ClearAll();
|
||||||
var graphicSet = pawn.Drawer?.renderer?.graphics;
|
var graphicSet = pawn.Drawer?.renderer?.graphics;
|
||||||
|
@ -69,7 +69,7 @@ namespace SizedApparel
|
||||||
return;
|
return;
|
||||||
//GetBreastSeverity(__instance.pawn, out breastSeverity, out breastHediff);
|
//GetBreastSeverity(__instance.pawn, out breastSeverity, out breastHediff);
|
||||||
//bool flag = hasUnSupportedApparel(__instance.pawn, breastSeverity, breastHediff);
|
//bool flag = hasUnSupportedApparel(__instance.pawn, breastSeverity, breastHediff);
|
||||||
ApparelRecorderComp comp = pawn.TryGetComp<ApparelRecorderComp>();
|
ApparelRecorderComp comp = pawn.GetComp<ApparelRecorderComp>();
|
||||||
if (comp != null)
|
if (comp != null)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -128,7 +128,7 @@ namespace SizedApparel
|
||||||
{
|
{
|
||||||
if (pawn == null)
|
if (pawn == null)
|
||||||
return;
|
return;
|
||||||
ApparelRecorderComp comp = pawn.TryGetComp<ApparelRecorderComp>();
|
ApparelRecorderComp comp = pawn.GetComp<ApparelRecorderComp>();
|
||||||
if (comp == null)
|
if (comp == null)
|
||||||
return;
|
return;
|
||||||
comp.SetDirty();
|
comp.SetDirty();
|
||||||
|
@ -146,7 +146,7 @@ namespace SizedApparel
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ApparelRecorderComp pawnARC = __instance.pawn.TryGetComp<ApparelRecorderComp>();
|
ApparelRecorderComp pawnARC = __instance.pawn.GetComp<ApparelRecorderComp>();
|
||||||
if (pawnARC != null)
|
if (pawnARC != null)
|
||||||
{
|
{
|
||||||
if (__instance.pawn.RaceProps.Humanlike)
|
if (__instance.pawn.RaceProps.Humanlike)
|
||||||
|
@ -161,7 +161,7 @@ namespace SizedApparel
|
||||||
var partner = __instance.Partner as Pawn;
|
var partner = __instance.Partner as Pawn;
|
||||||
if (partner == null)
|
if (partner == null)
|
||||||
return;
|
return;
|
||||||
ApparelRecorderComp partnerARC = partner.TryGetComp<ApparelRecorderComp>();
|
ApparelRecorderComp partnerARC = partner.GetComp<ApparelRecorderComp>();
|
||||||
if (partnerARC != null)
|
if (partnerARC != null)
|
||||||
{
|
{
|
||||||
if (partner.RaceProps.Humanlike)
|
if (partner.RaceProps.Humanlike)
|
||||||
|
@ -182,7 +182,7 @@ namespace SizedApparel
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
ApparelRecorderComp pawnARC = __instance.pawn.TryGetComp<ApparelRecorderComp>();
|
ApparelRecorderComp pawnARC = __instance.pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
|
||||||
if (pawnARC != null)
|
if (pawnARC != null)
|
||||||
{
|
{
|
||||||
|
@ -209,7 +209,7 @@ namespace SizedApparel
|
||||||
var partner = __instance.Partner as Pawn;
|
var partner = __instance.Partner as Pawn;
|
||||||
if (partner == null)
|
if (partner == null)
|
||||||
return;
|
return;
|
||||||
ApparelRecorderComp partnerARC = partner.TryGetComp<ApparelRecorderComp>();
|
ApparelRecorderComp partnerARC = partner.GetComp<ApparelRecorderComp>();
|
||||||
if (partnerARC != null)
|
if (partnerARC != null)
|
||||||
{
|
{
|
||||||
partnerARC.havingSex = false;
|
partnerARC.havingSex = false;
|
|
@ -36,7 +36,7 @@ namespace SizedApparel
|
||||||
{
|
{
|
||||||
if (__result == false)
|
if (__result == false)
|
||||||
return;
|
return;
|
||||||
var comp = pawn.TryGetComp<ApparelRecorderComp>();
|
var comp = pawn.GetComp<ApparelRecorderComp>();
|
||||||
if (comp == null)
|
if (comp == null)
|
||||||
return;
|
return;
|
||||||
if (comp.hasUnsupportedApparel)
|
if (comp.hasUnsupportedApparel)
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
public class Patch_StatueOfColonist
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
|
||||||
|
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
|
||||||
|
// 이러한 특성 값을 변경하세요.
|
||||||
|
[assembly: AssemblyTitle("SizedApparelforRJW")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("SizedApparelforRJW")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
|
||||||
|
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
|
||||||
|
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||||
|
[assembly: Guid("b06471b4-4c6c-478b-b94d-71cc53abd24d")]
|
||||||
|
|
||||||
|
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||||
|
//
|
||||||
|
// 주 버전
|
||||||
|
// 부 버전
|
||||||
|
// 빌드 번호
|
||||||
|
// 수정 버전
|
||||||
|
//
|
||||||
|
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
|
||||||
|
// 기본값으로 할 수 있습니다.
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -0,0 +1,37 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
using HarmonyLib;
|
||||||
|
using UnityEngine;
|
||||||
|
using rjw;
|
||||||
|
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
//IdeoUIUtility.DoAppearanceItems
|
||||||
|
[HarmonyPatch(typeof(IdeoUIUtility), "DoAppearanceItems")]
|
||||||
|
static class SizedApparAppearanceUIPatch
|
||||||
|
{
|
||||||
|
//Todo: Use Transpiler
|
||||||
|
static public void oldPostfix(Ideo ideo, IdeoEditMode editMode, ref float curY, float width)
|
||||||
|
{
|
||||||
|
//DrawPubicBlox()
|
||||||
|
Rect rect = new Rect(4f, curY, IdeoUIUtility.PreceptBoxSize.x, IdeoUIUtility.PreceptBoxSize.y);
|
||||||
|
Widgets.DrawRectFast(rect, IdeoUIUtility.GetBackgroundColor(PreceptImpact.Medium), null);
|
||||||
|
string text = "PubicHair".Translate();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void DrawPubicBox(float xOffset, float y, StyleItemTab tab, StyleItemDef defToDisplay)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
//apparel build with apparel parts. but how?
|
||||||
|
public class SizedApparelApparelBuilder
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,163 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using UnityEngine;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
|
||||||
|
//This Class is Use for Def BodyParts' Custom Pivot, or Some Special Common Vector Points Per Serverity.
|
||||||
|
//Not Consider Acture Graphic Textures.
|
||||||
|
public class SkeletonDef : Def
|
||||||
|
{
|
||||||
|
//defName = Pawn's race name (such as "Human")
|
||||||
|
//public List<BodyPartGraphicBone> graphicBones = new List<BodyPartGraphicBone>();
|
||||||
|
|
||||||
|
//Do Not Directly Use it
|
||||||
|
public List<Skeleton> skeletons = new List<Skeleton>();
|
||||||
|
|
||||||
|
|
||||||
|
public Skeleton CreateSkeleton(string bodyType)
|
||||||
|
{
|
||||||
|
for(int i = 0; i< skeletons.Count; i++)
|
||||||
|
{
|
||||||
|
if(skeletons[i].bodyType == bodyType)
|
||||||
|
{
|
||||||
|
return new Skeleton(skeletons[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Skeleton
|
||||||
|
{
|
||||||
|
public string bodyType = null; // can be null for animal or etc
|
||||||
|
public List<Bone> Bones;
|
||||||
|
|
||||||
|
//only runtime. Do not Set in Def
|
||||||
|
public Rot4 BodyFacing; // for flip east-west bones
|
||||||
|
public Rot4 HeadFacing; //TODO
|
||||||
|
|
||||||
|
public Skeleton()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public Skeleton(Skeleton skeletonToCopy)
|
||||||
|
{
|
||||||
|
this.Bones = new List<Bone>();
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var s in skeletonToCopy.Bones)
|
||||||
|
{
|
||||||
|
this.Bones.Add(new Bone(s, this));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public Bone FindBone(string boneName)
|
||||||
|
{
|
||||||
|
foreach (var b in this.Bones)
|
||||||
|
{
|
||||||
|
if (b.name == boneName)
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//for deafault bone support?
|
||||||
|
public class BodyPartBoneDef : Def
|
||||||
|
{
|
||||||
|
//DefName is Bone Name To Use.
|
||||||
|
public Vector3 customPivot = new Vector3(0.5f, 0, 0.5f);
|
||||||
|
public Vector3 Position = new Vector3(0.5f, 0, 0.5f); // Local Position(UV) from Body
|
||||||
|
public float Length = 1;
|
||||||
|
public float Rotation = 0;
|
||||||
|
public float Scale = 1f; // Default Render Scale.
|
||||||
|
}
|
||||||
|
|
||||||
|
//Body Parts Graphic can be attached to bone position and rotation
|
||||||
|
public class Bone
|
||||||
|
{
|
||||||
|
|
||||||
|
public string name = null;
|
||||||
|
public Skeleton parentSkeleton = null;
|
||||||
|
//public string parentBoneName = null; // ToDo
|
||||||
|
public bool isHeadBone = false; // TODO
|
||||||
|
public BoneTransform south;
|
||||||
|
public BoneTransform north;
|
||||||
|
public BoneTransform east;
|
||||||
|
public BoneTransform west; // can be null. then use east
|
||||||
|
//hiding Graphic parameter will be in that bodygraphic class
|
||||||
|
|
||||||
|
public Bone()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Bone(Bone boneToCopy, Skeleton parent)
|
||||||
|
{
|
||||||
|
this.name = boneToCopy.name;
|
||||||
|
this.parentSkeleton = parent;
|
||||||
|
this.isHeadBone = boneToCopy.isHeadBone;
|
||||||
|
if(boneToCopy.south != null)
|
||||||
|
this.south = new BoneTransform(boneToCopy.south);
|
||||||
|
if (boneToCopy.north != null)
|
||||||
|
this.north = new BoneTransform(boneToCopy.north);
|
||||||
|
if (boneToCopy.east != null)
|
||||||
|
this.east = new BoneTransform(boneToCopy.east);
|
||||||
|
if (boneToCopy.west != null)
|
||||||
|
this.west = new BoneTransform(boneToCopy.west); // null for use east
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetAngle(float angle)
|
||||||
|
{
|
||||||
|
if(south != null)
|
||||||
|
south.angleOffset = angle;
|
||||||
|
if (north != null)
|
||||||
|
north.angleOffset = angle;
|
||||||
|
if (east != null)
|
||||||
|
east.angleOffset = angle;
|
||||||
|
if (west != null)
|
||||||
|
west.angleOffset = angle;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BoneTransform
|
||||||
|
{
|
||||||
|
//public Vector3 customPivot = new Vector3(0.5f, 0, 0.5f); // used to calculation rotation. the rotating center will be customPivot.
|
||||||
|
//Custom Pivot Doesn't affect to Draw Position on zero Rotated.
|
||||||
|
public Vector3 InitialPosition = Vector3.zero; // Local Position(UV) from Body
|
||||||
|
public float InitialLength = 1;
|
||||||
|
public float InitialAngle = 0;
|
||||||
|
public float InitialScale = 1f;
|
||||||
|
public bool isHeadBone = false; // TODO
|
||||||
|
|
||||||
|
//public BodyPartGraphicBone parentBone; //TODO
|
||||||
|
public Vector3 positionOffset = Vector3.zero;
|
||||||
|
public float lengthOffset = 0;
|
||||||
|
public float angleOffset = 0;
|
||||||
|
public float scaleOffset = 0;
|
||||||
|
|
||||||
|
public BoneTransform() { }
|
||||||
|
|
||||||
|
public BoneTransform(BoneTransform boneToCopy)
|
||||||
|
{
|
||||||
|
|
||||||
|
//this.parentBoneName = boneToCopy.parentBoneName;
|
||||||
|
//this.customPivot = boneToCopy.customPivot;
|
||||||
|
this.InitialPosition = boneToCopy.InitialPosition;
|
||||||
|
this.InitialLength = boneToCopy.InitialLength;
|
||||||
|
this.InitialAngle = boneToCopy.InitialAngle;
|
||||||
|
this.InitialScale = boneToCopy.InitialScale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,272 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using rjw;
|
||||||
|
using HarmonyLib;
|
||||||
|
using UnityEngine;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
public enum colorOverrideMode
|
||||||
|
{
|
||||||
|
Default, Multiply, Add
|
||||||
|
}
|
||||||
|
public class BodyPartVariationWithRace
|
||||||
|
{
|
||||||
|
public string hediffName;
|
||||||
|
public List<string>varName = new List<string>();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SizedApparelBodyPartVariationDef : Def
|
||||||
|
{
|
||||||
|
public string bodyPartName;
|
||||||
|
public List<BodyPartVariationWithRace>variations = new List<BodyPartVariationWithRace>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SizedApparelBodyPartDetail : HediffComp
|
||||||
|
{
|
||||||
|
|
||||||
|
public string variation = null; // null to default
|
||||||
|
public string bodyPartName;
|
||||||
|
public SizedApparelBodyPartVariationDef variationDef;
|
||||||
|
public Color? colorOverride = null;//TODO
|
||||||
|
public colorOverrideMode colorMode = colorOverrideMode.Default;//TODO
|
||||||
|
|
||||||
|
public override string CompTipStringExtra => "Variation: " + (variation == null ? "Default" : variation) + " (sized apparel)";
|
||||||
|
|
||||||
|
public override void CompExposeData()
|
||||||
|
{
|
||||||
|
Scribe_Values.Look<string>(ref this.variation, "variation", null, false);
|
||||||
|
//Scribe_Values.Look<Color?>(ref this.colorOverride, "colorOverride",null, false);
|
||||||
|
//Scribe_Values.Look<colorOverrideMode>(ref this.colorMode, "colorMode", colorOverrideMode.Default, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void CompPostMake()
|
||||||
|
{
|
||||||
|
base.CompPostMake();
|
||||||
|
|
||||||
|
if (SizedApparelUtility.isBreast(parent.def.defName))
|
||||||
|
bodyPartName = "Breasts";
|
||||||
|
else if (Genital_Helper.is_vagina(parent)) // SizedApparelUtility.isVagina(parent.def.defName)
|
||||||
|
bodyPartName = "Vagina";
|
||||||
|
else if (SizedApparelUtility.isAnus(parent.def.defName))
|
||||||
|
bodyPartName = "Anus";
|
||||||
|
else if (SizedApparelUtility.isUdder(parent.def.defName))
|
||||||
|
bodyPartName = "Udder";
|
||||||
|
else if (Genital_Helper.is_penis(parent)) //SizedApparelUtility.isPenis(parent.def.defName)
|
||||||
|
bodyPartName = "Penis";
|
||||||
|
|
||||||
|
else
|
||||||
|
bodyPartName = parent.def.defName;
|
||||||
|
|
||||||
|
|
||||||
|
if (Pawn == null)
|
||||||
|
return;
|
||||||
|
if (DefDatabase<SizedApparelBodyPartVariationDef>.DefCount == 0)
|
||||||
|
{
|
||||||
|
Log.Warning("[Sized Apparel] Cannot Find Any BodyPart Variation Def. It can be version issue or other mod's patch issue.");
|
||||||
|
variation = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
variationDef = DefDatabase<SizedApparelBodyPartVariationDef>.AllDefs?.FirstOrDefault(b => b.bodyPartName == bodyPartName);
|
||||||
|
}
|
||||||
|
catch(ArgumentNullException e)
|
||||||
|
{
|
||||||
|
Log.Warning("[Sized Apparel] Cannot Find Any BodyPart Variation Def of ( " + bodyPartName + " )!. It can be version issue or other mod's patch issue.");
|
||||||
|
variation = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (variationDef == null)
|
||||||
|
return;
|
||||||
|
if (variationDef.variations == null)
|
||||||
|
return;
|
||||||
|
var variations = variationDef.variations?.FirstOrDefault(v => v.hediffName == parent.def.defName);
|
||||||
|
if (variations == null)
|
||||||
|
variations = variationDef.variations?.FirstOrDefault(v => v.hediffName == bodyPartName);
|
||||||
|
if (variations == null)
|
||||||
|
return;
|
||||||
|
if (variations.varName.NullOrEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.variation = variations.varName.RandomElement();
|
||||||
|
|
||||||
|
if (variation.ToLower() == "null" || variation.ToLower() == "default")
|
||||||
|
{
|
||||||
|
variation = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
public class SizedApparelBodyPartDetailProperties : HediffCompProperties
|
||||||
|
{
|
||||||
|
public string bodyPartName;
|
||||||
|
|
||||||
|
public SizedApparelBodyPartDetailProperties()
|
||||||
|
{
|
||||||
|
this.compClass = typeof(SizedApparelBodyPartDetail);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class SizedApparelBodyPartDetailGizmo : Command
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class SizedApparelBodyPartDetailThing : ThingComp
|
||||||
|
{
|
||||||
|
|
||||||
|
public string variation = null; // null to default
|
||||||
|
public string bodyPartName;
|
||||||
|
public SizedApparelBodyPartVariationDef variationDef;
|
||||||
|
public Color? colorOverride = null;//TODO
|
||||||
|
public colorOverrideMode colorMode = colorOverrideMode.Default;//TODO
|
||||||
|
|
||||||
|
|
||||||
|
public override string GetDescriptionPart()
|
||||||
|
{
|
||||||
|
if(SizedApparelSettings.showBodyPartsVariation)
|
||||||
|
return "Variation: " +( variation == null?"Default":variation) + " (sized apparel)";
|
||||||
|
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
public override string TransformLabel(string label)
|
||||||
|
{
|
||||||
|
return label + "Variation: " + variation == null ? "Default" : variation + " (sized apparel)";
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
public override void PostExposeData()
|
||||||
|
{
|
||||||
|
Scribe_Values.Look<string>(ref this.variation, "variation", null, false);
|
||||||
|
//Scribe_Values.Look<Color?>(ref this.colorOverride, "colorOverride",null, false);
|
||||||
|
//Scribe_Values.Look<colorOverrideMode>(ref this.colorMode, "colorMode", colorOverrideMode.Default, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void InitComp(Pawn pawn = null)
|
||||||
|
{
|
||||||
|
HediffDef named = DefDatabase<HediffDef>.GetNamed(this.parent.def.defName, true);
|
||||||
|
List<Pawn> allMaps_FreeColonistsAndPrisonersSpawned = PawnsFinder.AllMaps_FreeColonistsAndPrisonersSpawned;
|
||||||
|
pawn = ((allMaps_FreeColonistsAndPrisonersSpawned != null) ? allMaps_FreeColonistsAndPrisonersSpawned.RandomElement<Pawn>() : null);
|
||||||
|
if (pawn == null)
|
||||||
|
{
|
||||||
|
List<Pawn> all_AliveOrDead = PawnsFinder.All_AliveOrDead;
|
||||||
|
pawn = ((all_AliveOrDead != null) ? all_AliveOrDead.RandomElement<Pawn>() : null);
|
||||||
|
}
|
||||||
|
SizedApparelBodyPartDetail compHediffBodyPart = HediffMaker.MakeHediff(named, pawn, null).TryGetComp<SizedApparelBodyPartDetail>();
|
||||||
|
if (compHediffBodyPart != null)
|
||||||
|
{
|
||||||
|
//compHediffBodyPart.initComp(pawn, false);
|
||||||
|
//compHediffBodyPart.updatesize(0f);
|
||||||
|
this.variation = compHediffBodyPart.variation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override void PostPostMake()
|
||||||
|
{
|
||||||
|
base.PostPostMake();
|
||||||
|
|
||||||
|
if (SizedApparelUtility.isBreast(parent.def.defName))
|
||||||
|
bodyPartName = "Breasts";
|
||||||
|
else if (SizedApparelUtility.isVagina(parent.def.defName))
|
||||||
|
bodyPartName = "Vagina";
|
||||||
|
else if (SizedApparelUtility.isAnus(parent.def.defName))
|
||||||
|
bodyPartName = "Anus";
|
||||||
|
else if (SizedApparelUtility.isUdder(parent.def.defName))
|
||||||
|
bodyPartName = "Udder";
|
||||||
|
else if (SizedApparelUtility.isPenis(parent.def.defName))
|
||||||
|
bodyPartName = "Penis";
|
||||||
|
|
||||||
|
else
|
||||||
|
bodyPartName = parent.def.defName;
|
||||||
|
|
||||||
|
variationDef = DefDatabase<SizedApparelBodyPartVariationDef>.AllDefs?.FirstOrDefault(b => b.bodyPartName == bodyPartName);
|
||||||
|
if (variationDef == null)
|
||||||
|
return;
|
||||||
|
if (variationDef.variations == null)
|
||||||
|
return;
|
||||||
|
var variations = variationDef.variations?.FirstOrDefault(v => v.hediffName == parent.def.defName);
|
||||||
|
if (variations == null)
|
||||||
|
variations = variationDef.variations?.FirstOrDefault(v => v.hediffName == bodyPartName);
|
||||||
|
if (variations == null)
|
||||||
|
return;
|
||||||
|
if (variations.varName.NullOrEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.variation = variations.varName.RandomElement();
|
||||||
|
|
||||||
|
if (variation.ToLower() == "null" || variation.ToLower() == "default")
|
||||||
|
{
|
||||||
|
variation = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
public class SizedApparelBodyPartDetailThingProperties : CompProperties
|
||||||
|
{
|
||||||
|
public string bodyPartName;
|
||||||
|
|
||||||
|
public SizedApparelBodyPartDetailThingProperties()
|
||||||
|
{
|
||||||
|
this.compClass = typeof(SizedApparelBodyPartDetailThing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(SexPartAdder), "recipePartAdder")]
|
||||||
|
public class recipePartAdderPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(RecipeDef recipe, Pawn pawn, BodyPartRecord part, List<Thing> ingredients, Hediff __result)
|
||||||
|
{
|
||||||
|
if (__result == null)
|
||||||
|
return;
|
||||||
|
Thing thing = ingredients.FirstOrDefault(x => x.def.defName == recipe.addsHediff.defName);
|
||||||
|
if (thing == null)
|
||||||
|
return;
|
||||||
|
SizedApparelBodyPartDetailThing CompThing = thing.TryGetComp<SizedApparelBodyPartDetailThing>();
|
||||||
|
SizedApparelBodyPartDetail CompHediff = __result.TryGetComp<SizedApparelBodyPartDetail>();
|
||||||
|
CompHediff.variation = CompThing.variation;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
[HarmonyPatch(typeof(SexPartAdder), "recipePartRemover")]
|
||||||
|
public class recipePartRemoverPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(Hediff hd, ref Thing __result)
|
||||||
|
{
|
||||||
|
//Thanks! "Stardust" helped
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SizedApparelBodyPartDetailThing CompThing = __result.TryGetComp<SizedApparelBodyPartDetailThing>();
|
||||||
|
SizedApparelBodyPartDetail CompHediff = hd.TryGetComp<SizedApparelBodyPartDetail>();
|
||||||
|
|
||||||
|
CompThing.variation = CompHediff.variation;
|
||||||
|
}
|
||||||
|
catch (NullReferenceException e)
|
||||||
|
{
|
||||||
|
Log.Error(e.StackTrace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
//editing offset for alien race? such as penis, anus offsets, except breast.(breasts position must be matched with apparels.)
|
||||||
|
class SizedApparelBodyPartEditor
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,58 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
using HarmonyLib;
|
||||||
|
//using AlienRace;
|
||||||
|
using UnityEngine;
|
||||||
|
using rjw;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
|
||||||
|
//for avoid first hitch. some day it might need make pre def for fast cache...
|
||||||
|
|
||||||
|
public class ApparelTexture
|
||||||
|
{
|
||||||
|
public BodyTypeDef bodytype;
|
||||||
|
public List<string> textures;
|
||||||
|
|
||||||
|
public string GetTexturePath(int level, out int result)
|
||||||
|
{
|
||||||
|
result = -1;
|
||||||
|
if (level < 0)
|
||||||
|
return null;
|
||||||
|
if (textures.Count > level)
|
||||||
|
{
|
||||||
|
result = level;
|
||||||
|
return textures[level];
|
||||||
|
}
|
||||||
|
if (!textures.NullOrEmpty())
|
||||||
|
{
|
||||||
|
result = textures.Count - 1;
|
||||||
|
return textures[result]; //return biggest as supported
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SizedApparelDef : Def
|
||||||
|
{
|
||||||
|
//def name must be match with apparels DefName
|
||||||
|
public bool hidingGenitals = false; // pants must be true
|
||||||
|
public List<ApparelTexture> SizedTextures;
|
||||||
|
|
||||||
|
public ApparelTexture GetApparelTexture(BodyTypeDef bodytype)
|
||||||
|
{
|
||||||
|
if(SizedTextures != null)
|
||||||
|
{
|
||||||
|
return SizedTextures.FirstOrDefault(a => a.bodytype == bodytype);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,929 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
using HarmonyLib;
|
||||||
|
using UnityEngine;
|
||||||
|
using rjw;
|
||||||
|
using Rimworld_Animations;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
//since I test system alot, source cord is very dirty and not optimized.
|
||||||
|
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
public struct supportedIndex
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
[HarmonyPatch(typeof(Pawn_HealthTracker), "Notify_HediffChanged")]
|
||||||
|
public class PawnHealthTrackerPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(Hediff hediff, Pawn_HealthTracker __instance, ref Pawn ___pawn)
|
||||||
|
{
|
||||||
|
if (___pawn == null)
|
||||||
|
return;
|
||||||
|
var comp = ___pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
if (hediff == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (SizedApparelUtility.isRJWParts(hediff))///
|
||||||
|
{
|
||||||
|
//comp.ClearAll();
|
||||||
|
//comp.Update();
|
||||||
|
comp.SetDirty(false,true,false);
|
||||||
|
//already doing set dirty in hediffchange method.
|
||||||
|
//___pawn.Drawer.renderer.graphics.SetApparelGraphicsDirty();
|
||||||
|
//PortraitsCache.SetDirty(___pawn);
|
||||||
|
//GlobalTextureAtlasManager.TryMarkPawnFrameSetDirty(___pawn);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (SizedApparelUtility.isBellyBulgeHediff(hediff))
|
||||||
|
{
|
||||||
|
comp.SetDirty(false, true, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//for 1.4
|
||||||
|
/*
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
[HarmonyPatch(typeof(Pawn_AgeTracker), "PostResolveLifeStageChange")]
|
||||||
|
public class PawnAgeTrackerPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(Pawn ___pawn)
|
||||||
|
{
|
||||||
|
var comp = ___pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
comp.SetDirty(false,false,false,true,true);//Apparel and Hediff will be changed with other reason. just set skeleton dirty.
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
public class HeddifPatchForRimNudeWorld
|
||||||
|
{
|
||||||
|
//hediff.get_Severity()
|
||||||
|
public static void GetSeverityPostFix(Hediff __instance)
|
||||||
|
{
|
||||||
|
if (__instance.Part != null)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (__instance.Part.def.defName.Equals(SizedApparelUtility.chestString))
|
||||||
|
{
|
||||||
|
if (__instance.def.defName.EndsWith(SizedApparelUtility.breastsString))
|
||||||
|
{
|
||||||
|
//Log.Message("Found Breast Hediff");
|
||||||
|
//_breastSeverity = __instance.Severity;
|
||||||
|
//_breastHediff = __instance;
|
||||||
|
//result = true;
|
||||||
|
//Log.Message(_breastSeverity.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//...get_severity()
|
||||||
|
/*
|
||||||
|
public static void BodyAddonHediffSeverityGraphicPatch(AlienRace.AlienPartGenerator.BodyAddonHediffSeverityGraphic __instance, ref float __result)
|
||||||
|
{
|
||||||
|
if (!SizedApparelPatch.rimNudeWorldActive) { return; }
|
||||||
|
if (!SizedApparelSettings.matchBreastToSupportedApparelSize) { return; }
|
||||||
|
if (__instance.path.Contains(SizedApparelUtility.breastsString))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Obsolete]
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
public class BodyPatch
|
||||||
|
{
|
||||||
|
public static void SetBodyGraphic(Pawn pawn, bool drawClothFlag = true, bool fromGraphicRecord = true, bool revert = false)
|
||||||
|
{
|
||||||
|
//Pawn_ApparelTracker __instance;
|
||||||
|
|
||||||
|
|
||||||
|
//GetBreastSeverity(__instance.pawn, out breastSeverity, out breastHediff);
|
||||||
|
//bool flag = hasUnSupportedApparel(__instance.pawn, breastSeverity, breastHediff);
|
||||||
|
ApparelRecorderComp comp = pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (revert)
|
||||||
|
{
|
||||||
|
var pawnRenderer = pawn.Drawer?.renderer?.graphics;
|
||||||
|
//Log.Message("useBodyTexture");
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (!pawnRenderer.AllResolved)
|
||||||
|
{
|
||||||
|
pawnRenderer.ResolveAllGraphics();
|
||||||
|
}*/
|
||||||
|
|
||||||
|
if (pawnRenderer == null)
|
||||||
|
return;
|
||||||
|
if (comp.graphicSourceNaked != null)
|
||||||
|
pawnRenderer.nakedGraphic = comp.graphicSourceNaked.GetColoredVersion(pawnRenderer.nakedGraphic.Shader, pawnRenderer.nakedGraphic.color, pawnRenderer.nakedGraphic.colorTwo);
|
||||||
|
if (comp.graphicSourceRotten != null)
|
||||||
|
pawnRenderer.rottingGraphic = comp.graphicSourceRotten.GetColoredVersion(pawnRenderer.rottingGraphic.Shader, pawnRenderer.rottingGraphic.color, pawnRenderer.rottingGraphic.colorTwo);
|
||||||
|
//if (comp.graphicSourceFurCovered != null)
|
||||||
|
// pawnRenderer.furCoveredGraphic = comp.graphicSourceRotten.GetColoredVersion(pawnRenderer.furCoveredGraphic.Shader, pawnRenderer.furCoveredGraphic.color, pawnRenderer.furCoveredGraphic.colorTwo);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!comp.hasUpdateBefore)
|
||||||
|
{
|
||||||
|
//comp.Update(true, fromGraphicRecord);
|
||||||
|
}
|
||||||
|
|
||||||
|
float breastSeverity = comp.breastSeverity;
|
||||||
|
Hediff breastHediff = comp.breastHediff;
|
||||||
|
|
||||||
|
|
||||||
|
if (SizedApparelSettings.drawBodyParts == true && SizedApparelSettings.useBodyTexture)//old:SizedApparelSettings.useBodyTexture
|
||||||
|
{
|
||||||
|
//if (SizedApparelSettings.Debug)
|
||||||
|
// Log.Message("[Sized Apparel] Trying to change" + pawn.Name + "'s body texture.");
|
||||||
|
|
||||||
|
var pawnRenderer = pawn.Drawer?.renderer?.graphics;
|
||||||
|
//Log.Message("useBodyTexture");
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (!pawnRenderer.AllResolved)
|
||||||
|
{
|
||||||
|
pawnRenderer.ResolveAllGraphics();
|
||||||
|
}*/
|
||||||
|
if (pawnRenderer == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!comp.hasUnsupportedApparel || SizedApparelUtility.isPawnNaked(pawn) || !drawClothFlag)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (comp.graphicbaseBodyNaked != null)
|
||||||
|
{
|
||||||
|
pawnRenderer.nakedGraphic = comp.graphicbaseBodyNaked.GetColoredVersion(pawnRenderer.nakedGraphic.Shader, pawnRenderer.nakedGraphic.color, pawnRenderer.nakedGraphic.colorTwo);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (comp.graphicbaseBodyRotten != null)
|
||||||
|
{
|
||||||
|
pawnRenderer.rottingGraphic = comp.graphicbaseBodyRotten.GetColoredVersion(pawnRenderer.rottingGraphic.Shader, pawnRenderer.rottingGraphic.color, pawnRenderer.rottingGraphic.colorTwo);
|
||||||
|
|
||||||
|
}/*
|
||||||
|
if (comp.graphicbaseBodyFurCovered != null)
|
||||||
|
{
|
||||||
|
pawnRenderer.furCoveredGraphic = comp.graphicbaseBodyFurCovered.GetColoredVersion(pawnRenderer.furCoveredGraphic.Shader, pawnRenderer.furCoveredGraphic.color, pawnRenderer.furCoveredGraphic.colorTwo);
|
||||||
|
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (comp.graphicSourceNaked != null)
|
||||||
|
pawnRenderer.nakedGraphic = comp.graphicSourceNaked.GetColoredVersion(pawnRenderer.nakedGraphic.Shader, pawnRenderer.nakedGraphic.color, pawnRenderer.nakedGraphic.colorTwo);
|
||||||
|
if (comp.graphicSourceRotten != null)
|
||||||
|
pawnRenderer.rottingGraphic = comp.graphicSourceRotten.GetColoredVersion(pawnRenderer.rottingGraphic.Shader, pawnRenderer.rottingGraphic.color, pawnRenderer.rottingGraphic.colorTwo);
|
||||||
|
//if (comp.graphicSourceFurCovered != null)
|
||||||
|
// pawnRenderer.furCoveredGraphic = comp.graphicSourceFurCovered.GetColoredVersion(pawnRenderer.furCoveredGraphic.Shader, pawnRenderer.furCoveredGraphic.color, pawnRenderer.furCoveredGraphic.colorTwo);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return;//no need to replace full body texture anymore.
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (SizedApparelSettings.useBodyTexture == false)
|
||||||
|
return;
|
||||||
|
|
||||||
|
//Log.Message("Hello");
|
||||||
|
if (pawnGraphicSet == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (pawnGraphicSet.pawn.RaceProps.Humanlike == false)
|
||||||
|
return;
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
//Log.Message("SetBodyGraphic");
|
||||||
|
//pawnGraphicSet.ClearCache();
|
||||||
|
string path = pawnGraphicSet.pawn.story.bodyType.bodyNakedGraphicPath;
|
||||||
|
string path_bodyDessicated = pawnGraphicSet.pawn.story.bodyType.bodyDessicatedGraphicPath;
|
||||||
|
string filename;
|
||||||
|
string pathname;
|
||||||
|
string filename_bodyDessicated;
|
||||||
|
string pathname_bodyDessicated;
|
||||||
|
pathname = System.IO.Path.GetDirectoryName(path);
|
||||||
|
filename = System.IO.Path.GetFileName(path);
|
||||||
|
filename_bodyDessicated = System.IO.Path.GetFileName(path_bodyDessicated);
|
||||||
|
pathname_bodyDessicated = System.IO.Path.GetDirectoryName(path_bodyDessicated);
|
||||||
|
|
||||||
|
//Log.Message("SetPath");
|
||||||
|
bool validBody = false;
|
||||||
|
bool validDessicatedBody = false;
|
||||||
|
|
||||||
|
//pawnGraphicSet.pawn.Drawer.renderer.graphics.nakedGraphic
|
||||||
|
//pawnGraphicSet.pawn.Drawer.renderer.graphics.dessicatedGraphic
|
||||||
|
|
||||||
|
if (hasUnsupportApparel)
|
||||||
|
{
|
||||||
|
//Log.Message("IfhasUnsupportApparel");
|
||||||
|
//Graphic newBodyGraphic = null;
|
||||||
|
//Graphic newRottingGraphic = null;
|
||||||
|
//string path;
|
||||||
|
|
||||||
|
//Log.Message("tryUnsupportedApparelBodyTexture");
|
||||||
|
//OLD::pawnGraphicSet.pawn.Drawer.renderer.graphics
|
||||||
|
if (pawnGraphicSet.nakedGraphic != null)
|
||||||
|
if (ContentFinder<Texture2D>.Get((pawnGraphicSet.pawn.Drawer.renderer.graphics.nakedGraphic.path + "_UnsupportedApparel" + "_south"), false) != null)
|
||||||
|
{
|
||||||
|
pawnGraphicSet.pawn.Drawer.renderer.graphics.nakedGraphic = GraphicDatabase.Get<Graphic_Multi>(pawnGraphicSet.nakedGraphic.path + "_UnsupportedApparel", pawnGraphicSet.nakedGraphic.Shader, pawnGraphicSet.nakedGraphic.drawSize, pawnGraphicSet.nakedGraphic.color, pawnGraphicSet.nakedGraphic.colorTwo);
|
||||||
|
validBody = true;
|
||||||
|
}
|
||||||
|
if (pawnGraphicSet.dessicatedGraphic != null)
|
||||||
|
if (ContentFinder<Texture2D>.Get((pawnGraphicSet.dessicatedGraphic.path + "_UnsupportedApparel" + "_south"), false) != null)
|
||||||
|
{
|
||||||
|
pawnGraphicSet.dessicatedGraphic = GraphicDatabase.Get<Graphic_Multi>(pawnGraphicSet.dessicatedGraphic.path + "_UnsupportedApparel", pawnGraphicSet.rottingGraphic.Shader, pawnGraphicSet.rottingGraphic.drawSize, pawnGraphicSet.rottingGraphic.color, pawnGraphicSet.rottingGraphic.colorTwo);
|
||||||
|
validDessicatedBody = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Log.Message("undo");
|
||||||
|
string currentPath = pawnGraphicSet.nakedGraphic.path;
|
||||||
|
string currentDessicatedPath = pawnGraphicSet.dessicatedGraphic.path;
|
||||||
|
//Log.Message(currentPath.Substring(0,currentPath.Length - "_UnsupportedApparel".Length));
|
||||||
|
if (pawnGraphicSet.nakedGraphic != null)
|
||||||
|
if (ContentFinder<Texture2D>.Get(currentPath.Substring(0, currentPath.Length - "_UnsupportedApparel".Length) + "_south", false) != null)
|
||||||
|
{
|
||||||
|
pawnGraphicSet.nakedGraphic = GraphicDatabase.Get<Graphic_Multi>((currentPath.Substring(0, currentPath.Length - "_UnsupportedApparel".Length)), pawnGraphicSet.nakedGraphic.Shader, pawnGraphicSet.nakedGraphic.drawSize, pawnGraphicSet.nakedGraphic.color, pawnGraphicSet.nakedGraphic.colorTwo);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (pawnGraphicSet.dessicatedGraphic != null)
|
||||||
|
if (ContentFinder<Texture2D>.Get(currentDessicatedPath.Substring(0, currentDessicatedPath.Length - "_UnsupportedApparel".Length) + "_south", false) != null)
|
||||||
|
{
|
||||||
|
pawnGraphicSet.dessicatedGraphic = GraphicDatabase.Get<Graphic_Multi>((currentDessicatedPath.Substring(0, currentDessicatedPath.Length - "_UnsupportedApparel".Length)), pawnGraphicSet.nakedGraphic.Shader, pawnGraphicSet.nakedGraphic.drawSize, pawnGraphicSet.nakedGraphic.color, pawnGraphicSet.nakedGraphic.colorTwo);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}*/
|
||||||
|
//pawnGraphicSet.ClearCache();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private static void GetBreastSeverity(Pawn pawn, out float breastSeverity, out Hediff breastHediff)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Obsolete]
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
//[HarmonyPatch(typeof(Pawn_ApparelTracker), "ExposeData")]
|
||||||
|
class ApparelTrackerExposePatch
|
||||||
|
{
|
||||||
|
static void Postfix(Pawn_ApparelTracker __instance)
|
||||||
|
{
|
||||||
|
if (!UnityData.IsInMainThread)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (__instance.pawn == null)
|
||||||
|
return;
|
||||||
|
if (Scribe.mode == LoadSaveMode.PostLoadInit)
|
||||||
|
{
|
||||||
|
ApparelRecorderComp comp = __instance.pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
if (!comp.hasUpdateBefore)
|
||||||
|
comp.Update(true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//[StaticConstructorOnStartup]
|
||||||
|
//[HarmonyPatch(typeof(Pawn_ApparelTracker), "Notify_ApparelChanged")]
|
||||||
|
//rimworld 1.2 => apparelChanged, rimworld 1.3 => apparelAdded, apparelRemoved
|
||||||
|
public class ApparelTrackerPatch
|
||||||
|
{
|
||||||
|
//Prefix
|
||||||
|
public static void Changed(Pawn_ApparelTracker __instance)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
if (Current.Game.World == null)
|
||||||
|
return;
|
||||||
|
*/
|
||||||
|
if (!UnityData.IsInMainThread)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (__instance.pawn == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (SizedApparelSettings.Debug)
|
||||||
|
Log.Message("[Sized Apparel] " + __instance.pawn.Name + "'s apparels are changed. updating sizedApparels for it.");
|
||||||
|
|
||||||
|
//GetBreastSeverity(__instance.pawn, out breastSeverity, out breastHediff);
|
||||||
|
//bool flag = hasUnSupportedApparel(__instance.pawn, breastSeverity, breastHediff);
|
||||||
|
ApparelRecorderComp comp = __instance.pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp != null)
|
||||||
|
{
|
||||||
|
//comp.ClearBreastCacheValue();
|
||||||
|
//comp.ClearAll();
|
||||||
|
//bool flag = false;
|
||||||
|
//SizedApparelUtility.GetBreastSeverity(__instance.pawn, out breastSeverity, out breastHediff);
|
||||||
|
//flag = SizedApparelUtility.hasUnSupportedApparel(__instance.pawn, breastSeverity, breastHediff);
|
||||||
|
//flag = SizedApparelUtility.hasUnSupportedApparelFromWornData(__instance.pawn, breastSeverity, breastHediff);
|
||||||
|
//comp.hasUpdateBefore = true;
|
||||||
|
//comp.hasUnsupportedApparel = flag;
|
||||||
|
//comp.breastHediff = breastHediff; ;
|
||||||
|
//comp.breastSeverity = breastSeverity;
|
||||||
|
//comp.Update(true, false);//TODO: Coverd But No Graphic may cause Big Issue!!!
|
||||||
|
//comp.Update(true, true);
|
||||||
|
|
||||||
|
comp.SetDirty(false,false,true);
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (SizedApparelSettings.drawBodyParts)//old:SizedApparelSettings.useBodyTexture
|
||||||
|
BodyPatch.SetBodyGraphic(__instance.pawn);
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
//Log.Message(comp.testbool.ToString());
|
||||||
|
//Log.Message("ApparelChanged");
|
||||||
|
//comp.hasUnsupportedApparel = flag;
|
||||||
|
//comp.hasUpdateBefore = true;
|
||||||
|
//comp.SetHasUnsupportedApparel(flag);
|
||||||
|
//comp.SetHasUpdateBefore(true);
|
||||||
|
//if (__instance.pawn.Drawer.renderer.graphics != null)
|
||||||
|
|
||||||
|
|
||||||
|
LongEventHandler.ExecuteWhenFinished(delegate
|
||||||
|
{
|
||||||
|
SetBodyGraphic(__instance.pawn.Drawer.renderer.graphics, flag);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
//[HarmonyPatch(typeof(PawnGraphicSet), "SetApparelGraphicsDirty")]
|
||||||
|
class SetApparelGraphicsDirtyPatch
|
||||||
|
{
|
||||||
|
public static bool Prefix(PawnGraphicSet __instance)
|
||||||
|
{
|
||||||
|
if (SizedApparelSettings.useBodyTexture)
|
||||||
|
{
|
||||||
|
//__instance.SetAllGraphicsDirty();
|
||||||
|
//return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
//[HarmonyPatch(typeof(PawnGraphicSet), "get_apparelGraphics")]
|
||||||
|
class PrivatePartsPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(PawnGraphicSet __instance, ref List<ApparelGraphicRecord> __result)
|
||||||
|
{
|
||||||
|
var resualtCach = __result;
|
||||||
|
|
||||||
|
if (SizedApparelSettings.drawBodyParts)
|
||||||
|
{
|
||||||
|
var privateParts = new List<ApparelGraphicRecord>();
|
||||||
|
if (SizedApparelSettings.drawPenis)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
if (SizedApparelSettings.drawVagina)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
if (SizedApparelSettings.drawHips)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
if (SizedApparelSettings.drawHips)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
if (SizedApparelSettings.drawAnus)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//[HarmonyPatch(typeof(PawnGraphicSet), "MatsBodyBaseAt")]
|
||||||
|
public class MatBodyBaseAtPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(PawnGraphicSet __instance, Rot4 facing, RotDrawMode bodyCondition, bool drawClothes, List<Material> __result)
|
||||||
|
{
|
||||||
|
if (__result == null)
|
||||||
|
return;
|
||||||
|
int num = facing.AsInt + 1000 * (int)bodyCondition;
|
||||||
|
List<Material> copy;
|
||||||
|
copy = __result.ListFullCopy();
|
||||||
|
for (int i = 0; i<__result.Count; i++)
|
||||||
|
{
|
||||||
|
//SizedApparelsDatabase.GetSupportedApparelOriginalPath(__result[i].g)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Apparel Graphic Texture injection
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
[HarmonyPatch(typeof(ApparelGraphicRecordGetter), "TryGetGraphicApparel")]
|
||||||
|
[HarmonyBefore(new string[]{"QualityOfBuilding"})]
|
||||||
|
public class GetApparelGraphicFix
|
||||||
|
{
|
||||||
|
public static void Postfix(Apparel apparel, BodyTypeDef bodyType, ref ApparelGraphicRecord rec, ref bool __result)
|
||||||
|
{
|
||||||
|
if (__result == false)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (apparel == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (bodyType == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (apparel.Wearer != null)
|
||||||
|
{
|
||||||
|
//rec = new ApparelGraphicRecord(null, null);
|
||||||
|
var comp = apparel.Wearer.GetComp<ApparelRecorderComp>();
|
||||||
|
|
||||||
|
//if (SizedApparelSettings.matchBodyTextureToMinimumApparelSize)
|
||||||
|
// BreastSeverity = comp.BreastSeverityCache;
|
||||||
|
//int currentBreastSizeIndex = 0;
|
||||||
|
//float currentBreastSeverity = -1;
|
||||||
|
//int minSupportedBreastSizeIndex = 1000;
|
||||||
|
//float minSupportedBreastSeverity = 1000;
|
||||||
|
|
||||||
|
//SizedApparelUtility.GetBreastSeverity(apparel.Wearer, out BreastSeverity, out breastHediff);
|
||||||
|
if (comp != null)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (comp.hasUpdateBefore == false)
|
||||||
|
{
|
||||||
|
//SizedApparelUtility.GetBreastSeverity(apparel.Wearer, out BreastSeverity, out breastHediff);
|
||||||
|
//comp.hasUnsupportedApparel = SizedApparelUtility.hasUnSupportedApparelFromWornData(apparel.Wearer, BreastSeverity, breastHediff);
|
||||||
|
//comp.breastSeverity = BreastSeverity;
|
||||||
|
//comp.breastHediff = breastHediff;
|
||||||
|
//comp.hasUpdateBefore = true;
|
||||||
|
//comp.Update(true,false);
|
||||||
|
}
|
||||||
|
if (comp.isDirty == true)
|
||||||
|
{
|
||||||
|
//return;
|
||||||
|
//comp.ClearAll();
|
||||||
|
//comp.Update(true, false);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if (comp.needToCheckApparelGraphicRecords)
|
||||||
|
{
|
||||||
|
TODO;
|
||||||
|
if (comp.isApparelGraphicRecordChanged())
|
||||||
|
comp.Update(true, false);
|
||||||
|
|
||||||
|
}*/
|
||||||
|
if (comp.needToCheckApparelGraphicRecords)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
if (comp.isApparelGraphicRecordChanged())
|
||||||
|
{
|
||||||
|
//return;
|
||||||
|
//comp.Update(true, true); //1.3
|
||||||
|
//SizedApparelUtility.UpdateAllApparel(___pawn, true);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
//Log.Message("1");
|
||||||
|
var breastHediff = comp.breastHediff;
|
||||||
|
float BreastSeverity = comp.breastSeverity;
|
||||||
|
//Log.Message("2");
|
||||||
|
|
||||||
|
if (SizedApparelSettings.useBreastSizeCapForApparels) //SizedApparelSettings.useBreastSizeCapForApparels //wip
|
||||||
|
BreastSeverity = Math.Min(comp.BreastSeverityCache, BreastSeverity);
|
||||||
|
//Log.Message("3");
|
||||||
|
if (comp.hasUnsupportedApparel == false)//&& (comp.bodyPartBreasts.bodyPartGraphic !=null || comp.bodyPartBreasts.bodyPartGraphicHorny != null)
|
||||||
|
{
|
||||||
|
Graphic sizedGraphic = null;
|
||||||
|
//Log.Message("4");
|
||||||
|
string resultPath = SizedApparelsDatabase.GetSupportedApparelSizedPath(new SizedApparelsDatabase.SizedApparelDatabaseKey(rec.graphic.path, apparel?.Wearer?.def.defName, breastHediff?.def?.defName, apparel.Wearer.gender, apparel?.Wearer?.story?.bodyType?.defName, SizedApparelUtility.BreastSeverityInt(BreastSeverity))).pathWithSizeIndex;
|
||||||
|
if(resultPath != null)
|
||||||
|
{
|
||||||
|
//sizedGraphic = SizedApparelUtility.GetSizedApparelGraphic(rec.graphic, BreastSeverity, apparel?.Wearer?.def.defName, breastHediff.def.defName);
|
||||||
|
sizedGraphic = GraphicDatabase.Get<Graphic_Multi>(resultPath, rec.graphic.Shader, rec.graphic.drawSize, rec.graphic.color, rec.graphic.colorTwo);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(sizedGraphic != null)
|
||||||
|
rec = new ApparelGraphicRecord(sizedGraphic, rec.sourceApparel);
|
||||||
|
|
||||||
|
//minSupportedBreastSizeIndex = Math.Min(currentBreastSizeIndex, minSupportedBreastSizeIndex);
|
||||||
|
//comp.breastSeverityCapToDraw = Math.Min(comp.breastSeverityCapToDraw, minSupportedBreastSeverity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (SizedApparelSettings.Debug)
|
||||||
|
Log.Warning("[Sized Apparel] " + apparel.Wearer.Name + " doesn't have SizedApparel Compoenet!!");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[StaticConstructorOnStartup]
|
||||||
|
[HarmonyPatch(typeof(PawnGraphicSet), "ClearCache")]
|
||||||
|
class GraphicSetClearFix
|
||||||
|
{
|
||||||
|
public static void Postfix(PawnGraphicSet __instance)
|
||||||
|
{
|
||||||
|
if (__instance.pawn == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var comp = __instance.pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
//comp.ClearAll(false);
|
||||||
|
//comp.needToCheckApparelGraphicRecords = true;
|
||||||
|
comp.SetDirty(false,true,false,false,false); // Check Hediff. If you don't the crotch will not have graphic on first load
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//[HarmonyPatch(typeof(PawnGraphicSet), "MatsBodyBaseAt")]
|
||||||
|
public class PawnGraphicSetPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(ref List<Material> __result, ref PawnGraphicSet __instance, Rot4 facing, RotDrawMode bodyCondition)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: Patch After RJW (Sexualize_GenerateNewPawnInternal) or just postfix to Sexualize
|
||||||
|
[HarmonyPatch(typeof(PawnGenerator), "GenerateNewPawnInternal")]
|
||||||
|
public class PawnGeneratorPatch
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(Corpse), "RotStageChanged")]
|
||||||
|
public class RotStagePatch
|
||||||
|
{
|
||||||
|
public static void Prefix(CompRottable __instance)
|
||||||
|
{
|
||||||
|
var comp = __instance.parent.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
comp.SetDirty(false,false,false); // should clear graphicSet....?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Should I Patch this?
|
||||||
|
//[HarmonyPatch(typeof(Pawn_AgeTracker), "RecalculateLifeStageIndex")]
|
||||||
|
public class AgePatch
|
||||||
|
{
|
||||||
|
public static void Postfix(Pawn_AgeTracker __instance, Pawn ___pawn)
|
||||||
|
{
|
||||||
|
var comp = ___pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
comp.CheckAgeChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Styling Station patch..? wip
|
||||||
|
//[HarmonyPatch(typeof(PawnGraphicSet), "MatsBodyBaseAt")]
|
||||||
|
public class BodyMatPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(PawnGraphicSet __instance, RotDrawMode bodyCondition, Rot4 facing, ref List<Material> __result, bool drawClothes)
|
||||||
|
{
|
||||||
|
List<Material> loc = new List<Material>();
|
||||||
|
|
||||||
|
if (bodyCondition == RotDrawMode.Dessicated)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i< __result.Count; i++)
|
||||||
|
{
|
||||||
|
if (bodyCondition == RotDrawMode.Fresh)
|
||||||
|
{
|
||||||
|
if (__result[i] == __instance.nakedGraphic.MatAt(facing, null))
|
||||||
|
{
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (bodyCondition == RotDrawMode.Rotting || __instance.dessicatedGraphic == null)
|
||||||
|
{
|
||||||
|
if (__result[i] == __instance.rottingGraphic.MatAt(facing, null))
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (drawClothes)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
loc.Add(__result[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//RimWorld 1.3
|
||||||
|
//WIPWIPWIP TODO
|
||||||
|
[HarmonyPatch(typeof(PawnRenderer), "BaseHeadOffsetAt")]
|
||||||
|
public class BaseHeadOffsetAtPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(ref PawnRenderer __instance, Pawn ___pawn, Rot4 rotation, ref Vector3 __result)
|
||||||
|
{
|
||||||
|
ApparelRecorderComp apparelRecorder = ___pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (apparelRecorder == null)
|
||||||
|
return;
|
||||||
|
if (apparelRecorder.customPose != null)
|
||||||
|
{
|
||||||
|
//var item = apparelRecorder.currentCustomPose.headOffset.FirstOrDefault(b => b.bodyType == ___pawn.story.bodyType.label);
|
||||||
|
//__result += item.offsets.GetOffset(rotation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//RimWorld 1.3 Only. Not 1.4
|
||||||
|
[HarmonyPatch(typeof(PawnRenderer), "DrawPawnBody")]
|
||||||
|
public class DrawPawnBodyPatch
|
||||||
|
{
|
||||||
|
static MethodInfo overrideMatMethod = AccessTools.Method(typeof(PawnRenderer), "OverrideMaterialIfNeeded");
|
||||||
|
|
||||||
|
|
||||||
|
public static void Prefix(ref PawnRenderer __instance, Pawn ___pawn, PawnRenderFlags flags)
|
||||||
|
{
|
||||||
|
if (!SizedApparelSettings.drawBodyParts)
|
||||||
|
return;
|
||||||
|
if (___pawn == null)
|
||||||
|
return;
|
||||||
|
ApparelRecorderComp apparelRecorder = ___pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (apparelRecorder == null)
|
||||||
|
return;
|
||||||
|
//!flags.FlagSet(PawnRenderFlags.StylingStation)&&
|
||||||
|
bool flag = false;
|
||||||
|
//if (apparelRecorder.needToCheckApparelGraphicRecords && apparelRecorder.isApparelGraphicRecordChanged())
|
||||||
|
/*
|
||||||
|
if (apparelRecorder.isApparelGraphicRecordChanged())
|
||||||
|
{
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (false && flags.FlagSet(PawnRenderFlags.StylingStation))//TODO...?
|
||||||
|
{
|
||||||
|
//apparelRecorder.isDirty is allways true
|
||||||
|
|
||||||
|
if (true)//StylingStation Doesn't work with cache! patch in postfix
|
||||||
|
{
|
||||||
|
if(apparelRecorder.recentClothFlag != flags.FlagSet(PawnRenderFlags.Clothes))
|
||||||
|
apparelRecorder.Update(true, true, true, flags.FlagSet(PawnRenderFlags.Clothes));
|
||||||
|
if(flags.FlagSet(PawnRenderFlags.Clothes))
|
||||||
|
SizedApparelUtility.UpdateAllApparel(___pawn, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((!apparelRecorder.hasUpdateBefore || apparelRecorder.isDirty))
|
||||||
|
{
|
||||||
|
if (SizedApparelSettings.Debug)
|
||||||
|
Log.Message("[SizedApparel] trying to draw " + ___pawn.Name + " with unupdated component or SetDirty! Updating it.");
|
||||||
|
//apparelRecorder.ClearAll();
|
||||||
|
//Todo. Async Update?
|
||||||
|
apparelRecorder.Update(true, true, true, flags.FlagSet(PawnRenderFlags.Clothes));
|
||||||
|
SizedApparelUtility.UpdateAllApparel(___pawn,true);
|
||||||
|
}
|
||||||
|
if (flag)
|
||||||
|
{
|
||||||
|
//apparelRecorder.Update(true, true, true, flags.FlagSet(PawnRenderFlags.Clothes));
|
||||||
|
//apparelRecorder.Update(true, true); 1.3
|
||||||
|
//SizedApparelUtility.UpdateAllApparel(___pawn, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
//don't change body graphic file. it will inject material in PawnGraphicSet.MatsBodyBaseAt
|
||||||
|
if (SizedApparelSettings.drawBodyParts)
|
||||||
|
BodyPatch.SetBodyGraphic(___pawn, flags.FlagSet(PawnRenderFlags.Clothes), false);
|
||||||
|
else
|
||||||
|
BodyPatch.SetBodyGraphic(___pawn, flags.FlagSet(PawnRenderFlags.Clothes), false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Postfix(ref PawnRenderer __instance, Vector3 rootLoc, float angle, Rot4 facing, RotDrawMode bodyDrawType, PawnRenderFlags flags, Pawn ___pawn, Mesh bodyMesh)
|
||||||
|
{
|
||||||
|
if (___pawn == null)
|
||||||
|
return;
|
||||||
|
ApparelRecorderComp apparelRecorder = ___pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (apparelRecorder == null)
|
||||||
|
return;
|
||||||
|
Quaternion quaternion = Quaternion.AngleAxis(angle, Vector3.up);
|
||||||
|
|
||||||
|
if (bodyMesh == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Quaternion quat = Quaternion.AngleAxis(angle, Vector3.up);
|
||||||
|
|
||||||
|
|
||||||
|
string defName = __instance.graphics.pawn.def.defName;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Shader shader = ___pawn.Drawer.renderer.graphics.nakedGraphic.Shader;
|
||||||
|
Color skinColor = Color.white;
|
||||||
|
Color skinColor2 = Color.white;
|
||||||
|
if (bodyDrawType == RotDrawMode.Fresh)
|
||||||
|
{
|
||||||
|
shader = ___pawn.Drawer.renderer.graphics.nakedGraphic.Shader;
|
||||||
|
if (!ShaderUtility.SupportsMaskTex(shader))
|
||||||
|
shader = ShaderDatabase.CutoutSkinOverlay;
|
||||||
|
skinColor = ___pawn.Drawer.renderer.graphics.nakedGraphic.Color;
|
||||||
|
skinColor2 = ___pawn.Drawer.renderer.graphics.nakedGraphic.ColorTwo;
|
||||||
|
}
|
||||||
|
else if(bodyDrawType == RotDrawMode.Rotting)
|
||||||
|
{
|
||||||
|
shader = ___pawn.Drawer.renderer.graphics.rottingGraphic.Shader;
|
||||||
|
if (!ShaderUtility.SupportsMaskTex(shader))
|
||||||
|
shader = ShaderDatabase.CutoutSkinOverlay;
|
||||||
|
skinColor = ___pawn.Drawer.renderer.graphics.rottingGraphic.Color;
|
||||||
|
skinColor2 = ___pawn.Drawer.renderer.graphics.rottingGraphic.ColorTwo;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
//FurCoveredColor
|
||||||
|
if(bodyDrawType == RotDrawMode.Fresh && __instance.graphics.furCoveredGraphic != null)
|
||||||
|
{
|
||||||
|
shader = ___pawn.Drawer.renderer.graphics.furCoveredGraphic.Shader;
|
||||||
|
if (!ShaderUtility.SupportsMaskTex(shader))
|
||||||
|
shader = ShaderDatabase.CutoutSkinOverlay;
|
||||||
|
skinColor = ___pawn.Drawer.renderer.graphics.furCoveredGraphic.Color;
|
||||||
|
skinColor2 = ___pawn.Drawer.renderer.graphics.furCoveredGraphic.ColorTwo;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (flags.FlagSet(PawnRenderFlags.StylingStation))//Styling station doesn't affect to real pawn data. so cannot cache to component.
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//breasts are only rendered when all of worn apparels are supported or nude.
|
||||||
|
|
||||||
|
if (true)//__instance.graphics.furCoveredGraphic == null
|
||||||
|
{
|
||||||
|
apparelRecorder.UpdateTickAnim(rootLoc, angle);
|
||||||
|
apparelRecorder.DrawAllBodyParts(rootLoc, angle, facing, bodyDrawType, flags, ___pawn, bodyMesh);
|
||||||
|
}
|
||||||
|
//else. the DrawPawnFur will draw bodyparts becaust it should be upper
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Base Body Graphic Injection
|
||||||
|
[HarmonyPatch(typeof(PawnGraphicSet), "MatsBodyBaseAt")]
|
||||||
|
public class MatsBodyBastAtPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(ref List<Material> __result, PawnGraphicSet __instance, Rot4 facing, RotDrawMode bodyCondition, bool drawClothes)
|
||||||
|
{
|
||||||
|
if (!SizedApparelSettings.useBodyTexture)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (__result.NullOrEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!SizedApparelUtility.CanApplySizedApparel(__instance.pawn))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var comp = __instance.pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null) // maybe it can be null? but why...? mechanoids?
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (drawClothes)
|
||||||
|
{
|
||||||
|
if (comp.hasUnsupportedApparel)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Material bodyMat = null;
|
||||||
|
Material sizedApparelBaseBodyMat = null;
|
||||||
|
switch (bodyCondition)
|
||||||
|
{
|
||||||
|
case RotDrawMode.Fresh:
|
||||||
|
if(__instance.nakedGraphic != null && comp.graphicbaseBodyNaked != null)
|
||||||
|
{
|
||||||
|
bodyMat = __instance.nakedGraphic.MatAt(facing, null);
|
||||||
|
sizedApparelBaseBodyMat = comp.graphicbaseBodyNaked.MatAt(facing, null);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RotDrawMode.Rotting:
|
||||||
|
if (__instance.rottingGraphic != null && comp.graphicbaseBodyRotten != null)
|
||||||
|
{
|
||||||
|
bodyMat = __instance.rottingGraphic.MatAt(facing, null);
|
||||||
|
sizedApparelBaseBodyMat = comp.graphicbaseBodyRotten.MatAt(facing, null);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RotDrawMode.Dessicated:
|
||||||
|
return;// //don't inject for Dessicated graphic. it doesn't need to patch for this
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
bodyMat = null;
|
||||||
|
sizedApparelBaseBodyMat = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sizedApparelBaseBodyMat == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
//the body mat would be in first index but not sure. so search from start
|
||||||
|
for (int i = 0; i < __result.Count; i++)
|
||||||
|
{
|
||||||
|
if(__result[i] == bodyMat)
|
||||||
|
{
|
||||||
|
__result[i] = sizedApparelBaseBodyMat;
|
||||||
|
//should inject body part graphics here?
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//should do something more? such as add body parts or somthing?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//TODO
|
||||||
|
[HarmonyPatch(typeof(PawnRenderer), "BaseHeadOffsetAt")]
|
||||||
|
public class HeadOffsetPatch
|
||||||
|
{
|
||||||
|
|
||||||
|
public static void Postfix(PawnRenderer __instance, Pawn ___pawn, Rot4 rotation, ref Vector3 __result)
|
||||||
|
{
|
||||||
|
var comp = ___pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Verse;
|
||||||
|
using RimWorld;
|
||||||
|
using HarmonyLib;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
[HarmonyPatch(typeof(PawnRenderer), "BaseHeadOffsetAt")]
|
||||||
|
[HarmonyAfter(new string[]
|
||||||
|
{
|
||||||
|
"rimworld.erdelf.alien_race.main"
|
||||||
|
})]
|
||||||
|
*/
|
||||||
|
//TODO
|
||||||
|
public static class PawnRenderer_BaseHeadOffsetAt_Patch_For_Pose
|
||||||
|
{
|
||||||
|
[HarmonyPostfix]
|
||||||
|
public static void BaseHeadOffsetAtPostfix_Post(PawnRenderer __instance, Rot4 rotation, ref Vector3 __result, ref Pawn ___pawn)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*
|
||||||
|
var comp = ___pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
if (comp.customPose == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
SizedApparelPoseDef poseDef = DefDatabase<SizedApparelPoseDef>.GetNamed(comp.customPose);
|
||||||
|
if (poseDef == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Rot4Offsets? headOffset = new Rot4Offsets();
|
||||||
|
|
||||||
|
string bodyType = ___pawn.story?.bodyType?.defName;
|
||||||
|
if (bodyType == null)
|
||||||
|
{
|
||||||
|
bodyType = "default";
|
||||||
|
headOffset = poseDef.headOffset.FirstOrDefault(b => b.bodyType.ToLower() == "default" | b.bodyType.ToLower() == "null").offsets;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
headOffset = poseDef.headOffset.FirstOrDefault(b => b.bodyType.ToLower() == bodyType.ToLower()).offsets;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (headOffset == null)
|
||||||
|
return;
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//headOffset.
|
||||||
|
|
||||||
|
//TODO: Mesh Based Scaled Offset
|
||||||
|
//__result = __result + headOffset;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class SizedApparelPoseSetDef : Def
|
||||||
|
{
|
||||||
|
|
||||||
|
public List<SizedApparelPose> poses;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PoseDef : Def
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class SizedApparelPose
|
||||||
|
{
|
||||||
|
//public string poseName; use defName as PoseName
|
||||||
|
public SizedApparelBodyPartOf targetBodyPart = SizedApparelBodyPartOf.Torso;
|
||||||
|
//public List<BodyTypeAndOffset> headOffset;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
using HarmonyLib;
|
||||||
|
using UnityEngine;
|
||||||
|
using rjw;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
[HarmonyPatch(typeof(PawnGraphicSet), "CalculateHairMats")]
|
||||||
|
public static class CalculateHairMatsPatch
|
||||||
|
{
|
||||||
|
public static void Postfix()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PubicHairDef : StyleItemDef
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class SizedApparelPubicHair
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static class IdeoStyleTackerPatch
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,856 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Unity;
|
||||||
|
using UnityEngine;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
//include Human, set humanlike's custom setting
|
||||||
|
//Only few settings are allow in ModSetting. other needs to be set in Def (xml) file
|
||||||
|
|
||||||
|
public class AlienRaceSetting : IExposable
|
||||||
|
{
|
||||||
|
public string raceName = null;
|
||||||
|
public bool overrideDef = false;
|
||||||
|
public bool asHuman = false;
|
||||||
|
public float drawMinAge = -1; //pawn's Biological age. -1 to ignore.
|
||||||
|
|
||||||
|
public AlienRaceSetting(string raceName)
|
||||||
|
{
|
||||||
|
this.raceName = raceName;
|
||||||
|
}
|
||||||
|
public AlienRaceSetting()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ExposeData()
|
||||||
|
{
|
||||||
|
Scribe_Values.Look(ref raceName, "raceName", null);
|
||||||
|
Scribe_Values.Look(ref overrideDef, "overrideDef", false);
|
||||||
|
Scribe_Values.Look(ref asHuman, "asHuman", false);
|
||||||
|
Scribe_Values.Look(ref drawMinAge, "drawMinAge", -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//public int ageYoung = -1; //use receDefName_young folder. -1 to ignore
|
||||||
|
//public int ageOld = -1; //use raceDefName_old folder. -1 to ignore.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class SizedApparelSettings : ModSettings
|
||||||
|
{
|
||||||
|
|
||||||
|
public static bool Debug = false;
|
||||||
|
public static bool DetailLog = false;
|
||||||
|
public static bool autoClearCacheOnWriteSetting = true;
|
||||||
|
|
||||||
|
public static bool PreCacheOnLoad = true;
|
||||||
|
public static float PreCacheRandomFactor = 0.5f;
|
||||||
|
|
||||||
|
public static bool useBodyTexture = true;//for user who not use rimnudeworld
|
||||||
|
|
||||||
|
public static bool useGenderSpecificTexture = true;
|
||||||
|
|
||||||
|
public static bool matchBodyTextureToMinimumApparelSize = true;//for avoiding breasts cliping
|
||||||
|
|
||||||
|
public static bool useBreastSizeCapForApparels = true;
|
||||||
|
|
||||||
|
public static bool DontReplaceBodyTextureOnNude = true;
|
||||||
|
//public static bool DontReplaceBodyTextureOnUnsupported = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Apply Target Pawn Category
|
||||||
|
public static bool ApplyHumanlikes = true; //Always true.
|
||||||
|
public static bool ApplyAnimals = true;
|
||||||
|
public static bool ApplyAnimalsPlayerFactionOnly = true; //TODO
|
||||||
|
public static bool ApplyMechanoid = true;
|
||||||
|
|
||||||
|
public static bool ApplyApparelPatchForMale = false; //only ApparelServerityWork.
|
||||||
|
|
||||||
|
public static bool ApplyColonists = true;
|
||||||
|
public static bool ApplySlaves = true;
|
||||||
|
public static bool ApplyPrisoner = true;
|
||||||
|
public static bool ApplyNeutralAndAlly = true;
|
||||||
|
public static bool ApplyHostile = false;
|
||||||
|
|
||||||
|
|
||||||
|
public static bool AnimationPatch = true;
|
||||||
|
|
||||||
|
//TODO: Standalone render bodyparts.
|
||||||
|
public static bool drawBodyParts = true;//for user who not use rimnudeworld
|
||||||
|
public static bool drawBreasts = true;
|
||||||
|
public static bool drawPenis = true;
|
||||||
|
public static bool drawVagina = true;
|
||||||
|
public static bool drawMuscleOverlay = true;
|
||||||
|
public static bool drawHips = true;//TODO
|
||||||
|
public static bool drawAnus = true;
|
||||||
|
public static bool drawBelly = false;//TODO
|
||||||
|
public static bool drawUdder = false;//TODO
|
||||||
|
public static bool drawPubicHair = true;
|
||||||
|
public static bool hideBallOfFuta = false;
|
||||||
|
public static bool hidePenisOfMale = false;
|
||||||
|
public static bool matchBreastToSupportedApparelSize = true;//for avoiding breasts cliping
|
||||||
|
|
||||||
|
public static bool useBodyPartsVariation = true;
|
||||||
|
public static bool showBodyPartsVariation = true;
|
||||||
|
|
||||||
|
public static bool breastsPhysics = false;
|
||||||
|
|
||||||
|
//RimNudeWorld
|
||||||
|
public static bool drawSizedApparelBreastsOnlyWorn = false;
|
||||||
|
public static bool hideRimNudeWorldBreasts = false;//disable rimnudeworld breasts.
|
||||||
|
|
||||||
|
[Obsolete]
|
||||||
|
public static bool useUnsupportedBodyTexture = true;//bodytexture when wearing unsupported apparel.
|
||||||
|
public static bool useSafeJobBreasts = true;
|
||||||
|
|
||||||
|
public static bool changeBodyType;
|
||||||
|
public static bool fatToFemale;
|
||||||
|
public static bool hulkToThin;
|
||||||
|
|
||||||
|
public static bool onlyForFemale = true;
|
||||||
|
public static bool useRandomSize = true;//for user who play without rimjobworld
|
||||||
|
public static float randomSizeMin = 0.01f;
|
||||||
|
public static float randomSizeMax = 1.01f;
|
||||||
|
|
||||||
|
//Lagacy Variable
|
||||||
|
public static bool useTitanic = true;
|
||||||
|
public static bool useColossal = true;
|
||||||
|
public static bool useGargantuan = true;
|
||||||
|
public static bool useMassive = true;
|
||||||
|
public static bool useEnormous = true;
|
||||||
|
public static bool useHuge = true;
|
||||||
|
public static bool useLarge = true;
|
||||||
|
public static bool useAverage = true;
|
||||||
|
public static bool useSmall = true;
|
||||||
|
public static bool useTiny = true;
|
||||||
|
public static bool useNipples = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Alien Race Settings
|
||||||
|
[Obsolete]
|
||||||
|
public static bool UnsupportedRaceToUseHumanlike = false;
|
||||||
|
public static List<string> alienRaces = new List<string>();
|
||||||
|
public static List<string> alienRacesAllowHumanlikTextures = new List<string>(); //This Value Will be Saved and loaded
|
||||||
|
public static string alienRaceSearch = "";
|
||||||
|
public static Vector2 alienRacesListScrollPos;
|
||||||
|
public static List<AlienRaceSetting> alienRaceSettings = new List<AlienRaceSetting>();
|
||||||
|
|
||||||
|
//Force All Apparel as supported
|
||||||
|
public static bool ForcedSupportApparel = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static bool getUseSettingFromIndex(int target)
|
||||||
|
{
|
||||||
|
if (target < 0)
|
||||||
|
return false;
|
||||||
|
else if (target == 0)
|
||||||
|
return useNipples;
|
||||||
|
else if (target == 1)
|
||||||
|
return useTiny;
|
||||||
|
else if (target == 2)
|
||||||
|
return useSmall;
|
||||||
|
else if (target == 3)
|
||||||
|
return useAverage;
|
||||||
|
else if (target == 4)
|
||||||
|
return useLarge;
|
||||||
|
else if (target == 5)
|
||||||
|
return useHuge;
|
||||||
|
else if (target == 6)
|
||||||
|
return useEnormous;
|
||||||
|
else if (target == 7)
|
||||||
|
return useMassive;
|
||||||
|
else if (target == 8)
|
||||||
|
return useGargantuan;
|
||||||
|
else if (target == 9)
|
||||||
|
return useColossal;
|
||||||
|
else if (target == 10)
|
||||||
|
return useTitanic;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static bool useUnderBreasts = true;
|
||||||
|
public static float UnderBreastsOffset = -0.0013f;
|
||||||
|
|
||||||
|
public override void ExposeData()
|
||||||
|
{
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref Debug, "Debug", false);
|
||||||
|
Scribe_Values.Look(ref DetailLog, "DetailLog", false);
|
||||||
|
Scribe_Values.Look(ref autoClearCacheOnWriteSetting, "autoClearCacheOnWriteSetting", true);
|
||||||
|
|
||||||
|
//force to use it. this is important thing.
|
||||||
|
//Scribe_Values.Look(ref useBreastSizeCapForApparels, "useBreastSizeCapForApparels", true);
|
||||||
|
|
||||||
|
//Apply Categories.
|
||||||
|
Scribe_Values.Look(ref ApplyAnimals, "ApplyAnimals", true);
|
||||||
|
Scribe_Values.Look(ref ApplyHumanlikes, "ApplyHumanlikes", true);
|
||||||
|
Scribe_Values.Look(ref ApplyMechanoid, "ApplyMechanoid", true);
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref AnimationPatch, "AnimationPatch", true);
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref useBodyTexture, "useBodyTexture", true);
|
||||||
|
Scribe_Values.Look(ref useGenderSpecificTexture, "useGenderSpecificTexture", true);
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref matchBodyTextureToMinimumApparelSize, "matchBodyTextureToMinimumApparelSize", true);
|
||||||
|
Scribe_Values.Look(ref matchBreastToSupportedApparelSize, "matchBreastToSupportedApparelSize", true);
|
||||||
|
|
||||||
|
//Unsurpported to forced Surpported
|
||||||
|
//Scribe_Values.Look(ref UnsupportedRaceToUseHumanlike, "UnsupportedRaceToUseHumanlike", false);
|
||||||
|
Scribe_Values.Look(ref ForcedSupportApparel, "ForcedSupportApparel", false);
|
||||||
|
|
||||||
|
|
||||||
|
Scribe_Collections.Look<AlienRaceSetting>(ref alienRaceSettings, "alienSettings", LookMode.Deep);
|
||||||
|
if (Scribe.mode == LoadSaveMode.LoadingVars)
|
||||||
|
{
|
||||||
|
if (alienRaceSettings == null)
|
||||||
|
{
|
||||||
|
alienRaceSettings = new List<AlienRaceSetting>();
|
||||||
|
}
|
||||||
|
|
||||||
|
SizedApparelMod.CheckAndLoadAlienRaces();
|
||||||
|
|
||||||
|
//Initialize Setting for missing Race
|
||||||
|
foreach (var raceName in SizedApparelMod.alienDefList)
|
||||||
|
{
|
||||||
|
AlienRaceSetting raceSetting = null;
|
||||||
|
foreach (var r in SizedApparelSettings.alienRaceSettings)
|
||||||
|
{
|
||||||
|
if (r.raceName == null)
|
||||||
|
continue;
|
||||||
|
if (raceName == r.raceName)
|
||||||
|
{
|
||||||
|
raceSetting = r;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (raceSetting == null)
|
||||||
|
{
|
||||||
|
raceSetting = new AlienRaceSetting(raceName);
|
||||||
|
SizedApparelSettings.alienRaceSettings.Add(raceSetting);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
if (Scribe.mode == LoadSaveMode.ResolvingCrossRefs)
|
||||||
|
{
|
||||||
|
if(!alienRaceSettings.NullOrEmpty())
|
||||||
|
alienRaceSettings.RemoveAll((AlienRaceSetting x) => string.IsNullOrEmpty(x.raceName));
|
||||||
|
}
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref useUnsupportedBodyTexture, "useUnsupportedBodyTexture", true);
|
||||||
|
Scribe_Values.Look(ref DontReplaceBodyTextureOnNude, "DontReplaceBodyTextureOnNude", false);
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref hideRimNudeWorldBreasts, "hideRimNudeWorldBreasts", false);
|
||||||
|
Scribe_Values.Look(ref useSafeJobBreasts, "useSafeJobBreasts", true);
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref useRandomSize, "useRandomSize", true);
|
||||||
|
Scribe_Values.Look(ref randomSizeMin, "randomSizeMin", 0.01f);
|
||||||
|
Scribe_Values.Look(ref randomSizeMax, "randomSizeMax", 1.01f);
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref drawBodyParts, "drawBodyParts", true);
|
||||||
|
Scribe_Values.Look(ref useBodyPartsVariation, "useBodyPartsVariation", true); // forse true for now. TODO
|
||||||
|
Scribe_Values.Look(ref showBodyPartsVariation, "showBodyPartsVariation", true);
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref drawMuscleOverlay, "drawMuscleOverlay", true);
|
||||||
|
Scribe_Values.Look(ref drawBreasts, "drawBreasts", true);
|
||||||
|
Scribe_Values.Look(ref drawSizedApparelBreastsOnlyWorn, "drawSizedApparelBreastsOnlyWorn", false);
|
||||||
|
Scribe_Values.Look(ref drawPenis, "drawPenis", true);
|
||||||
|
Scribe_Values.Look(ref drawVagina, "drawVagina", true);
|
||||||
|
Scribe_Values.Look(ref drawAnus, "drawAnus", true);
|
||||||
|
Scribe_Values.Look(ref drawUdder, "drawUdder", true);
|
||||||
|
Scribe_Values.Look(ref drawBelly, "drawBelly", true);
|
||||||
|
Scribe_Values.Look(ref drawPubicHair, "drawPubicHair", true);
|
||||||
|
|
||||||
|
|
||||||
|
//force to draw all size type
|
||||||
|
/*
|
||||||
|
Scribe_Values.Look(ref useTitanic, "useTitanic", true);
|
||||||
|
Scribe_Values.Look(ref useColossal, "useColossal", true);
|
||||||
|
Scribe_Values.Look(ref useGargantuan, "useGargantuan", true);
|
||||||
|
Scribe_Values.Look(ref useMassive, "useMassive", true);
|
||||||
|
Scribe_Values.Look(ref useEnormous, "useEnormous", true);
|
||||||
|
Scribe_Values.Look(ref useHuge, "useHuge", true);
|
||||||
|
Scribe_Values.Look(ref useLarge, "useLarge", true);
|
||||||
|
Scribe_Values.Look(ref useAverage, "useAverage", true);
|
||||||
|
Scribe_Values.Look(ref useSmall, "useSmall", true);
|
||||||
|
Scribe_Values.Look(ref useTiny, "useTiny", true);
|
||||||
|
Scribe_Values.Look(ref useNipples, "useNipples", true);
|
||||||
|
*/
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref useUnderBreasts, "useUnderBreasts",true);
|
||||||
|
Scribe_Values.Look(ref UnderBreastsOffset, "UnderBreastsOffset", -0.0013f);
|
||||||
|
|
||||||
|
//TODO: Humanlike Setting Per Race
|
||||||
|
//Scribe_Values.Look(ref alienRacesAllowHumanlikTextures, "alienRacesAllowHumanlikTextures");
|
||||||
|
|
||||||
|
//BreastsPhysics
|
||||||
|
Scribe_Values.Look(ref breastsPhysics, "breastsPhysics", false);
|
||||||
|
|
||||||
|
|
||||||
|
base.ExposeData();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SizedApparelMod : Mod
|
||||||
|
{
|
||||||
|
|
||||||
|
SizedApparelSettings settings;
|
||||||
|
private static Vector2 ScrollPosL = Vector2.zero;
|
||||||
|
private static Vector2 ScrollPosR = Vector2.zero;
|
||||||
|
public static List<string> alienDefList = new List<string>(); // to load aliens and compare with modsetting
|
||||||
|
|
||||||
|
public override void WriteSettings()
|
||||||
|
{
|
||||||
|
base.WriteSettings();
|
||||||
|
if(SizedApparelSettings.autoClearCacheOnWriteSetting)
|
||||||
|
ClearCache();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void CheckAndLoadAlienRaces()
|
||||||
|
{
|
||||||
|
if(alienDefList == null)
|
||||||
|
alienDefList = new List<string>();
|
||||||
|
if (true)//alienDefList.Count == 0
|
||||||
|
{
|
||||||
|
IEnumerable<ThingDef> HumanlikeRaces;
|
||||||
|
HumanlikeRaces = DefDatabase<ThingDef>.AllDefs.Where(b => b.race?.Humanlike == true);
|
||||||
|
|
||||||
|
foreach (ThingDef raceDef in HumanlikeRaces)
|
||||||
|
{
|
||||||
|
//Default Value Is True
|
||||||
|
alienDefList.Add(raceDef.defName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ClearCache(bool clearPawnGraphicSet = true)
|
||||||
|
{
|
||||||
|
SizedApparelsDatabase.ClearAll();
|
||||||
|
|
||||||
|
if (Find.CurrentMap != null)
|
||||||
|
{
|
||||||
|
foreach (Pawn pawn in Find.CurrentMap.mapPawns.AllPawns)
|
||||||
|
{
|
||||||
|
if (pawn == null)
|
||||||
|
continue;
|
||||||
|
var comp = pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp != null)
|
||||||
|
{
|
||||||
|
comp.UpdateRaceSettingData();
|
||||||
|
comp.SetDirty(clearPawnGraphicSet,true,true,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public SizedApparelMod(ModContentPack content) : base(content)
|
||||||
|
{
|
||||||
|
this.settings = GetSettings<SizedApparelSettings>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DoSettingsWindowContents(Rect inRect)
|
||||||
|
{
|
||||||
|
|
||||||
|
const float alienRaceSettingHeight = 120;
|
||||||
|
|
||||||
|
//CheckAndLoadAlienRaces();
|
||||||
|
Listing_Standard listingStandard = new Listing_Standard();
|
||||||
|
//Rect rect = new Rect(0f, 0f, inRect.width, 950);
|
||||||
|
//Rect rect = inRect.ExpandedBy(0.9f);
|
||||||
|
Rect leftRect = new Rect(inRect.position, new Vector2(inRect.width / 2, inRect.height));
|
||||||
|
Rect rightRect = new Rect(inRect.position + new Vector2(inRect.width / 2,0), new Vector2(inRect.width / 2, inRect.height));
|
||||||
|
//rect.xMax *= 0.9f;
|
||||||
|
//leftRect = leftRect.ContractedBy(10f);
|
||||||
|
rightRect = rightRect.ContractedBy(10f);
|
||||||
|
Rect scrollRect = new Rect(0, 0, leftRect.width - 30f, Math.Max(leftRect.height + (float)alienDefList.Count* alienRaceSettingHeight, 1f));
|
||||||
|
Widgets.BeginScrollView(leftRect, ref ScrollPosL, scrollRect, true);
|
||||||
|
leftRect = new Rect(leftRect.x, leftRect.y, leftRect.width - 30f, leftRect.height + Math.Max((float)alienDefList.Count * alienRaceSettingHeight, 1f) + 250f);
|
||||||
|
listingStandard.Begin(leftRect);
|
||||||
|
listingStandard.maxOneColumn = true;
|
||||||
|
|
||||||
|
listingStandard.CheckboxLabeled("Debug Log", ref SizedApparelSettings.Debug, "Debug logs.\nDefault: false");
|
||||||
|
if (SizedApparelSettings.Debug)
|
||||||
|
{
|
||||||
|
listingStandard.CheckboxLabeled("Debug Log (Detail)", ref SizedApparelSettings.DetailLog, "Debug logs for checking missing textures.\nDefault: false");
|
||||||
|
|
||||||
|
}
|
||||||
|
listingStandard.GapLine(1f);
|
||||||
|
listingStandard.CheckboxLabeled("Auto Clear Cache On Close Setting", ref SizedApparelSettings.autoClearCacheOnWriteSetting, "Auto clear cache data to apply Setting.\nDefault: true");
|
||||||
|
if(SizedApparelSettings.autoClearCacheOnWriteSetting == false)
|
||||||
|
{
|
||||||
|
listingStandard.Label("If you changed options, try Clear Cache to apply. Some options may need to restart");
|
||||||
|
if (listingStandard.ButtonTextLabeled("Clear Cache", "Press If you changed Option."))//\n do not push unless you really need. \n if this button still not work. reload savefile. if still not work, reload rimworld"
|
||||||
|
{
|
||||||
|
ClearCache();
|
||||||
|
}
|
||||||
|
if (listingStandard.ButtonTextLabeled("RandomPreCache", "15 sec ~ 2 min"))
|
||||||
|
{
|
||||||
|
SizedApparelsDatabase.RandomPreCacheForApparels();
|
||||||
|
SizedApparelsDatabase.RandomPreCacheForBodyParts();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
listingStandard.Gap();
|
||||||
|
listingStandard.GapLine();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
listingStandard.Label("Optimization",-1,"");
|
||||||
|
//listingStandard.CheckboxLabeled("Debug Log", ref SizedApparelSettings.Debug, "Debug logs.\nDefault: false");
|
||||||
|
listingStandard.Gap(8);
|
||||||
|
listingStandard.Label("no more optimization setting yet.\n It's hardly optimized already :)", -1, "");
|
||||||
|
listingStandard.GapLine(5f);
|
||||||
|
*/
|
||||||
|
//listingStandard.CheckboxLabeled("Use Breast Size Cap from Apparels(recommended: true)", ref SizedApparelSettings.useBreastSizeCapForApparels, "unite breast size from apparels. Smallest value will be used.\nIf you change this option, you need to redress Pawn\nDefault: true");
|
||||||
|
|
||||||
|
|
||||||
|
//listingStandard.BeginScrollView(rect, ref ScrollPos, ref rect);
|
||||||
|
//listingStandard.Label("Body(Torso)Texture Option", -1, "");
|
||||||
|
//listingStandard.CheckboxLabeled("use Body (Torso) Texture", ref SizedApparelSettings.useBodyTexture, "change body texture if the pawn is wearing supported apparels only.\nIt may override bodytexture you use.\nIf you use rimnudeworld, don't use this option.\nDefault: false");
|
||||||
|
//if (SizedApparelSettings.useBodyTexture == true)
|
||||||
|
//{
|
||||||
|
// listingStandard.CheckboxLabeled(" use unsupportedApparel Body Texture", ref SizedApparelSettings.useUnsupportedBodyTexture, "Use \"_UnsupportedApparel\" Body Texture when pawn is wearing unsupported apparel.\nIf this option is false, the body will be default texture.\nDefault: true");
|
||||||
|
// listingStandard.CheckboxLabeled(" Match BodyTexture To Minimum ApparelSize", ref SizedApparelSettings.matchBodyTextureToMinimumApparelSize, "Avoid Clipping When breasts bigger than supported sized apparel.\nDefault: true");
|
||||||
|
//
|
||||||
|
//}
|
||||||
|
listingStandard.Gap(8);
|
||||||
|
listingStandard.Label("Other Mod Compatibility");
|
||||||
|
listingStandard.Gap(8);
|
||||||
|
listingStandard.CheckboxLabeled(" Force ignore unsupported apparel", ref SizedApparelSettings.ForcedSupportApparel, "It may have clipping issue from unsupported parts.\nDefault: false");
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
if(SizedApparelPatch.DubsApparelTweaksActive == true)
|
||||||
|
{
|
||||||
|
listingStandard.Label(" Dubs Apparel Tweaks Patched! (may not work in 1.3)");
|
||||||
|
listingStandard.Gap(8);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
//sizeList.EndScrollView(ref rect);
|
||||||
|
//listingStandard.EndSection(sizeList);
|
||||||
|
//listingStandard.EndScrollView(ref sizeScrollRect);
|
||||||
|
listingStandard.Label("Non RimJobWorld Compatibility (wip)", -1, "User Who play without RimJobWorld");
|
||||||
|
if (!SizedApparelPatch.RJWActive)
|
||||||
|
{
|
||||||
|
if (SizedApparelPatch.SJWActive)
|
||||||
|
{
|
||||||
|
listingStandard.Label(" SafeJobWorld is Actived ", -1, "");
|
||||||
|
listingStandard.CheckboxLabeled(" use SafeJobWorld's Breasts(Hidden to player but it exist)", ref SizedApparelSettings.useSafeJobBreasts, "use BreastsSize from SJW.\nDefault: true");
|
||||||
|
|
||||||
|
}
|
||||||
|
if(SizedApparelPatch.SJWActive? SizedApparelSettings.useSafeJobBreasts==false : true)
|
||||||
|
{
|
||||||
|
listingStandard.CheckboxLabeled(" use Random Breasts Size(not yet work)", ref SizedApparelSettings.useRandomSize, "use breasts random size for pawn.\nDefault: true");
|
||||||
|
listingStandard.Label(" random Size Min: " + SizedApparelSettings.UnderBreastsOffset.ToString(), -1, "Defualt: 0.01");
|
||||||
|
SizedApparelSettings.randomSizeMin = listingStandard.Slider(SizedApparelSettings.randomSizeMin, 0f, 2f);
|
||||||
|
listingStandard.Label(" random Size Max: " + SizedApparelSettings.UnderBreastsOffset.ToString(), -1, "Defualt: 1.00");
|
||||||
|
SizedApparelSettings.randomSizeMax = listingStandard.Slider(SizedApparelSettings.randomSizeMax, SizedApparelSettings.randomSizeMin, 2f);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (SizedApparelPatch.SJWActive == false)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//RimJobWorld is Actived
|
||||||
|
listingStandard.Label(" RimJobWorld is Actived ", -1, "");
|
||||||
|
|
||||||
|
if (SizedApparelPatch.MenstruationActive)
|
||||||
|
{
|
||||||
|
listingStandard.Label(" RJW Menstuation is Active ", -1, "");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
listingStandard.Label(" RJW Menstuation is Not Active", -1, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
listingStandard.GapLine(1);
|
||||||
|
listingStandard.Gap(12);
|
||||||
|
listingStandard.Label("AlienRace Compatibility (wip)", -1, "");
|
||||||
|
|
||||||
|
//listingStandard.CheckboxLabeled(" Unsupported race render as \"Humanlike\" ", ref SizedApparelSettings.UnsupportedRaceToUseHumanlike, "If unchecked, unsupported humanlike race will not be patched!\nIf you change this option, you need to restart rimworld or clear cache\nDefault: false");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (SizedApparelPatch.alienRaceActive)
|
||||||
|
{
|
||||||
|
listingStandard.Label(" AlienRace is Actived ", -1, "");
|
||||||
|
//listingStandard.CheckboxLabeled("Force to use Human's BodyParts for unsuported Alien races", null, "");
|
||||||
|
|
||||||
|
//TODO: Allow Humanlike Settings Per Races
|
||||||
|
/*
|
||||||
|
SizedApparelSettings.alienRaces = SizedApparelsDatabase.GetAlienRacesDefNames();
|
||||||
|
|
||||||
|
listingStandard.Label("Alien Race Settings", -1f, null);
|
||||||
|
|
||||||
|
SizedApparelSettings.alienRaceSearch = listingStandard.TextEntry(SizedApparelSettings.alienRaceSearch, 1);
|
||||||
|
RaceSettings(new Rect(0f, 60f, 16f, 300f), SizedApparelSettings.alienRaces, ref SizedApparelSettings.alienRacesAllowHumanlikTextures, null);
|
||||||
|
|
||||||
|
listingStandard.Gap(listingStandard.verticalSpacing);
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
Widgets.BeginScrollView(aliensRect, ref ScrollPos, leftRect);
|
||||||
|
List<bool> alienSettingListLoc = new List<bool>();
|
||||||
|
foreach(var item in SizedApparelsDatabase.AlienRaceUseHumanlike)
|
||||||
|
{
|
||||||
|
//Widgets.CheckboxLabeled(aliensRect, item.Key, ref);
|
||||||
|
}
|
||||||
|
Widgets.EndScrollView();
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
listingStandard.Label(" AlienRace is not Actived ", -1, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (alienDefList.NullOrEmpty())
|
||||||
|
CheckAndLoadAlienRaces();
|
||||||
|
|
||||||
|
float h = alienDefList.Count * alienRaceSettingHeight;
|
||||||
|
Listing_Standard Race_ListingStandard = listingStandard.BeginSection(h);
|
||||||
|
foreach (var raceName in alienDefList)
|
||||||
|
{
|
||||||
|
Race_ListingStandard.Label(raceName);
|
||||||
|
Race_ListingStandard.GapLine(1f);
|
||||||
|
AlienRaceSetting raceSetting = null;
|
||||||
|
foreach (var r in SizedApparelSettings.alienRaceSettings)
|
||||||
|
{
|
||||||
|
if (r.raceName == null)
|
||||||
|
continue;
|
||||||
|
if (raceName == r.raceName)
|
||||||
|
{
|
||||||
|
raceSetting = r;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (raceSetting == null)
|
||||||
|
{
|
||||||
|
raceSetting = new AlienRaceSetting(raceName);
|
||||||
|
|
||||||
|
SizedApparelSettings.alienRaceSettings.Add(raceSetting);
|
||||||
|
}
|
||||||
|
if(raceName != "Human")
|
||||||
|
Race_ListingStandard.CheckboxLabeled("If Unsupported, As Human race", ref raceSetting.asHuman, "This Race will use Human race if it doesn't have own textures. useful for race that Unsupported but simillar to human");
|
||||||
|
Race_ListingStandard.Label((raceSetting.drawMinAge <= 100 ? "" : "[overdrive]") + "SA BodyPart Draw Min Age: " + raceSetting.drawMinAge.ToString(), -1, "Lower than this age will not use Sized Apparel. Useful for BnC. -1 for disable");
|
||||||
|
raceSetting.drawMinAge = Mathf.Round(Race_ListingStandard.Slider(raceSetting.drawMinAge, raceSetting.drawMinAge <= 100 ? -1: 100, raceSetting.drawMinAge >= 100 ? 1000 : 100));
|
||||||
|
Race_ListingStandard.Gap();
|
||||||
|
}
|
||||||
|
|
||||||
|
listingStandard.EndSection(Race_ListingStandard);
|
||||||
|
Widgets.EndScrollView();
|
||||||
|
//listingStandard.Gap(alienSettingHeight);
|
||||||
|
listingStandard.Gap(8);
|
||||||
|
listingStandard.GapLine(4f);
|
||||||
|
|
||||||
|
listingStandard.Gap(8);
|
||||||
|
listingStandard.Gap(8);
|
||||||
|
listingStandard.Label("RimNudeWorld Compatibility (WIP)", -1, "");
|
||||||
|
|
||||||
|
//listingStandard.CheckboxLabeled(" Don't Replace Body Texture On Nude", ref SizedApparelSettings.DontReplaceBodyTextureOnNude, "Only Replace BodyTexture On Not Nude. Trigers are Torso And Chests.\nDefault: False");
|
||||||
|
if (SizedApparelPatch.rimNudeWorldActive)
|
||||||
|
{
|
||||||
|
listingStandard.Label(" RimNudeWorld is On!. Please check SizedApparel's Body parts render option", -1, "disable all body parts render except the breasts. and set it to only worn option true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Sized Apparel Breasts graphic when worn.", ref SizedApparelSettings.drawSizedApparelBreastsOnlyWorn, "use Sized Apparel's breasts render for breasts of apparel. it will be hidden when the pawn is naked and rimnudeworld will handle nude. \ndefault = true;");
|
||||||
|
//listingStandard.CheckboxLabeled(" Hide RimNudeWorld Breasts Addon", ref SizedApparelSettings.hideRimNudeWorldBreasts, "For User Who Use Body(Torso) Texture option, remove double drawn breasts.\nYou can use this option as only using Rimnudeworld genital and else without breasts.\nDefault: False");
|
||||||
|
|
||||||
|
if (listingStandard.ButtonTextLabeled("Easy Setting Button", "Apply Rimnude Setting"))
|
||||||
|
{
|
||||||
|
SizedApparelSettings.drawSizedApparelBreastsOnlyWorn = true;
|
||||||
|
SizedApparelSettings.useBodyTexture = false;
|
||||||
|
SizedApparelSettings.drawBreasts = true;
|
||||||
|
SizedApparelSettings.drawPenis = false;
|
||||||
|
SizedApparelSettings.drawVagina = false;
|
||||||
|
SizedApparelSettings.drawAnus = false;
|
||||||
|
SizedApparelSettings.drawBelly = false;
|
||||||
|
SizedApparelSettings.drawPubicHair = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (false)//SizedApparelSettings.hideRimNudeWorldBreasts == false
|
||||||
|
{
|
||||||
|
//listingStandard.CheckboxLabeled(" match Breast Texture To Minimum ApparelSize (not work)", ref SizedApparelSettings.matchBreastTextureToMinimumApparelSize, "Avoid Clipping When breasts bigger than supported sized apparel.\nDefault: true");
|
||||||
|
|
||||||
|
//listingStandard.CheckboxLabeled(" use Under Breasts addon (RimNudeWorld)(not recomanded)", ref SizedApparelSettings.useUnderBreasts, "draw breasts under apparel.");
|
||||||
|
listingStandard.Label(" Under Breasts Offset: " + SizedApparelSettings.UnderBreastsOffset.ToString(), -1, "offset from defeault layer offset. Defualt: -0.0013");
|
||||||
|
SizedApparelSettings.UnderBreastsOffset = listingStandard.Slider(SizedApparelSettings.UnderBreastsOffset, -0.025f, 0.025f);
|
||||||
|
}
|
||||||
|
if (SizedApparelSettings.useBodyTexture)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
listingStandard.Label(" RimNudeWorld is not Actived ", -1, "");
|
||||||
|
if (listingStandard.ButtonTextLabeled("Easy Setting Button", "Apply Non Rimnude Setting"))
|
||||||
|
{
|
||||||
|
SizedApparelSettings.drawSizedApparelBreastsOnlyWorn = false;
|
||||||
|
SizedApparelSettings.useBodyTexture = true;
|
||||||
|
SizedApparelSettings.drawBreasts = true;
|
||||||
|
SizedApparelSettings.drawPenis = true;
|
||||||
|
SizedApparelSettings.drawVagina = true;
|
||||||
|
SizedApparelSettings.drawAnus = true;
|
||||||
|
SizedApparelSettings.drawBelly = true;
|
||||||
|
SizedApparelSettings.drawPubicHair = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
listingStandard.Gap(8);
|
||||||
|
listingStandard.GapLine(5f);
|
||||||
|
if (SizedApparelPatch.RimworldAnimationActive)
|
||||||
|
{
|
||||||
|
listingStandard.Label("RimworldAnimation (rjwAnimation) is Actived ", -1, "");
|
||||||
|
listingStandard.CheckboxLabeled(" Animated SizedApparel BodyParts (wip)", ref SizedApparelSettings.AnimationPatch, "this option may animated breasts jiggle during animation.\n but not copatable with rimnudeworld.\ndefault: true");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
listingStandard.Label("RimworldAnimation (rjwAnimation) is not Actived ", -1, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
listingStandard.End();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////RightRect
|
||||||
|
scrollRect = new Rect(0, 0, rightRect.width - 30f, Math.Max(rightRect.height + 100f, 1f));
|
||||||
|
|
||||||
|
Widgets.BeginScrollView(rightRect, ref ScrollPosR, scrollRect, true);
|
||||||
|
rightRect = new Rect(0, 0, rightRect.width - 30f, rightRect.height + 100f + 250f);
|
||||||
|
listingStandard.maxOneColumn = true;
|
||||||
|
|
||||||
|
listingStandard.Begin(rightRect);
|
||||||
|
|
||||||
|
listingStandard.Label("SizedApparel System Apply (apparel and body parts)");
|
||||||
|
listingStandard.CheckboxLabeled(" Apply Humanlikes", ref SizedApparelSettings.ApplyHumanlikes, "Try to Apply SizedApparel to Humanlikes if The textures are valid.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" Apply Animals", ref SizedApparelSettings.ApplyAnimals, "Try to Apply SizedApparel to Animals if The textures are valid.\nDefault: false");
|
||||||
|
//TODO
|
||||||
|
/*
|
||||||
|
if (SizedApparelSettings.ApplyAnimals)
|
||||||
|
listingStandard.CheckboxLabeled(" Apply Player Faction Animals Only", ref SizedApparelSettings.ApplyAnimalsPlayerFactionOnly, "Default: true");
|
||||||
|
*/
|
||||||
|
listingStandard.CheckboxLabeled(" Apply Mechanoid", ref SizedApparelSettings.ApplyMechanoid, "Try to Apply SizedApparel to Mech if The textures are valid.\nDefault: true");
|
||||||
|
listingStandard.GapLine(5f);
|
||||||
|
|
||||||
|
listingStandard.Label("Apparel Patch (Breasts Sized Apparel)");
|
||||||
|
listingStandard.CheckboxLabeled(" Apply Apparel Patch for Male", ref SizedApparelSettings.ApplyApparelPatchForMale, "It Skips breasts size test for male. Do you need man with breasts...? may be not.\nDefault: false");
|
||||||
|
listingStandard.GapLine(5f);
|
||||||
|
|
||||||
|
listingStandard.Label("If you changed the option, try change apparels or reload save", -1);
|
||||||
|
listingStandard.Label("Body Part Render Option (wip)",-1,"standalone BodyPart Render System from this mod. It's for user who don't use RimNudeWorld\nIf you use RimNudeWorld, you should turn off this.");
|
||||||
|
|
||||||
|
listingStandard.CheckboxLabeled("Use Gender Specific Textures.", ref SizedApparelSettings.useGenderSpecificTexture,"Use Gender Specific texture for body and apparel if it's valid. \nDefault: true");
|
||||||
|
listingStandard.GapLine(5);
|
||||||
|
listingStandard.CheckboxLabeled("Draw Body Parts", ref SizedApparelSettings.drawBodyParts, "Draw Breasts..etc. when the pawn is wearing supported apparels. \nDefault: true");
|
||||||
|
if (SizedApparelSettings.drawBodyParts)
|
||||||
|
{
|
||||||
|
listingStandard.CheckboxLabeled(" Use (Sized Apparel) Base Body Texture", ref SizedApparelSettings.useBodyTexture, "change pawn's body texture when the pawn is wearing supported apparels. Recommanded\nDefault: true");
|
||||||
|
|
||||||
|
//listingStandard.CheckboxLabeled(" Draw Muscle Overlay (wip)", ref SizedApparelSettings.drawMuscleOverlay, "\nDisable this option when you use RimNudeWorld");
|
||||||
|
|
||||||
|
listingStandard.CheckboxLabeled(" Draw Breasts", ref SizedApparelSettings.drawBreasts, "this option is why this mod exist.\nDefault: true");
|
||||||
|
if (SizedApparelSettings.drawBreasts)
|
||||||
|
{
|
||||||
|
listingStandard.CheckboxLabeled(" Match Breasts size to supported apparels",ref SizedApparelSettings.matchBreastToSupportedApparelSize, "to avoid breasts clipping(when breasts are bigger), you need this option.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" draw Breasts on worn pawn only (RimNudeWorld)", ref SizedApparelSettings.drawSizedApparelBreastsOnlyWorn, "when the pawn is nude, the breasts graphic for sized apparel will be hidden. \nDefault: false" );
|
||||||
|
listingStandard.CheckboxLabeled(" (Wip) Breasts Physics", ref SizedApparelSettings.breastsPhysics, "Breasts can be jiggled (for now. it works when nude only). It may be heavy for performance. \n Won't work with RimNudeWorld Breasts Rendering. \ndefault = false");
|
||||||
|
}
|
||||||
|
listingStandard.CheckboxLabeled(" Draw Penis", ref SizedApparelSettings.drawPenis,"Disable this option when you use RimNudeWorld");
|
||||||
|
listingStandard.CheckboxLabeled(" Draw Vagina", ref SizedApparelSettings.drawVagina, "Disable this option when you use RimNudeWorld");
|
||||||
|
listingStandard.CheckboxLabeled(" Draw Anus", ref SizedApparelSettings.drawAnus, "Disable this option when you use RimNudeWorld");
|
||||||
|
listingStandard.CheckboxLabeled(" Draw Belly Buldge", ref SizedApparelSettings.drawBelly, "Disable this option when you use RimNudeWorld");
|
||||||
|
|
||||||
|
listingStandard.CheckboxLabeled(" Draw Pubic Hair", ref SizedApparelSettings.drawPubicHair, "Disable this option when you use RimNudeWorld");
|
||||||
|
|
||||||
|
listingStandard.CheckboxLabeled(" Hide Balls of Futa", ref SizedApparelSettings.hideBallOfFuta, "Hide Balls from penis of Futa.\nDefault: false");
|
||||||
|
listingStandard.CheckboxLabeled(" Hide Penis of Man(Not Work yet)", ref SizedApparelSettings.hidePenisOfMale, "this option is for someone who really hate to see male's dick around.\nDefault: false");
|
||||||
|
|
||||||
|
//listingStandard.Gap();
|
||||||
|
//listingStandard.CheckboxLabeled(" Use Body Part Variation", ref SizedApparelSettings.useBodyPartsVariation, "Use graphic variation such as inverted nipple.\nDefault: true");
|
||||||
|
//listingStandard.CheckboxLabeled(" Show Body Part Variaion Button(WIP)", ref SizedApparelSettings.showBodyPartsVariationIcon, "WIP. Not work for now.\nDefault: true");
|
||||||
|
|
||||||
|
listingStandard.Gap();
|
||||||
|
//listingStandard.CheckboxLabeled(" Use BodyPart Variation", ref SizedApparelSettings.useBodyPartsVariation, ""); //TODO
|
||||||
|
listingStandard.CheckboxLabeled(" Show BodyPart Variation Description", ref SizedApparelSettings.showBodyPartsVariation, "Show more info in bodyparts that sized apparel added. such as inverted nipple");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
listingStandard.Gap(4);
|
||||||
|
listingStandard.Label("Breast Size Toggle Option", -1, "default option is setted for RimnudeWorld. you should not change this unless you have the textures for that size.");
|
||||||
|
listingStandard.Gap(4);
|
||||||
|
//Rect sizeScrollRect = new Rect(inRect.position+ new Vector2(0, listingStandard.CurHeight), inRect.size/3);
|
||||||
|
//Vector2 sizeScrollPosition = new Vector2(0.9f, 0.5f);
|
||||||
|
//listingStandard.BeginScrollView(sizeScrollRect, ref sizeScrollPosition, ref sizeScrollRect);
|
||||||
|
//Listing_Standard sizeList = listingStandard.BeginSection_NewTemp(150);
|
||||||
|
|
||||||
|
//sizeList.BeginScrollView(rect, ref ScrollPos, ref rect);
|
||||||
|
|
||||||
|
listingStandard.CheckboxLabeled(" use Nipples", ref SizedApparelSettings.useNipples, "use Nipples(Flat breasts) Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Tiny", ref SizedApparelSettings.useTiny, "use Tiny breasts Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Small", ref SizedApparelSettings.useSmall, "use Small breasts Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Average", ref SizedApparelSettings.useAverage, "use Average breasts Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Large", ref SizedApparelSettings.useLarge, "use Large breasts Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Huge", ref SizedApparelSettings.useHuge, "use Huge breasts Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Enormous", ref SizedApparelSettings.useEnormous, "use Enormous breasts Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Massive", ref SizedApparelSettings.useMassive, "use Massive breasts Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Gargantuan", ref SizedApparelSettings.useGargantuan, "use Gargantuan breasts Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Colossal", ref SizedApparelSettings.useColossal, "use Colossal breasts Sized Apparel.\nDefault: true");
|
||||||
|
listingStandard.CheckboxLabeled(" use Titanic", ref SizedApparelSettings.useTitanic, "use Titanic breasts Sized Apparel.\nDefault: true");
|
||||||
|
*/
|
||||||
|
Widgets.EndScrollView();
|
||||||
|
listingStandard.End();
|
||||||
|
|
||||||
|
//listingStandard.EndScrollView(ref rect);
|
||||||
|
base.DoSettingsWindowContents(inRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string SettingsCategory()
|
||||||
|
{
|
||||||
|
return "Sized Apparel for RJW";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//copy from BnC
|
||||||
|
public static bool Contai(string source, string toCheck, StringComparison comp)
|
||||||
|
{
|
||||||
|
return source != null && source.IndexOf(toCheck, comp) >= 0;
|
||||||
|
}
|
||||||
|
//copy from BnC
|
||||||
|
public static void RaceSettings(Rect rect, List<string> label, ref List<string> alienRacesToAllowHumanlikes, string tooltip = null)
|
||||||
|
{
|
||||||
|
bool flag = !GenText.NullOrEmpty(tooltip);
|
||||||
|
if (flag)
|
||||||
|
{
|
||||||
|
bool flag2 = Mouse.IsOver(rect);
|
||||||
|
if (flag2)
|
||||||
|
{
|
||||||
|
Widgets.DrawHighlight(rect);
|
||||||
|
}
|
||||||
|
TooltipHandler.TipRegion(rect, tooltip);
|
||||||
|
}
|
||||||
|
bool flag3 = GenList.NullOrEmpty<string>(alienRacesToAllowHumanlikes);
|
||||||
|
if (flag3)
|
||||||
|
{
|
||||||
|
alienRacesToAllowHumanlikes = new List<string>();
|
||||||
|
}
|
||||||
|
Listing_Standard listing_Standard = new Listing_Standard();
|
||||||
|
Rect rect2 = rect;
|
||||||
|
Rect rect3 = rect;
|
||||||
|
rect3.height = (float)label.Count * 30f;
|
||||||
|
rect3.width -= 16f;
|
||||||
|
Widgets.BeginScrollView(rect2, ref SizedApparelSettings.alienRacesListScrollPos, rect3, true);
|
||||||
|
listing_Standard.Begin(rect3);
|
||||||
|
for (int i = 0; i < SizedApparelSettings.alienRaces.Count; i++)
|
||||||
|
{
|
||||||
|
bool flag4 = GenList.NullOrEmpty<string>(alienRacesToAllowHumanlikes) || !alienRacesToAllowHumanlikes.Contains(label[i]);
|
||||||
|
bool flag5 = SizedApparelSettings.alienRaceSearch == null || Contai(SizedApparelSettings.alienRaces[i], SizedApparelSettings.alienRaceSearch.ToLower(), StringComparison.OrdinalIgnoreCase);
|
||||||
|
if (flag5)
|
||||||
|
{
|
||||||
|
WidgetRow widgetRow = new WidgetRow(rect.x,listing_Standard.CurHeight, UIDirection.RightThenUp, 99999f, 1f);
|
||||||
|
widgetRow.Label(label[i], rect.width * 0.8f, null, -1f);
|
||||||
|
|
||||||
|
|
||||||
|
bool flag6 = label[i] != "Human";
|
||||||
|
if (flag6)
|
||||||
|
{
|
||||||
|
widgetRow.ToggleableIcon(ref flag4, TexButton.IconBook, "Use Shared Body Parts texture (\"Humanlike\" body plarts).\nIf Unchecked, the race will use race's owned texture. \n If the race not have supported textures, try this option.", null, null);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//TODO: should I let human can use humanlike textures?
|
||||||
|
widgetRow.Icon(TexButton.IconBook, "Human Race is forced to use \"Human\" Textures. not \"Humanlike\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
bool flag7 = widgetRow.ButtonIcon(TexButton.ToggleTweak, "Allow Humanlike Body parts rendering from Sized Apparel(NOT RIMNUDE!)", null, null, null, true, -1f);
|
||||||
|
if (flag7)
|
||||||
|
{
|
||||||
|
bool flag8 = Current.Game != null;
|
||||||
|
if (flag8)
|
||||||
|
{
|
||||||
|
bool flag9 = !Find.WindowStack.TryRemove(typeof(RaceEditorWindow), true);
|
||||||
|
if (flag9)
|
||||||
|
{
|
||||||
|
RaceSettings sizeSettings = RaceUtility.GetSizeSettings(DefDatabase<ThingDef>.GetNamed(label[i], false));
|
||||||
|
RaceEditorWindow raceEditorWindow = new RaceEditorWindow();
|
||||||
|
raceEditorWindow.alienRace = DefDatabase<ThingDef>.GetNamed(label[i], true);
|
||||||
|
bool flag10 = sizeSettings != null;
|
||||||
|
if (flag10)
|
||||||
|
{
|
||||||
|
raceEditorWindow.raceSettings = sizeSettings;
|
||||||
|
raceEditorWindow.headOffset = sizeSettings.headOffset;
|
||||||
|
raceEditorWindow.sizeModifier = sizeSettings.sizeModifier;
|
||||||
|
raceEditorWindow.hairSizeModifier = sizeSettings.hairSizeModifier;
|
||||||
|
raceEditorWindow.headSizeModifier = sizeSettings.headSizeModifier;
|
||||||
|
raceEditorWindow.scaleChild = sizeSettings.scaleChild;
|
||||||
|
raceEditorWindow.scaleTeen = sizeSettings.scaleTeen;
|
||||||
|
}
|
||||||
|
Find.WindowStack.Add(raceEditorWindow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Messages.Message("You need to be in-game to open size editor", MessageTypeDefOf.RejectInput, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
bool flag11 = !flag4;
|
||||||
|
if (flag11)
|
||||||
|
{
|
||||||
|
bool flag12 = !alienRacesToAllowHumanlikes.Contains(label[i]);
|
||||||
|
if (flag12)
|
||||||
|
{
|
||||||
|
alienRacesToAllowHumanlikes.Add(label[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool flag13 = alienRacesToAllowHumanlikes.Contains(label[i]);
|
||||||
|
if (flag13)
|
||||||
|
{
|
||||||
|
alienRacesToAllowHumanlikes.Remove(label[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
listing_Standard.Gap(30f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
listing_Standard.End();
|
||||||
|
Widgets.EndScrollView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,298 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
using Verse.Sound;
|
||||||
|
using HarmonyLib;
|
||||||
|
using UnityEngine;
|
||||||
|
using rjw;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Reflection.Emit;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(Dialog_StylingStation), "DrawTabs")]
|
||||||
|
public class SizedApparelStyleStationDrawTabsPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(Rect rect, ref Vector2 ___hairScrollPosition, Dialog_StylingStation __instance, List<TabRecord> ___tabs, Dialog_StylingStation.StylingTab ___curTab, float ___viewRectHeight, ref List<StyleItemDef> ___tmpStyleItems, bool ___devEditMode, Pawn ___pawn, Color ___desiredHairColor)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!SizedApparelSettings.drawPubicHair)
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
//Widgets.DrawMenuSection(rect);
|
||||||
|
//TabDrawer.DrawTabs<TabRecord>(rect, ___tabs, 200f);
|
||||||
|
//rect = rect.ContractedBy(18f);
|
||||||
|
switch (___curTab)
|
||||||
|
{
|
||||||
|
case (Dialog_StylingStation.StylingTab)24:
|
||||||
|
|
||||||
|
//Draw PubicHair Tab Code here!
|
||||||
|
//rect.yMax -= ___colorsHeight;
|
||||||
|
DrawStylingTypePubicHair(ref __instance, ref ___viewRectHeight, ref ___tmpStyleItems, ___devEditMode, ___pawn, ___desiredHairColor, rect, ref ___hairScrollPosition, delegate (Rect r, PubicHairDef h)
|
||||||
|
{
|
||||||
|
GUI.color = ___desiredHairColor;
|
||||||
|
Widgets.DefIcon(r, h, null, 1.25f, null, false, null);
|
||||||
|
//Widgets.DrawTextureFitted(r, h.Icon, 1.25f, null);
|
||||||
|
GUI.color = Color.white;
|
||||||
|
}, delegate (PubicHairDef h)
|
||||||
|
{
|
||||||
|
___pawn.GetComp<ApparelRecorderComp>().pubicHairDef = h;
|
||||||
|
//___pawn.story.hairDef = h;
|
||||||
|
}, (StyleItemDef h) => ___pawn.GetComp<ApparelRecorderComp>().pubicHairDef == h, (StyleItemDef h) => ___pawn.GetComp<ApparelRecorderComp>().initialPubicHairDef == h, null, false);
|
||||||
|
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Some Copy Code from Rimnudeworld
|
||||||
|
//maybe Some Var has to be ref
|
||||||
|
static void DrawStylingTypePubicHair(ref Dialog_StylingStation dialog_StylingStation, ref float viewRectHeight, ref List<StyleItemDef> tmpStyleItems, bool devEditMode, Pawn pawn, Color desiredHairColor, Rect rect, ref Vector2 scrollPosition, Action<Rect, PubicHairDef> drawAction, Action<PubicHairDef> selectAction, Func<StyleItemDef, bool> hasStyleItem, Func<StyleItemDef, bool> hadStyleItem, Func<StyleItemDef, bool> extraValidator = null, bool doColors = false)
|
||||||
|
{
|
||||||
|
|
||||||
|
//Color desiredHairColor = AccessTools.FieldRefAccess<Dialog_StylingStation, Color>(dialog_StylingStation, "desiredHairColor");
|
||||||
|
|
||||||
|
int total_pubes_count = 0;
|
||||||
|
total_pubes_count = DefDatabase<PubicHairDef>.AllDefs.Count();
|
||||||
|
|
||||||
|
//need child patch?
|
||||||
|
if (total_pubes_count <= 0)
|
||||||
|
{
|
||||||
|
Widgets.NoneLabelCenteredVertically(rect, "(" + "NoneUsableForPawn".Translate(pawn.Named("PAWN")) + ")");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ApparelRecorderComp comp = pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Rect viewRect = new Rect(rect.x, rect.y, rect.width - 16f, viewRectHeight);
|
||||||
|
int num = Mathf.FloorToInt(viewRect.width / 60f) - 1;
|
||||||
|
float num2 = (viewRect.width - (float)num * 60f - (float)(num - 1) * 10f) / 2f;
|
||||||
|
int num3 = 0;
|
||||||
|
int num4 = 0;
|
||||||
|
int num5 = 0;
|
||||||
|
tmpStyleItems.Clear();
|
||||||
|
/*
|
||||||
|
tmpStyleItems.AddRange(from x in DefDatabase<PubicHairDef>.AllDefs
|
||||||
|
where (devEditMode || PawnStyleItemChooser.WantsToUseStyle(pawn, x, null) || hadStyleItem(x)) && (extraValidator == null || extraValidator(x))
|
||||||
|
select x);*/
|
||||||
|
tmpStyleItems.AddRange(DefDatabase<PubicHairDef>.AllDefs);// just add All Pubic Hair def.
|
||||||
|
|
||||||
|
tmpStyleItems.SortBy((StyleItemDef x) => -PawnStyleItemChooser.StyleItemChoiceLikelihoodFor(x, pawn));
|
||||||
|
if (tmpStyleItems.NullOrEmpty<StyleItemDef>())
|
||||||
|
{
|
||||||
|
Widgets.NoneLabelCenteredVertically(rect, "(" + "NoneUsableForPawn".Translate(pawn.Named("PAWN")) + ")");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Widgets.BeginScrollView(rect, ref scrollPosition, viewRect, true);
|
||||||
|
foreach (StyleItemDef styleItemDef in tmpStyleItems)
|
||||||
|
{
|
||||||
|
if (num5 >= num - 1)
|
||||||
|
{
|
||||||
|
num5 = 0;
|
||||||
|
num4++;
|
||||||
|
}
|
||||||
|
else if (num3 > 0)
|
||||||
|
{
|
||||||
|
num5++;
|
||||||
|
}
|
||||||
|
Rect rect2 = new Rect(rect.x + num2 + (float)num5 * 60f + (float)num5 * 10f, rect.y + (float)num4 * 60f + (float)num4 * 10f, 60f, 60f);
|
||||||
|
Widgets.DrawHighlight(rect2);
|
||||||
|
if (Mouse.IsOver(rect2))
|
||||||
|
{
|
||||||
|
Widgets.DrawHighlight(rect2);
|
||||||
|
TooltipHandler.TipRegion(rect2, styleItemDef.LabelCap);
|
||||||
|
}
|
||||||
|
if (drawAction != null)
|
||||||
|
{
|
||||||
|
drawAction(rect2, styleItemDef as PubicHairDef);
|
||||||
|
}
|
||||||
|
if (hasStyleItem(styleItemDef))
|
||||||
|
{
|
||||||
|
Widgets.DrawBox(rect2, 2, null);
|
||||||
|
}
|
||||||
|
if (Widgets.ButtonInvisible(rect2, true))
|
||||||
|
{
|
||||||
|
if (selectAction != null)
|
||||||
|
{
|
||||||
|
selectAction(styleItemDef as PubicHairDef);
|
||||||
|
}
|
||||||
|
SoundDefOf.Tick_High.PlayOneShotOnCamera(null);
|
||||||
|
pawn.Drawer.renderer.graphics.SetAllGraphicsDirty();
|
||||||
|
PortraitsCache.SetDirty(pawn);
|
||||||
|
}
|
||||||
|
num3++;
|
||||||
|
}
|
||||||
|
if (Event.current.type == EventType.Layout)
|
||||||
|
{
|
||||||
|
viewRectHeight = (float)(num4 + 1) * 60f + (float)num4 * 10f + 10f;
|
||||||
|
}
|
||||||
|
Widgets.EndScrollView();
|
||||||
|
}
|
||||||
|
if (doColors)
|
||||||
|
{
|
||||||
|
//dialog_StylingStation.DrawHairColors(new Rect(rect.x, rect.yMax + 10f, rect.width, dialog_StylingStation.colorsHeight));
|
||||||
|
|
||||||
|
//Copy From RimnudeWorld
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Rect newrect = new Rect(rect.x, rect.yMax - 10f, rect.width, colorsHeight);
|
||||||
|
|
||||||
|
Color _desiredHairColor = desiredHairColor;
|
||||||
|
|
||||||
|
float numC = newrect.y;
|
||||||
|
float height;
|
||||||
|
Widgets.ColorSelector(new Rect(newrect.x, numC, newrect.width, 92f), ref _desiredHairColor, AllHairColors, null, 22, 2);
|
||||||
|
if (_desiredHairColor != desiredHairColor)
|
||||||
|
{
|
||||||
|
var desiredHairColor_ = dialog_StylingStation.GetType().GetField("desiredHairColor", System.Reflection.BindingFlags.NonPublic
|
||||||
|
| System.Reflection.BindingFlags.Instance);
|
||||||
|
desiredHairColor_.SetValue(dialog_StylingStation, _desiredHairColor);
|
||||||
|
}
|
||||||
|
numC += 60f;
|
||||||
|
if (desiredHairColor != pawn.story.hairColor && desiredHairColor != pawn.style.nextHairColor)
|
||||||
|
{
|
||||||
|
Widgets.ThingIcon(new Rect(newrect.x, numC, Text.LineHeight, Text.LineHeight), ThingDefOf.Dye, null, null, 1.1f, null);
|
||||||
|
string text = "Required".Translate() + ": 1 " + ThingDefOf.Dye.label;
|
||||||
|
float x = Text.CalcSize(text).x;
|
||||||
|
Widgets.Label(new Rect(newrect.x + Text.LineHeight + 4f, numC, x, Text.LineHeight), text);
|
||||||
|
Rect rect2 = new Rect(newrect.x, numC, x + Text.LineHeight + 8f, Text.LineHeight);
|
||||||
|
if (Mouse.IsOver(rect2))
|
||||||
|
{
|
||||||
|
Widgets.DrawHighlight(rect2);
|
||||||
|
TooltipHandler.TipRegionByKey(rect2, "TooltipDyeExplanation");
|
||||||
|
}
|
||||||
|
numC += Text.LineHeight;
|
||||||
|
|
||||||
|
if (pawn.Map.resourceCounter.GetCount(ThingDefOf.Dye) < 1)
|
||||||
|
{
|
||||||
|
rect2 = new Rect(newrect.x, numC, newrect.width, Text.LineHeight);
|
||||||
|
Color color = GUI.color;
|
||||||
|
GUI.color = ColorLibrary.RedReadable;
|
||||||
|
Widgets.Label(rect2, "NotEnoughDye".Translate() + " " + "NotEnoughDyeWillRecolorHair".Translate());
|
||||||
|
GUI.color = color;
|
||||||
|
numC += rect2.height;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
private static List<Color> allHairColors;
|
||||||
|
private static List<Color> AllHairColors
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (allHairColors == null)
|
||||||
|
{
|
||||||
|
allHairColors = (from ic in DefDatabase<ColorDef>.AllDefsListForReading
|
||||||
|
select ic.color).ToList<Color>();
|
||||||
|
allHairColors.SortByColor((Color x) => x);
|
||||||
|
}
|
||||||
|
return allHairColors;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void AddPubicHairTab(Dialog_StylingStation stylingStation, List<TabRecord> tabs)
|
||||||
|
{
|
||||||
|
if (!SizedApparelSettings.drawPubicHair)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var curTabField = AccessTools.Field(typeof(Dialog_StylingStation), "curTab");
|
||||||
|
tabs.Add(new TabRecord("PubicHair".Translate().CapitalizeFirst(), delegate ()
|
||||||
|
{
|
||||||
|
|
||||||
|
curTabField.SetValue(stylingStation, (Dialog_StylingStation.StylingTab)24);
|
||||||
|
}, (Dialog_StylingStation.StylingTab)curTabField.GetValue(stylingStation) == (Dialog_StylingStation.StylingTab)24));
|
||||||
|
}
|
||||||
|
|
||||||
|
static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
|
||||||
|
{
|
||||||
|
bool isHair = false;
|
||||||
|
MethodInfo tabAdd = AccessTools.DeclaredMethod(typeof(List<TabRecord>),"Add");
|
||||||
|
foreach (var instruction in instructions)
|
||||||
|
{
|
||||||
|
if(instruction.opcode == OpCodes.Ldstr)
|
||||||
|
{
|
||||||
|
if (instruction.OperandIs("Hair"))
|
||||||
|
isHair = true;
|
||||||
|
else
|
||||||
|
isHair = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (isHair && instruction.opcode == OpCodes.Callvirt && instruction.OperandIs(tabAdd))
|
||||||
|
{
|
||||||
|
yield return instruction;//finish add hairTab
|
||||||
|
|
||||||
|
yield return new CodeInstruction(OpCodes.Ldarg_0);
|
||||||
|
yield return new CodeInstruction(OpCodes.Ldarg_0);
|
||||||
|
//Log.Message("this");
|
||||||
|
yield return new CodeInstruction(OpCodes.Ldfld, AccessTools.DeclaredField(typeof(Dialog_StylingStation),"tabs"));
|
||||||
|
//Log.Message("tabs");
|
||||||
|
//yield return new CodeInstruction(OpCodes.Ldarg_0);
|
||||||
|
//Log.Message("this");
|
||||||
|
//yield return new CodeInstruction(OpCodes.Ldfld, AccessTools.DeclaredField(typeof(Dialog_StylingStation), "curTab"));
|
||||||
|
//Log.Message("curtab");
|
||||||
|
yield return new CodeInstruction(OpCodes.Call, AccessTools.Method(typeof(SizedApparelStyleStationDrawTabsPatch), "AddPubicHairTab"));
|
||||||
|
//Log.Message("call");
|
||||||
|
//yield return new CodeInstruction(OpCodes.Ldarg_0);
|
||||||
|
|
||||||
|
//yield return new CodeInstruction(OpCodes.Ldarg_0);
|
||||||
|
//yield return new CodeInstruction(OpCodes.Ldfld, AccessTools.Field(typeof(Dialog_StylingStation), "tabs"));
|
||||||
|
//yield return new CodeInstruction(OpCodes.Ldstr,"PubicHair".Translate().CapitalizeFirst());
|
||||||
|
|
||||||
|
//yield return new CodeInstruction(OpCodes.Ldarg_0);
|
||||||
|
//yield return new CodeInstruction(OpCodes.Ldarg_0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
isHair = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
yield return instruction;
|
||||||
|
|
||||||
|
}
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(Dialog_StylingStation), "Reset")]
|
||||||
|
public class SizedApparelStyleStationResetPatch
|
||||||
|
{
|
||||||
|
public static void Prefix(Pawn ___pawn)
|
||||||
|
{
|
||||||
|
ApparelRecorderComp comp = ___pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
|
||||||
|
//this.pawn.story.hairDef = this.initialHairDef;
|
||||||
|
comp.pubicHairDef = comp.initialPubicHairDef;
|
||||||
|
comp.initialPubicHairDef = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Patching Constructors
|
||||||
|
[HarmonyPatch(typeof(Dialog_StylingStation), MethodType.Constructor, new Type[] { typeof(Pawn), typeof(Thing) })]
|
||||||
|
public class SizedApparelDialogStylingStationPatch
|
||||||
|
{
|
||||||
|
public static void Postfix(Pawn pawn)
|
||||||
|
{
|
||||||
|
var comp = pawn.GetComp<ApparelRecorderComp>();
|
||||||
|
if (comp == null)
|
||||||
|
return;
|
||||||
|
comp.initialPubicHairDef = comp.pubicHairDef;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
//Consider Graphic and Graphic_Multi(Graphic with Facing such as south)
|
||||||
|
public class SizedApparelTexturePointDef : Def
|
||||||
|
{
|
||||||
|
//Path must be texture file name with path
|
||||||
|
//Path example: "Things/Pawn/Humanlike/Bodies/Naked_Female_BaseBody"
|
||||||
|
//Facing Text such as "_south" must not be included.
|
||||||
|
//Use "/" instead of "\"
|
||||||
|
|
||||||
|
public string Path;
|
||||||
|
|
||||||
|
public List<BodyPartPoint> SouthBodyPartPoints = new List<BodyPartPoint>();
|
||||||
|
public List<BodyPartPoint> NorthBodyPartPoints = new List<BodyPartPoint>();
|
||||||
|
public List<BodyPartPoint> EastBodyPartPoints = new List<BodyPartPoint>();
|
||||||
|
|
||||||
|
//can be null. then use EastBodyPartPoints
|
||||||
|
public List<BodyPartPoint> WestBodyPartPoints = new List<BodyPartPoint>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,116 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{B06471B4-4C6C-478B-B94D-71CC53ABD24D}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>SizedApparel</RootNamespace>
|
||||||
|
<AssemblyName>SizedApparelforRJW</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\..\Assemblies\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>none</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\..\Assemblies\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="0Harmony">
|
||||||
|
<HintPath>..\..\..\..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Assembly-CSharp">
|
||||||
|
<HintPath>..\..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="HugsLib">
|
||||||
|
<HintPath>..\..\..\..\..\..\..\workshop\content\294100\818773962\v1.3\Assemblies\HugsLib.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RimNudeWorld">
|
||||||
|
<HintPath>..\..\..\..\rimnude-unofficial\Assembly Folders\1.3 Assembly\Assemblies\RimNudeWorld.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Rimworld-Animations">
|
||||||
|
<HintPath>..\..\..\..\rimworld-animations\1.3\Assemblies\Rimworld-Animations.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RJW">
|
||||||
|
<HintPath>..\..\..\..\rjw\1.3\Assemblies\RJW.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RJW_Menstruation">
|
||||||
|
<HintPath>..\..\..\..\rjw_menstruation\1.3\Assemblies\RJW_Menstruation.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="UnityEngine.CoreModule">
|
||||||
|
<HintPath>..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.IMGUIModule">
|
||||||
|
<HintPath>..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="UnityEngine.TextRenderingModule">
|
||||||
|
<HintPath>..\..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.TextRenderingModule.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="AlienRaceSupport.cs" />
|
||||||
|
<Compile Include="Graphic_BodyParts.cs" />
|
||||||
|
<Compile Include="Graphic_SizedApparel.cs" />
|
||||||
|
<Compile Include="Patch-Animation.cs" />
|
||||||
|
<Compile Include="Patch-Menstruation.cs" />
|
||||||
|
<Compile Include="Patch-StatueOfColonist.cs" />
|
||||||
|
<Compile Include="SizedAppareIdeoPatch.cs" />
|
||||||
|
<Compile Include="SizedApparelApparelBuilder.cs" />
|
||||||
|
<Compile Include="SizedApparelBodyPart.cs" />
|
||||||
|
<Compile Include="SizedApparelBodyPartDef.cs" />
|
||||||
|
<Compile Include="SizedApparelBodyPartDetail.cs" />
|
||||||
|
<Compile Include="SizedApparelBodyPartEditor.cs" />
|
||||||
|
<Compile Include="SizedApparelComp.cs" />
|
||||||
|
<Compile Include="HarmonyPatches.cs" />
|
||||||
|
<Compile Include="SizedApparelDef.cs" />
|
||||||
|
<Compile Include="Patch-DubsApparelPatch.cs" />
|
||||||
|
<Compile Include="SizedApparelMain.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="SizedApparelPoseSet.cs" />
|
||||||
|
<Compile Include="SizedApparelPubicHair.cs" />
|
||||||
|
<Compile Include="Patch-RimJobWorld.cs" />
|
||||||
|
<Compile Include="Patch-RimNudeWorld.cs" />
|
||||||
|
<Compile Include="SizedApparelsDatabase.cs" />
|
||||||
|
<Compile Include="SizedApparelSettingcs.cs" />
|
||||||
|
<Compile Include="SizedApparelStyleStationPatch.cs" />
|
||||||
|
<Compile Include="SizedApparelTexturePointDef.cs" />
|
||||||
|
<Compile Include="SizedApparelUtility.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
|
@ -0,0 +1,25 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 15
|
||||||
|
VisualStudioVersion = 15.0.28307.1000
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SizedApparelforRJW", "SizedApparelforRJW.csproj", "{B06471B4-4C6C-478B-B94D-71CC53ABD24D}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{B06471B4-4C6C-478B-B94D-71CC53ABD24D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B06471B4-4C6C-478B-B94D-71CC53ABD24D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B06471B4-4C6C-478B-B94D-71CC53ABD24D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B06471B4-4C6C-478B-B94D-71CC53ABD24D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {CF3F9836-AE71-4CAE-8FFC-72BEB9FFBA91}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,551 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
using HarmonyLib;
|
||||||
|
using UnityEngine;
|
||||||
|
using rjw;
|
||||||
|
|
||||||
|
namespace SizedApparel
|
||||||
|
{
|
||||||
|
public class BodyTypeAndPath
|
||||||
|
{
|
||||||
|
public string BodyType;
|
||||||
|
public string Path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ApparelData
|
||||||
|
{
|
||||||
|
public string WornPath;
|
||||||
|
public List<BodyTypeAndPath> Data;
|
||||||
|
}
|
||||||
|
public class PreDefinedApparelDate : Def
|
||||||
|
{
|
||||||
|
public string HediffName;
|
||||||
|
public bool IsBreasts = false;
|
||||||
|
public List<BodyTypeAndPath> Data;
|
||||||
|
}
|
||||||
|
public class PreDefinedBodyPartGraphicDate : Def
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class SizedApparelsDatabase
|
||||||
|
{
|
||||||
|
|
||||||
|
public struct BodyGraphicKey
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void LoadPreDefinedData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public struct SizedApparelDatabaseKey
|
||||||
|
{
|
||||||
|
public string pathWithoutSizeIndex; // Do Not Include Size Data to path! bodytype could be included
|
||||||
|
public string raceName;
|
||||||
|
public string bodyTypeName;
|
||||||
|
public Gender gender;
|
||||||
|
public string hediffName;
|
||||||
|
public int targetSize;
|
||||||
|
public bool isHorny;
|
||||||
|
public string customPose;
|
||||||
|
public string variation;
|
||||||
|
|
||||||
|
|
||||||
|
public SizedApparelDatabaseKey(string path, string race, string bodyType = null, Gender genderInput = Gender.None , string hediff = null, int size = -1, bool horny = false, string customPose = null, string variation = null)
|
||||||
|
{
|
||||||
|
this.pathWithoutSizeIndex = path;
|
||||||
|
this.raceName = race;
|
||||||
|
this.bodyTypeName = bodyType;
|
||||||
|
this.gender = genderInput;
|
||||||
|
this.hediffName = hediff;
|
||||||
|
this.targetSize = size;
|
||||||
|
this.isHorny = horny;
|
||||||
|
this.customPose = customPose;
|
||||||
|
this.variation = variation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public struct SizedApparelDatabaseKeyComparer : IEqualityComparer<SizedApparelDatabaseKey>
|
||||||
|
{
|
||||||
|
public bool Equals(SizedApparelDatabaseKey x, SizedApparelDatabaseKey y)
|
||||||
|
{
|
||||||
|
if (x.targetSize != y.targetSize)
|
||||||
|
return false;
|
||||||
|
return true && (x.pathWithoutSizeIndex == y.pathWithoutSizeIndex) && (x.bodyTypeName == y.bodyTypeName) && (x.raceName == y.raceName)&& (x.gender == y.gender) && (x.hediffName == y.hediffName) && (x.isHorny == y.isHorny) && (x.customPose == y.customPose) && (x.variation == y.variation);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetHashCode(SizedApparelDatabaseKey obj)
|
||||||
|
{
|
||||||
|
return obj.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public struct BodyPartDatabaseKey
|
||||||
|
{
|
||||||
|
public string raceName;
|
||||||
|
public string bodyTypeName;
|
||||||
|
public string hediffName;
|
||||||
|
public string folderPath;
|
||||||
|
public Gender gender;
|
||||||
|
public int targetSize;
|
||||||
|
public bool isHorny;
|
||||||
|
public string customPose; // null custom pose as default pose
|
||||||
|
public string variation; // null variation as default graphic
|
||||||
|
|
||||||
|
public BodyPartDatabaseKey(string race, string bodyType = null, string hediff = null, string path = null, Gender pawnGender = Gender.None, int size = -1, bool horny = false, string customPose = null, string variation = null)
|
||||||
|
{
|
||||||
|
this.raceName = race;
|
||||||
|
this.bodyTypeName = bodyType;
|
||||||
|
this.hediffName = hediff;
|
||||||
|
this.folderPath = path;
|
||||||
|
this.gender = pawnGender;
|
||||||
|
this.targetSize = size;
|
||||||
|
this.isHorny = horny;
|
||||||
|
this.customPose = customPose;
|
||||||
|
this.variation = variation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public struct BodyPartDatabaseKeyComparer : IEqualityComparer<BodyPartDatabaseKey>
|
||||||
|
{
|
||||||
|
public bool Equals(BodyPartDatabaseKey x, BodyPartDatabaseKey y)
|
||||||
|
{
|
||||||
|
if (x.targetSize != y.targetSize)
|
||||||
|
return false;
|
||||||
|
return true && (x.raceName == y.raceName) && (x.bodyTypeName == y.bodyTypeName) && (x.hediffName == y.hediffName) && ( x.folderPath == y.folderPath)&& (x.gender == y.gender) && (x.isHorny == y.isHorny) && (x.customPose == y.customPose) && (x.variation == y.variation);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetHashCode(BodyPartDatabaseKey obj)
|
||||||
|
{
|
||||||
|
return obj.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public struct PathAndSize
|
||||||
|
{
|
||||||
|
public string pathWithSizeIndex;
|
||||||
|
public int size;
|
||||||
|
public bool isUnsupportedHumanlikePath;
|
||||||
|
public bool isCustomPose;
|
||||||
|
public string hediffName;
|
||||||
|
public string bodyType; // useful for bodypart Graphic (body addons).
|
||||||
|
public string raceName; // for check is Human or Alien or Alien as Human.
|
||||||
|
public SizedApparelTexturePointDef points;
|
||||||
|
|
||||||
|
public PathAndSize(string path, int index, bool unsupportedHumanlike = false, bool customPose = false, string hediff = null, string bodytype = null, string raceName = null, SizedApparelTexturePointDef pointsInput = null)
|
||||||
|
{
|
||||||
|
this.pathWithSizeIndex = path;
|
||||||
|
this.size = index;
|
||||||
|
this.isUnsupportedHumanlikePath = unsupportedHumanlike;
|
||||||
|
this.isCustomPose = customPose;
|
||||||
|
this.hediffName = hediff;
|
||||||
|
this.bodyType = bodytype;
|
||||||
|
this.points = pointsInput;
|
||||||
|
this.raceName = raceName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private static Dictionary<Pawn, ApparelRecorderComp> ApparelRecordersCache = new Dictionary<Pawn, ApparelRecorderComp>();
|
||||||
|
|
||||||
|
private static Dictionary<BodyGraphicKey, Graphic> SizedApparelBodyGraphic = new Dictionary<BodyGraphicKey, Graphic>(); // TODO
|
||||||
|
private static Dictionary<SizedApparelDatabaseKey, PathAndSize> SupportedApparelResultPath = new Dictionary<SizedApparelDatabaseKey, PathAndSize>(new SizedApparelDatabaseKeyComparer());
|
||||||
|
private static Dictionary<BodyPartDatabaseKey, PathAndSize> SupportedBodyPartResultPath = new Dictionary<BodyPartDatabaseKey, PathAndSize>(new BodyPartDatabaseKeyComparer());
|
||||||
|
private static Dictionary<string, string> SupportedApparelOriginalPath = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
//AlienRace AllowHumanlike. Need to Restart or Clear cache to change options
|
||||||
|
|
||||||
|
|
||||||
|
public static ApparelRecorderComp GetApparelCompFast(Pawn pawn)
|
||||||
|
{
|
||||||
|
if (ApparelRecordersCache.ContainsKey(pawn))
|
||||||
|
return ApparelRecordersCache[pawn];
|
||||||
|
ApparelRecorderComp comp = pawn.GetComp<ApparelRecorderComp>(); // comp can be null
|
||||||
|
ApparelRecordersCache.Add(pawn, comp);
|
||||||
|
return comp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Dictionary<string, bool> AlienRaceUseHumanlike = new Dictionary<string, bool>();
|
||||||
|
private static void ResetAlienRaceUseHumanlike()
|
||||||
|
{
|
||||||
|
AlienRaceUseHumanlike.Clear();
|
||||||
|
IEnumerable<ThingDef> HumanlikeRaces;
|
||||||
|
HumanlikeRaces = DefDatabase<ThingDef>.AllDefs.Where(b =>b.race?.Humanlike == true);
|
||||||
|
|
||||||
|
foreach (ThingDef raceDef in HumanlikeRaces)
|
||||||
|
{
|
||||||
|
//Default Value Is True
|
||||||
|
AlienRaceUseHumanlike.Add(raceDef.defName, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Obsolete]
|
||||||
|
public static bool GetAlienRaceUseHumanlike(string raceDef)
|
||||||
|
{
|
||||||
|
if (AlienRaceUseHumanlike.NullOrEmpty())
|
||||||
|
{
|
||||||
|
ResetAlienRaceUseHumanlike();
|
||||||
|
}
|
||||||
|
if (AlienRaceUseHumanlike.ContainsKey(raceDef))
|
||||||
|
return AlienRaceUseHumanlike[raceDef];
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<string> GetAlienRacesDefNames()
|
||||||
|
{
|
||||||
|
if (AlienRaceUseHumanlike.NullOrEmpty())
|
||||||
|
{
|
||||||
|
ResetAlienRaceUseHumanlike();
|
||||||
|
}
|
||||||
|
//It must have one or more elements: human.
|
||||||
|
return AlienRaceUseHumanlike.Keys.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void ClearAll()
|
||||||
|
{
|
||||||
|
SupportedApparelResultPath.Clear();
|
||||||
|
SupportedBodyPartResultPath.Clear();
|
||||||
|
SupportedApparelOriginalPath.Clear();
|
||||||
|
AlienRaceUseHumanlike.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Apparels, Bodyparts can be used
|
||||||
|
public static PathAndSize GetSupportedApparelSizedPath(SizedApparelDatabaseKey key)
|
||||||
|
{
|
||||||
|
int currentSize = -1;
|
||||||
|
float currentSeverity = -1;
|
||||||
|
return GetSupportedApparelSizedPath(key, out currentSize, out currentSeverity);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetSupportedApparelOriginalPath(string path)
|
||||||
|
{
|
||||||
|
string outString;
|
||||||
|
if (SupportedApparelOriginalPath.TryGetValue(path, out outString))
|
||||||
|
return outString;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Dictionary<string, BodyPartPoint> GetGraphicPoints(string textuerPath)
|
||||||
|
{
|
||||||
|
//DefDatabase<>
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PathAndSize GetSupportedApparelSizedPath(SizedApparelDatabaseKey key, out int indexOut, out float currentSeverityOut)
|
||||||
|
{
|
||||||
|
if (SupportedApparelResultPath.ContainsKey(key))
|
||||||
|
{
|
||||||
|
if (SizedApparelSettings.Debug)
|
||||||
|
Log.Message("[Sized Apparel] SizedApparelDataBase::ValidKey: "+ key.pathWithoutSizeIndex);
|
||||||
|
var value = SupportedApparelResultPath.TryGetValue(key);
|
||||||
|
indexOut = value.size;
|
||||||
|
currentSeverityOut = SizedApparelUtility.BreastSizeIndexToSeverity(value.size);
|
||||||
|
if (SizedApparelSettings.Debug)
|
||||||
|
Log.Message("[Sized Apparel] SizedApparelDataBase::Result Path: " + value.pathWithSizeIndex);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (SizedApparelSettings.Debug)
|
||||||
|
Log.Message(" [Sized Apparel] SizedApparelDataBase::Key Not Found: " + key.pathWithoutSizeIndex);
|
||||||
|
|
||||||
|
PathAndSize result;
|
||||||
|
Graphic sourceGraphic = GraphicDatabase.Get<Graphic_Multi>(key.pathWithoutSizeIndex);
|
||||||
|
bool flag;
|
||||||
|
bool customPose = true; //default none pose also custom pose
|
||||||
|
string hediffResult;
|
||||||
|
string targetRaceName;
|
||||||
|
//if (GetAlienRaceUseHumanlike(key.raceName))
|
||||||
|
//TODO. AlienRaceHumanlike
|
||||||
|
/*
|
||||||
|
var pawnDef = DefDatabase<SizedApparelPawnDef>.GetNamed(key.raceName);
|
||||||
|
if (pawnDef != null)
|
||||||
|
{
|
||||||
|
if(pawnDef.isHumanlike)
|
||||||
|
targetRaceName = "Humanlike";
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
targetRaceName = key.raceName;*/
|
||||||
|
targetRaceName = key.raceName;
|
||||||
|
Graphic graphic = null;
|
||||||
|
graphic = SizedApparelUtility.GetSizedApparelGraphic(sourceGraphic, SizedApparelUtility.BreastSizeIndexToSeverity(key.targetSize), out indexOut, out currentSeverityOut, out flag, out hediffResult, targetRaceName, key.hediffName, key.customPose, key.gender);//key.customPose
|
||||||
|
if(graphic == null && key.gender != Gender.None)
|
||||||
|
{
|
||||||
|
//try Genderless
|
||||||
|
graphic = SizedApparelUtility.GetSizedApparelGraphic(sourceGraphic, SizedApparelUtility.BreastSizeIndexToSeverity(key.targetSize), out indexOut, out currentSeverityOut, out flag, out hediffResult, targetRaceName, key.hediffName, key.customPose, Gender.None);//key.customPose
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key.customPose != null && graphic == null)
|
||||||
|
{
|
||||||
|
customPose = false;
|
||||||
|
graphic = SizedApparelUtility.GetSizedApparelGraphic(sourceGraphic, SizedApparelUtility.BreastSizeIndexToSeverity(key.targetSize), out indexOut, out currentSeverityOut, out flag, out hediffResult , targetRaceName, key.hediffName , null ,key.gender);
|
||||||
|
if (graphic == null && key.gender != Gender.None)
|
||||||
|
{
|
||||||
|
//try Genderless
|
||||||
|
graphic = SizedApparelUtility.GetSizedApparelGraphic(sourceGraphic, SizedApparelUtility.BreastSizeIndexToSeverity(key.targetSize), out indexOut, out currentSeverityOut, out flag, out hediffResult, targetRaceName, key.hediffName, null, Gender.None);//key.customPose
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Try Find Different Target Size
|
||||||
|
if (flag == true)
|
||||||
|
{
|
||||||
|
result = new PathAndSize(graphic.path, indexOut, false, customPose, hediffResult, key.bodyTypeName, key.raceName);
|
||||||
|
SupportedApparelResultPath.SetOrAdd(key, result);
|
||||||
|
SupportedApparelOriginalPath.SetOrAdd(result.pathWithSizeIndex, key.pathWithoutSizeIndex);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = new PathAndSize(null, -1);
|
||||||
|
SupportedApparelResultPath.SetOrAdd(key, result);
|
||||||
|
SupportedApparelOriginalPath.SetOrAdd(key.pathWithoutSizeIndex, key.pathWithoutSizeIndex);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PathAndSize GetSupportedBodyPartPath(BodyPartDatabaseKey key, bool isBreast, string folderName, string defaultHediffName)
|
||||||
|
{
|
||||||
|
|
||||||
|
PathAndSize result;
|
||||||
|
if (SupportedBodyPartResultPath.ContainsKey(key))
|
||||||
|
return SupportedBodyPartResultPath.TryGetValue(key);
|
||||||
|
int currentSize = -1;
|
||||||
|
string hediffResult;
|
||||||
|
Graphic graphic = null;
|
||||||
|
|
||||||
|
//Find Points from result's path
|
||||||
|
//TODO: Build SizedApparel DataBase separate?
|
||||||
|
|
||||||
|
|
||||||
|
if (key.customPose != null)
|
||||||
|
{
|
||||||
|
graphic = SizedApparelUtility.GetBodyPartGraphic(key.raceName, key.bodyTypeName, key.hediffName, isBreast, key.targetSize, folderName+"/CustomPose/"+key.customPose, defaultHediffName, out currentSize, out hediffResult, key.isHorny, null, key.variation, key.gender);
|
||||||
|
if (graphic != null)
|
||||||
|
{
|
||||||
|
result = new PathAndSize(graphic.path, currentSize, false, true, hediffResult, key.bodyTypeName, key.raceName);
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
//SizedApparelTexturePointDef PointsDef = DefDatabase<SizedApparelTexturePointDef>.AllDefs.FirstOrDefault((SizedApparelTexturePointDef s) => s.Path == graphic.path);
|
||||||
|
//if (SizedApparelSettings.Debug && PointsDef != null)
|
||||||
|
//{
|
||||||
|
// Log.Message("[SizedApparel] : Points Def Found : " + PointsDef.defName);
|
||||||
|
//}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (key.bodyTypeName != null)
|
||||||
|
graphic = SizedApparelUtility.GetBodyPartGraphic(key.raceName, null, key.hediffName, isBreast, key.targetSize, folderName + "/CustomPose/" + key.customPose, defaultHediffName, out currentSize, out hediffResult, key.isHorny, null, key.variation, key.gender);
|
||||||
|
if (graphic != null)
|
||||||
|
{
|
||||||
|
result = new PathAndSize(graphic.path, currentSize, false, true, hediffResult , null, key.raceName);
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
//SizedApparelTexturePointDef PointsDef = DefDatabase<SizedApparelTexturePointDef>.AllDefs.FirstOrDefault((SizedApparelTexturePointDef s) => s.Path == graphic.path);
|
||||||
|
//if (SizedApparelSettings.Debug && PointsDef != null)
|
||||||
|
//{
|
||||||
|
// Log.Message("[SizedApparel] : Points Def Found : " + PointsDef.defName);
|
||||||
|
//}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
graphic = SizedApparelUtility.GetBodyPartGraphic(key.raceName, key.bodyTypeName, key.hediffName, isBreast, key.targetSize, folderName, defaultHediffName, out currentSize, out hediffResult, key.isHorny, null, key.variation, key.gender);
|
||||||
|
if (graphic != null)
|
||||||
|
{
|
||||||
|
//SizedApparelTexturePointDef PointsDef = DefDatabase<SizedApparelTexturePointDef>.AllDefs.FirstOrDefault((SizedApparelTexturePointDef s) => s.Path == graphic.path);
|
||||||
|
//if (SizedApparelSettings.Debug && PointsDef != null)
|
||||||
|
//{
|
||||||
|
// Log.Message("[SizedApparel] : Points Def Found : " + PointsDef.defName);
|
||||||
|
//}
|
||||||
|
result = new PathAndSize(graphic.path, currentSize, false, key.customPose == null ? true : false, hediffResult , key.bodyTypeName, key.raceName);
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key.bodyTypeName != null)
|
||||||
|
graphic = SizedApparelUtility.GetBodyPartGraphic(key.raceName, null, key.hediffName, isBreast, key.targetSize, folderName, defaultHediffName, out currentSize, out hediffResult, key.isHorny, null, key.variation, key.gender);
|
||||||
|
if (graphic != null)
|
||||||
|
{
|
||||||
|
//SizedApparelTexturePointDef PointsDef = DefDatabase<SizedApparelTexturePointDef>.AllDefs.FirstOrDefault((SizedApparelTexturePointDef s) => s.Path == graphic.path);
|
||||||
|
//if (SizedApparelSettings.Debug && PointsDef != null)
|
||||||
|
//{
|
||||||
|
// Log.Message("[SizedApparel] : Points Def Found : " + PointsDef.defName);
|
||||||
|
//}
|
||||||
|
result = new PathAndSize(graphic.path, currentSize, false, key.customPose == null ? true : false, hediffResult, null, key.raceName);
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//SizedApparelMod.CheckAndLoadAlienRaces();
|
||||||
|
//HumanLike Search
|
||||||
|
AlienRaceSetting raceSetting;
|
||||||
|
raceSetting = SizedApparelSettings.alienRaceSettings.FirstOrDefault((AlienRaceSetting s) => s.raceName == key.raceName);
|
||||||
|
if (raceSetting !=null && key.raceName == "Human" || !raceSetting.asHuman) //old: !SizedApparelSettings.UnsupportedRaceToUseHumanlike
|
||||||
|
{
|
||||||
|
//Cannot find Any result
|
||||||
|
result = new PathAndSize(null, -1);
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key.customPose != null)
|
||||||
|
{
|
||||||
|
graphic = SizedApparelUtility.GetBodyPartGraphic(key.raceName, key.bodyTypeName, key.hediffName, isBreast, key.targetSize, folderName + "/CustomPose/" + key.customPose, defaultHediffName, out currentSize, out hediffResult, key.isHorny, "Human", key.variation, key.gender);
|
||||||
|
if (graphic != null)
|
||||||
|
{
|
||||||
|
//SizedApparelTexturePointDef PointsDef = DefDatabase<SizedApparelTexturePointDef>.AllDefs.FirstOrDefault((SizedApparelTexturePointDef s) => s.Path == graphic.path);
|
||||||
|
//if (SizedApparelSettings.Debug && PointsDef != null)
|
||||||
|
//{
|
||||||
|
// Log.Message("[SizedApparel] : Points Def Found : " + PointsDef.defName);
|
||||||
|
//}
|
||||||
|
result = new PathAndSize(graphic.path, currentSize, true, true, hediffResult, key.bodyTypeName);
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (key.bodyTypeName != null)
|
||||||
|
graphic = SizedApparelUtility.GetBodyPartGraphic(key.raceName, null, key.hediffName, isBreast, key.targetSize, folderName + "/CustomPose/" + key.customPose, defaultHediffName, out currentSize, out hediffResult, key.isHorny, "Human", key.variation, key.gender);
|
||||||
|
if (graphic != null)
|
||||||
|
{
|
||||||
|
//SizedApparelTexturePointDef PointsDef = DefDatabase<SizedApparelTexturePointDef>.AllDefs.FirstOrDefault((SizedApparelTexturePointDef s) => s.Path == graphic.path);
|
||||||
|
//if (SizedApparelSettings.Debug && PointsDef != null)
|
||||||
|
//{
|
||||||
|
// Log.Message("[SizedApparel] : Points Def Found : " + PointsDef.defName);
|
||||||
|
//}
|
||||||
|
result = new PathAndSize(graphic.path, currentSize, true, true, hediffResult, null);
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
graphic = SizedApparelUtility.GetBodyPartGraphic(key.raceName, key.bodyTypeName, key.hediffName, isBreast, key.targetSize, folderName, defaultHediffName, out currentSize, out hediffResult, key.isHorny, "Human", key.variation, key.gender);
|
||||||
|
if (graphic != null)
|
||||||
|
{
|
||||||
|
//SizedApparelTexturePointDef PointsDef = DefDatabase<SizedApparelTexturePointDef>.AllDefs.FirstOrDefault((SizedApparelTexturePointDef s) => s.Path == graphic.path);
|
||||||
|
//if (SizedApparelSettings.Debug && PointsDef != null)
|
||||||
|
//{
|
||||||
|
// Log.Message("[SizedApparel] : Points Def Found : " + PointsDef.defName);
|
||||||
|
//}
|
||||||
|
result = new PathAndSize(graphic.path, currentSize, true, key.customPose == null ? true : false, hediffResult, key.bodyTypeName, "Human");
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key.bodyTypeName != null)
|
||||||
|
graphic = SizedApparelUtility.GetBodyPartGraphic(key.raceName, null, key.hediffName, isBreast, key.targetSize, folderName, defaultHediffName, out currentSize, out hediffResult, key.isHorny, "Human", key.variation, key.gender);
|
||||||
|
if (graphic != null)
|
||||||
|
{
|
||||||
|
//SizedApparelTexturePointDef PointsDef = DefDatabase<SizedApparelTexturePointDef>.AllDefs.FirstOrDefault((SizedApparelTexturePointDef s) => s.Path == graphic.path);
|
||||||
|
//if (SizedApparelSettings.Debug && PointsDef != null)
|
||||||
|
//{
|
||||||
|
// Log.Message("[SizedApparel] : Points Def Found : " + PointsDef.defName);
|
||||||
|
//}
|
||||||
|
result = new PathAndSize(graphic.path, currentSize, true, key.customPose == null ? true : false, hediffResult, null, "Human");
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Cannot find Any result
|
||||||
|
result = new PathAndSize(null, -1);
|
||||||
|
SupportedBodyPartResultPath.SetOrAdd(key, result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void RandomPreCacheForBodyParts()
|
||||||
|
{
|
||||||
|
//variationDef = DefDatabase<SizedApparelBodyPartVariationDef>.AllDefsListForReading;
|
||||||
|
BodyPartDatabaseKey key;
|
||||||
|
for (int i = 0; i<11; i++)
|
||||||
|
{
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Female", "Breasts", "Breasts", Gender.Female, i);
|
||||||
|
GetSupportedBodyPartPath(key, true, "Breasts", "Breasts");
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Thin", "Breasts", "Breasts", Gender.Female, i);
|
||||||
|
GetSupportedBodyPartPath(key, true, "Breasts", "Breasts");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 6; i++)
|
||||||
|
{
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Female", "Vagina", "Vagina", Gender.Female, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Vagina", "Vagina");
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Thin", "Vagina", "Vagina", Gender.Female, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Vagina", "Vagina");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 6; i++)
|
||||||
|
{
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Female", "Anus", "Anus", Gender.Female, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Anus", "Anus");
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Thin", "Anus", "Anus", Gender.Female, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Anus", "Anus");
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Male", "Anus", "Anus", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Anus", "Anus");
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Thin", "Anus", "Anus", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Anus", "Anus");
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 6; i++)
|
||||||
|
{
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Male", "Penis", "Penis", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Penis", "Penis");
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Male", "Penis", "Penis/Balls", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Penis", "Penis");
|
||||||
|
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Thin", "Penis", "Penis", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Penis", "Penis");
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Thin", "Penis", "Penis/Balls", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Penis", "Penis");
|
||||||
|
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Fat", "Penis", "Penis", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Penis", "Penis");
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Fat", "Penis", "Penis/Balls", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Penis", "Penis");
|
||||||
|
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Hulk", "Penis", "Penis", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Penis", "Penis");
|
||||||
|
key = new BodyPartDatabaseKey("Human", "Hulk", "Penis", "Penis/Balls", Gender.Male, i);
|
||||||
|
GetSupportedBodyPartPath(key, false, "Penis", "Penis");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void RandomPreCacheForApparels()
|
||||||
|
{
|
||||||
|
//random precache should be useful. so it target female and thin body only.
|
||||||
|
//don't target male because the male doesn't need breasts textures usually.
|
||||||
|
|
||||||
|
List<string> bodyTypes = new List<string>();
|
||||||
|
bodyTypes.Add("Female");
|
||||||
|
bodyTypes.Add("Thin");
|
||||||
|
|
||||||
|
|
||||||
|
// DefDatabase<BodyTypeDef>.AllDefsListForReading
|
||||||
|
foreach (ThingDef thingDef in DefDatabase<ThingDef>.AllDefsListForReading)
|
||||||
|
{
|
||||||
|
if (thingDef.IsApparel && !thingDef.apparel.wornGraphicPath.NullOrEmpty())
|
||||||
|
{
|
||||||
|
|
||||||
|
for(int i = 0; i<11; i++)
|
||||||
|
{
|
||||||
|
var key = new SizedApparelDatabaseKey(thingDef.apparel.wornGraphicPath, "Human", "Female", Gender.Female, "Breasts", i);
|
||||||
|
GetSupportedApparelSizedPath(key);
|
||||||
|
key = new SizedApparelDatabaseKey(thingDef.apparel.wornGraphicPath, "Human", "Thin", Gender.Female, "Breasts", i);
|
||||||
|
GetSupportedApparelSizedPath(key);
|
||||||
|
//need Humanlike Cache?
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
|
@ -0,0 +1,131 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>AOC</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,127 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Alien_Bori</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Alien_Miho</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Rabbie</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Ratkin</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Ratkin_Su</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,131 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- this is Wip Def. Not work yet. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Alien_SP</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,732 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Human</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Nipples</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Nipple</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0114</south>
|
||||||
|
<north>0.0011</north>
|
||||||
|
<east>0.0114</east>
|
||||||
|
<west>0.0114</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Nipples</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Nipple</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0114</south>
|
||||||
|
<north>0.0011</north>
|
||||||
|
<east>0.0114</east>
|
||||||
|
<west>0.0114</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Hulk</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Fat</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Breasts</partName> -->
|
||||||
|
<!-- <boneName>Breasts</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Breasts</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Breasts</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>true</isBreasts> -->
|
||||||
|
<!-- <mustHaveBone>false</mustHaveBone> -->
|
||||||
|
<!-- <centeredTexture>false</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0113</south> -->
|
||||||
|
<!-- <north>0.001</north> -->
|
||||||
|
<!-- <east>0.0113</east> -->
|
||||||
|
<!-- <west>0.0113</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Vagina</partName> -->
|
||||||
|
<!-- <boneName>Vagina</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Vagina</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Vagina</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <mustHaveBone>true</mustHaveBone> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0088</south> -->
|
||||||
|
<!-- <north>0.0100</north> -->
|
||||||
|
<!-- <east>0.0088</east> -->
|
||||||
|
<!-- <west>0.0088</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Anus</partName> -->
|
||||||
|
<!-- <boneName>Anus</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Anus</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Anus</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0093</south> -->
|
||||||
|
<!-- <north>0.0105</north> -->
|
||||||
|
<!-- <east>0.0093</east> -->
|
||||||
|
<!-- <west>0.0093</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Belly</partName> -->
|
||||||
|
<!-- <boneName>Belly</boneName> -->
|
||||||
|
<!-- <defaultHediffName>BellyBulge</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Belly</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>false</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0098</south> -->
|
||||||
|
<!-- <north>0.0002</north> -->
|
||||||
|
<!-- <east>0.0098</east> -->
|
||||||
|
<!-- <west>0.0098</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Penis</partName> -->
|
||||||
|
<!-- <boneName>Penis</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Penis</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Penis</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0108</south> -->
|
||||||
|
<!-- <north>0.0025</north> -->
|
||||||
|
<!-- <east>0.0108</east> -->
|
||||||
|
<!-- <west>0.0108</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Balls</partName> -->
|
||||||
|
<!-- <boneName>Balls</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Penis</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Balls</bodyPartOf> -->
|
||||||
|
<!-- <customPath>Penis/Balls</customPath> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0096</south> -->
|
||||||
|
<!-- <north>0.0085</north> -->
|
||||||
|
<!-- <east>0.0096</east> -->
|
||||||
|
<!-- <west>0.0096</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,716 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.BodyDef>
|
||||||
|
<defName>Human</defName>
|
||||||
|
<bodies>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<!-- "isBreasts" is used for step count -->
|
||||||
|
<!-- rjw private parts and breasts has different step method with serverity. -->
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Nipples</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Nipple</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<mustHaveBone>false</mustHaveBone>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0114</south>
|
||||||
|
<north>0.0011</north>
|
||||||
|
<east>0.0114</east>
|
||||||
|
<west>0.0114</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<mustHaveBone>true</mustHaveBone>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Hulk</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Fat</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<li>
|
||||||
|
<partName>Breasts</partName>
|
||||||
|
<boneName>Breasts</boneName>
|
||||||
|
<defaultHediffName>Breasts</defaultHediffName>
|
||||||
|
<bodyPartOf>Breasts</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>true</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0113</south>
|
||||||
|
<north>0.001</north>
|
||||||
|
<east>0.0113</east>
|
||||||
|
<west>0.0113</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Vagina</partName>
|
||||||
|
<boneName>Vagina</boneName>
|
||||||
|
<defaultHediffName>Vagina</defaultHediffName>
|
||||||
|
<bodyPartOf>Vagina</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0088</south>
|
||||||
|
<north>0.0100</north>
|
||||||
|
<east>0.0088</east>
|
||||||
|
<west>0.0088</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Anus</partName>
|
||||||
|
<boneName>Anus</boneName>
|
||||||
|
<defaultHediffName>Anus</defaultHediffName>
|
||||||
|
<bodyPartOf>Anus</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0093</south>
|
||||||
|
<north>0.0105</north>
|
||||||
|
<east>0.0093</east>
|
||||||
|
<west>0.0093</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Belly</partName>
|
||||||
|
<boneName>Belly</boneName>
|
||||||
|
<defaultHediffName>BellyBulge</defaultHediffName>
|
||||||
|
<bodyPartOf>Belly</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>false</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0098</south>
|
||||||
|
<north>0.0002</north>
|
||||||
|
<east>0.0098</east>
|
||||||
|
<west>0.0098</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Penis</partName>
|
||||||
|
<boneName>Penis</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Penis</bodyPartOf>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0108</south>
|
||||||
|
<north>0.0025</north>
|
||||||
|
<east>0.0108</east>
|
||||||
|
<west>0.0108</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>Balls</partName>
|
||||||
|
<boneName>Balls</boneName>
|
||||||
|
<defaultHediffName>Penis</defaultHediffName>
|
||||||
|
<bodyPartOf>Balls</bodyPartOf>
|
||||||
|
<customPath>Penis/Balls</customPath>
|
||||||
|
<colorType>Skin</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0096</south>
|
||||||
|
<north>0.0085</north>
|
||||||
|
<east>0.0096</east>
|
||||||
|
<west>0.0096</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<partName>PubicHair</partName>
|
||||||
|
<boneName>PubicHair</boneName>
|
||||||
|
<defaultHediffName>Default</defaultHediffName>
|
||||||
|
<bodyPartOf>PubicHair</bodyPartOf>
|
||||||
|
<colorType>Hair</colorType>
|
||||||
|
<isBreasts>false</isBreasts>
|
||||||
|
<centeredTexture>true</centeredTexture>
|
||||||
|
<!-- TODO? <TexturePaths/> -->
|
||||||
|
<depthOffset>
|
||||||
|
<south>0.0099</south>
|
||||||
|
<north>0.0099</north>
|
||||||
|
<east>0.0099</east>
|
||||||
|
<west>0.0099</west>
|
||||||
|
</depthOffset>
|
||||||
|
</li>
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Addons>
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Breasts</partName> -->
|
||||||
|
<!-- <boneName>Breasts</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Breasts</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Breasts</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>true</isBreasts> -->
|
||||||
|
<!-- <mustHaveBone>false</mustHaveBone> -->
|
||||||
|
<!-- <centeredTexture>false</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0113</south> -->
|
||||||
|
<!-- <north>0.001</north> -->
|
||||||
|
<!-- <east>0.0113</east> -->
|
||||||
|
<!-- <west>0.0113</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Vagina</partName> -->
|
||||||
|
<!-- <boneName>Vagina</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Vagina</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Vagina</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <mustHaveBone>true</mustHaveBone> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0088</south> -->
|
||||||
|
<!-- <north>0.0100</north> -->
|
||||||
|
<!-- <east>0.0088</east> -->
|
||||||
|
<!-- <west>0.0088</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Anus</partName> -->
|
||||||
|
<!-- <boneName>Anus</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Anus</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Anus</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0093</south> -->
|
||||||
|
<!-- <north>0.0105</north> -->
|
||||||
|
<!-- <east>0.0093</east> -->
|
||||||
|
<!-- <west>0.0093</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Belly</partName> -->
|
||||||
|
<!-- <boneName>Belly</boneName> -->
|
||||||
|
<!-- <defaultHediffName>BellyBulge</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Belly</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>false</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0098</south> -->
|
||||||
|
<!-- <north>0.0002</north> -->
|
||||||
|
<!-- <east>0.0098</east> -->
|
||||||
|
<!-- <west>0.0098</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Penis</partName> -->
|
||||||
|
<!-- <boneName>Penis</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Penis</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Penis</bodyPartOf> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0108</south> -->
|
||||||
|
<!-- <north>0.0025</north> -->
|
||||||
|
<!-- <east>0.0108</east> -->
|
||||||
|
<!-- <west>0.0108</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
<!-- <li> -->
|
||||||
|
<!-- <partName>Balls</partName> -->
|
||||||
|
<!-- <boneName>Balls</boneName> -->
|
||||||
|
<!-- <defaultHediffName>Penis</defaultHediffName> -->
|
||||||
|
<!-- <bodyPartOf>Balls</bodyPartOf> -->
|
||||||
|
<!-- <customPath>Penis/Balls</customPath> -->
|
||||||
|
<!-- <colorType>Skin</colorType> -->
|
||||||
|
<!-- <isBreasts>false</isBreasts> -->
|
||||||
|
<!-- <centeredTexture>true</centeredTexture> -->
|
||||||
|
<!-- <depthOffset> -->
|
||||||
|
<!-- <south>0.0096</south> -->
|
||||||
|
<!-- <north>0.0085</north> -->
|
||||||
|
<!-- <east>0.0096</east> -->
|
||||||
|
<!-- <west>0.0096</west> -->
|
||||||
|
<!-- </depthOffset> -->
|
||||||
|
<!-- </li> -->
|
||||||
|
</Addons>
|
||||||
|
</li>
|
||||||
|
</bodies>
|
||||||
|
</SizedApparel.BodyDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- "null" and "default" varName will be no variation. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SizedApparelBodyPartVariationDef>
|
||||||
|
<defName>AnusDetail</defName>
|
||||||
|
<bodyPartName>Anus</bodyPartName>
|
||||||
|
<variations>
|
||||||
|
<li>
|
||||||
|
<!--Default Anus-->
|
||||||
|
<hediffName>Anus</hediffName>
|
||||||
|
<varName>
|
||||||
|
<li>default</li>
|
||||||
|
<li>Donut</li>
|
||||||
|
</varName>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<!-- <hediffName>SlimeAnus</hediffName> -->
|
||||||
|
<!-- <varName> -->
|
||||||
|
<!-- <li>null</li> -->
|
||||||
|
<!-- <li>InvertedNipple</li> -->
|
||||||
|
<!-- </varName> -->
|
||||||
|
</li>
|
||||||
|
</variations>
|
||||||
|
</SizedApparel.SizedApparelBodyPartVariationDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- "null" and "default" varName will be no variation. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SizedApparelBodyPartVariationDef>
|
||||||
|
<defName>BreastDetail</defName>
|
||||||
|
<bodyPartName>Breasts</bodyPartName>
|
||||||
|
<variations>
|
||||||
|
<li>
|
||||||
|
<!--Default Breasts-->
|
||||||
|
<hediffName>Breasts</hediffName>
|
||||||
|
<varName>
|
||||||
|
<li>default</li>
|
||||||
|
<li>InvertedNipple</li>
|
||||||
|
</varName>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<!-- <hediffName>SlimeBreasts</hediffName> -->
|
||||||
|
<!-- <varName> -->
|
||||||
|
<!-- <li>null</li> -->
|
||||||
|
<!-- <li>InvertedNipple</li> -->
|
||||||
|
<!-- </varName> -->
|
||||||
|
</li>
|
||||||
|
</variations>
|
||||||
|
</SizedApparel.SizedApparelBodyPartVariationDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- "null" and "default" varName will be no variation. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SizedApparelBodyPartVariationDef>
|
||||||
|
<defName>PenisDetail</defName>
|
||||||
|
<bodyPartName>Penis</bodyPartName>
|
||||||
|
<variations>
|
||||||
|
<li>
|
||||||
|
<!--Default Penis-->
|
||||||
|
<hediffName>Penis</hediffName>
|
||||||
|
<varName>
|
||||||
|
<li>default</li>
|
||||||
|
<!-- <li>Uncircumcised</li> -->
|
||||||
|
</varName>
|
||||||
|
</li>
|
||||||
|
</variations>
|
||||||
|
</SizedApparel.SizedApparelBodyPartVariationDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- "null" and "default" varName will be no variation. -->
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SizedApparelBodyPartVariationDef>
|
||||||
|
<defName>VaginaDetail</defName>
|
||||||
|
<bodyPartName>Vagina</bodyPartName>
|
||||||
|
<variations>
|
||||||
|
<li>
|
||||||
|
<!--Default Vagina-->
|
||||||
|
<hediffName>Vagina</hediffName>
|
||||||
|
<varName>
|
||||||
|
<li>default</li>
|
||||||
|
<li>Puffy</li>
|
||||||
|
</varName>
|
||||||
|
</li>
|
||||||
|
</variations>
|
||||||
|
</SizedApparel.SizedApparelBodyPartVariationDef>
|
||||||
|
</Defs>
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<!-- Sized Apparel will Use defName for TextureSearch -->
|
||||||
|
<defName>Default</defName>
|
||||||
|
<!-- texPath must be set for styling station! -->
|
||||||
|
<texPath>SizedApparel/BodyParts/Human/PubicHair/Default</texPath>
|
||||||
|
<!-- Actual Texture must have "_south" name. -->
|
||||||
|
<!-- for example of this: Default_south.png -->
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<!-- Sized Apparel will Use defName for TextureSearch -->
|
||||||
|
<defName>Line</defName>
|
||||||
|
<!-- texPath must be set for styling station! -->
|
||||||
|
<texPath>SizedApparel/BodyParts/Human/PubicHair/Line</texPath>
|
||||||
|
<!-- Actual Texture must have "_south" name. -->
|
||||||
|
<!-- for example of this: Default_south.png -->
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<!-- Sized Apparel will Use defName for TextureSearch -->
|
||||||
|
<defName>Wild</defName>
|
||||||
|
<!-- texPath must be set for styling station! -->
|
||||||
|
<texPath>SizedApparel/BodyParts/Human/PubicHair/Wild</texPath>
|
||||||
|
<!-- Actual Texture must have "_south" name. -->
|
||||||
|
<!-- for example of this: Default_south.png -->
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<defName>None</defName>
|
||||||
|
<noGraphic>true</noGraphic>
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.PubicHairDef>
|
||||||
|
<!-- Sized Apparel will Use defName for TextureSearch -->
|
||||||
|
<defName>Wild</defName>
|
||||||
|
<!-- texPath must be set for styling station! -->
|
||||||
|
<texPath>SizedApparel/BodyParts/Human/PubicHair/Wild</texPath>
|
||||||
|
<!-- Actual Texture must have "_south" name. -->
|
||||||
|
<!-- for example of this: Default_south.png -->
|
||||||
|
</SizedApparel.PubicHairDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>AOC</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Alien_Bori</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,233 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Alien_Miho</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.148)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.150)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.143)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.129)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.139</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.061, 0, -0.155)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.004, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.141))</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.004, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.121)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.109)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.004, 0, -0.123)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.148)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.150)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.143)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.129)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.061, 0, -0.155)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.004, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.141)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.004, 0, -0.139)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.004, 0, -0.123))</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.121)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.109)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.004, 0, -0.123)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,233 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Rabbie</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,233 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Ratkin</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,233 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Ratkin_Su</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Alien_SP</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
|
@ -0,0 +1,668 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
<SizedApparel.SkeletonDef>
|
||||||
|
<defName>Human</defName>
|
||||||
|
<skeletons>
|
||||||
|
<li>
|
||||||
|
<bodyType>Female</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.340)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.346)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.047, 0, -0.238)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.289)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.289)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.174, 0, 0.254)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.01, 0, -0.338)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.062, 0, -0.221)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.01, 0, -0.338)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.062, 0, -0.221)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.301)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.318)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.059, 0, -0.186)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Thin</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.312)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.006, 0, -0.318)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.006, 0, -0.256)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.260)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.266)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.137, 0, -0.211)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.307)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.305)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.008, 0, -0.248)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.307)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.305)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.007, 0, -0.248)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.281)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.291)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.021, 0, -0.219)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Male</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.002, 0, -0.311)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.057, 0, -0.258)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.268)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.252)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.113, 0, -0.234)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.301)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.311)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.068, 0, -0.250)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.0, 0, -0.301)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.0, 0, -0.311)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.066, 0, -0.250)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.275)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.277)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.066, 0, -0.219)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Hulk</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.004, 0, -0.434)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.453)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.020, 0, -0.395)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.006, 0, -0.383)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.406)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.238, 0, -0.328)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.436)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.0, 0, -0.445)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.029, 0, -0.387)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.436)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.445)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.028, 0, -0.387)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.395)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.027, 0, -0.375)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, -0.424)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Fat</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.002, 0, -0.352)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.002, 0, -0.359)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.148, 0, -0.352)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.297)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.297)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.238, 0, -0.271)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.357)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.363)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.168, 0, -0.348)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.357)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.363)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.168, 0, -0.348)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.307)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.320)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.158, 0, -0.338)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<bodyType>Child</bodyType>
|
||||||
|
<Bones>
|
||||||
|
<li>
|
||||||
|
<name>Vagina</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0.002, 0, -0.209)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, -0.205)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.043, 0, -0.174)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Breasts</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Anus</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.289)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0.002, 0, -0.164)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(-0.084, 0, -0.127)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Penis</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.047, 0, -0.170)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Balls</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.195)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.047, 0, -0.170)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>Belly</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0, 0, 0)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<name>PubicHair</name>
|
||||||
|
<south>
|
||||||
|
<InitialPosition>(0, 0, -0.166)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</south>
|
||||||
|
<north>
|
||||||
|
<InitialPosition>(-0.002, 0, -0.164)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</north>
|
||||||
|
<east>
|
||||||
|
<InitialPosition>(0.057, 0, -0.145)</InitialPosition>
|
||||||
|
<InitialAngle>0</InitialAngle>
|
||||||
|
</east>
|
||||||
|
</li>
|
||||||
|
</Bones>
|
||||||
|
</li>
|
||||||
|
</skeletons>
|
||||||
|
</SizedApparel.SkeletonDef>
|
||||||
|
</Defs>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue