/// <summary> /// Adds dependency to dictionary /// </summary> private void AddDependency(Direction mainDir, Vector2 forward, Vector2 left, Vector2 right) { var dep = new DirectionDependency(mainDir); dep.AddDependency(Direction.FORWARD, forward); dep.AddDependency(Direction.LEFT, left); dep.AddDependency(Direction.RIGHT, right); dirs.Add(mainDir, dep); }
/// <summary> /// Moves only head. /// </summary> private Vector2 MoveHead(Direction newRelativeToSnakeDir, Transform headTransform) { Vector2 headPos = headTransform.position; DirectionDependency dep = _dirDependencies.dirs[_curWorldMoveDir]; Vector2 moveDir = dep.dirs[newRelativeToSnakeDir]; headPos += moveDir; headTransform.position = headPos; return(moveDir); }