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)
|
||||
return;
|
||||
var comp = pawn.TryGetComp<ApparelRecorderComp>();
|
||||
var comp = pawn.GetComp<ApparelRecorderComp>();
|
||||
if (comp == null)
|
||||
return;
|
||||
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)
|
||||
return;
|
||||
ApparelRecorderComp comp = pawn?.TryGetComp<ApparelRecorderComp>();
|
||||
ApparelRecorderComp comp = pawn?.GetComp<ApparelRecorderComp>();
|
||||
if (comp == null)
|
||||
return;
|
||||
comp.SetDirty();
|
||||
comp.SetDirty(true,true,true);
|
||||
/*
|
||||
comp.ClearAll();
|
||||
var graphicSet = pawn.Drawer?.renderer?.graphics;
|
||||
|
@ -69,7 +69,7 @@ namespace SizedApparel
|
|||
return;
|
||||
//GetBreastSeverity(__instance.pawn, out breastSeverity, out breastHediff);
|
||||
//bool flag = hasUnSupportedApparel(__instance.pawn, breastSeverity, breastHediff);
|
||||
ApparelRecorderComp comp = pawn.TryGetComp<ApparelRecorderComp>();
|
||||
ApparelRecorderComp comp = pawn.GetComp<ApparelRecorderComp>();
|
||||
if (comp != null)
|
||||
{
|
||||
/*
|
||||
|
@ -128,7 +128,7 @@ namespace SizedApparel
|
|||
{
|
||||
if (pawn == null)
|
||||
return;
|
||||
ApparelRecorderComp comp = pawn.TryGetComp<ApparelRecorderComp>();
|
||||
ApparelRecorderComp comp = pawn.GetComp<ApparelRecorderComp>();
|
||||
if (comp == null)
|
||||
return;
|
||||
comp.SetDirty();
|
||||
|
@ -146,7 +146,7 @@ namespace SizedApparel
|
|||
|
||||
|
||||
|
||||
ApparelRecorderComp pawnARC = __instance.pawn.TryGetComp<ApparelRecorderComp>();
|
||||
ApparelRecorderComp pawnARC = __instance.pawn.GetComp<ApparelRecorderComp>();
|
||||
if (pawnARC != null)
|
||||
{
|
||||
if (__instance.pawn.RaceProps.Humanlike)
|
||||
|
@ -161,7 +161,7 @@ namespace SizedApparel
|
|||
var partner = __instance.Partner as Pawn;
|
||||
if (partner == null)
|
||||
return;
|
||||
ApparelRecorderComp partnerARC = partner.TryGetComp<ApparelRecorderComp>();
|
||||
ApparelRecorderComp partnerARC = partner.GetComp<ApparelRecorderComp>();
|
||||
if (partnerARC != null)
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
@ -209,7 +209,7 @@ namespace SizedApparel
|
|||
var partner = __instance.Partner as Pawn;
|
||||
if (partner == null)
|
||||
return;
|
||||
ApparelRecorderComp partnerARC = partner.TryGetComp<ApparelRecorderComp>();
|
||||
ApparelRecorderComp partnerARC = partner.GetComp<ApparelRecorderComp>();
|
||||
if (partnerARC != null)
|
||||
{
|
||||
partnerARC.havingSex = false;
|
|
@ -36,7 +36,7 @@ namespace SizedApparel
|
|||
{
|
||||
if (__result == false)
|
||||
return;
|
||||
var comp = pawn.TryGetComp<ApparelRecorderComp>();
|
||||
var comp = pawn.GetComp<ApparelRecorderComp>();
|
||||
if (comp == null)
|
||||
return;
|
||||
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