public void SwapSubstances(Field other) { var newSubstanceId = other.SubstanceId; other.SubstanceId = this.SubstanceId; SubstanceId = newSubstanceId; }
protected override void ConfigureFieldGetters() { FieldsGetters.Add("id", () => ID == Constants.DefaultIndex ? null : ID.ToString()); FieldsGetters.Add("star_id", () => StarId.ToString()); FieldsGetters.Add("substance_id", () => SubstanceId.ToString()); FieldsGetters.Add("percentage", () => Percentage.ToString().Replace(",", ".")); }
void Update() { if (_substanceId != ViewModel.Board.GetField(_row, _column).SubstanceId) { _substanceId = ViewModel.Board.GetField(_row, _column).SubstanceId; _renderer.sprite = ViewModel.GetSprite(_substanceId); } }
public int IndexOfSubstance(SubstanceId substanceId) { for (int i = 0; i < _listImplementation.Count; i++) { if (_listImplementation[i].SubstanceId == substanceId) { return(i); } } return(-1); }
private int FindSubstanceIndex(SubstanceId id) { for (int i = 0; i < this.Count; i++) { if (this[i].SubstanceId == id) { return(i); } } return(-1); }
private SubstanceId[,] GetInitialSubstanceDistribution() { var distribution = new SubstanceId[Board.HEIGHT, Board.WIDTH]; for (var row = 0; row < Board.HEIGHT; row++) { for (var column = 0; column < Board.WIDTH; column++) { distribution[row, column] = GameObject.Find(String.Format(BoardView.FIELD_NAME_PATTERN, row, column)).GetComponent <FieldView>().InitialSubstanceId; } } return(distribution); }
private bool FindReagentIndexes(Reaction reaction, out int[] reagentIndexes) { reagentIndexes = new int[reaction.Reagents.Length]; bool ok = true; for (int i = 0; i < reagentIndexes.Length && ok; i++) { SubstanceId reagentId = reaction.Reagents[i].SubstanceId; int index = FindSubstanceIndex(reagentId); if (index != -1) { reagentIndexes[i] = index; } else { ok = false; } } return(ok); }
private void DoReaction(Reaction reaction, int[] reagentsIndexes, float factor) { for (int i = 0; i < reagentsIndexes.Length; i++) { int reagentIndex = reagentsIndexes[i]; if (reagentIndex < 0 || reagentIndex >= this.Count || this.Count == 0) { return; } Substance substanceInfo = this[reagentIndex]; float reactionVolume = factor * reaction.Reagents[i].Mole; substanceInfo.Volume -= reactionVolume; if (substanceInfo.Volume > 0) { this[reagentIndex] = substanceInfo; } else { this.RemoveAt(reagentIndex); } } SubstanceMixture additions = new SubstanceMixture(0, this.Temperature + reaction.ThermalFactor * factor); for (int i = 0; i < reaction.Results.Length; i++) { //SubstanceId id = ChemistryController.Current.GetSubstance(reaction.Results[i].SubstanceName).Id; SubstanceId id = reaction.Results[i].SubstanceId; if (id != SubstanceId.IncorrectSubstance) { additions.Add(new Substance(id, factor * reaction.Results[i].Mole)); } } this.Concatinate(additions); }
public Substance(SubstanceId id, float volume) { _substanceId = id; _volume = volume; }
public void ReadFields(XmlElement parentElement) { SubstanceId = SerializationUtils.ReadEnum(nameof(SubstanceId), parentElement, SubstanceId.IncorrectSubstance); Mole = SerializationUtils.ReadInt(nameof(Mole), parentElement, Mole); }
public Reagent(SubstanceId id, int mole) { SubstanceId = id; Mole = mole; }
public static Sprite GetSprite(SubstanceId id) { return(_spritesDictionary[id]); }
void Start() { _renderer = GetComponent <SpriteRenderer>(); _substanceId = ViewModel.Board.GetField(_row, _column).SubstanceId; _renderer.sprite = ViewModel.GetSprite(_substanceId); }
public Field(int row, int column, SubstanceId initialSubstanceId) { Row = row; Column = column; SubstanceId = initialSubstanceId; }