internal static CCTotem.Ends <CCTotem.TotemicFigure> CreateAllTotemicFigures(CCTotem.TotemPole TotemPole) { if (!object.ReferenceEquals(TotemPole.TotemicFigures[0], null)) { throw new ArgumentException("The totem pole already has totemic figures", "TotemPole"); } CCTotem.TotemicFigure totemicFigure = new CCTotem.TotemicFigure(TotemPole); CCTotem.TotemicFigure totemicFigures = TotemPole.TotemicFigures[TotemPole.Configuration.numRequiredTotemicFigures - 1]; return(new CCTotem.Ends <CCTotem.TotemicFigure>(totemicFigure, totemicFigures)); }
private TotemicFigure(CCTotem.TotemPole TotemPole, int BottomUpIndex) { this.TotemPole = TotemPole; this.BottomUpIndex = BottomUpIndex; this.TopDownIndex = this.TotemPole.Configuration.numRequiredTotemicFigures - (this.BottomUpIndex + 1); this.CollisionFlagsMask = CollisionFlags.Sides; if (this.BottomUpIndex == 0) { CCTotem.TotemicFigure collisionFlagsMask = this; collisionFlagsMask.CollisionFlagsMask = collisionFlagsMask.CollisionFlagsMask | CollisionFlags.Below; } if (this.TopDownIndex == 0) { CCTotem.TotemicFigure totemicFigure = this; totemicFigure.CollisionFlagsMask = totemicFigure.CollisionFlagsMask | CollisionFlags.Above; } this.TotemPole.TotemicFigures[this.BottomUpIndex] = this; }
private TotemicFigure(CCTotem.TotemPole TotemPole) : this(TotemPole, 0) { CCTotem.Direction direction = new CCTotem.Direction(this); this.TotemicRoute = new CCTotem.Route(CCTotem.Direction.None, direction, new CCTotem.Direction(new CCTotem.TotemicFigure(direction))); }