public Object ToRawObject(Object smartObject) { if (!(smartObject is ISmartObject)) { return(smartObject); } var rawObject = (smartObject is Chest) ? new Chest() : (smartObject.GetColor() != null) ? new ColoredObject() : new Object(); Cloner.Instance.CopyData(smartObject, rawObject); return(rawObject); }