private CogitaGameInstance() { Logger.Data("Game Instance Created"); Map = new Map(); for (double x = -50; x <= 50; x++) { for (double z = -50; z <= 50; z++) { var height = ((x * x) + (z * z)) / 256.0; Map.SetBlock((long)x, (long)height, (long)z, BrickTypeEnum.Stone); Map.SetBlock((long)x, (long)height-1, (long)z, BrickTypeEnum.Stone); Map.SetBlock((long)x, (long)32, (long)z, BrickTypeEnum.Oil); } } MapCursor = new MapCursor(Map, 0, 0, 0); Player = new Player(0, 16, 0, 0, 0); }
private static bool GameObjectTouchingFloor(Map m, GameObject g) { return m.GetBlock((long)g.X, (long)(g.Y), (long)g.Z) > (byte)0 || m.GetBlock((long)(g.X - g.Radius), (long)(g.Y), (long)(g.Z - g.Radius)) > (byte)0 || m.GetBlock((long)(g.X - g.Radius), (long)(g.Y), (long)g.Z) > (byte)0 || m.GetBlock((long)(g.X - g.Radius), (long)(g.Y), (long)(g.Z + g.Radius)) > (byte)0 || m.GetBlock((long)g.X, (long)(g.Y), (long)(g.Z - g.Radius)) > (byte)0 || m.GetBlock((long)g.X, (long)(g.Y), (long)(g.Z + g.Radius)) > (byte)0 || m.GetBlock((long)(g.X + g.Radius), (long)(g.Y), (long)(g.Z - g.Radius)) > (byte)0 || m.GetBlock((long)(g.X + g.Radius), (long)(g.Y), (long)g.Z) > (byte)0 || m.GetBlock((long)(g.X + g.Radius), (long)(g.Y), (long)(g.Z + g.Radius)) > (byte)0; //var block = m.GetBlock((long)g.X, (long)(g.Y), (long)g.Z); //return block > 0; }