/// <summary> /// Changes the size of the space visible on the real device. /// </summary> public void ResizeVisible(int w, int h) { VisibleWidth = w; VisibleHeight = h; _visible = GridStatus.CreateArray(w, h); ForceRepaint(); }
public GridStatus Validate(ModConfig config) { if (config.SkipNPCGrids && IsNPCGrid()) { gridStatus = GridStatus.NPC; return(gridStatus); } if (config.CheckHasOwner && !HasOwner()) { gridStatus = GridStatus.NoOwner; return(gridStatus); } if (config.CheckHasPower && !HasPower()) { gridStatus = GridStatus.NoPower; return(gridStatus); } if (config.MinBlockCount != 0 && !HasMinBlocks(config.MinBlockCount)) { gridStatus = GridStatus.NotEnoughBlocks; return(gridStatus); } if (!string.IsNullOrEmpty(config.CheckDefaultName) && !HasCustomName(config.CheckDefaultName)) { gridStatus = GridStatus.DefaultName; return(gridStatus); } return(gridStatus); }
public static GridStatus[,] LoadMap(string wall_path) { GridStatus[,] list = new GridStatus[15, 20]; try { using (StreamReader sr = new StreamReader(wall_path)) { for (int i = 0; i < 20; i++) { string s = sr.ReadLine(); for (int j = 0; j < 15; j++) { if ((s[j]) == '0') { list[j, 19 - i] = GridStatus.EMPTY; } else if ((s[j]) == '1') { list[j, 19 - i] = GridStatus.WALL; } else if ((s[j]) == '2') { list[j, 19 - i] = GridStatus.VIRTUAL_WALL; } } } } } catch { Debug.LogError("File read fail! "); } return(list); }
public static void CreateBoard(bool hasSetMap) { if (!hasSetMap) { gridStatuses = new GridStatus[15, 20]; } gridCubes = new GameObject[15, 20]; for (int j = 0; j < 20; j++) { for (int i = 0; i < 15; i++) { Vector3 pos = ConvertPosToWorld(i, j); GameObject go = GameObject.Instantiate(gridPrefab, pos, Quaternion.identity); gridCubes[i, j] = go; grids[i, j] = go.GetComponent <Grid>(); go.transform.parent = gridCubesContainer; grids[i, j].InitPos(i, j); if (hasSetMap) { grids[i, j].UpdateStatus(gridStatuses[i, j]); } } } // Borders for (int i = 0; i < 17; i++) { for (int m = 0; m < 2; m++) { for (int k = 0; k < 3; k++) { Vector3 pos = new Vector3(referencePos.x + 1 - m * 21, k, referencePos.y - 1 + i); GameObject go = GameObject.Instantiate(gridPrefab, pos, Quaternion.identity); go.transform.parent = gridCubeWallsContainer; } } } for (int j = 0; j < 22; j++) { for (int m = 0; m < 2; m++) { for (int k = 0; k < 3; k++) { Vector3 pos = new Vector3(referencePos.x + 1 - j, k, referencePos.y - 1 + m * 16); GameObject go = GameObject.Instantiate(gridPrefab, pos, Quaternion.identity); go.transform.parent = gridCubeWallsContainer; } } } if (hasSetMap) { hasCompleteMap = true; } else // Robot { InitRobot(); } }
/// <summary> /// Removes the monster. /// </summary> public void RemoveMonster() { if (this.status == GridStatus.MONSTER) { this.status = GridStatus.NOTHING; } }
private static Drawer CreateIconDrawer(GridModel grid, GridStatus status) { logger.Debug("Creating IconDrawer consisting of: SimpleIconDrawer, SimpleGridDrawer"); ButtonBaseDrawer drawer = new SimpleIconDrawer(); return(new SimpleGridDrawer(grid, status, drawer)); }
public void setPositionStatus(int x, int y, GridStatus status) { if ((x > this.gridSize - 1) || (y > this.gridSize - 1)) { throw new Exception("Max Position should be less than " + this.gridSize); } this.gridArray[x, y].GridStatus = status; }
private static Drawer CreateBorderDrawer(GridModel grid, GridStatus status) { logger.Debug("Creating BorderDrawer consisting of: AlignedDrawer, GridBorderDrawer"); ButtonBaseDrawer drawer = new AlignedDrawer(); return(new GridBorderDrawer(grid, status, drawer)); }
void InitialGridScan() { // Save before? MyVisualScriptLogicProvider.SendChatMessage("Scanning for offending grids..", "SERVER", 0, "Red"); MyAPIGateway.Entities.GetEntities(entityList); foreach (var entity in entityList) { IMyCubeGrid grid = entity as IMyCubeGrid; if (grid == null) { continue; } if (BroadcastManager.ContainsEntityId(grid.EntityId)) { continue; } GridValidator gridValidator = new GridValidator(grid.EntityId); GridStatus gridStatus = gridValidator.Validate(Config); if (gridStatus > GridStatus.Marked) { MyVisualScriptLogicProvider.SendChatMessage("Tracking [" + grid.CustomName + "] - " + Enum.GetName(typeof(GridStatus), gridStatus), "SERVER", 0); if (Config.AlertOwner) { BroadcastInfo broadcastInfo = gridValidator.GridToBroadcastInfo(); if (broadcastInfo.Location == Vector3D.Zero) { continue; } BroadcastError err = BroadcastManager.AddBroadcastInfo(broadcastInfo, false); if (err == BroadcastError.Ok) { double timeInMinutes = (double)Config.GracePeriod / 60.0; MyVisualScriptLogicProvider.SendChatMessage( $"Warning [{grid.CustomName}] may be BROADCAST in {timeInMinutes} minutes." + $" If this is not intentional please review the grid policy and correct immediately.", "SERVER", gridValidator.ownerId, "Red"); } } trackedGrids.Add(grid.EntityId); } } MyVisualScriptLogicProvider.SendChatMessage($"Tracking {trackedGrids.Count} grids for possible broadcast", "SERVER", 0, "Red"); entityList.Clear(); }
private static Drawer BuildDrawer(GridModel grid, GridStatus status) { try { return(DrawerFactory.CreateDrawer(grid, status)); } catch (Exception e) { string msg = String.Format("Building drawer for grid '{0}' failed!", grid.Id); throw new Exception(msg, e); } }
public GridEntity(Rectangle rect, GridBoxType type, GridStatus status, bool isSelected, bool isMouseover) { this.Rect = rect; this.IsMouseover = isMouseover; this.IsSelected = isSelected; this.type = type; this.status = status; color = new Color(0, 170, 0); }
public override GridStatus Execute() { var status = new GridStatus(); if (stack.Count == 0) { status.Finished = true; return(status); } NodePath path = null; while (stack.Count > 0 && (path == null || path.Node.Visited)) { path = stack.Pop(); } if (path == null) { status.Finished = true; return(status); } path.Node.Visited = true; var connections = GetConnectedNodes(path.Node); var target = connections.FirstOrDefault(c => c.Type == NodeType.TARGET); //TARGET FOUND if (target != null) { status.Finished = true; status.SolvedPath = GeneratePath(new NodePath() { Node = target, Parent = path }); return(status); } else { foreach (var connectedNode in connections) { if (!connectedNode.Visited && connectedNode.Type == NodeType.EMPTY) { stack.Push(new NodePath() { Node = connectedNode, Parent = path }); } } } return(status); }
private static Drawer CreateAlignedDrawer(GridModel grid, GridStatus status) { logger.Debug("Creating AlignedDrawer consisting of: BackgroundColorDrawer, AlignedDrawer, SimpleGridDrawer"); ButtonBaseDrawer drawer; drawer = new AlignedDrawer(); drawer = new BorderDrawer(drawer); return(new SimpleGridDrawer(grid, status, drawer)); }
private static Drawer CreateDevDrawer(GridModel grid, GridStatus status) { logger.Debug("Creating DevelopmentDrawer..."); ButtonBaseDrawer drawer = new AlignedDrawer(); return(new GridBorderDrawer(grid, status, drawer)); //return new GridBorderGapDrawer(grid, status, drawer); //return new GridBorderMarginDrawer(grid, status, drawer); }
/// <summary> /// Changes the size of the virtual space. /// </summary> public void Resize(int w, int h) { var newGrid = GridStatus.CreateArray(w, h); GridStatus.CopyData(_grid, newGrid); // TODO: resizes could be dangerous. may need threadsafing or don't allow resize // keep new settings Width = w; Height = h; _grid = newGrid; }
public BroadcastInfo(int blockCount, long entityId, string gridname, bool isStatic, Vector3D location, long ownerId, string ownerName, GridStatus status) { BlockCount = blockCount; EntityId = entityId; GridName = gridname; IsStatic = isStatic; Location = location; MyGps = new HashSet <IMyGps>(); OwnerId = ownerId; OwnerName = ownerName; TimeSinceLastPlayer = 0; Status = status; }
public void UpdateStatus(GridStatus gs) { this.gs = gs; switch (gs) { case GridStatus.UNEXPLORED: confidence = 0; break; case GridStatus.EMPTY: confidence = -9000; break; case GridStatus.WALL: confidence = 9000; break; //case GridStatus.IMAGE: obstacle.SetActive(true); break; } }
public static bool Contains2D(Grid[,] arr2d, GridStatus value) { for (int i = 0; i < arr2d.GetLength(0); i++) { for (int j = 0; j < arr2d.GetLength(1); j++) { if (arr2d[i, j].gs.Equals(value)) { return(true); } } } return(false); }
/// <summary> /// Creates a 2D array of a given size with every cell /// initialized to an object. /// </summary> public static GridStatus[,] CreateArray(int w, int h) { var ret = new GridStatus[w, h]; var maxX = ret.GetUpperBound(0); var maxY = ret.GetUpperBound(1); for (int x = 0; x <= maxX; x++) { for (int y = 0; y <= maxY; y++) { ret[x, y] = new GridStatus(); } } return(ret); }
public void UpdateStatus(int delta) { confidence += delta; if (confidence >= 5) { gs = GridStatus.WALL; } else if (confidence < 0) { gs = GridStatus.EMPTY; } else { //gs = GridStatus.UNEXPLORED; } }
public GridValidator(long gridEntityId) { entityId = gridEntityId; entityName = MyVisualScriptLogicProvider.GetEntityName(entityId); entity = MyVisualScriptLogicProvider.GetEntityByName(entityName); if (string.IsNullOrEmpty(entityName) == true) { entityName = entityId.ToString(); MyVisualScriptLogicProvider.SetName(entityId, entityName); } gridStatus = GridStatus.Ok; ownerId = MyVisualScriptLogicProvider.GetOwner(entityName); }
public static void ClearBoard() { // remove all prefabs from arena try { for (int i = 0; i < gridCubes.GetLength(0); i++) { for (int j = 0; j < gridCubes.GetLength(1); j++) { GameObject.Destroy(gridCubes[i, j].GetComponent <Grid>().gameObject); } } gridStatuses = new GridStatus[15, 20]; grids = new Grid[15, 20]; } catch { } hasCompleteMap = false; }
/// <summary> /// Toggles the mirror. /// </summary> private void ToggleMirror() { if (this.status == GridStatus.NOTHING && StageManager.StatusPanel.CanRequestMirror) { if (this.mirror == null) { this.mirror = this.SpawnMirror(); } else { this.mirror.transform.Rotate(new Vector3(0, 0, -90)); this.mirror.SetActive(true); } StageManager.StatusPanel.RequestMirror(); this.status = GridStatus.MIRROR_LEFT_UP; SoundManager.PlaySEToggleMirror(1); } else if (this.status == GridStatus.MIRROR_LEFT_UP) { this.mirror.transform.Rotate(new Vector3(0, 0, -90)); this.status = GridStatus.MIRROR_RIGHT_UP; SoundManager.PlaySEToggleMirror(2); } else if (this.status == GridStatus.MIRROR_RIGHT_UP) { this.mirror.transform.Rotate(new Vector3(0, 0, -90)); this.status = GridStatus.MIRROR_RIGHT_DOWN; SoundManager.PlaySEToggleMirror(3); } else if (this.status == GridStatus.MIRROR_RIGHT_DOWN) { this.mirror.transform.Rotate(new Vector3(0, 0, -90)); this.status = GridStatus.MIRROR_LEFT_DOWN; SoundManager.PlaySEToggleMirror(4); } else if (this.status == GridStatus.MIRROR_LEFT_DOWN) { this.mirror.SetActive(false); this.status = GridStatus.NOTHING; StageManager.StatusPanel.RevokeMirror(); this.AddLight(true); SoundManager.PlaySEToggleMirror(0); } }
void Awake() { status = GridStatus.Null; _checkpointArray = transform.GetComponentsInChildren<Checkpoint>(); for( int i = 0 ;i < _checkpointArray.Length; i++ ) { //Debug.Log( "New checkpoint:" + _checkpointArray[ i ].name ); _checkpointArray[ i ].type = Checkpoint.Type.Failure; _checkpointArray[ i ].manager = this; } SetupCheckpoints(); }
public async Task GridStatusCall(string payload, GridStatus expected) { var mockHttp = new MockHttpMessageHandler(); mockHttp .When("http://localhost/api/system_status/grid_status") .Respond("application/json", payload); var mockClient = mockHttp.ToHttpClient(); mockClient.BaseAddress = new Uri("http://localhost"); var gatewayClient = new GatewayClient(mockClient); var gridStatus = await gatewayClient.GetGridStatus(); Assert.AreEqual(expected.GridServicesActive, gridStatus.GridServicesActive); Assert.AreEqual(expected.GridStatusGridStatus, gridStatus.GridStatusGridStatus); }
static void TrackedGridScan() { int count = 0; MyVisualScriptLogicProvider.SendChatMessage("Checking for grids to broadcast..", "SERVER", 0, "Red"); List <long> gridsToTrash = new List <long>(); foreach (long entityId in trackedGrids) { // Validating twice, it maybe better to instead listen for events on the grid GridValidator gridValidator = new GridValidator(entityId); GridStatus gridStatus = gridValidator.Validate(Config); if (gridStatus > GridStatus.Marked) { BroadcastInfo broadcastInfo = gridValidator.GridToBroadcastInfo(); BroadcastError err = BroadcastManager.AddBroadcastInfo(broadcastInfo, true); switch (err) { case BroadcastError.NotEnoughBlocks: case BroadcastError.NotEnoughFatBlocks: case BroadcastError.TooFarFromPlayers: MyVisualScriptLogicProvider.SendChatMessage($"Trashing {broadcastInfo} {Enum.GetName(typeof(BroadcastError), err)}", "SERVER", 0, "Red"); gridsToTrash.Add(entityId); break; case BroadcastError.TooCloseToPlayers: MyVisualScriptLogicProvider.SendChatMessage($"Ignoring {broadcastInfo} {Enum.GetName(typeof(BroadcastError), err)}", "SERVER", 0, "Red"); break; default: MyVisualScriptLogicProvider.SendChatMessage($"Broadcasting {broadcastInfo}", "SERVER", 0, "Red"); count++; break; } } } Util.TrashGrids(gridsToTrash); trackedGrids.Clear(); }
protected virtual void InitButtons(GridStatus status) { buttonDict = new Dictionary <string, DrawableButton>(); foreach (var btn in model) { buttonDict[btn.Id] = new DrawableButton(btn, status[btn.Id]); } buttonGrid = new DrawableButton[Cols, Rows]; for (int x = 0; x < Cols; x++) { for (int y = 0; y < Rows; y++) { if (model[x, y] != null) { buttonGrid[x, y] = buttonDict[model[x, y].Id]; // don't create objects again } } } }
public static Drawer CreateDrawer(GridModel grid, GridStatus status) { //return CreateDevDrawer(grid, status); // TODO B4RELEASE: create the right drawer ButtonBaseDrawer buttonDrawer = new AlignedDrawer(); string type = grid.Style.DrawerType; switch (type) { case "border": return(new GridBorderDrawer(grid, status, buttonDrawer)); case "border-gap": return(new GridBorderGapDrawer(grid, status, buttonDrawer)); case "border-margin": return(new GridBorderMarginDrawer(grid, status, buttonDrawer)); default: throw new Exception(String.Format("Drawer of type '{0}' is not implemented!", type)); } }
void Update() { InputHandler(); if (started) { if (!TickUtil.Tick()) { return; } if (!status.Finished) { status = controller.Execute(); grid = controller.grid; } else { SolutionUtil.Execute(status.SolvedPath, grid); } } RenderGrid(); }
public void OnFailureCheckpoint() { status = GridStatus.Failure; manager.OnFailureCheckpoint( this ); }
public void OnSuccesGrid() { stopFlag = true; status = GridStatus.Null; manager.HandleSuccesGrid( this ); }
public string LightInfo() { string s = ""; for (int i=0; i<4; i++) { s+=AllLineStatus[i]; s+=","; } return s; }
public OneGrid() { this.gridStatus = GridStatus.Blank; }
/// <summary> /// Adds the home. /// </summary> public void AddHome() { this.status = GridStatus.HOME; }