private async void SaveMobileSites(object sender, EventArgs e) { try { var SelectedSites = _allSitesObs.Where(c => c.Toggled_ == true).ToList(); //check connectivity if (CrossConnectivity.Current.IsConnected) { //convert to mobile sites send Class then try to send that data var sentSites = new MobileSitesSender(SelectedSites, Database.Login.GetTableData(_connection).First().UserID); if (await SyncClass.SetMobileSites(sentSites, Application.Current.Properties["url"].ToString())) { await DisplayAlert("Complete", "Mobile sites saved. Sync now to update data.", "OK"); await Navigation.PopToRootAsync(); } else { await DisplayAlert("Error", "Unable to set mobile sites.", "OK"); } } else { await DisplayAlert("Error", "No internet connection. Unable to set mobile sites", "OK"); } } catch (Exception exc) { DependencyService.Get <IError>().SendRaygunError(exc, Application.Current.Properties["user"].ToString() ?? "unsynced", Application.Current.Properties["url"].ToString() ?? "unsynced", null); await DisplayAlert("Error", exc.ToString(), "OK"); } }
public MyAssembler() : base() { m_baseIdleSound.Init("BlockAssembler"); m_processSound.Init("BlockAssemblerProcess"); m_otherQueue = new List <QueueItem>(); SyncObject = new SyncClass(this); }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); if (BlockDefinition is MyMedicalRoomDefinition) { var def = (MyMedicalRoomDefinition)BlockDefinition; m_idleSound = new MySoundPair(def.IdleSound); m_progressSound = new MySoundPair(def.ProgressSound); } else { m_idleSound = new MySoundPair("BlockMedical"); m_progressSound = new MySoundPair("BlockMedicalProgress"); } m_rechargeSocket = new MyRechargeSocket(); NeedsUpdate = MyEntityUpdateEnum.EACH_10TH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME; SteamUserId = (objectBuilder as MyObjectBuilder_MedicalRoom).SteamUserId; if (SteamUserId != 0) //backward compatibility { MyPlayer controller = Sync.Players.TryGetPlayerById(new MyPlayer.PlayerId(SteamUserId)); if (controller != null) { IDModule.Owner = controller.Identity.IdentityId; IDModule.ShareMode = MyOwnershipShareModeEnum.Faction; } } SteamUserId = 0; m_takeSpawneeOwnership = (objectBuilder as MyObjectBuilder_MedicalRoom).TakeOwnership; m_setFactionToSpawnee = (objectBuilder as MyObjectBuilder_MedicalRoom).SetFaction; SyncObject = new SyncClass(this); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; InitializeConveyorEndpoint(); PowerReceiver = new MyPowerReceiver( group: MyConsumerGroupEnum.Utility, isAdaptible: false, maxRequiredInput: MyEnergyConstants.MAX_REQUIRED_POWER_MEDICAL_ROOM, requiredInputFunc: () => (Enabled && IsFunctional) ? PowerReceiver.MaxRequiredInput : 0f); PowerReceiver.IsPoweredChanged += Receiver_IsPoweredChanged; PowerReceiver.Update(); AddDebugRenderComponent(new MyDebugRenderComponentDrawPowerReciever(PowerReceiver, this)); if (this.CubeGrid.CreatePhysics) { Components.Add <MyRespawnComponent>(new MyRespawnComponent()); } }
static int test_0_synchronized_gshared() { var c = new SyncClass <string> (); if (c.getInstance() != typeof(string)) { return(1); } return(0); }
/// <summary> /// /// </summary> /// <param name="unitName"></param> /// <returns></returns> public SyncClasses SyncAllClasses(string unitName) { SyncClasses collection = new SyncClasses(); DataTable dtSource = this.poxy.GetClass(unitName); if (dtSource != null && dtSource.Rows.Count > 0) { foreach (DataRow row in dtSource.Rows) { SyncClass data = new SyncClass(); data.Code = Convert.ToString(row["BJDM"]); data.Name = Convert.ToString(row["BJMC"]); data.JoinYear = Convert.ToString(row["RXNF"]); data.Grade = Convert.ToString(row["dqnj"]); data.LearnLevel = this.GetLearnLevel(Convert.ToString(row["bjlx"])); data.School.UnitCode = Convert.ToString(row["LSDWM"]); data.School.UnitName = Convert.ToString(row["LSDWMC"]); collection.Add(data); } } return collection; }
/// <summary> /// 同步所有班级。 /// </summary> /// <param name="unitName"></param> /// <returns></returns> public SyncClasses SyncAllClasses(string unitName) { string err = null; DataTable dtSource = this.poxy.SyncAllClasses(unitName, out err); if (!string.IsNullOrEmpty(err)) { throw new Exception("同步学校[" + unitName + "]下班级数据发生异常:" + err); } SyncClasses classes = new SyncClasses(); if (dtSource != null && dtSource.Rows.Count > 0) { foreach (DataRow row in dtSource.Rows) { SyncClass sc = new SyncClass(); sc.Code = string.Format("{0}", row["Code"]); sc.Name = string.Format("{0}", row["Name"]); sc.Grade = string.Format("{0}", row["Grade"]); sc.JoinYear = string.Format("{0}", row["JoinYear"]); sc.LearnLevel = (EnumLearnLevel)Enum.Parse(typeof(EnumLearnLevel), string.Format("{0}", row["LearnLevel"]), true); classes.Add(sc); } } return classes; }
public MyAssembler() : base() { m_baseIdleSound.Init("BlockAssembler"); m_processSound.Init("BlockAssemblerProcess"); m_otherQueue = new List<QueueItem>(); SyncObject = new SyncClass(this); }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); var medicalRoomDefinition = BlockDefinition as MyMedicalRoomDefinition; MyStringHash resourceSinkGroup; if (medicalRoomDefinition != null) { m_idleSound = new MySoundPair(medicalRoomDefinition.IdleSound); m_progressSound = new MySoundPair(medicalRoomDefinition.ProgressSound); resourceSinkGroup = MyStringHash.GetOrCompute(medicalRoomDefinition.ResourceSinkGroup); } else { m_idleSound = new MySoundPair("BlockMedical"); m_progressSound = new MySoundPair("BlockMedicalProgress"); resourceSinkGroup = MyStringHash.GetOrCompute("Utility"); } m_rechargeSocket = new MyRechargeSocket(); NeedsUpdate = MyEntityUpdateEnum.EACH_10TH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME; SteamUserId = (objectBuilder as MyObjectBuilder_MedicalRoom).SteamUserId; if (SteamUserId != 0) //backward compatibility { MyPlayer controller = Sync.Players.GetPlayerById(new MyPlayer.PlayerId(SteamUserId)); if (controller != null) { IDModule.Owner = controller.Identity.IdentityId; IDModule.ShareMode = MyOwnershipShareModeEnum.Faction; } } SteamUserId = 0; m_takeSpawneeOwnership = (objectBuilder as MyObjectBuilder_MedicalRoom).TakeOwnership; m_setFactionToSpawnee = (objectBuilder as MyObjectBuilder_MedicalRoom).SetFaction; SyncObject = new SyncClass(this); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; InitializeConveyorEndpoint(); SinkComp = new MyResourceSinkComponent(); SinkComp.Init( resourceSinkGroup, MyEnergyConstants.MAX_REQUIRED_POWER_MEDICAL_ROOM, () => (Enabled && IsFunctional) ? SinkComp.MaxRequiredInput : 0f); SinkComp.IsPoweredChanged += Receiver_IsPoweredChanged; SinkComp.Update(); AddDebugRenderComponent(new MyDebugRenderComponentDrawPowerReciever(SinkComp, this)); if (this.CubeGrid.CreatePhysics) { Components.Add <MyRespawnComponent>(new MyRespawnComponent()); } }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); if (BlockDefinition is MyMedicalRoomDefinition) { var def = (MyMedicalRoomDefinition)BlockDefinition; m_idleSound = new MySoundPair(def.IdleSound); m_progressSound = new MySoundPair(def.ProgressSound); } else { m_idleSound = new MySoundPair("BlockMedical"); m_progressSound = new MySoundPair("BlockMedicalProgress"); } m_rechargeSocket = new MyRechargeSocket(); NeedsUpdate = MyEntityUpdateEnum.EACH_10TH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME; SteamUserId = (objectBuilder as MyObjectBuilder_MedicalRoom).SteamUserId; if (SteamUserId != 0) //backward compatibility { MyPlayer controller = Sync.Players.TryGetPlayerById(new MyPlayer.PlayerId(SteamUserId)); if (controller != null) { IDModule.Owner = controller.Identity.IdentityId; IDModule.ShareMode = MyOwnershipShareModeEnum.Faction; } } SteamUserId = 0; m_takeSpawneeOwnership = (objectBuilder as MyObjectBuilder_MedicalRoom).TakeOwnership; m_setFactionToSpawnee = (objectBuilder as MyObjectBuilder_MedicalRoom).SetFaction; SyncObject = new SyncClass(this); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; InitializeConveyorEndpoint(); PowerReceiver = new MyPowerReceiver( group: MyConsumerGroupEnum.Utility, isAdaptible: false, maxRequiredInput: MyEnergyConstants.MAX_REQUIRED_POWER_MEDICAL_ROOM, requiredInputFunc: () => (Enabled && IsFunctional) ? PowerReceiver.MaxRequiredInput : 0f); PowerReceiver.IsPoweredChanged += Receiver_IsPoweredChanged; PowerReceiver.Update(); AddDebugRenderComponent(new MyDebugRenderComponentDrawPowerReciever(PowerReceiver, this)); if (this.CubeGrid.CreatePhysics) Components.Add<MyRespawnComponent>(new MyRespawnComponent()); }
private async void LogIntoEquip(string username, string password, string url) { string returnedData = ""; try { returnedData = await SyncClass.API_Login(username, password, url); var ParsedLoginData = JsonConvert.DeserializeObject <List <LoginDataClass> >(returnedData); //Store login data to variables to be used to sore to database var Servertime_ = ParsedLoginData[0].ServerTime.ToString(); var UserID_ = ParsedLoginData[0].UserID; var RoleID_ = ParsedLoginData[0].RoleID; var AllowDup_ = ParsedLoginData[0].AllowDuplicateBarcode.ToString(); var eQuipVer_ = ParsedLoginData[0].eQuipVersion; var Framework_ = ParsedLoginData[0].Framework; var RequiredFields_ = JsonConvert.SerializeObject(ParsedLoginData[0].RequiredFields); var MobileSites_ = ParsedLoginData[0].GetMobileSites(); var Permissions = JsonConvert.SerializeObject(ParsedLoginData[0].Permissions); var LoginData = new List <LoginDbTable> { new LoginDbTable { ServerTime = Servertime_, UserID = UserID_, RoleID = RoleID_.ToString(), AllowDuplicateBarcode = AllowDup_, eQuipVersion = eQuipVer_, Framework = Framework_, RequiredFields = RequiredFields_, MobileSites = MobileSites_, LastSyncDate = _LastSyncDate, Permissions = Permissions } }; foreach (var loginRecord in LoginData) { var query = Database.Login.GetTableData(_connection); if (query.Count() > 0) { Database.Login.Update(_connection, loginRecord); } else { await DisplayAlert("Error", "Please log in", "OK"); } } } catch (Exception e) { DependencyService.Get <IError>().SendRaygunError(e, Application.Current.Properties["user"].ToString() ?? "unsynced", Application.Current.Properties["url"].ToString() ?? "unsynced", null); if (e is LoginException) { await DisplayAlert("Error", e.Message, "OK"); } else { await DisplayAlert("Error", e.Message + ". Please check the url or connection.", "OK"); } } }
private async void InsertAssetData(double progressCounter, Stack <SitesClass> StackSites_Assets, bool new_ = false) { try { //Insert Asset Data pg1Label.Text = "Getting Asset data from eQuip."; var AssetResponse = await SyncClass.NewSyncClass.API_GetAssets(_userID, _url, StackSites_Assets); pg1Label.Text = "Converting data"; //convert string to ist of JSON Object var AssetRecords = JsonConvert.DeserializeObject <List <AssetJsonObject> >(AssetResponse); //Create new list to parse records and make into AssetClass var AssetClassList = new List <AssetClass>(); foreach (AssetJsonObject AssetJSON in AssetRecords) { AssetClassList.Add(new AssetClass(AssetJSON, true)); } //Convert asset class to string then to DbClass to be stored var AssetDbList = JsonConvert.DeserializeObject <IEnumerable <AssetDbClass> >(JsonConvert.SerializeObject(AssetClassList)); pg1Label.Text = "Storing Assets to database."; Database.Assets.DeleteAndInsert(_connection, AssetDbList); pg1.Progress = pg1.Progress + progressCounter; pg1.Progress = pg1.Progress + progressCounter; //Get Time using Login method var LoginInfo = JsonConvert.DeserializeObject <List <LoginDataClass> >(await SyncClass.API_Login(Application.Current.Properties["user"].ToString(), Application.Current.Properties["password"].ToString(), _url)); //Store the LastSync Date Application.Current.Properties["LastSyncdate"] = LoginInfo[0].ServerTime.ToString(); Database.Login.UpdateSync(_connection, LoginInfo[0].ServerTime.ToString()); await Application.Current.SavePropertiesAsync(); pg1.Progress = pg1.Progress + progressCounter; ActivityIndicator.IsVisible = false; ActivityIndicator.IsRunning = false; if (new_) { await DisplayAlert("Sync Status", "New Synchronization Complete!", "OK"); } else { await DisplayAlert("Sync Status", "Update Synchronization Complete!", "OK"); } await Navigation.PopToRootAsync(); } catch (Exception exc) { DependencyService.Get <IError>().SendRaygunError(exc, Application.Current.Properties["user"].ToString() ?? "unsynced", Application.Current.Properties["url"].ToString() ?? "unsynced", null); await DisplayAlert("Error!", exc.Message + ". Please wipe database and try again.", "OK"); } }
public static void Main() { SyncClass secondApp = new SyncClass(); secondApp.SycInitialization(); }
public async static void AddData(string inputText, string inputHeaderText) { await Task.Run(() => { string dbpath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "sqliteHistory.db"); using (SqliteConnection db = new SqliteConnection($"Filename={dbpath}")) { db.Open(); SqliteCommand insertCommand = new SqliteCommand(); insertCommand.Connection = db; // Use parameterized query to prevent SQL injection attacks insertCommand.CommandText = "INSERT INTO MyTable(Site, Header, ID) VALUES (@Entry, @Header, @ID);"; // = "INSERT INTO MyTable(Col1, Col2) VALUES('Test Text ', 1); "; // insertCommand.CommandText = "INSERT INTO MyTable VALUES (NULL, @Entry);"; insertCommand.Parameters.AddWithValue("@Entry", inputText); insertCommand.Parameters.AddWithValue("@Header", inputHeaderText); Random r = new Random(); insertCommand.Parameters.AddWithValue("@ID", r.Next().ToString()); insertCommand.ExecuteReader(); db.Close(); } }); try { if ((bool)Windows.Storage.ApplicationData.Current.RoamingSettings.Values["Syncing"] == true) { // try // { if ((bool)Windows.Storage.ApplicationData.Current.RoamingSettings.Values["NewData"] == false) { Windows.Storage.ApplicationData.Current.RoamingSettings.Values["SyncId"] = Windows.Storage.ApplicationData.Current.LocalSettings.Values["SyncId"]; StorageFolder roaming = Windows.Storage.ApplicationData.Current.RoamingFolder; StorageFile SyncFile = await roaming.CreateFileAsync("SyncFile.json", CreationCollisionOption.OpenIfExists); string Data = await FileIO.ReadTextAsync(SyncFile); try { SyncClass SyncListJSON = JsonConvert.DeserializeObject <SyncClass>(Data); Uri ArgsUri = new Uri(inputText); string host = ArgsUri.Host; SyncListJSON.Sync.Add(new SyncJSON() { HeaderJSON = inputHeaderText, UrlJSON = inputText, FavIconJSON = "http://icons.duckduckgo.com/ip2/" + host + ".ico", }); Windows.Storage.ApplicationData.Current.RoamingSettings.Values["NewData"] = true; var SerializedObject = JsonConvert.SerializeObject(SyncListJSON, Formatting.Indented); await Windows.Storage.FileIO.WriteTextAsync(SyncFile, SerializedObject); } catch { Windows.Storage.ApplicationData.Current.RoamingSettings.Values["SyncId"] = Windows.Storage.ApplicationData.Current.LocalSettings.Values["SyncId"]; string filepath = @"Assets\SyncFile.json"; StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation; StorageFile file = await folder.GetFileAsync(filepath); SyncClass SyncListJSON = JsonConvert.DeserializeObject <SyncClass>(await FileIO.ReadTextAsync(file)); Uri ArgsUri = new Uri(inputText); string host = ArgsUri.Host; SyncListJSON.Sync.Add(new SyncJSON() { HeaderJSON = inputHeaderText, UrlJSON = inputText, FavIconJSON = "http://icons.duckduckgo.com/ip2/" + host + ".ico", }); var SerializedObject = JsonConvert.SerializeObject(SyncListJSON, Formatting.Indented); StorageFolder roamingX = Windows.Storage.ApplicationData.Current.RoamingFolder; StorageFile SyncFileX = await roamingX.GetFileAsync("SyncFile.json"); await FileIO.WriteTextAsync(SyncFileX, SerializedObject); Windows.Storage.ApplicationData.Current.RoamingSettings.Values["NewData"] = true; } //ApplicationData.Current.RoamingSettings.Values["NewData"] = true; } else { // try // { if ((bool)Windows.Storage.ApplicationData.Current.RoamingSettings.Values["Syncing"] == true) { // try // { if ((bool)Windows.Storage.ApplicationData.Current.RoamingSettings.Values["NewData"] == true) { Windows.Storage.ApplicationData.Current.RoamingSettings.Values["SyncId"] = Windows.Storage.ApplicationData.Current.LocalSettings.Values["SyncId"]; Windows.Storage.ApplicationData.Current.RoamingSettings.Values["NewData"] = false; StorageFolder roaming = Windows.Storage.ApplicationData.Current.RoamingFolder; StorageFile SyncFile = await roaming.GetFileAsync("SyncFile.json"); string Data = await FileIO.ReadTextAsync(SyncFile); SyncClass SyncListJSON = JsonConvert.DeserializeObject <SyncClass>(Data); foreach (var item in SyncListJSON.Sync) { DataAccess.AddDataS(item.UrlJSON, item.HeaderJSON); } ApplicationData.Current.RoamingSettings.Values["NewData"] = false; await SyncFile.DeleteAsync(); } else { StorageFolder roaming = Windows.Storage.ApplicationData.Current.RoamingFolder; try { StorageFile SyncFile = await roaming.CreateFileAsync("SyncFile.json", CreationCollisionOption.FailIfExists); } catch { } } // } /* catch * { * ApplicationData.Current.RoamingSettings.Values["NewData"] = false; * StorageFolder roaming = Windows.Storage.ApplicationData.Current.RoamingFolder; * try * { * StorageFile SyncFile = await roaming.CreateFileAsync("SyncFile.json", CreationCollisionOption.FailIfExists); * } * catch * { * * } * }*/ } // } /* catch * { * Windows.Storage.ApplicationData.Current.RoamingSettings.Values["Syncing"] = false; * }*/ } } } catch { Windows.Storage.ApplicationData.Current.RoamingSettings.Values["Syncing"] = false; } }
private async void LogIntoEquip(string username, string password, string url, bool second_attempt) { if (url.ToLower().IndexOf("https://") != 0) { await DisplayAlert("Error", "Please check the url, there is no http present", "OK"); } else { string returnedData = ""; try { url_passed = url; ActivityIndicator.IsRunning = true; ActivityIndicator.IsVisible = true; returnedData = await SyncClass.API_Login(username.Trim(), password.Trim(), url.Trim()); ActivityIndicator.IsRunning = false; ActivityIndicator.IsVisible = false; //check if data is erroroneous var ParsedLoginData = JsonConvert.DeserializeObject <List <LoginDataClass> >(returnedData); //stores login, user and password to Application storage Application.Current.Properties["url"] = url; Application.Current.Properties["user"] = username; Application.Current.Properties["password"] = password; Application.Current.Properties["UserID"] = ParsedLoginData[0].UserID; //Store login data to variables to be used to sore to database var Servertime_ = ParsedLoginData[0].ServerTime.ToString(); var UserID_ = ParsedLoginData[0].UserID; var RoleID_ = ParsedLoginData[0].RoleID; var AllowDup_ = ParsedLoginData[0].AllowDuplicateBarcode.ToString(); var eQuipVer_ = ParsedLoginData[0].eQuipVersion; var Framework_ = ParsedLoginData[0].Framework; var RequiredFields_ = JsonConvert.SerializeObject(ParsedLoginData[0].RequiredFields); var MobileSites_ = ParsedLoginData[0].GetMobileSites(); var Permissions = JsonConvert.SerializeObject(ParsedLoginData[0].Permissions); var LoginData = new List <LoginDbTable> { new LoginDbTable { ServerTime = Servertime_, UserID = UserID_, RoleID = RoleID_.ToString(), AllowDuplicateBarcode = AllowDup_, eQuipVersion = eQuipVer_, Framework = Framework_, RequiredFields = RequiredFields_, MobileSites = MobileSites_, LastSyncDate = _LastSyncDate.Text, Permissions = Permissions } }; //Adds data to storage //check if value alredy present, then update //https://components.xamarin.com/gettingstarted/sqlite-net foreach (var loginRecord in LoginData) { //TODO //Change it so that it checks for specific parameter var query = Database.Login.GetTableData(_connection); //QueryValuations(_connection, LoginData[0]); if (query.Count() > 0) { if (loginRecord.UserID == query.First().UserID&& loginRecord.MobileSites == query.First().MobileSites) { //Same user is logging in //loginRecord.Id = query.First().Id; Database.Login.Update(_connection, loginRecord);// _connection.Update(loginRecord); if (!second_attempt) { await DisplayAlert("Ok", "Same user logging in : " + loginRecord.ServerTime, "Ok"); } await Application.Current.SavePropertiesAsync(); await Navigation.PushAsync(new SyncPage(_connection, UserID_, url_passed)); } else { //Different user logging in var AssetsToUpdate = CheckforSyncData(); if (AssetsToUpdate) { await DisplayAlert("Warning", "New user. There is data that has not been Synced. Sync before continuing", "Ok"); } else { //clear database and login with new user data if (second_attempt) { await Navigation.PushAsync(new SyncPage(_connection, UserID_, url_passed)); } else { await DisplayAlert("Alert", "Different user/mobile sites logging in. Clearing data for login", "Ok"); Reinitialize(true); } } } } else { //Completely new user Database.Login.Insert(_connection, loginRecord);//_connection.Insert(loginRecord); if (!second_attempt) { await DisplayAlert("Ok", "No data present, inserting Data: " + loginRecord.ServerTime, "Ok"); } await Navigation.PushAsync(new SyncPage(_connection, UserID_, url_passed)); } } } catch (Exception e) { try { DependencyService.Get <IError>().SendRaygunError(e, Application.Current.Properties["user"].ToString() ?? "unsynced", Application.Current.Properties["url"].ToString() ?? "unsynced", null); //TODO - send raygun Error ActivityIndicator.IsRunning = false; ActivityIndicator.IsVisible = false; if (e is LoginException) { await DisplayAlert("Error", e.Message, "OK"); LoginPassWord.Text = ""; } else if (e.Message == "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.") { LoginUrl.Text = LoginUrl.Text.Replace("http", "https"); LogIntoEquip(LoginUserName.Text, LoginPassWord.Text, LoginUrl.Text, second_attempt); } else { await DisplayAlert("Error", e.Message + " Please check the url or connection.", "OK"); } } catch (Exception) { } } } }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); var medicalRoomDefinition = BlockDefinition as MyMedicalRoomDefinition; MyStringHash resourceSinkGroup; if (medicalRoomDefinition != null) { m_idleSound = new MySoundPair(medicalRoomDefinition.IdleSound); m_progressSound = new MySoundPair(medicalRoomDefinition.ProgressSound); resourceSinkGroup = MyStringHash.GetOrCompute(medicalRoomDefinition.ResourceSinkGroup); } else { m_idleSound = new MySoundPair("BlockMedical"); m_progressSound = new MySoundPair("BlockMedicalProgress"); resourceSinkGroup = MyStringHash.GetOrCompute("Utility"); } m_rechargeSocket = new MyRechargeSocket(); NeedsUpdate = MyEntityUpdateEnum.EACH_10TH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME; SteamUserId = (objectBuilder as MyObjectBuilder_MedicalRoom).SteamUserId; if (SteamUserId != 0) //backward compatibility { MyPlayer controller = Sync.Players.GetPlayerById(new MyPlayer.PlayerId(SteamUserId)); if (controller != null) { IDModule.Owner = controller.Identity.IdentityId; IDModule.ShareMode = MyOwnershipShareModeEnum.Faction; } } SteamUserId = 0; m_takeSpawneeOwnership = (objectBuilder as MyObjectBuilder_MedicalRoom).TakeOwnership; m_setFactionToSpawnee = (objectBuilder as MyObjectBuilder_MedicalRoom).SetFaction; SyncObject = new SyncClass(this); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; InitializeConveyorEndpoint(); SinkComp = new MyResourceSinkComponent(); SinkComp.Init( resourceSinkGroup, MyEnergyConstants.MAX_REQUIRED_POWER_MEDICAL_ROOM, () => (Enabled && IsFunctional) ? SinkComp.MaxRequiredInput : 0f); SinkComp.IsPoweredChanged += Receiver_IsPoweredChanged; SinkComp.Update(); AddDebugRenderComponent(new MyDebugRenderComponentDrawPowerReciever(SinkComp, this)); if (this.CubeGrid.CreatePhysics) Components.Add<MyRespawnComponent>(new MyRespawnComponent()); }
public static void Main() { SyncClass firstApp = new SyncClass(); firstApp.SycInitialization(); }