Sex props plus quiver visuals
|
|
@ -120,6 +120,8 @@
|
||||||
<Compile Include="Assets\Scripts\MultiDirectionalGraphic.cs" />
|
<Compile Include="Assets\Scripts\MultiDirectionalGraphic.cs" />
|
||||||
<Compile Include="Assets\Scripts\NumberValidator.cs" />
|
<Compile Include="Assets\Scripts\NumberValidator.cs" />
|
||||||
<Compile Include="Assets\Scripts\RequiresAnimationDef.cs" />
|
<Compile Include="Assets\Scripts\RequiresAnimationDef.cs" />
|
||||||
|
<Compile Include="Assets\Scripts\SexProp.cs" />
|
||||||
|
<Compile Include="Assets\Scripts\SexPropManager.cs" />
|
||||||
<Compile Include="Assets\Scripts\Singleton.cs" />
|
<Compile Include="Assets\Scripts\Singleton.cs" />
|
||||||
<Compile Include="Assets\Scripts\SnapToKeyframe.cs" />
|
<Compile Include="Assets\Scripts\SnapToKeyframe.cs" />
|
||||||
<Compile Include="Assets\Scripts\Utilities\PawnUtility.cs" />
|
<Compile Include="Assets\Scripts\Utilities\PawnUtility.cs" />
|
||||||
|
|
|
||||||
8
Assets/Resources/Textures/Props.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a617f36023d29334395bcdea6dc988c5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Resources/Textures/Props/Bed_east.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
116
Assets/Resources/Textures/Props/Bed_east.png.meta
Normal file
|
|
@ -0,0 +1,116 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d200f76a362555742ab5cc80b974e978
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 62
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Resources/Textures/Props/Bed_south.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
116
Assets/Resources/Textures/Props/Bed_south.png.meta
Normal file
|
|
@ -0,0 +1,116 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 96812a154c94f614a9f1cb4efcdc71d8
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 85
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Resources/Textures/Props/DoubleBed_south.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
116
Assets/Resources/Textures/Props/DoubleBed_south.png.meta
Normal file
|
|
@ -0,0 +1,116 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b5ea419faec767a4484f4159980421f3
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 85
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/Resources/Textures/Props/Spot.png
Normal file
|
After Width: | Height: | Size: 332 B |
116
Assets/Resources/Textures/Props/Spot.png.meta
Normal file
|
|
@ -0,0 +1,116 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5411e5a72310c1a47a8ac4061556a2d5
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 85
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -16,7 +16,7 @@ namespace RimWorldAnimationStudio
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
PawnKeyframe keyframe = Workspace.Instance.GetCurrentPawnKeyframe();
|
PawnKeyframe keyframe = Workspace.Instance.GetCurrentOrPreviousKeyframe(Workspace.actorID);
|
||||||
|
|
||||||
if (keyframe != null)
|
if (keyframe != null)
|
||||||
{ text.text = keyframe.soundEffect == null || keyframe.soundEffect == "" ? "None" : keyframe.soundEffect; }
|
{ text.text = keyframe.soundEffect == null || keyframe.soundEffect == "" ? "None" : keyframe.soundEffect; }
|
||||||
|
|
|
||||||
|
|
@ -28,10 +28,10 @@ namespace RimWorldAnimationStudio
|
||||||
_optionToggle.Find("Text").GetComponent<Text>().text = tag;
|
_optionToggle.Find("Text").GetComponent<Text>().text = tag;
|
||||||
|
|
||||||
Toggle toggleComp = _optionToggle.GetComponent<Toggle>();
|
Toggle toggleComp = _optionToggle.GetComponent<Toggle>();
|
||||||
toggleComp.isOn = Workspace.Instance.GetCurrentPawnKeyframe()?.soundEffect == tag;
|
toggleComp.isOn = Workspace.Instance.GetCurrentOrPreviousKeyframe(Workspace.actorID)?.soundEffect == tag;
|
||||||
toggleComp.onValueChanged.AddListener(delegate
|
toggleComp.onValueChanged.AddListener(delegate
|
||||||
{
|
{
|
||||||
PawnKeyframe keyframe = Workspace.Instance.GetCurrentPawnKeyframe();
|
PawnKeyframe keyframe = Workspace.Instance.GetCurrentOrPreviousKeyframe(Workspace.actorID);
|
||||||
|
|
||||||
if (keyframe != null)
|
if (keyframe != null)
|
||||||
{ keyframe.soundEffect = tag; }
|
{ keyframe.soundEffect = tag; }
|
||||||
|
|
|
||||||
|
|
@ -9,13 +9,13 @@ namespace RimWorldAnimationStudio
|
||||||
{
|
{
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
PawnKeyframe keyframe = Workspace.Instance.GetCurrentPawnKeyframe();
|
PawnKeyframe keyframe = Workspace.Instance.GetCurrentOrPreviousKeyframe(Workspace.actorID);
|
||||||
GetComponent<Toggle>().isOn = keyframe != null && keyframe.quiver.HasValue && keyframe.quiver.Value;
|
GetComponent<Toggle>().isOn = keyframe != null && keyframe.quiver.HasValue && keyframe.quiver.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnValueChanged()
|
public void OnValueChanged()
|
||||||
{
|
{
|
||||||
PawnKeyframe keyframe = Workspace.Instance.GetCurrentPawnKeyframe();
|
PawnKeyframe keyframe = Workspace.Instance.GetCurrentOrPreviousKeyframe(Workspace.actorID);
|
||||||
|
|
||||||
if (keyframe != null)
|
if (keyframe != null)
|
||||||
{ keyframe.quiver = GetComponent<Toggle>().isOn; }
|
{ keyframe.quiver = GetComponent<Toggle>().isOn; }
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ using System.Linq;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Xml.Serialization;
|
using System.Xml.Serialization;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using SFB;
|
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace RimWorldAnimationStudio
|
namespace RimWorldAnimationStudio
|
||||||
|
|
@ -143,6 +142,8 @@ namespace RimWorldAnimationStudio
|
||||||
if (clip == null)
|
if (clip == null)
|
||||||
{ continue; }
|
{ continue; }
|
||||||
|
|
||||||
|
bool quiver = isAnimating && Workspace.Instance.GetCurrentOrPreviousKeyframe(actorID).quiver == true;
|
||||||
|
|
||||||
float clipPercent = (float)(stageTick % clip.duration) / clip.duration;
|
float clipPercent = (float)(stageTick % clip.duration) / clip.duration;
|
||||||
if (stageTick == clip.duration) clipPercent = 1f;
|
if (stageTick == clip.duration) clipPercent = 1f;
|
||||||
|
|
||||||
|
|
@ -156,6 +157,8 @@ namespace RimWorldAnimationStudio
|
||||||
Vector3 deltaPos = new Vector3(clip.BodyOffsetX.Evaluate(clipPercent), 0, clip.BodyOffsetZ.Evaluate(clipPercent));
|
Vector3 deltaPos = new Vector3(clip.BodyOffsetX.Evaluate(clipPercent), 0, clip.BodyOffsetZ.Evaluate(clipPercent));
|
||||||
|
|
||||||
float bodyAngle = clip.BodyAngle.Evaluate(clipPercent);
|
float bodyAngle = clip.BodyAngle.Evaluate(clipPercent);
|
||||||
|
bodyAngle += quiver ? UnityEngine.Random.value * 2f - 1f : 0f;
|
||||||
|
|
||||||
float headAngle = clip.HeadAngle.Evaluate(clipPercent);
|
float headAngle = clip.HeadAngle.Evaluate(clipPercent);
|
||||||
|
|
||||||
int bodyFacing = (int)clip.BodyFacing.Evaluate(clipPercent);
|
int bodyFacing = (int)clip.BodyFacing.Evaluate(clipPercent);
|
||||||
|
|
|
||||||
|
|
@ -144,7 +144,7 @@ namespace RimWorldAnimationStudio
|
||||||
|
|
||||||
public void SaveCustomArrays()
|
public void SaveCustomArrays()
|
||||||
{
|
{
|
||||||
var path = Path.Combine(Application.streamingAssetsPath, "customTags.xml");
|
var path = Path.Combine(Application.persistentDataPath, "customTags.xml");
|
||||||
|
|
||||||
CustomTagsHelper helper = new CustomTagsHelper();
|
CustomTagsHelper helper = new CustomTagsHelper();
|
||||||
|
|
||||||
|
|
@ -159,8 +159,14 @@ namespace RimWorldAnimationStudio
|
||||||
|
|
||||||
public void LoadCustomArrays()
|
public void LoadCustomArrays()
|
||||||
{
|
{
|
||||||
var path = Path.Combine(Application.streamingAssetsPath, "customTags.xml");
|
string path;
|
||||||
|
|
||||||
|
if (File.Exists(Path.Combine(Application.persistentDataPath, "customTags.xml")))
|
||||||
|
{ path = Path.Combine(Application.persistentDataPath, "customTags.xml"); }
|
||||||
|
|
||||||
|
else
|
||||||
|
{ path = Path.Combine(Application.streamingAssetsPath, "customTags.xml"); }
|
||||||
|
|
||||||
if (File.Exists(path) == false)
|
if (File.Exists(path) == false)
|
||||||
{ SaveCustomArrays(); return; }
|
{ SaveCustomArrays(); return; }
|
||||||
|
|
||||||
|
|
@ -186,7 +192,13 @@ namespace RimWorldAnimationStudio
|
||||||
|
|
||||||
public void LoadAlienRaceDefs()
|
public void LoadAlienRaceDefs()
|
||||||
{
|
{
|
||||||
var path = Path.Combine(Application.streamingAssetsPath, "alienRaceDefs.xml");
|
string path;
|
||||||
|
|
||||||
|
if (File.Exists(Path.Combine(Application.persistentDataPath, "alienRaceDefs.xml")))
|
||||||
|
{ path = Path.Combine(Application.persistentDataPath, "alienRaceDefs.xml"); }
|
||||||
|
|
||||||
|
else
|
||||||
|
{ path = Path.Combine(Application.streamingAssetsPath, "alienRaceDefs.xml"); }
|
||||||
|
|
||||||
if (File.Exists(path) == false)
|
if (File.Exists(path) == false)
|
||||||
{ SaveAlienRaceDefs(); return; }
|
{ SaveAlienRaceDefs(); return; }
|
||||||
|
|
@ -197,7 +209,7 @@ namespace RimWorldAnimationStudio
|
||||||
|
|
||||||
public void SaveAlienRaceDefs()
|
public void SaveAlienRaceDefs()
|
||||||
{
|
{
|
||||||
var path = Path.Combine(Application.streamingAssetsPath, "alienRaceDefs.xml");
|
var path = Path.Combine(Application.persistentDataPath, "alienRaceDefs.xml");
|
||||||
|
|
||||||
XmlUtility.WriteXML(AlienRaceDefs.allDefs, path);
|
XmlUtility.WriteXML(AlienRaceDefs.allDefs, path);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
12
Assets/Scripts/SexProp.cs
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace RimWorldAnimationStudio
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class SexProp
|
||||||
|
{
|
||||||
|
public string label;
|
||||||
|
public Sprite sprite;
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Scripts/SexProp.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 94f6b7ad49adabe428c011abfcf4da53
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
28
Assets/Scripts/SexPropManager.cs
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace RimWorldAnimationStudio
|
||||||
|
{
|
||||||
|
public class SexPropManager : MonoBehaviour
|
||||||
|
{
|
||||||
|
public List<SexProp> sexProps = new List<SexProp>();
|
||||||
|
public Dropdown sexPropDropdown;
|
||||||
|
|
||||||
|
private SpriteRenderer spriteRenderer;
|
||||||
|
|
||||||
|
public void OnEnable()
|
||||||
|
{
|
||||||
|
spriteRenderer = GetComponent<SpriteRenderer>();
|
||||||
|
|
||||||
|
foreach (SexProp sexProp in sexProps)
|
||||||
|
{ sexPropDropdown.options.Add(new Dropdown.OptionData(sexProp.label)); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnOptionChanged()
|
||||||
|
{
|
||||||
|
spriteRenderer.sprite = sexProps[sexPropDropdown.value].sprite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Scripts/SexPropManager.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 587f7397b0c3ecf4495edb8af5dbd777
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -109,36 +109,20 @@ namespace RimWorldAnimationStudio
|
||||||
return animationDef.animationStages[stageID].animationClips[actorID].keyframes.Any(x => x.atTick == atTick);
|
return animationDef.animationStages[stageID].animationClips[actorID].keyframes.Any(x => x.atTick == atTick);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void FindAdjacentKeyframes(int atTick, out PawnKeyframe prevKeyframe, out PawnKeyframe nextKeyframe, int actorID = -1, int excludedActorID = -1, bool ignoreSelf = true, int searchDistance = int.MaxValue)
|
public PawnKeyframe GetCurrentOrPreviousKeyframe(int actorID)
|
||||||
{
|
{
|
||||||
prevKeyframe = null;
|
PawnKeyframe pawnKeyframe = null;
|
||||||
nextKeyframe = null;
|
PawnAnimationClip clip = GetPawnAnimationClip(actorID);
|
||||||
|
|
||||||
List<PawnKeyframe> keyframesToCheck;
|
int stageTick = AnimationController.Instance.stageTick;
|
||||||
|
|
||||||
if (actorID >= 0)
|
foreach (PawnKeyframe keyframe in clip.keyframes)
|
||||||
{ keyframesToCheck = animationDef.animationStages[stageID].animationClips[actorID].keyframes; }
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
keyframesToCheck = animationDef.animationStages[stageID].animationClips.Where(x =>
|
if (keyframe.atTick <= stageTick)
|
||||||
animationDef.animationStages[stageID].animationClips.IndexOf(x) != excludedActorID).SelectMany(x => x.keyframes)?.ToList();
|
{ pawnKeyframe = keyframe; }
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (PawnKeyframe keyframe in keyframesToCheck)
|
return pawnKeyframe;
|
||||||
{
|
|
||||||
if (keyframe.atTick <= atTick && atTick - keyframe.atTick <= searchDistance)
|
|
||||||
{
|
|
||||||
if (keyframe.atTick != atTick || ignoreSelf)
|
|
||||||
{ prevKeyframe = keyframe; }
|
|
||||||
|
|
||||||
else
|
|
||||||
{ prevKeyframe = null; }
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nextKeyframe == null && keyframe.atTick > atTick && keyframe.atTick - atTick <= searchDistance)
|
|
||||||
{ nextKeyframe = keyframe; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int FindClosestKeyFrameAtTick(int atTick, int searchDistance = int.MaxValue, int excludedActorID = -1)
|
public static int FindClosestKeyFrameAtTick(int atTick, int searchDistance = int.MaxValue, int excludedActorID = -1)
|
||||||
|
|
|
||||||
BIN
Library/Artifacts/00/0058e49d2f590bbdef73a878bebfbb0b
Normal file
BIN
Library/Artifacts/03/037f252297ff40c9cb4d44f1237fe7ec
Normal file
BIN
Library/Artifacts/05/05a406e5e7bbc64b2d3c1cab77287dbd
Normal file
BIN
Library/Artifacts/07/078861858ad05691fac8607fecc37fa6
Normal file
BIN
Library/Artifacts/0a/0a480c9dbd996b5889600da5361667d0
Normal file
BIN
Library/Artifacts/20/20ec1a9ec243c1bdf36d0dff0f911bab
Normal file
BIN
Library/Artifacts/2c/2c33b5adca9ff8791724c61a1f724120
Normal file
BIN
Library/Artifacts/2e/2e1f03d08705b461f87105910e982c5b
Normal file
BIN
Library/Artifacts/33/33d99fbfe7e52e4927defd9237ecf795
Normal file
BIN
Library/Artifacts/3b/3be71268f2398b6f1a2a0725e0e32b85
Normal file
BIN
Library/Artifacts/3c/3ca558ce9a8d735b635d36236d196911
Normal file
BIN
Library/Artifacts/3e/3e8bc4205694114b6d5555460c2390a6
Normal file
BIN
Library/Artifacts/3f/3f6e9beb041c512cc8910f2d3211948a
Normal file
BIN
Library/Artifacts/40/405a3a249ee7e6d3b6e289e645a5d2b5
Normal file
BIN
Library/Artifacts/44/44c22d2ae10f63efe68037c554c4bb82
Normal file
|
After Width: | Height: | Size: 876 B |
BIN
Library/Artifacts/45/450e967ce48e1b8eb49dbd99a5f6164a
Normal file
BIN
Library/Artifacts/4a/4a09d0ffc33058f9b2b113da32cc10b9
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
Library/Artifacts/54/5455e5ea9140968b438160e5223ad8f0
Normal file
BIN
Library/Artifacts/56/56377868ca81e67a6dee55b0c46f2f06
Normal file
BIN
Library/Artifacts/57/57529a414e2147873d56af3323e9c44c
Normal file
BIN
Library/Artifacts/57/57538832b23a7bfcf1b21608b57122f1
Normal file
BIN
Library/Artifacts/59/59653602b7a7cc0bb6548a9ece477b43
Normal file
BIN
Library/Artifacts/59/59e221fa162e63e68cbf6e50ad789db9
Normal file
BIN
Library/Artifacts/5b/5bfdd4a9c2f0a207293a6acd2de1b180
Normal file
BIN
Library/Artifacts/65/65aeb2ffaeb0295203f40caec296a575
Normal file
BIN
Library/Artifacts/6b/6baec19778384f281028b73505908d3e
Normal file
BIN
Library/Artifacts/77/771322925e5f3dff82d76747b4f1ef21
Normal file
BIN
Library/Artifacts/7f/7f34a2e454d437475c7e64d16dd94b5c
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
Library/Artifacts/7f/7f834f39b12cb1ea64402376d3b2682c
Normal file
BIN
Library/Artifacts/7f/7f9ee86925f151b9dd26aec4d53d8c5b
Normal file
|
After Width: | Height: | Size: 12 KiB |