protected override DNABit produceDNABit() { LinkedList <BioBrick> deviceBricks = new LinkedList <BioBrick>(); string[] bricks = new string[] { promoterName, rbsName, geneName, terminatorName }; foreach (string brickName in bricks) { BioBrick brick = AvailableBioBricksManager.get().getBioBrickFromAll(brickName); if (brick != null) { deviceBricks.AddLast(brick); } else { Logger.Log("PickableDeviceRef4Bricks::produceDNABit failed to add brick with name " + brickName + "!", Logger.Level.WARN); } } if (ExpressionModule.isBioBricksSequenceValid(deviceBricks)) { ExpressionModule deviceModule = new ExpressionModule(deviceName, deviceBricks); LinkedList <ExpressionModule> deviceModules = new LinkedList <ExpressionModule>(); deviceModules.AddLast(deviceModule); Device result = Device.buildDevice(deviceName, deviceModules); return(result); } else { Logger.Log("PickableDeviceRef4Bricks::produceDNABit failed to produce DNABit - BioBrick sequence is incorrect: list=" + Logger.ToString <BioBrick>(deviceBricks), Logger.Level.WARN); return(null); } }
public bool addAvailableBioBrick(BioBrick brick, bool updateView = true) { Logger.Log("AvailableBioBricksManager::addAvailableBioBrick(" + brick + ")", Logger.Level.INFO); string bbName = brick.getName(); if ((null != brick) && (null == LinkedListExtensions.Find <BioBrick>( _availableBioBricks , b => b.getName() == bbName , false , " AvailableBioBricksManager::addAvailableBioBrick(" + brick + ", " + updateView + ")" ) )) // TODO deeper safety check // && !LinkedListExtensions.Find<BioBrick>(_availableBioBricks, b => b..Equals(brick), true, " AvailableBioBricksManager::addAvailableBioBrick("+brick+", "+updateView+")") { Logger.Log("AvailableBioBricksManager::addAvailableBioBrick(" + brick + ") will _availableBioBricks.AddLast(" + brick + ")", Logger.Level.INFO); _availableBioBricks.AddLast(brick); if (updateView) { updateDisplayedBioBricks(); } return(true); } else { Logger.Log("AvailableBioBricksManager::addAvailableBioBrick(" + brick + ") fail", Logger.Level.INFO); return(false); } }
public static CraftZoneDisplayedBioBrick Create( Transform parentTransform, Vector3 localPosition, string spriteName, BioBrick biobrick ) { string nullSpriteName = (spriteName!=null)?"":"(null)"; Object prefab = Resources.Load(_prefabURICraftZone); Logger.Log("CraftZoneDisplayedBioBrick::Create(parentTransform="+parentTransform + ", localPosition="+localPosition + ", spriteName="+spriteName+nullSpriteName + ", biobrick="+biobrick , Logger.Level.DEBUG ); CraftZoneDisplayedBioBrick result = (CraftZoneDisplayedBioBrick)DisplayedBioBrick.Create( parentTransform ,localPosition ,spriteName ,biobrick ,prefab ); return result; }
public static GenericDisplayedBioBrick Create( Transform parentTransform ,Vector3 localPosition ,string spriteName ,BioBrick biobrick ,Object externalPrefab = null ) { string usedSpriteName = ((spriteName!=null)&&(spriteName!=""))?spriteName:getSpriteName(biobrick); string nullSpriteName = ((spriteName!=null)&&(spriteName!=""))?"":"(null)=>"+usedSpriteName; if(genericPrefab == null) genericPrefab = Resources.Load(prefabURI); Object prefabToUse = (externalPrefab==null)?genericPrefab:externalPrefab; Logger.Log("GenericDisplayedBioBrick::Create(parentTransform="+parentTransform + ", localPosition="+localPosition + ", spriteName="+spriteName+nullSpriteName + ", biobrick="+biobrick , Logger.Level.TRACE ); GenericDisplayedBioBrick result = (GenericDisplayedBioBrick)DisplayedElement.Create( parentTransform ,localPosition ,usedSpriteName ,prefabToUse ); Initialize(result, biobrick); return result; }
private AvailableDisplayedBioBrick getDisplayableAvailableBioBrick(BioBrick brick, int index) { Transform parentTransformParam = bioBricksPanel.transform; Vector3 localPositionParam = getNewPosition(index); string spriteNameParam = AvailableDisplayedBioBrick.getSpriteName(brick); BioBrick biobrickParam = brick; Logger.Log("AvailableBioBricksManager::getDisplayableAvailableBioBrick(brick=" + brick + ", index=" + index + ")," + ", parentTransformParam=" + parentTransformParam + ", localPositionParam=" + localPositionParam + " (width=" + _width + ")" + ", spriteNameParam=" + spriteNameParam + ", biobrickParam=" + biobrickParam , Logger.Level.TRACE ); AvailableDisplayedBioBrick resultBrick = AvailableDisplayedBioBrick.Create( parentTransformParam , localPositionParam , spriteNameParam , biobrickParam ); return(resultBrick); }
private static int getIndex(BioBrick brick) { int idx; switch (brick.getType()) { case BioBrick.Type.PROMOTER: idx = 0; break; case BioBrick.Type.RBS: idx = 1; break; case BioBrick.Type.GENE: idx = 2; break; case BioBrick.Type.TERMINATOR: idx = 3; break; default: idx = 0; Logger.Log("CraftZoneManager getIndex unknown type " + brick.getType(), Logger.Level.WARN); break; } return(idx); }
public static GenericDisplayedBioBrick Create( Transform parentTransform , Vector3 localPosition , string spriteName , BioBrick biobrick , Object externalPrefab = null ) { string usedSpriteName = ((spriteName != null) && (spriteName != ""))?spriteName:getSpriteName(biobrick); string nullSpriteName = ((spriteName != null) && (spriteName != ""))?"":"(null)=>" + usedSpriteName; if (genericPrefab == null) { genericPrefab = Resources.Load(prefabURI); } Object prefabToUse = (externalPrefab == null)?genericPrefab:externalPrefab; Logger.Log("GenericDisplayedBioBrick::Create(parentTransform=" + parentTransform + ", localPosition=" + localPosition + ", spriteName=" + spriteName + nullSpriteName + ", biobrick=" + biobrick , Logger.Level.TRACE ); GenericDisplayedBioBrick result = (GenericDisplayedBioBrick)DisplayedElement.Create( parentTransform , localPosition , usedSpriteName , prefabToUse ); Initialize(result, biobrick); return(result); }
private void reinitVars() { deviceName = null; device = null; brick = null; deviceBricks.Clear(); }
public static AvailableDisplayedBioBrick Create( Transform parentTransform, Vector3 localPosition, string spriteName, BioBrick biobrick ) { string nullSpriteName = (spriteName != null)?"":"(null)"; Object prefab = Resources.Load(_prefabURIAvailable); if (craftZoneManager == null) { craftZoneManager = CraftZoneManager.get(); } Logger.Log("DisplayedBioBrick::Create(parentTransform=" + parentTransform + ", localPosition=" + localPosition + ", spriteName=" + spriteName + nullSpriteName + ", biobrick=" + biobrick , Logger.Level.DEBUG ); AvailableDisplayedBioBrick result = (AvailableDisplayedBioBrick)DisplayedBioBrick.Create( parentTransform , localPosition , spriteName , biobrick , prefab ); return(result); }
protected static void Initialize( GenericDisplayedBioBrick biobrickScript , BioBrick biobrick ) { Logger.Log("GenericDisplayedBioBrick::Initialize(" + biobrickScript + ", " + biobrick + ") starts", Logger.Level.TRACE); biobrickScript._biobrick = biobrick; }
protected static void Initialize( GenericDisplayedBioBrick biobrickScript ,BioBrick biobrick ) { Logger.Log("GenericDisplayedBioBrick::Initialize("+biobrickScript+", "+biobrick+") starts", Logger.Level.TRACE); biobrickScript._biobrick = biobrick; }
protected static void Initialize( DisplayedBioBrick biobrickScript , BioBrick biobrick ) { // Logger.Log("DisplayedBioBrick::Initialize("+biobrickScript+", "+biobrick+") starts", Logger.Level.TRACE); GenericDisplayedBioBrick.Initialize(biobrickScript, biobrick); biobrickScript._localize.key = GameplayNames.biobrickPrefix + biobrick.getName(); Logger.Log("DisplayedBioBrick::Initialize ends with biobrickScript._lastHoveredInfoManager=" + biobrickScript._lastHoveredInfoManager, Logger.Level.TRACE); }
protected static void Initialize( DisplayedBioBrick biobrickScript ,BioBrick biobrick ) { // Logger.Log("DisplayedBioBrick::Initialize("+biobrickScript+", "+biobrick+") starts", Logger.Level.TRACE); GenericDisplayedBioBrick.Initialize(biobrickScript, biobrick); biobrickScript._localize.key = GameplayNames.biobrickPrefix+biobrick.getName(); Logger.Log("DisplayedBioBrick::Initialize ends with biobrickScript._lastHoveredInfoManager="+biobrickScript._lastHoveredInfoManager, Logger.Level.TRACE); }
private void reinitVars() { bioBrickName = null; bioBrickSize = null; bioBrickType = null; beta = null; formula = null; rbsfactor = null; protein = null; terminatorfactor = null; bioBrick = null; }
public static TinyBioBrickIcon Create( Transform parentTransform ,Vector3 localPosition ,string spriteName ,BioBrick biobrick ) { TinyBioBrickIcon result = (TinyBioBrickIcon)GenericDisplayedBioBrick.Create( parentTransform , localPosition , spriteName , biobrick , genericPrefab ); return result; }
public static TinyBioBrickIcon Create( Transform parentTransform , Vector3 localPosition , string spriteName , BioBrick biobrick ) { TinyBioBrickIcon result = (TinyBioBrickIcon)GenericDisplayedBioBrick.Create( parentTransform , localPosition , spriteName , biobrick , genericPrefab ); return(result); }
protected override void addTo() { BioBrick biobrick = _dnaBit as BioBrick; if (null == biobrick) { biobrick = produceDNABit() as BioBrick; } if (null == biobrick) { Logger.Log("PickableBioBrick::addTo() - failed to produce non-null dna bit", Logger.Level.WARN); } else { Logger.Log("PickableBioBrick::addTo " + _dnaBit, Logger.Level.INFO); AvailableBioBricksManager.get().addAvailableBioBrick(biobrick, false); } }
private void insertOrdered(BioBrick toInsert) { foreach (BioBrick brick in _currentBioBricks) { if (brick.getType() > toInsert.getType()) { LinkedListNode <BioBrick> afterNode = _currentBioBricks.Find(brick); _currentBioBricks.AddBefore(afterNode, toInsert); return; } else if (brick.getType() == toInsert.getType()) { LinkedListNode <BioBrick> toReplaceNode = _currentBioBricks.Find(brick); _currentBioBricks.AddAfter(toReplaceNode, toInsert); _currentBioBricks.Remove(brick); return; } } _currentBioBricks.AddLast(toInsert); }
public override bool Equals(System.Object obj) { if (obj == null) { return(false); } BioBrick b = obj as BioBrick; if ((System.Object)b == null) { return(false); } bool result; //check type, name, length result = (this._type == b._type) && (this._name == b._name) && (this._size == b._size); return(result); }
public BioBrick getBioBrickFromAll(string brickName) { Logger.Log("AvailableBioBricksManager::getBioBrickFromAll", Logger.Level.DEBUG); BioBrick brick = LinkedListExtensions.Find <BioBrick>( getAllBioBricks() , b => (b.getName() == brickName) , false , "AvailableBioBricksManager::getBioBrickFromAll(" + brickName + ")" ); if (brick != null) { Logger.Log("AvailableBioBricksManager::getBioBrickFromAll found " + brick, Logger.Level.TRACE); return(brick); } else { Logger.Log("AvailableBioBricksManager::getBioBrickFromAll failed to find brick with name " + brickName + "!", Logger.Level.WARN); return(null); } }
// Searches for a brick from its name in available BioBricks // If it succeeds, adds brick to deviceBricks and returns true // If it fails, searches for it in all the known BioBricks // If it succeeds, adds brick to available BioBricks list and does previous success treatment // If it fails, returns false private bool processBrick(string brickName, string filePath = "") { Logger.Log("DeviceLoader::loadDevicesFromFile brick name " + brickName, Logger.Level.TRACE); //"warn" parameter is true to indicate that there is no such BioBrick //as the one mentioned in the xml file of the device brick = LinkedListExtensions.Find<BioBrick>(_availableBioBricks , b => (b.getName() == brickName) , true , " DeviceLoader::loadDevicesFromFile(" + filePath + ")" ); if (brick == null) { brick = LinkedListExtensions.Find<BioBrick>(_allBioBricks , b => (b.getName() == brickName) , true , " DeviceLoader::loadDevicesFromFile(" + filePath + ")" ); if (brick != null) { Logger.Log("DeviceLoader::loadDevicesFromFile successfully added brick " + brick, Logger.Level.TRACE); AvailableBioBricksManager.get().addAvailableBioBrick(brick); } } if (brick != null) { Logger.Log("DeviceLoader::loadDevicesFromFile successfully added brick " + brick, Logger.Level.TRACE); deviceBricks.AddLast(brick); return true; } else { Logger.Log("DeviceLoader::loadDevicesFromFile failed to add brick with name " + brickName + "!", Logger.Level.WARN); return false; } }
private static int getIndex(BioBrick brick) { int idx; switch(brick.getType()) { case BioBrick.Type.PROMOTER: idx = 0; break; case BioBrick.Type.RBS: idx = 1; break; case BioBrick.Type.GENE: idx = 2; break; case BioBrick.Type.TERMINATOR: idx = 3; break; default: idx = 0; Logger.Log("CraftZoneManager getIndex unknown type "+brick.getType(), Logger.Level.WARN); break; } return idx; }
// Searches for a brick from its name in available BioBricks // If it succeeds, adds brick to deviceBricks and returns true // If it fails, searches for it in all the known BioBricks // If it succeeds, adds brick to available BioBricks list and does previous success treatment // If it fails, returns false private bool processBrick(string brickName, string filePath = "") { Logger.Log("DeviceLoader::loadDevicesFromFile brick name " + brickName, Logger.Level.TRACE); //"warn" parameter is true to indicate that there is no such BioBrick //as the one mentioned in the xml file of the device brick = LinkedListExtensions.Find <BioBrick>(_availableBioBricks , b => (b.getName() == brickName) , true , " DeviceLoader::loadDevicesFromFile(" + filePath + ")" ); if (brick == null) { brick = LinkedListExtensions.Find <BioBrick>(_allBioBricks , b => (b.getName() == brickName) , true , " DeviceLoader::loadDevicesFromFile(" + filePath + ")" ); if (brick != null) { Logger.Log("DeviceLoader::loadDevicesFromFile successfully added brick " + brick, Logger.Level.TRACE); AvailableBioBricksManager.get().addAvailableBioBrick(brick); } } if (brick != null) { Logger.Log("DeviceLoader::loadDevicesFromFile successfully added brick " + brick, Logger.Level.TRACE); deviceBricks.AddLast(brick); return(true); } else { Logger.Log("DeviceLoader::loadDevicesFromFile failed to add brick with name " + brickName + "!", Logger.Level.WARN); return(false); } }
private static bool checkGene(BioBrick b) { Logger.Log("ExpressionModule::checkGene(" + b + ")", Logger.Level.DEBUG); return(b.getType() == BioBrick.Type.GENE); }
private static bool checkPromoter(BioBrick b) { Logger.Log("ExpressionModule::checkPromoter(" + b + ")", Logger.Level.DEBUG); return(b.getType() == BioBrick.Type.PROMOTER); }
public BioBrick loadBioBrick(XmlNode bioBrickNode) { reinitVars(); //common biobrick attributes try { bioBrickName = bioBrickNode.Attributes[BioBricksXMLTags.ID].Value; bioBrickSize = bioBrickNode.Attributes[BioBricksXMLTags.SIZE].Value; bioBrickType = bioBrickNode.Attributes[BioBricksXMLTags.TYPE].Value; } catch (NullReferenceException exc) { Logger.Log("BioBrickLoader::loadBioBricksFromFile bad xml, missing field\n" + exc, Logger.Level.WARN); return null; } catch (Exception exc) { Logger.Log("BioBrickLoader::loadBioBricksFromFile failed, got exc=" + exc, Logger.Level.WARN); return null; } Logger.Log("BioBrickLoader::loadBioBricksFromFile got id=" + bioBrickName + ", size=" + bioBrickSize + ", type=" + bioBrickType , Logger.Level.TRACE); if (checkString(bioBrickName)) { switch (bioBrickType) { case BioBricksXMLTags.PROMOTER: logCurrentBioBrick(BioBricksXMLTags.PROMOTER); foreach (XmlNode attr in bioBrickNode) { switch (attr.Name) { case BioBricksXMLTags.BETA: beta = attr.InnerText; break; case BioBricksXMLTags.FORMULA: formula = attr.InnerText; break; case XMLTags.COMMENT: break; default: logUnknownAttr(attr, BioBricksXMLTags.PROMOTER); break; } } if (checkString(beta) && checkString(formula)) { bioBrick = new PromoterBrick(bioBrickName, parseFloat(beta), formula); } break; case BioBricksXMLTags.RBS: logCurrentBioBrick(BioBricksXMLTags.RBS); foreach (XmlNode attr in bioBrickNode) { switch (attr.Name) { case BioBricksXMLTags.RBSFACTOR: rbsfactor = attr.InnerText; break; case XMLTags.COMMENT: break; default: logUnknownAttr(attr, BioBricksXMLTags.RBS); break; } } if (checkString(rbsfactor)) { bioBrick = new RBSBrick(bioBrickName, parseFloat(rbsfactor)); } break; case BioBricksXMLTags.GENE: logCurrentBioBrick(BioBricksXMLTags.GENE); foreach (XmlNode attr in bioBrickNode) { switch (attr.Name) { case BioBricksXMLTags.PROTEIN: protein = attr.InnerText; break; case XMLTags.COMMENT: break; default: logUnknownAttr(attr, BioBricksXMLTags.GENE); break; } } if (checkString(protein)) { bioBrick = new GeneBrick(bioBrickName, protein); } break; case BioBricksXMLTags.TERMINATOR: logCurrentBioBrick(BioBricksXMLTags.TERMINATOR); foreach (XmlNode attr in bioBrickNode) { switch (attr.Name) { case BioBricksXMLTags.TERMINATORFACTOR: terminatorfactor = attr.InnerText; break; case XMLTags.COMMENT: break; default: logUnknownAttr(attr, BioBricksXMLTags.TERMINATOR); break; } } if (checkString(terminatorfactor)) { bioBrick = new TerminatorBrick(bioBrickName, parseFloat(terminatorfactor)); } break; default: Logger.Log("BioBrickLoader::loadBioBricksFromFile wrong type " + bioBrickType, Logger.Level.WARN); break; } if (null != bioBrick && checkString(bioBrickSize)) { bioBrick.setSize(parseInt(bioBrickSize)); } return bioBrick; } else { Logger.Log("BioBrickLoader::loadBioBricksFromFile Error : missing attribute id in BioBrick node", Logger.Level.WARN); return null; } }
public static string getSpriteName(BioBrick brick) { return(spriteNamesDico[brick.getType()]); }
public void removeBioBrick(BioBrick brick) { Logger.Log("CraftZoneManager::removeBioBrick(" + brick + ")", Logger.Level.TRACE); _currentBioBricks.Remove(brick); OnBioBricksChanged(); }
public bool addAvailableBioBrick(BioBrick brick, bool updateView = true) { Logger.Log("AvailableBioBricksManager::addAvailableBioBrick(" + brick + ")", Logger.Level.INFO); string bbName = brick.getName(); if ((null != brick) && (null == LinkedListExtensions.Find<BioBrick>( _availableBioBricks , b => b.getName() == bbName , false , " AvailableBioBricksManager::addAvailableBioBrick(" + brick + ", " + updateView + ")" ) )) // TODO deeper safety check // && !LinkedListExtensions.Find<BioBrick>(_availableBioBricks, b => b..Equals(brick), true, " AvailableBioBricksManager::addAvailableBioBrick("+brick+", "+updateView+")") { Logger.Log("AvailableBioBricksManager::addAvailableBioBrick(" + brick + ") will _availableBioBricks.AddLast(" + brick + ")", Logger.Level.INFO); _availableBioBricks.AddLast(brick); if (updateView) { updateDisplayedBioBricks(); } return true; } else { Logger.Log("AvailableBioBricksManager::addAvailableBioBrick(" + brick + ") fail", Logger.Level.INFO); return false; } }
public BioBrick loadBioBrick(XmlNode bioBrickNode) { reinitVars(); //common biobrick attributes try { bioBrickName = bioBrickNode.Attributes[BioBricksXMLTags.ID].Value; bioBrickSize = bioBrickNode.Attributes[BioBricksXMLTags.SIZE].Value; bioBrickType = bioBrickNode.Attributes[BioBricksXMLTags.TYPE].Value; } catch (NullReferenceException exc) { Logger.Log("BioBrickLoader::loadBioBricksFromFile bad xml, missing field\n" + exc, Logger.Level.WARN); return(null); } catch (Exception exc) { Logger.Log("BioBrickLoader::loadBioBricksFromFile failed, got exc=" + exc, Logger.Level.WARN); return(null); } Logger.Log("BioBrickLoader::loadBioBricksFromFile got id=" + bioBrickName + ", size=" + bioBrickSize + ", type=" + bioBrickType , Logger.Level.TRACE); if (checkString(bioBrickName)) { switch (bioBrickType) { case BioBricksXMLTags.PROMOTER: logCurrentBioBrick(BioBricksXMLTags.PROMOTER); foreach (XmlNode attr in bioBrickNode) { switch (attr.Name) { case BioBricksXMLTags.BETA: beta = attr.InnerText; break; case BioBricksXMLTags.FORMULA: formula = attr.InnerText; break; case XMLTags.COMMENT: break; default: logUnknownAttr(attr, BioBricksXMLTags.PROMOTER); break; } } if (checkString(beta) && checkString(formula)) { bioBrick = new PromoterBrick(bioBrickName, parseFloat(beta), formula); } break; case BioBricksXMLTags.RBS: logCurrentBioBrick(BioBricksXMLTags.RBS); foreach (XmlNode attr in bioBrickNode) { switch (attr.Name) { case BioBricksXMLTags.RBSFACTOR: rbsfactor = attr.InnerText; break; case XMLTags.COMMENT: break; default: logUnknownAttr(attr, BioBricksXMLTags.RBS); break; } } if (checkString(rbsfactor)) { bioBrick = new RBSBrick(bioBrickName, parseFloat(rbsfactor)); } break; case BioBricksXMLTags.GENE: logCurrentBioBrick(BioBricksXMLTags.GENE); foreach (XmlNode attr in bioBrickNode) { switch (attr.Name) { case BioBricksXMLTags.PROTEIN: protein = attr.InnerText; break; case XMLTags.COMMENT: break; default: logUnknownAttr(attr, BioBricksXMLTags.GENE); break; } } if (checkString(protein)) { bioBrick = new GeneBrick(bioBrickName, protein); } break; case BioBricksXMLTags.TERMINATOR: logCurrentBioBrick(BioBricksXMLTags.TERMINATOR); foreach (XmlNode attr in bioBrickNode) { switch (attr.Name) { case BioBricksXMLTags.TERMINATORFACTOR: terminatorfactor = attr.InnerText; break; case XMLTags.COMMENT: break; default: logUnknownAttr(attr, BioBricksXMLTags.TERMINATOR); break; } } if (checkString(terminatorfactor)) { bioBrick = new TerminatorBrick(bioBrickName, parseFloat(terminatorfactor)); } break; default: Logger.Log("BioBrickLoader::loadBioBricksFromFile wrong type " + bioBrickType, Logger.Level.WARN); break; } if (null != bioBrick && checkString(bioBrickSize)) { bioBrick.setSize(parseInt(bioBrickSize)); } return(bioBrick); } else { Logger.Log("BioBrickLoader::loadBioBricksFromFile Error : missing attribute id in BioBrick node", Logger.Level.WARN); return(null); } }
public void replaceWithBioBrick(BioBrick brick) { Logger.Log("CraftZoneManager::replaceWithBioBrick(" + brick + ")", Logger.Level.TRACE); insertOrdered(brick); OnBioBricksChanged(); }
public static bool displayTooltip(bool isOver, BioBrick brick, Vector3 pos) { string code = (null == brick)?null:_bioBrickPrefix + brick.getName(); return(displayTooltip(isOver, code, pos)); }
private static bool checkTerminator(BioBrick b) { return (b.getType() == BioBrick.Type.TERMINATOR); }
private static bool checkRBS(BioBrick b) { return (b.getType() == BioBrick.Type.RBS); }
private static bool checkPromoter(BioBrick b) { return (b.getType() == BioBrick.Type.PROMOTER); }
public new static string getSpriteName(BioBrick brick) { return(brick.getName()); }
private static bool checkGene(BioBrick b) { Logger.Log("ExpressionModule::checkGene("+b+")", Logger.Level.DEBUG); return (b.getType() == BioBrick.Type.GENE); }
private static bool checkTerminator(BioBrick b) { Logger.Log("ExpressionModule::checkTerminator(" + b + ")", Logger.Level.DEBUG); return(b.getType() == BioBrick.Type.TERMINATOR); }
private void insertOrdered(BioBrick toInsert) { foreach(BioBrick brick in _currentBioBricks) { if(brick.getType() > toInsert.getType()) { LinkedListNode<BioBrick> afterNode = _currentBioBricks.Find(brick); _currentBioBricks.AddBefore(afterNode, toInsert); return; } else if(brick.getType() == toInsert.getType()) { LinkedListNode<BioBrick> toReplaceNode = _currentBioBricks.Find(brick); _currentBioBricks.AddAfter(toReplaceNode, toInsert); _currentBioBricks.Remove(brick); return; } } _currentBioBricks.AddLast(toInsert); }
public void replaceWithBioBrick(BioBrick brick) { Logger.Log("CraftZoneManager::replaceWithBioBrick("+brick+")", Logger.Level.TRACE); insertOrdered(brick); OnBioBricksChanged(); }
private LinkedList<BioBrick> getAvailableBioBricksOfType(BioBrick.Type type) { Logger.Log("AvailableBioBricksManager::getAvailableBioBricksOfType(" + type + ")", Logger.Level.TRACE); return LinkedListExtensions.Filter<BioBrick>(_availableBioBricks, b => (b.getType() == type)); }
public LinkedList <Device> loadDevicesFromFile(string filePath) { Logger.Log("DeviceLoader::loadDevicesFromFile(" + filePath + ")", Logger.Level.INFO); LinkedList <Device> resultDevices = new LinkedList <Device>(); XmlDocument xmlDoc = Tools.getXmlDocument(filePath); XmlNodeList deviceList = xmlDoc.GetElementsByTagName(BioBricksXMLTags.DEVICE); reinitVars(); foreach (XmlNode deviceNode in deviceList) { try { deviceName = deviceNode.Attributes[BioBricksXMLTags.ID].Value; } catch (NullReferenceException exc) { Logger.Log("DeviceLoader::loadDevicesFromFile bad xml, missing field \"id\"\n" + exc, Logger.Level.WARN); continue; } catch (Exception exc) { Logger.Log("DeviceLoader::loadDevicesFromFile failed, got exc=" + exc, Logger.Level.WARN); continue; } Logger.Log("DeviceLoader::loadDevicesFromFile got id=" + deviceName , Logger.Level.TRACE); bool processSuccess = true; if (checkString(deviceName)) { // processes longer grammars that use explicit brick nodes names if (0 != deviceNode.ChildNodes.Count) { foreach (XmlNode attr in deviceNode) { if (attr.Name == BioBricksXMLTags.BIOBRICK) { //find brick in existing bricks string brickName = attr.Attributes[BioBricksXMLTags.ID].Value; if (!processBrick(brickName, filePath)) { // processes even longer grammar that uses explicit brick description // because the brick wasn't found neither in 'available' nor 'all' biobricks lists brick = bLoader.loadBioBrick(attr); if (null != brick) { AvailableBioBricksManager.get().addAvailableBioBrick(brick); deviceBricks.AddLast(brick); } else { processSuccess = false; break; } } } else { Logger.Log("DeviceLoader::loadDevicesFromFile unknown attr " + attr.Name, Logger.Level.WARN); } } } else { // processes shortened grammar that uses only device name foreach (string brickName in deviceName.Split(':')) { if (!processBrick(brickName, filePath)) { processSuccess = false; break; } } } if (processSuccess) { ExpressionModule deviceModule = new ExpressionModule(deviceName, deviceBricks); LinkedList <ExpressionModule> deviceModules = new LinkedList <ExpressionModule>(); deviceModules.AddLast(deviceModule); device = Device.buildDevice(deviceName, deviceModules); if (device != null) { resultDevices.AddLast(device); } } } else { Logger.Log("DeviceLoader::loadDevicesFromFile Error : missing attribute id in Device node", Logger.Level.WARN); } reinitVars(); } return(resultDevices); }
private AvailableDisplayedBioBrick getDisplayableAvailableBioBrick(BioBrick brick, int index) { Transform parentTransformParam = bioBricksPanel.transform; Vector3 localPositionParam = getNewPosition(index); string spriteNameParam = AvailableDisplayedBioBrick.getSpriteName(brick); BioBrick biobrickParam = brick; Logger.Log("AvailableBioBricksManager::getDisplayableAvailableBioBrick(brick=" + brick + ", index=" + index + ")," + ", parentTransformParam=" + parentTransformParam + ", localPositionParam=" + localPositionParam + " (width=" + _width + ")" + ", spriteNameParam=" + spriteNameParam + ", biobrickParam=" + biobrickParam , Logger.Level.TRACE ); AvailableDisplayedBioBrick resultBrick = AvailableDisplayedBioBrick.Create( parentTransformParam , localPositionParam , spriteNameParam , biobrickParam ); return resultBrick; }
public static bool displayTooltip(bool isOver, BioBrick brick, Vector3 pos) { string code = (null == brick)?null:_bioBrickPrefix+brick.getName(); return displayTooltip(isOver, code, pos); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // utilities private BioBrick findFirstBioBrick(BioBrick.Type type) { foreach(BioBrick brick in _currentBioBricks) { if(brick.getType() == type) return brick; } Logger.Log("CraftZoneManager::findFirstBioBrick("+type+") failed with current bricks="+_currentBioBricks, Logger.Level.TRACE); return null; }
public LinkedList<Device> loadDevicesFromFile(string filePath) { Logger.Log("DeviceLoader::loadDevicesFromFile(" + filePath + ")", Logger.Level.INFO); LinkedList<Device> resultDevices = new LinkedList<Device>(); XmlDocument xmlDoc = Tools.getXmlDocument(filePath); XmlNodeList deviceList = xmlDoc.GetElementsByTagName(BioBricksXMLTags.DEVICE); reinitVars(); foreach (XmlNode deviceNode in deviceList) { try { deviceName = deviceNode.Attributes[BioBricksXMLTags.ID].Value; } catch (NullReferenceException exc) { Logger.Log("DeviceLoader::loadDevicesFromFile bad xml, missing field \"id\"\n" + exc, Logger.Level.WARN); continue; } catch (Exception exc) { Logger.Log("DeviceLoader::loadDevicesFromFile failed, got exc=" + exc, Logger.Level.WARN); continue; } Logger.Log("DeviceLoader::loadDevicesFromFile got id=" + deviceName , Logger.Level.TRACE); bool processSuccess = true; if (checkString(deviceName)) { // processes longer grammars that use explicit brick nodes names if (0 != deviceNode.ChildNodes.Count) { foreach (XmlNode attr in deviceNode) { if (attr.Name == BioBricksXMLTags.BIOBRICK) { //find brick in existing bricks string brickName = attr.Attributes[BioBricksXMLTags.ID].Value; if (!processBrick(brickName, filePath)) { // processes even longer grammar that uses explicit brick description // because the brick wasn't found neither in 'available' nor 'all' biobricks lists brick = bLoader.loadBioBrick(attr); if (null != brick) { AvailableBioBricksManager.get().addAvailableBioBrick(brick); deviceBricks.AddLast(brick); } else { processSuccess = false; break; } } } else { Logger.Log("DeviceLoader::loadDevicesFromFile unknown attr " + attr.Name, Logger.Level.WARN); } } } else { // processes shortened grammar that uses only device name foreach (string brickName in deviceName.Split(':')) { if (!processBrick(brickName, filePath)) { processSuccess = false; break; } } } if (processSuccess) { ExpressionModule deviceModule = new ExpressionModule(deviceName, deviceBricks); LinkedList<ExpressionModule> deviceModules = new LinkedList<ExpressionModule>(); deviceModules.AddLast(deviceModule); device = Device.buildDevice(deviceName, deviceModules); if (device != null) { resultDevices.AddLast(device); } } } else { Logger.Log("DeviceLoader::loadDevicesFromFile Error : missing attribute id in Device node", Logger.Level.WARN); } reinitVars(); } return resultDevices; }
public static string getSpriteName(BioBrick brick) { return spriteNamesDico[brick.getType()]; }
public void removeBioBrick(BioBrick brick) { Logger.Log("CraftZoneManager::removeBioBrick("+brick+")", Logger.Level.TRACE); _currentBioBricks.Remove(brick); OnBioBricksChanged(); }
private static bool checkPromoter(BioBrick b) { Logger.Log("ExpressionModule::checkPromoter("+b+")", Logger.Level.DEBUG); return (b.getType() == BioBrick.Type.PROMOTER); }
public new static string getSpriteName(BioBrick brick) { return brick.getName(); }
private static bool checkTerminator(BioBrick b) { Logger.Log("ExpressionModule::checkTerminator("+b+")", Logger.Level.DEBUG); return (b.getType() == BioBrick.Type.TERMINATOR); }
private static bool checkGene(BioBrick b) { return (b.getType() == BioBrick.Type.GENE); }