/// <summary> /// Fixed: /// </summary> public static string Restore(SiteSettings ss) { if (ss.CanManageSite()) { var selector = new GridSelector(); var count = 0; if (selector.All) { count = Restore(ss, selector.Selected, negative: true); } else { if (selector.Selected.Any()) { count = Restore(ss, selector.Selected); } else { return(Messages.ResponseSelectTargets().ToJson()); } } Summaries.Synchronize(ss); return(""); } else { return(Messages.ResponseHasNotPermission().ToJson()); } }
private bool PlantAction(Inventory userInventory) { GridSelector gridSelector = userInventory.GetComponent <GridSelector>(); Vector3Int selectionLocation = gridSelector.GetGridSelectionPosition(); Vector3 loc = gridSelector.GetGridWorldSelectionPosition(); RaycastHit2D[] findObjects = Physics2D.BoxCastAll(loc, gridManager.Grid.cellSize * 0.5f, 0, Vector2.zero, 50); // In case there is already a crop on this location, return. for (int i = 0; i < findObjects.Length; i++) { if (findObjects[i].transform.CompareTag("Crop")) { return(false); } } if (gridManager.HasDirtHole(selectionLocation)) { GameObject gameObject = plantablePrefab.Retrieve <GameObject>(); gameObject.transform.position = gridManager.GetWorldLocation(selectionLocation); return(true); } else { return(false); } }
public override IEnumerator ItemUseAction(Inventory userInventory, int itemIndex) { GridSelector gridSelector = userInventory.GetComponent <GridSelector>(); if (gridManager == null) { gridManager = gridManagerReference.Reference?.GetComponent <GridManager>(); } if (gridManager != null) { if (weatherEvent.HasParameter) { currentWeather = weatherEvent.LastParameter; } } if (gridSelector != null && gridManager != null) { Vector3Int selectionLocation = gridSelector.GetGridSelectionPosition(); userInventory.GetComponent <Aimer>().LookAt(gridManager.Grid.CellToWorld(selectionLocation)); Mover getMover = userInventory.GetComponent <Mover>(); getMover?.FreezeMovement(true); BodyAnimation[] getEntityAnimator = userInventory.GetComponentsInChildren <BodyAnimation>(); float animationTime = 0; for (int i = 0; i < getEntityAnimator.Length; i++) { animationTime = getEntityAnimator[i].ApplySmashAnimation(speed, userInventory.GetItem(itemIndex).Data.Icon); } gridSelector.SetFrozen(true); yield return(new WaitForSeconds(animationTime * 0.5f)); if (!gridManager.HasDirtHole(selectionLocation) && !gridManager.HasWater(selectionLocation) && gridManager.HasDirt(selectionLocation)) { gridManager.SetDirtHoleTile(selectionLocation); if (currentWeather == EWeather.Rainy) { gridManager.SetWateredDirtTile(selectionLocation); } onSuccess.Invoke(); } yield return(new WaitForSeconds(animationTime * 0.5f)); getMover.FreezeMovement(false); gridSelector.SetFrozen(false); } }
private void Awake() { localFillTimeout = .1f; elapsed = fillTimeout; colorScheme = ColorScheme.instance; gameController = GameController.instance; colorPicker = GetComponent <ColorPicker>(); gridSelector = new GridSelector(grid); gridSelector.bombSelected += makeBoom; }
public static string DeleteHistory(IContext context, SiteSettings ss, long wikiId) { if (!Parameters.History.PhysicalDelete) { return(Error.Types.InvalidRequest.MessageJson(context: context)); } if (context.CanManageSite(ss: ss)) { var selector = new GridSelector(context: context); var selected = selector .Selected .Select(o => o.ToInt()) .ToList(); var count = 0; if (selector.All) { count = DeleteHistory( context: context, ss: ss, wikiId: wikiId, selected: selected, negative: true); } else { if (selector.Selected.Any()) { count = DeleteHistory( context: context, ss: ss, wikiId: wikiId, selected: selected); } else { return(Messages.ResponseSelectTargets(context: context).ToJson()); } } return(Histories( context: context, ss: ss, wikiId: wikiId, message: Messages.HistoryDeleted( context: context, data: count.ToString()))); } else { return(Messages.ResponseHasNotPermission(context: context).ToJson()); } }
public static HtmlBuilder GridRows( this HtmlBuilder hb, Context context, SiteSettings ss, IEnumerable <Column> columns, EnumerableRowCollection <DataRow> dataRows, FormDataSet formDataSet = null, GridSelector gridSelector = null, bool editRow = false, bool checkRow = true) { dataRows.ForEach(dataRow => hb.Tr( context: context, ss: ss, dataRow: dataRow, columns: columns, gridSelector: new GridSelector(context), editRow: editRow, checkRow: checkRow, idColumn: Rds.IdColumn(ss.ReferenceType), formDataSet: formDataSet)); return(hb); }
public override IEnumerator ItemUseAction(Inventory userInventory, int itemIndex) { InventoryItem getInventoryItem = userInventory.GetItem(itemIndex); GridSelector gridSelector = userInventory.GetComponent <GridSelector>(); if (gridManager == null) { gridManager = gridManagerReference.Reference?.GetComponent <GridManager>(); } if (gridSelector != null && gridManager != null) { Vector3Int location = gridSelector.GetGridSelectionPosition(); userInventory.GetComponent <Aimer>().LookAt(gridManager.Grid.CellToWorld(location)); Mover getMover = userInventory.GetComponent <Mover>(); getMover?.FreezeMovement(true); BodyAnimation[] getEntityAnimator = userInventory.GetComponentsInChildren <BodyAnimation>(); float animationTime = 0; for (int i = 0; i < getEntityAnimator.Length; i++) { animationTime = getEntityAnimator[i].ApplyDropAnimation(speed, userInventory.GetItem(itemIndex).Data.Icon); } gridSelector.SetFrozen(true); yield return(new WaitForSeconds(animationTime * 0.5f)); if (!gridManager.HasWater(location)) { if (!gridManager.HasWateredDirt(location) && gridManager.HasDirtHole(location)) { ItemEnergy currentItemEnergy = getInventoryItem.Energy; if (currentItemEnergy.current >= energyCost) { gridManager.SetWateredDirtTile(location); float newEnergy = currentItemEnergy.current - energyCost; if (newEnergy < energyCost) { newEnergy = 0; } getInventoryItem.Energy = new ItemEnergy() { min = currentItemEnergy.min, max = currentItemEnergy.max, current = newEnergy }; // Also do a sphere cast to ensure that any Day Count Listener is no longer frozen // It becomes frozen when there is no watered ground, meaning the plant growth will stagnate. Vector3 loc = gridSelector.GetGridWorldSelectionPosition(); RaycastHit2D[] findObjects = Physics2D.BoxCastAll(loc, gridManager.Grid.cellSize * 0.5f, 0, Vector2.zero, 50); for (int i = 0; i < findObjects.Length; i++) { if (findObjects[i].transform.CompareTag("Crop")) { findObjects[i].transform?.GetComponent <DayCountDownListener>()?.FreezeCountDown(false); } } OnWateredGround.Invoke(); userInventory.ReloadItemSlot(itemIndex); } } } else { ItemEnergy currentItemEnergy = getInventoryItem.Energy; getInventoryItem.Energy = new ItemEnergy() { min = currentItemEnergy.min, max = currentItemEnergy.max, current = Mathf.Clamp(currentItemEnergy.current + waterEnergyRecovery, currentItemEnergy.min, currentItemEnergy.max) }; OnObtainedWater.Invoke(); userInventory.ReloadItemSlot(itemIndex); } yield return(new WaitForSeconds(animationTime * 0.5f)); getMover.FreezeMovement(false); gridSelector.SetFrozen(false); } }
public static HtmlBuilder Tr( this HtmlBuilder hb, Context context, SiteSettings ss, DataRow dataRow, IEnumerable <Column> columns, bool editRow, bool checkRow, string idColumn, GridSelector gridSelector = null, FormDataSet formDataSet = null) { var dataId = dataRow.Long(idColumn); var dataVersion = dataRow.Int("Ver"); var isHistory = dataRow.Bool("IsHistory"); var EditColumns = !isHistory ? columns.ToDictionary( column => column.ColumnName, column => EditColumn( context: context, column: column)) : new Dictionary <string, bool>(); return(hb.Tr( attributes: new HtmlAttributes() .Class("grid-row") .DataId(dataId.ToString()) .DataVer(dataVersion) .DataLatest(1, _using: !isHistory) .Add(name: "data-history", value: "1", _using: isHistory), action: () => { if (editRow) { hb.Td(action: () => hb .Button( title: Displays.Reload(context: context), controlCss: "button-icon", onClick: $"$p.getData($(this)).Id={dataId};$p.send($(this));", icon: "ui-icon-refresh", action: "ReloadRow", method: "post", _using: !isHistory) .Button( title: Displays.Copy(context: context), controlCss: "button-icon", onClick: $"$p.getData($(this)).OriginalId={dataId};$p.send($(this));", icon: "ui-icon-copy", action: "CopyRow", method: "post", _using: !isHistory && context.CanCreate(ss: ss)) .Hidden( controlId: $"{ss.ReferenceType}_Timestamp_{ss.SiteId}_{dataId}", css: "timestamp", value: dataRow .Field <DateTime>("UpdatedTime") .ToString("yyyy/M/d H:m:s.fff"))); } else if (checkRow) { hb.Td(action: () => hb .CheckBox( controlCss: "grid-check", _checked: gridSelector.Checked(dataId), dataId: dataId.ToString(), _using: !isHistory)); } var depts = new Dictionary <string, DeptModel>(); var groups = new Dictionary <string, GroupModel>(); var registrations = new Dictionary <string, RegistrationModel>(); var users = new Dictionary <string, UserModel>(); var sites = new Dictionary <string, SiteModel>(); var issues = new Dictionary <string, IssueModel>(); var results = new Dictionary <string, ResultModel>(); columns.ForEach(column => { var key = column.TableName(); switch (column.SiteSettings?.ReferenceType) { case "Depts": var deptModel = depts.Get(key); if (deptModel == null) { deptModel = new DeptModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias); depts.Add(key, deptModel); ss.SetColumnAccessControls( context: context, mine: deptModel.Mine(context: context)); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, deptModel: deptModel); break; case "Groups": var groupModel = groups.Get(key); if (groupModel == null) { groupModel = new GroupModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias); groups.Add(key, groupModel); ss.SetColumnAccessControls( context: context, mine: groupModel.Mine(context: context)); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, groupModel: groupModel); break; case "Registrations": var registrationModel = registrations.Get(key); if (registrationModel == null) { registrationModel = new RegistrationModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias); registrations.Add(key, registrationModel); ss.SetColumnAccessControls( context: context, mine: registrationModel.Mine(context: context)); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, registrationModel: registrationModel); break; case "Users": var userModel = users.Get(key); if (userModel == null) { userModel = new UserModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias); users.Add(key, userModel); ss.SetColumnAccessControls( context: context, mine: userModel.Mine(context: context)); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, userModel: userModel); break; case "Sites": var siteModel = sites.Get(key); if (siteModel == null) { siteModel = new SiteModel( context: context, dataRow: dataRow, formData: editRow ? formDataSet?.FirstOrDefault(o => o.Id == dataRow.Long("SiteId"))?.Data : null, tableAlias: column.TableAlias); sites.Add(key, siteModel); ss.SetColumnAccessControls( context: context, mine: siteModel.Mine(context: context)); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, siteModel: siteModel); break; case "Issues": var issueModel = issues.Get(key); if (issueModel == null) { issueModel = new IssueModel( context: context, ss: column.SiteSettings, dataRow: dataRow, formData: editRow ? formDataSet?.FirstOrDefault(o => o.Id == dataRow.Long("IssueId"))?.Data : null, tableAlias: column.TableAlias); issues.Add(key, issueModel); ss.SetColumnAccessControls( context: context, mine: issueModel.Mine(context: context)); } if (EditColumns.Get(column.ColumnName)) { hb.Td(action: () => hb.Field( context: context, column: column, issueModel: issueModel, ss: column.SiteSettings, controlOnly: true, idSuffix: issueModel.IdSuffix())); } else { hb.TdValue( context: context, ss: column.SiteSettings, column: column, issueModel: issueModel); } break; case "Results": var resultModel = results.Get(key); if (resultModel == null) { resultModel = new ResultModel( context: context, ss: column.SiteSettings, dataRow: dataRow, formData: editRow ? formDataSet?.FirstOrDefault(o => o.Id == dataRow.Long("ResultId"))?.Data : null, tableAlias: column.TableAlias); results.Add(key, resultModel); ss.SetColumnAccessControls( context: context, mine: resultModel.Mine(context: context)); } if (EditColumns.Get(column.ColumnName)) { hb.Td(action: () => hb.Field( context: context, column: column, resultModel: resultModel, ss: column.SiteSettings, controlOnly: true, idSuffix: resultModel.IdSuffix())); } else { hb.TdValue( context: context, ss: column.SiteSettings, column: column, resultModel: resultModel); } break; } }); })); }
// Use this for initialization void Start () { overlay = this.GetComponent<GridOverlay>(); REF = this; terrain = GameObject.FindGameObjectWithTag("Terrain").GetComponent<Terrain>(); }
// Use this for initialization void Start () { overlay = this.GetComponent<GridOverlay>(); REF = this; }