Example #1
0
        protected override JobHandle OnUpdate(JobHandle inputDependencies)
        {
            PhaseConfig phaseConfig = default(PhaseConfig);

            TryGetFirstPhaseConfig(ref phaseConfig);

            var job = new PhaseRotationTween2DJob()
            {
                phaseConfig = phaseConfig,
                zAxis       = new float3(0f, 0f, 1f)
            };

            return(job.Schedule(this, inputDependencies));
        }
Example #2
0
        private bool TryGetFirstPhaseConfig(ref PhaseConfig phaseConfig)
        {
            NativeArray <PhaseConfig> phaseConfigs = m_PhaseConfigGroup.ToComponentDataArray <PhaseConfig>(
                Allocator.TempJob);

            if (phaseConfigs.Length < 1)
            {
                phaseConfigs.Dispose();
                return(false);
            }

            phaseConfig = phaseConfigs[0];

            phaseConfigs.Dispose();
            return(true);
        }
Example #3
0
        public int ValidateEnergy(float sunEnergy, float moonEnergy, SpriteRenderer sprito = null)
        {
            if (sunEnergy < 0)
            {
                sunEnergy = 0;
            }
            if (moonEnergy < 0)
            {
                moonEnergy = 0;
            }
            PhaseConfig actualPhase = phases.Where(x => (sunEnergy >= x.sunEnergyReq && moonEnergy >= x.moonEnergyReq))
                                      .OrderBy(x => Mathf.Abs((x.sunEnergyReq - sunEnergy) + (x.moonEnergyReq - moonEnergy))).First();

            if (sprito)
            {
                sprito.sprite = actualPhase.visualChange;
            }

            return(phases.IndexOf(actualPhase));
        }
Example #4
0
        protected override void OnUpdate()
        {
            PhaseConfig phaseConfig = default(PhaseConfig);

            if (!TryGetFirstPhaseConfig(ref phaseConfig))
            {
                return;
            }

            if (!phaseConfig.changed)
            {
                return;
            }

            var sharedJob = new PhaseEnablerSharedJob()
            {
                phaseConfig = phaseConfig
            };

            sharedJob.ExecuteEach(EntityManager, m_PhaseEnablerGroup);
        }
Example #5
0
        public void Load(TextReader stream)
        {
            if (stream == default)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            TerrainFile?terrainConfig = _json.Deserialize <TerrainFile>(stream.ReadToEnd());

            if (terrainConfig == null)
            {
                throw new InvalidOperationException("Unable to parse terrain file.");
            }

            foreach (TerrainConfig entry in terrainConfig.Terrain)
            {
                PhaseConfig phase   = terrainConfig.Phase.Where(p => string.Equals(p.Name, entry.PhaseName, StringComparison.OrdinalIgnoreCase)).First();
                var         terrain = new Terrain(entry.Id, entry.IdName, phase.Phases.Select(p => {
                    return(transition: p.Transition, attribute: p as ITerrainAttributes);
                }));

                _terrain[terrain.Id] = terrain;
            }
        }