public bool Equals(KernelConfigModel other) { if (other == null) { return(false); } if (validWorldRanges.Count != other.validWorldRanges.Count) { return(false); } for (var i = 0; i < validWorldRanges.Count; i++) { if (!validWorldRanges[i].Equals(other.validWorldRanges[i])) { return(false); } } return(this.comms.Equals(other.comms) && this.profiles.Equals(other.profiles) && this.features.Equals(other.features) && this.gifSupported == other.gifSupported && this.tld == other.tld); }
public void ParseJsonCorrectly() { KernelConfigModel model = new KernelConfigModel(); string json = JsonUtility.ToJson(model); KernelConfig.i.Set(json); Assert.IsTrue(model.Equals(KernelConfig.i.Get())); }
public KernelConfigModel Clone() { // NOTE: We need to use deep clone KernelConfigModel clone = new KernelConfigModel(); clone.comms = comms.Clone(); clone.profiles = profiles.Clone(); clone.features = features.Clone(); return(clone); }
public bool Equals(KernelConfigModel other) { if (other == null) { return(false); } return(this.comms.Equals(other.comms) && this.profiles.Equals(other.profiles) && this.features.Equals(other.features) && this.gifSupported == other.gifSupported); }
public void TestFeatureControllerApplyConfig() { //Arrange FeatureController featureController = new FeatureController(); KernelConfigModel currentConfig = new KernelConfigModel(); //Act featureController.ApplyFeaturesConfig(currentConfig); //Assert Assert.AreSame(featureController.GetCurrentConfig(), currentConfig); }
private void Initialize(KernelConfigModel newValue) { if (initializationPromises?.Count > 0) { for (int i = 0; i < initializationPromises.Count; i++) { initializationPromises[i].Resolve(newValue); } initializationPromises.Clear(); initializationPromises = null; } initialized = true; }
public KernelConfigModel Clone() { // NOTE: We need to use deep clone KernelConfigModel clone = new KernelConfigModel(); clone.comms = comms.Clone(); clone.profiles = profiles.Clone(); clone.features = features.Clone(); clone.gifSupported = gifSupported; clone.tld = tld; clone.validWorldRanges = new List <WorldRange>(validWorldRanges); return(clone); }
public void ParseJsonCorrectly() { KernelConfigModel model = new KernelConfigModel(); var worldRange = new WorldRange(-150, -150, 150, 150); model.validWorldRanges.Add(worldRange); string json = JsonUtility.ToJson(model); KernelConfig.i.Set(json); Assert.IsTrue(model.Equals(KernelConfig.i.Get())); }
/// <summary> /// Set a new Kernel Configuration /// </summary> /// <param name="newValue">New Configuration</param> public void Set(KernelConfigModel newValue) { if (newValue == null) { return; } if (!initialized) { Initialize(newValue); } if (newValue.Equals(value)) { return; } var previous = value; value = newValue; OnChange?.Invoke(value, previous); }
public void OnKernelConfigChanged(KernelConfigModel current, KernelConfigModel previous) { ApplyFeaturesConfig(current); }
void OnKernelConfigChanged(KernelConfigModel current, KernelConfigModel previous) { EnableVoiceChat(current.comms.voiceChatEnabled); }
private void OnKernelConfigChanged(KernelConfigModel current, KernelConfigModel previous) { view?.voiceChatButton.SetActive(current.comms.voiceChatEnabled); }
void OnKernelConfigChanged(KernelConfigModel current, KernelConfigModel previous) { EnableFeature(current.features.enableBuilderInWorld); }
private void OnKernelConfigChanged(KernelConfigModel current, KernelConfigModel previous) { validWorldRanges = current.validWorldRanges; }
public void TriggerOnChangeCorrectly() { const float commRadiusTestValue = 1234; const float commRadiusTestValue2 = 5678; const bool voiceChatEnabledTestValue = false; const bool voiceChatEnabledTestValue2 = true; const bool builderInWorldEnabledTestValue = false; const bool builderInWorldEnabledTestValue2 = false; const string regexTestValue = "1234"; const string regexTestValue2 = "5678"; bool onChangeCalled = false; bool onChangePass = false; KernelConfig.i.Set(new KernelConfigModel()); KernelConfigModel model = new KernelConfigModel() { comms = new Comms() { commRadius = commRadiusTestValue, voiceChatEnabled = voiceChatEnabledTestValue }, profiles = new Profiles() { nameValidCharacterRegex = regexTestValue, nameValidRegex = regexTestValue }, features = new Features() { enableBuilderInWorld = builderInWorldEnabledTestValue }, }; KernelConfig.OnKernelConfigChanged onConfigChange = (current, prev) => { onChangeCalled = true; onChangePass = current.comms.commRadius == commRadiusTestValue && current.comms.voiceChatEnabled == voiceChatEnabledTestValue && current.profiles.nameValidCharacterRegex == regexTestValue && current.profiles.nameValidRegex == regexTestValue; }; KernelConfig.i.OnChange += onConfigChange; KernelConfig.i.Set(model); Assert.IsTrue(onChangePass); onChangeCalled = false; onChangePass = false; KernelConfigModel modelUpdateWithSameValues = model.Clone(); KernelConfig.i.Set(modelUpdateWithSameValues); // this shouldn't trigger onChange cause it has the same values Assert.IsFalse(onChangeCalled, "OnChange was called even if the new value is equal to the new one"); KernelConfig.i.OnChange -= onConfigChange; onConfigChange = (current, prev) => { onChangeCalled = true; onChangePass = current.comms.commRadius == commRadiusTestValue2 && prev.comms.commRadius == commRadiusTestValue && current.comms.voiceChatEnabled == voiceChatEnabledTestValue2 && prev.comms.voiceChatEnabled == voiceChatEnabledTestValue && current.profiles.nameValidCharacterRegex == regexTestValue2 && prev.profiles.nameValidRegex == regexTestValue && current.profiles.nameValidRegex == regexTestValue2 && prev.profiles.nameValidRegex == regexTestValue; }; KernelConfig.i.OnChange += onConfigChange; KernelConfig.i.Set(new KernelConfigModel() { comms = new Comms() { commRadius = commRadiusTestValue2, voiceChatEnabled = voiceChatEnabledTestValue2 }, profiles = new Profiles() { nameValidCharacterRegex = regexTestValue2, nameValidRegex = regexTestValue2 }, features = new Features() { enableBuilderInWorld = builderInWorldEnabledTestValue2 }, }); Assert.IsTrue(onChangePass); KernelConfig.i.OnChange -= onConfigChange; }
public void ApplyFeaturesConfig(KernelConfigModel config) { HandleFeature <BIWMainController>(config.features.enableBuilderInWorld); currentConfig = config; }
private void OnKernelConfigChanged(KernelConfigModel current, KernelConfigModel previous) { view?.voiceChatButton.SetActive(current.comms.voiceChatEnabled); view?.builderInWorldButton.SetActive(current.features.enableBuilderInWorld); }