public MoveInfo(UnityEngine.CollisionFlags CollisionFlags, UnityEngine.CollisionFlags WorkingCollisionFlags, float WantedHeight, Vector3 BottomMovement, Vector3 TopMovement, CCTotem.PositionPlacement PositionPlacement) { this.CollisionFlags = CollisionFlags; this.WorkingCollisionFlags = WorkingCollisionFlags; this.WantedHeight = WantedHeight; this.BottomMovement = BottomMovement; this.TopMovement = TopMovement; this.PositionPlacement = PositionPlacement; }
public void ApplyCrouchOffset(ref CCTotem.PositionPlacement placement) { float single = placement.bottom.y + base.initialEyesOffsetY; float single1 = placement.originalTop.y - single; float single2 = placement.top.y - single1; float single3 = single2 - single; this.crouchUnits = (!Mathf.Approximately(single3, 0f) ? single3 : 0f); base.idMain.InvalidateEyesOffset(); }
public void ApplyCrouchOffset(ref CCTotem.PositionPlacement placement) { float num = placement.bottom.y + base.initialEyesOffsetY; float num2 = placement.originalTop.y - num; float num3 = placement.top.y - num2; float a = num3 - num; this.crouchUnits = !Mathf.Approximately(a, 0f) ? a : 0f; base.idMain.InvalidateEyesOffset(); }
public void LocalPlayerUpdateCrouchState(CCMotor ccmotor, ref bool crouchFlag, ref bool crouchBlockFlag, ref Crouchable.Smoothing smoothing) { Crouchable.CrouchState crouchState = new Crouchable.CrouchState(); crouchState.CrouchBlocked = ccmotor.isCrouchBlocked; CCTotem.PositionPlacement?lastPositionPlacement = ccmotor.LastPositionPlacement; CCTotem.PositionPlacement positionPlacement = (!lastPositionPlacement.HasValue ? new CCTotem.PositionPlacement(base.origin, base.origin, base.origin, ccmotor.ccTotemPole.MaximumHeight) : lastPositionPlacement.Value); crouchState.BottomY = positionPlacement.bottom.y; crouchState.TopY = positionPlacement.top.y; crouchState.InitialStandingHeight = positionPlacement.originalHeight; this.LocalPlayerUpdateCrouchState(ref crouchState, ref crouchFlag, ref crouchBlockFlag, ref smoothing); }
private void BindPositions(CCTotem.PositionPlacement PositionPlacement) { if (this.OnBindPosition != null) { try { this.OnBindPosition(ref PositionPlacement, this.Tag); } catch (Exception exception) { Debug.LogException(exception, this); } } }
public CCTotem.MoveInfo Move(Vector3 motion, float height) { CCTotem.Expansion expansion = this.Contraction.ExpansionForValue(height); height = expansion.Value; CollisionFlags collisionFlagsMask = this.TotemicFigureEnds.Bottom.MoveSweep(motion) & this.TotemicFigureEnds.Bottom.CollisionFlagsMask; this.grounded = this.TotemicFigureEnds.Bottom.CCDesc.isGrounded; int num = 0; for (int i = this.Configuration.numRequiredTotemicFigures - 1; i >= 1; i--) { Vector3 sweepMovement = this.TotemicFigures[num].SweepMovement; collisionFlagsMask = collisionFlagsMask | this.TotemicFigures[i].MoveSweep(sweepMovement) & this.TotemicFigures[i].CollisionFlagsMask; num = i; } if (this.TotemicFigures[num].SweepMovement != this.TotemicFigures[0].SweepMovement) { Vector3 vector3 = this.TotemicFigures[num].SweepMovement; for (int j = 0; j < this.Configuration.numRequiredTotemicFigures; j++) { Vector3 sweepMovement1 = vector3 - this.TotemicFigures[j].SweepMovement; collisionFlagsMask = collisionFlagsMask | this.TotemicFigures[j].MoveSweep(sweepMovement1) & this.TotemicFigures[j].CollisionFlagsMask; } } this.Point.Bottom = this.TotemicFigures[0].BottomOrigin; CCTotem.Ends <CCTotem.TotemicFigure> totemicFigureEnds = this.TotemicFigureEnds; this.Point.Top = totemicFigureEnds.Top.TopOrigin; CCTotem.Contraction contraction = this.Contraction; this.Expansion = contraction.ExpansionForValue(this.Point.Top.y - this.Point.Bottom.y); if (this.Expansion.Value != expansion.Value) { Vector3 bottom = this.Point.Bottom + new Vector3(0f, expansion.Value, 0f); CollisionFlags collisionFlag = this.TotemicFigureEnds.Top.MoveWorldTopTo(bottom); CCTotem.Ends <CCTotem.TotemicFigure> end = this.TotemicFigureEnds; collisionFlagsMask = collisionFlagsMask | collisionFlag & end.Top.CollisionFlagsMask; Vector3 topOrigin = this.TotemicFigureEnds.Top.TopOrigin; CCTotem.Contraction contraction1 = this.Contraction; expansion = contraction1.ExpansionForValue(topOrigin.y - this.Point.Bottom.y); for (int k = this.Configuration.numRequiredTotemicFigures - 2; k > 0; k--) { CCTotem.TotemicFigure totemicFigures = this.TotemicFigures[k]; Vector3 value = this.Point.Bottom; float single = value.y; CCTotem.Expansion expansion1 = totemicFigures.TotemContractionBottom.ExpansionForFraction(expansion.FractionExpanded); value.y = single + expansion1.Value; collisionFlagsMask = collisionFlagsMask | totemicFigures.MoveWorldBottomTo(value) & totemicFigures.CollisionFlagsMask; } CCTotem.Ends <CCTotem.TotemicFigure> totemicFigureEnds1 = this.TotemicFigureEnds; this.Point.Top = totemicFigureEnds1.Top.TopOrigin; this.Expansion = expansion; } float cCDesc = this.CCDesc.effectiveSkinnedHeight; Vector3 cCDesc1 = this.CCDesc.worldSkinnedBottom; Vector3 vector31 = this.CCDesc.worldSkinnedTop; Vector3 bottomOrigin = this.TotemicFigures[0].BottomOrigin - cCDesc1; this.CCDesc.ModifyHeight(this.Expansion.Value, false); CollisionFlags collisionFlag1 = this.CCDesc.Move(bottomOrigin); Vector3 cCDesc2 = this.CCDesc.worldSkinnedBottom; Vector3 vector32 = cCDesc2 - cCDesc1; if (bottomOrigin != vector32) { Vector3 vector33 = vector32 - bottomOrigin; for (int l = 0; l < this.Configuration.numRequiredTotemicFigures; l++) { collisionFlagsMask = collisionFlagsMask | this.TotemicFigures[l].MoveSweep(vector33) & this.TotemicFigures[l].CollisionFlagsMask; } this.Point.Bottom = this.TotemicFigures[0].BottomOrigin; CCTotem.Ends <CCTotem.TotemicFigure> end1 = this.TotemicFigureEnds; this.Point.Top = end1.Top.TopOrigin; CCTotem.Contraction contraction2 = this.Contraction; this.Expansion = contraction2.ExpansionForValue(this.Point.Top.y - this.Point.Bottom.y); this.CCDesc.ModifyHeight(this.Expansion.Value, false); cCDesc2 = this.CCDesc.worldSkinnedBottom; vector32 = cCDesc2 - cCDesc1; } Vector3 cCDesc3 = this.CCDesc.worldSkinnedTop; Vector3 vector34 = cCDesc3 - vector31; Vector3 cCDesc4 = this.CCDesc.transform.position; CCTotem.Configuration configuration = this.Configuration; CCTotem.PositionPlacement positionPlacement = new CCTotem.PositionPlacement(cCDesc2, cCDesc3, cCDesc4, configuration.poleExpandedHeight); return(new CCTotem.MoveInfo(collisionFlag1, collisionFlagsMask, height, vector32, vector34, positionPlacement)); }
private void BindPositions(ref CCTotem.PositionPlacement placement, object Tag) { base.transform.position = placement.bottom; this.fpsCam.transform.position = placement.top - new Vector3(0f, 0.25f, 0f); }