private void Awake()
        {
            texture = new Texture2D(width, height, TextureFormat.ARGB32, false, true)
            {
                filterMode = FilterMode.Point
            };
            texture.Clear(Color.clear);
            texture.Apply();
            image.texture = texture;

            header = InstantiateControl <TextControl>(leftPanel);
            header.transform.SetAsFirstSibling();

            var rulesetName = RulesetName.Life;

            SelectRuleset(rulesetName);

            for (int i = 0; i < rulesetNames.Length; i++)
            {
                RulesetName currentName = rulesetNames[i];
                var         toggle      = InstantiateControl <ToggleControl>(toggleGroup.transform);
                toggle.Initialize(
                    header: currentName.ToString(),
                    value: currentName == rulesetName,
                    onValueChanged: isOn =>
                {
                    if (isOn)
                    {
                        SelectRuleset(currentName);
                        Generate();
                    }
                },
                    toggleGroup: toggleGroup);
            }

            InstantiateControl <SliderControl>(leftPanel).Initialize("Start noise", 0, 1, startNoise, value =>
            {
                startNoise = value;
                Generate();
            });

            InstantiateControl <ToggleControl>(leftPanel).Initialize("Alive borders", aliveBorders, value =>
            {
                aliveBorders = value;
                Generate();
            });

            InstantiateControl <ButtonControl>(leftPanel).Initialize("Generate", Generate);

            Generate();
        }
        private void InstantiateToggle(RulesetName rulesetName, RulesetName selectedRulesetName)
        {
            var toggle = InstantiateControl <ToggleControl>(toggleGroup.transform);

            toggle.Initialize(
                header: rulesetName.ToString(),
                value: rulesetName == selectedRulesetName,
                onValueChanged: isOn =>
            {
                if (isOn)
                {
                    SelectRuleset(rulesetName);
                    Generate();
                }
            },
                toggleGroup: toggleGroup);
        }
Example #3
0
        public RulesetList(IReadOnlyServiceLocator serviceLocator)
        {
            //RulesetNameとの相互依存関係を明確化する
            IGameInstanceFactory[] factories = new IGameInstanceFactory[]
            {
                new DefaultGameInstanceFactory <Domain.Entities.StandardizedRule.StandardizedRuleGame>(firstPlayerEncampment => new Domain.Entities.StandardizedRule.StandardizedRuleGame(firstPlayerEncampment, serviceLocator)),
                new DefaultGameInstanceFactory <Domain.Entities.StandardizedRule.StandardizedRuleGame>(firstPlayerEncampment => new Domain.Entities.StandardizedRule.StandardizedRuleGame(firstPlayerEncampment, serviceLocator)),
                new DefaultGameInstanceFactory <Domain.Entities.NoRule.NoRuleGame>(firstPlayerEncampment => new Domain.Entities.NoRule.NoRuleGame(firstPlayerEncampment)),
            };

            int i = 0;

            rulesets = factories.Select(factory =>
            {
                RulesetName rulesetName = (RulesetName)i;
                return(new Ruleset(i++, rulesetName.ToString(), "", factory));
            }).ToDictionary(ruleset => ruleset.id);
        }
        private void SelectRuleset(RulesetName rulesetName)
        {
            config.ruleset = nameToRuleset[rulesetName];

            header.Initialize("Rulestring: " + config.ruleset);
        }
Example #5
0
        private void SelectRuleset(RulesetName rulesetName)
        {
            ruleset = nameToRuleset[rulesetName];

            header.Initialize("Rulestring: " + ruleset);
        }
Example #6
0
 public Ruleset GetRuleset(RulesetName rulesetName) => GetRuleset((int)rulesetName);