void ApplyValue(TransitionItem item, TransitionValue value)
{
item.target._gearLocked = true;
switch (item.type)
{
case TransitionActionType.XY:
if (item.target == _owner)
{
float f1, f2;
if (!value.b1)
f1 = item.target.x;
else
f1 = value.f1 + _ownerBaseX;
if (!value.b2)
f2 = item.target.y;
else
f2 = value.f2 + _ownerBaseY;
item.target.SetXY(f1, f2);
}
else
{
if (!value.b1)
value.f1 = item.target.x;
if (!value.b2)
value.f2 = item.target.y;
item.target.SetXY(value.f1, value.f2);
}
if (invalidateBatchingEveryFrame)
_owner.InvalidateBatchingState();
break;
case TransitionActionType.Size:
if (!value.b1)
value.f1 = item.target.width;
if (!value.b2)
value.f2 = item.target.height;
item.target.SetSize(value.f1, value.f2);
if (invalidateBatchingEveryFrame)
_owner.InvalidateBatchingState();
break;
case TransitionActionType.Pivot:
item.target.SetPivot(value.f1, value.f2);
if (invalidateBatchingEveryFrame)
_owner.InvalidateBatchingState();
break;
case TransitionActionType.Alpha:
item.target.alpha = value.f1;
break;
case TransitionActionType.Rotation:
item.target.rotation = value.f1;
if (invalidateBatchingEveryFrame)
_owner.InvalidateBatchingState();
break;
case TransitionActionType.Scale:
item.target.SetScale(value.f1, value.f2);
if (invalidateBatchingEveryFrame)
_owner.InvalidateBatchingState();
break;
case TransitionActionType.Skew:
item.target.skew = new Vector2(value.f1, value.f2);
if (invalidateBatchingEveryFrame)
_owner.InvalidateBatchingState();
break;
case TransitionActionType.Color:
((IColorGear)item.target).color = value.c;
break;
case TransitionActionType.Animation:
if (!value.b1)
value.i = ((IAnimationGear)item.target).frame;
((IAnimationGear)item.target).frame = value.i;
((IAnimationGear)item.target).playing = value.b;
break;
case TransitionActionType.Visible:
item.target.visible = value.b;
break;
case TransitionActionType.Transition:
Transition trans = ((GComponent)item.target).GetTransition(value.s);
if (trans != null)
{
if (value.i == 0)
trans.Stop(false, true);
else if (trans.playing)
trans._totalTimes = value.i == -1 ? int.MaxValue : value.i;
else
{
item.completed = false;
_totalTasks++;
if (_reversed)
trans.PlayReverse(value.i, 0, () => { __playTransComplete(item); });
else
trans.Play(value.i, 0, () => { __playTransComplete(item); });
if (_timeScale != 1)
trans.timeScale = _timeScale;
}
}
break;
case TransitionActionType.Sound:
AudioClip sound = UIPackage.GetItemAssetByURL(value.s) as AudioClip;
if (sound != null)
Stage.inst.PlayOneShotSound(sound, value.f1);
break;
case TransitionActionType.Shake:
item.startValue.f1 = 0; //offsetX
item.startValue.f2 = 0; //offsetY
item.startValue.f3 = item.value.f2;//shakePeriod
Timers.inst.AddUpdate(item.__Shake, this);
_totalTasks++;
item.completed = false;
break;
case TransitionActionType.ColorFilter:
ColorFilter cf = item.target.filter as ColorFilter;
if (cf == null)
{
cf = new ColorFilter();
item.target.filter = cf;
item.filterCreated = true;
}
else
{
cf.Reset();
}
cf.AdjustBrightness(value.f1);
cf.AdjustContrast(value.f2);
cf.AdjustSaturation(value.f3);
cf.AdjustHue(value.f4);
break;
}
item.target._gearLocked = false;
}