Exemplo n.º 1
0
        protected override MutableObject Mutate(MutableObject mutable)
        {
            if (DataShare == null)
            {
                DataShare = new NodeDataShare <Dictionary <int, Vector3> >();
            }

            var groupId = GroupId.GetFirstValue(mutable);

            if (!DataShare.ContainsKey(groupId))
            {
                DataShare[groupId] = new Dictionary <int, Vector3>();
            }
            var vectors = DataShare[groupId];

            //var vectors = new Dictionary<int, Vector3>();
            foreach (var subEntry in EntryPosition.GetEntries(mutable))
            {
                var index    = EntryIndex.GetValue(subEntry);
                var position = EntryPosition.GetValue(subEntry);

                vectors[index] = position;
            }
            return(mutable);
        }
Exemplo n.º 2
0
 // Start is called before the first frame update
 void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }
Exemplo n.º 3
0
 public override NodeDelete PrepareForDestruction(bool recurse)
 {
     if (DataShare.Any())
     {
         foreach (var kvp in DataShare)
         {
             kvp.Value.Close();
         }
         DataShare.Clear();
     }
     return(base.PrepareForDestruction(recurse));
 }
Exemplo n.º 4
0
        public override IEnumerator ReceivePayload(VisualPayload payload)
        {
            var minRound = MinRoundNumber.GetFirstValue(payload.Data);
            var maxRound = MaxRoundNumber.GetFirstValue(payload.Data);

            var roundsList = new List <MutableObject>();

            for (int roundNum = minRound; roundNum <= maxRound; roundNum++)
            {
                var getScoresCommand = new GetScoresForRoundCommand(roundNum);

                var iterator = CommandProcessor.Execute(getScoresCommand);
                while (iterator.MoveNext())
                {
                    yield return(null);
                }

                var teamsList = ParseRoundData(payload.Data, getScoresCommand.Scores);

                var newRound = new MutableObject();
                newRound["Teams"] = teamsList;

                newRound["Round Number"] = roundNum;

                roundsList.Add(newRound);
            }

            RoundsTarget.SetValue(roundsList, payload.Data);

            var groupId = GroupId.GetFirstValue(payload.Data);

            var index = (DataShare.ContainsKey(groupId)
                ? DataShare[groupId]
                : 0);

            if (groupId != "")
            {
                DataShare[groupId] = index + 1;
            }

            DataIndexTarget.SetValue(index, payload.Data);

            var transmitIterator = Router.TransmitAll(payload);

            while (transmitIterator.MoveNext())
            {
                yield return(null);
            }
        }
Exemplo n.º 5
0
        private VisualPayload ParseData()
        {
            //var randomGen = new Random(1337);

            var mutablesList = new List <MutableObject>();

            foreach (var team in ScoreFromJsonFilter.LoadedTeams)
            {
                //var teamColor = ColorUtility.HsvtoRgb((float)randomGen.NextDouble(), .8f, 1f);

                var teamColor = TeamColorPalette.ColorFromIndex(team.TeamID);

                foreach (var entry in team.SubmissionScores)
                {
                    var newMutable = TurnSubmissionIntoMutable(entry, team, teamColor);

                    mutablesList.Add(newMutable);
                }
            }

            ScoreTarget.SetValue(mutablesList, Payload.Data);

            var groupId = GroupId.GetFirstValue(Payload.Data);

            var index = (DataShare.ContainsKey(groupId)
                ? DataShare[groupId]
                : 0);

            if (groupId != "")
            {
                DataShare[groupId] = index + 1;
            }

            IndexField.SetValue(index, Payload.Data);

            return(Payload);
        }
Exemplo n.º 6
0
        public override void Unload()
        {
            DataShare.Clear();

            base.Unload();
        }
        public override IEnumerator ReceivePayload(VisualPayload payload)
        {
            var minRound = MinRoundNumber.GetFirstValue(payload.Data);
            var maxRound = MaxRoundNumber.GetFirstValue(payload.Data);

            var scoresList = new List <MutableObject>();

            for (int roundNum = minRound; roundNum <= maxRound; roundNum++)
            {
                var getScoresCommand = new GetScoresForRoundCommand(roundNum);

                var iterator = CommandProcessor.Execute(getScoresCommand);
                while (iterator.MoveNext())
                {
                    yield return(null);
                }

                var roundList = ParseRoundData(payload.Data, getScoresCommand.Scores, roundNum);

                scoresList.AddRange(roundList);
            }

            // if we've just sampled a missing round, fill in with round zero data
            if (scoresList.Count == 0)
            {
                var getScoresCommand = new GetScoresForRoundCommand(0);

                var iterator = CommandProcessor.Execute(getScoresCommand);
                while (iterator.MoveNext())
                {
                    yield return(null);
                }

                // zero out round scores
                foreach (var score in getScoresCommand.Scores)
                {
                    foreach (var subScore in score.SubmissionScores)
                    {
                        subScore.Evaluation.Total = 0;
                        subScore.Availability.Functionality.Total = 0;
                        subScore.Availability.Performance.Total   = 0;
                        subScore.Availability.Total = 0;
                        subScore.Security.Consensus = 0;
                        subScore.Security.Reference = 0;
                        subScore.Security.Total     = 0;
                        subScore.Total = 0;
                    }
                }

                var roundList = ParseRoundData(payload.Data, getScoresCommand.Scores, 0);

                scoresList.AddRange(roundList);
            }

            ScoresTarget.SetValue(scoresList, payload.Data);

            var groupId = GroupId.GetFirstValue(payload.Data);

            var index = (DataShare.ContainsKey(groupId)
                ? DataShare[groupId]
                : 0);

            if (groupId != "")
            {
                DataShare[groupId] = index + 1;
            }

            DataIndexTarget.SetValue(index, payload.Data);

            var transmitIterator = Router.TransmitAll(payload);

            while (transmitIterator.MoveNext())
            {
                yield return(null);
            }
        }