Skip to content

Commit

Permalink
Merge branch 'feature/Cleanup' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
DYLAN-PC\Dylan committed Nov 16, 2018
2 parents c8d179d + cfe19ad commit c55692c
Show file tree
Hide file tree
Showing 119 changed files with 1,729 additions and 2,923 deletions.
60 changes: 60 additions & 0 deletions SPAnim/Anim/AnimSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,17 @@
namespace com.spacepuppy.Anim
{

[System.Flags]
public enum AnimSettingsMask
{
Weight = 1,
Speed = 2,
Layer = 4,
WrapMode = 8,
BlendMode = 16,
TimeSupplier = 32
}

[System.Serializable]
public struct AnimSettings
{
Expand Down Expand Up @@ -63,6 +74,44 @@ public void Apply(ISPAnim anim)
anim.TimeSupplier = this.timeSupplier.TimeSupplier;
}

public void Apply(SPAnim anim, AnimSettingsMask mask)
{
if ((mask & AnimSettingsMask.Weight) != 0) anim.Weight = this.weight;
if ((mask & AnimSettingsMask.Speed) != 0) anim.Speed = this.speed;
if ((mask & AnimSettingsMask.Layer) != 0) anim.Layer = this.layer;
if ((mask & AnimSettingsMask.WrapMode) != 0) anim.WrapMode = this.wrapMode;
if ((mask & AnimSettingsMask.BlendMode) != 0) anim.BlendMode = this.blendMode;
if ((mask & AnimSettingsMask.TimeSupplier) != 0) anim.TimeSupplier = this.timeSupplier.TimeSupplier;
}

public void Apply(AnimationState anim, AnimSettingsMask mask)
{
if ((mask & AnimSettingsMask.Weight) != 0) anim.weight = this.weight;
if ((mask & AnimSettingsMask.Speed) != 0) anim.speed = this.speed;
if ((mask & AnimSettingsMask.Layer) != 0) anim.layer = this.layer;
if ((mask & AnimSettingsMask.WrapMode) != 0) anim.wrapMode = this.wrapMode;
if ((mask & AnimSettingsMask.BlendMode) != 0) anim.blendMode = this.blendMode;
if ((mask & AnimSettingsMask.TimeSupplier) != 0 && this.timeSupplier.IsCustom)
{
anim.speed = this.speed * SPTime.GetInverseScale(this.timeSupplier.TimeSupplier);
}
}

public void Apply(ISPAnim anim, AnimSettingsMask mask)
{
if (anim is SPAnim)
{
this.Apply(anim as SPAnim, mask);
return;
}
//can't set weight
if ((mask & AnimSettingsMask.Speed) != 0) anim.Speed = this.speed;
if ((mask & AnimSettingsMask.Layer) != 0) anim.Layer = this.layer;
if ((mask & AnimSettingsMask.WrapMode) != 0) anim.WrapMode = this.wrapMode;
//can't set blend mode
if ((mask & AnimSettingsMask.TimeSupplier) != 0) anim.TimeSupplier = this.timeSupplier.TimeSupplier;
}

#endregion

#region Static Interface
Expand Down Expand Up @@ -101,6 +150,17 @@ public static AnimSettings From(AnimationState anim)
};
}

public static AnimSettings Intersect(AnimSettings settings, AnimSettings with, AnimSettingsMask mask)
{
if ((mask & AnimSettingsMask.Weight) != 0) settings.weight = with.weight;
if ((mask & AnimSettingsMask.Speed) != 0) settings.speed = with.speed;
if ((mask & AnimSettingsMask.Layer) != 0) settings.layer = with.layer;
if ((mask & AnimSettingsMask.WrapMode) != 0) settings.wrapMode = with.wrapMode;
if ((mask & AnimSettingsMask.BlendMode) != 0) settings.blendMode = with.blendMode;
if ((mask & AnimSettingsMask.TimeSupplier) != 0) settings.timeSupplier = with.timeSupplier;
return settings;
}

#endregion

}
Expand Down
2 changes: 1 addition & 1 deletion SPAnim/Anim/Events/PlayAnimInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class PlayAnimInfo
[SerializeField]
private UnityEngine.Object _clip;
[SerializeField]
public bool ApplyCustomSettings;
public AnimSettingsMask SettingsMask;
[SerializeField]
public AnimSettings Settings = AnimSettings.Default;
[SerializeField]
Expand Down
14 changes: 7 additions & 7 deletions SPAnim/Anim/Events/i_PlayAnimation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public enum PlayByMode
private UnityEngine.Object _clip;

[SerializeField]
private bool _applyCustomSettings;
private AnimSettingsMask _settingsMask;
[SerializeField]
private AnimSettings _settings = AnimSettings.Default;

Expand Down Expand Up @@ -67,11 +67,11 @@ private object PlayClip(SPLegacyAnimController controller, UnityEngine.Object cl
{
if (_crossFadeDur > 0f)
return controller.CrossFadeAuxiliary(clip as AnimationClip,
_applyCustomSettings ? _settings : AnimSettings.Default,
(_settingsMask != 0) ? AnimSettings.Intersect(AnimSettings.Default, _settings, _settingsMask) : AnimSettings.Default,
_crossFadeDur, _queueMode, _playMode);
else
return controller.PlayAuxiliary(clip as AnimationClip,
_applyCustomSettings ? _settings : AnimSettings.Default,
(_settingsMask != 0) ? AnimSettings.Intersect(AnimSettings.Default, _settings, _settingsMask) : AnimSettings.Default,
_queueMode, _playMode);
}
else if (clip is IScriptableAnimationClip)
Expand Down Expand Up @@ -99,7 +99,7 @@ private object PlayClip(Animation controller, AnimationClip clip)
anim = animController.CrossFadeQueued(id, _crossFadeDur, _queueMode, _playMode);
else
anim = animController.PlayQueued(id, _queueMode, _playMode);
if (_applyCustomSettings) _settings.Apply(anim);
if (_settingsMask != 0) _settings.Apply(anim, _settingsMask);
return anim;
}

Expand All @@ -119,7 +119,7 @@ private object TryPlay(object controller)
anim.CrossFade(_crossFadeDur, _queueMode, _playMode);
else
anim.Play(_queueMode, _playMode);
if (_applyCustomSettings) _settings.Apply(anim);
if (_settingsMask != 0) _settings.Apply(anim, _settingsMask);
return anim;
}
return null;
Expand All @@ -142,7 +142,7 @@ private object TryPlay(object controller)
anim = comp.CrossFadeQueued(_id, _crossFadeDur, _queueMode, _playMode);
else
anim = comp.PlayQueued(_id, _queueMode, _playMode);
if (_applyCustomSettings) _settings.Apply(anim);
if (_settingsMask != 0) _settings.Apply(anim, _settingsMask);
return anim;
}
return null;
Expand All @@ -161,7 +161,7 @@ private object TryPlay(object controller)
anim.CrossFade(_crossFadeDur, _queueMode, _playMode);
else
anim.Play(_queueMode, _playMode);
if (_applyCustomSettings) _settings.Apply(anim);
if (_settingsMask != 0) _settings.Apply(anim, _settingsMask);
return anim;
}
return null;
Expand Down
12 changes: 6 additions & 6 deletions SPAnim/Anim/Events/i_PlayRandomAnimation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ private object PlayClip(SPLegacyAnimController controller, UnityEngine.Object cl
{
if (info.CrossFadeDur > 0f)
return controller.CrossFadeAuxiliary(clip as AnimationClip,
info.ApplyCustomSettings ? info.Settings : AnimSettings.Default,
(info.SettingsMask != 0) ? AnimSettings.Intersect(AnimSettings.Default, info.Settings, info.SettingsMask) : AnimSettings.Default,
info.CrossFadeDur, info.QueueMode, info.PlayMode);
else
return controller.PlayAuxiliary(clip as AnimationClip,
info.ApplyCustomSettings ? info.Settings : AnimSettings.Default,
(info.SettingsMask != 0) ? AnimSettings.Intersect(AnimSettings.Default, info.Settings, info.SettingsMask) : AnimSettings.Default,
info.QueueMode, info.PlayMode);
}
else if (clip is IScriptableAnimationClip)
Expand Down Expand Up @@ -75,7 +75,7 @@ private object PlayClip(Animation controller, UnityEngine.Object clip, PlayAnimI
anim = animController.CrossFadeQueued(id, info.CrossFadeDur, info.QueueMode, info.PlayMode);
else
anim = animController.PlayQueued(id, info.QueueMode, info.PlayMode);
if (info.ApplyCustomSettings) info.Settings.Apply(anim);
if (info.SettingsMask != 0) info.Settings.Apply(anim, info.SettingsMask);
return anim;
}

Expand All @@ -98,7 +98,7 @@ private object TryPlay(object controller, PlayAnimInfo info)
anim.CrossFade(info.CrossFadeDur, info.QueueMode, info.PlayMode);
else
anim.Play(info.QueueMode, info.PlayMode);
if (info.ApplyCustomSettings) info.Settings.Apply(anim);
if (info.SettingsMask != 0) info.Settings.Apply(anim, info.SettingsMask);
return anim;
}
return null;
Expand All @@ -121,7 +121,7 @@ private object TryPlay(object controller, PlayAnimInfo info)
anim = comp.CrossFadeQueued(info.Id, info.CrossFadeDur, info.QueueMode, info.PlayMode);
else
anim = comp.PlayQueued(info.Id, info.QueueMode, info.PlayMode);
if (info.ApplyCustomSettings) info.Settings.Apply(anim);
if (info.SettingsMask != 0) info.Settings.Apply(anim, info.SettingsMask);
return anim;
}
return null;
Expand All @@ -140,7 +140,7 @@ private object TryPlay(object controller, PlayAnimInfo info)
anim.CrossFade(info.CrossFadeDur, info.QueueMode, info.PlayMode);
else
anim.Play(info.QueueMode, info.PlayMode);
if (info.ApplyCustomSettings) info.Settings.Apply(anim);
if (info.SettingsMask != 0) info.Settings.Apply(anim, info.SettingsMask);
return anim;
}
return null;
Expand Down
24 changes: 22 additions & 2 deletions SPAnim/Anim/Legacy/SPLegacyAnimController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,27 @@ internal AnimationState PlayQueuedInternal(string clipId, QueueMode queueMode, P
if (_animation == null) throw new AnimationInvalidAccessException();
if (!_initialized) this.Init();

var anim = _animation.PlayQueued(clipId, queueMode, playMode);
//HACK - StopSameLayer respects the base state's layer rather than the layer as configured...
AnimationState result;
if (playMode == PlayMode.StopSameLayer)
{
var st = _animation[clipId];
if (!object.ReferenceEquals(st, null) && st.layer != layer)
{
int cache = st.layer;
st.layer = layer;
result = _animation.PlayQueued(clipId, queueMode, playMode);
st.layer = cache;
}
else
{
result = _animation.PlayQueued(clipId, queueMode, playMode);
}
}
else
{
result = _animation.PlayQueued(clipId, queueMode, playMode);
}

if (_scriptableAnims != null && _scriptableAnims.Count > 0)
{
Expand All @@ -441,7 +461,7 @@ internal AnimationState PlayQueuedInternal(string clipId, QueueMode queueMode, P
}
}

return anim;
return result;
}

internal AnimationState CrossFadeQueuedInternal(string clipId, float fadeLength, QueueMode queueMode, PlayMode playMode, int layer)
Expand Down
23 changes: 0 additions & 23 deletions SPAnim/Properties/AssemblyInfo.cs

This file was deleted.

74 changes: 12 additions & 62 deletions SPAnim/SPAnim.csproj
Original file line number Diff line number Diff line change
@@ -1,77 +1,27 @@
<?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')" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{2E21B07E-0968-4F86-97FD-692397DBFC20}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<TargetFrameworks>net35;net471</TargetFrameworks>
<RootNamespace>com.spacepuppy</RootNamespace>
<AssemblyName>SPAnim</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Xml" />
<Compile Include="..\SpacepuppyUnityFramework\Properties\AssemblyVersionInfo.cs" Link="Properties\AssemblyVersionInfo.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="UnityEngine">
<HintPath>..\Resources\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>..\Resources\UnityEngine.UI.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\SpacepuppyUnityFramework\Properties\AssemblyVersionInfo.cs">
<Link>Properties\AssemblyVersionInfo.cs</Link>
</Compile>
<Compile Include="Anim\AnimEventScheduler.cs" />
<Compile Include="Anim\AnimUtil.cs" />
<Compile Include="Anim\AnimSettings.cs" />
<Compile Include="Anim\Events\i_PlayAnimation.cs" />
<Compile Include="Anim\Events\i_PlayRandomAnimation.cs" />
<Compile Include="Anim\Events\i_StopAnimation.cs" />
<Compile Include="Anim\Events\PlayAnimInfo.cs" />
<Compile Include="Anim\IScriptableAnimationClip.cs" />
<Compile Include="Anim\ISPAnim.cs" />
<Compile Include="Anim\ISPAnimationSource.cs" />
<Compile Include="Anim\ISPAnimator.cs" />
<Compile Include="Anim\Legacy\AnimationEventCallback.cs" />
<Compile Include="Anim\Legacy\Exceptions.cs" />
<Compile Include="Anim\Legacy\IAnimControllerMask.cs" />
<Compile Include="Anim\Legacy\ISPAnimationMask.cs" />
<Compile Include="Anim\Legacy\SPAnim.cs" />
<Compile Include="Anim\Legacy\SPLegacyAnimator.cs" />
<Compile Include="Anim\Legacy\SPLegacyAnimController.cs" />
<Compile Include="Anim\Legacy\SPAnimClip.cs" />
<Compile Include="Anim\Legacy\SPAnimClipCollection.cs" />
<Compile Include="Anim\PropertyAttributes.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<ProjectReference Include="..\SpacepuppyUnityFramework\SpacepuppyUnityFramework.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SpacepuppyUnityFramework\SpacepuppyUnityFramework.csproj">
<Project>{3b57db6b-ba67-46ad-b929-fdd8e6ae511e}</Project>
<Name>SpacepuppyUnityFramework</Name>
</ProjectReference>
<Folder Include="Properties\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Loading

0 comments on commit c55692c

Please sign in to comment.