public void RenderTile(TerrainElement element, SpriteBatch sprites, int ix, int iy, float x, float originX, Color tint) { float tileX = ix * TileSize - ((x) * TileSize) % TileSize; float tileY = iy * TileSize; sprites.Draw(element.Image.SafeGetImage(), new Rectangle((int)tileX, (int)tileY, TileSize, TileSize), element.Image.SourceRect, tint); }
// Use this for initialization void Start() { ManagerGame = Manager.GetComponent("GameManager") as GameManager; yandere = gameObject.GetComponent("MeshRenderer") as MeshRenderer; if (editorMode == false) { blocks = new byte[SizeX, SizeY]; mesh = GetComponent <MeshFilter> ().mesh; col = GetComponent <MeshCollider> (); Minerals.Add(TerrainElement.CreateInstance(3, "gold", 0.65f, 400, 70)); Minerals.Add(TerrainElement.CreateInstance(4, "silver", 0.55f, 250, 70)); Minerals.Add(TerrainElement.CreateInstance(5, "bronze", 0.0f, 150, 200)); Minerals.Add(TerrainElement.CreateInstance(6, "diamond", 0.80f, 200, 70)); Minerals.Add(TerrainElement.CreateInstance(7, "iron", 0.25f, 600, 200)); //StartCoroutine(initialize()); GenTerrain(blocks, SizeX, SizeY); BuildMesh(); UpdateMesh(); //StartCoroutine(FadeMaterial()); } else { blocks = new byte[EditorSizeX, EditorSizeY]; mesh = GetComponent <MeshFilter> ().mesh; col = GetComponent <MeshCollider> (); GenEditorTerrain(blocks, EditorSizeX, EditorSizeY); BuildMesh(); UpdateMesh(); } }
public static bool IsVisibleTerrainElement(TerrainElement element) { if (IsVisibleAABB(element)) { /*if (!instance.cullTerrainElements) * { * return true; * } * if (element.colliders != null && element.colliders.Count > 0) * { * foreach (Collider collider in element.colliders) * { * bool result = IsVisibleCollider(collider); * if(result) * { * return true; * } * } * return false; * } * else*/ { return(true); } } return(false); }
public void CreateAssets() { Tiles = AssetManager.GetContentTexture(ContentPaths.Terrain.terrain_tiles); Substrate = new TerrainElement { Image = new NamedImageFrame(ContentPaths.Terrain.terrain_tiles, 32, 3, 1), Name = "Rock" }; Soil = new TerrainElement { Image = new NamedImageFrame(ContentPaths.Terrain.terrain_tiles, 32, 2, 0), Name = "Dirt" }; Grass = new TerrainElement { Image = new NamedImageFrame(ContentPaths.Terrain.terrain_tiles, 32, 3, 0), Name = "Grass" }; Lava = new TerrainElement { Image = new NamedImageFrame(ContentPaths.Terrain.terrain_tiles, 32, 0, 7), Name = "Lava" }; Cave = new TerrainElement { Image = new NamedImageFrame(ContentPaths.Terrain.terrain_tiles, 32, 1, 0), Name = "Rock2" }; Ores = new List <TerrainElement> { new TerrainElement { Image = new NamedImageFrame(ContentPaths.Terrain.terrain_tiles, 32, 2, 11), Name = "Gold", SpawnScale = 0.05f, SpawnThreshold = 0.9f }, new TerrainElement { Image = new NamedImageFrame(ContentPaths.Terrain.terrain_tiles, 32, 3, 11), Name = "Mana", SpawnScale = 0.04f, SpawnThreshold = 0.9f } }; }
public void UpdateParameters(float dt) { //The positions of the player and monster turned to shorthand notation Vector2 pPos, mPos; pPos = PlayerManager.Instance.player.transform.position; mPos = monster.transform.position; //Update time in the current state timeInCurrentState += dt; int _currentState = anim.GetCurrentAnimatorStateInfo(0).shortNameHash; if (_currentState != currentStateNameHash) //We entered a new state, reset the time in state { timeInCurrentState = 0; currentStateNameHash = _currentState; } bool seePlayer = false; //Determine if we can see the player float distance = Vector2.Distance(pPos, mPos); if (distance < aiInfo.aggroRange) { seePlayer = true; //We see the player, but is there any obstacles between the two whose height is greater than 0? RaycastHit2D[] rayHits = Physics2D.RaycastAll(mPos, pPos - mPos, distance, 1 << LayerMask.NameToLayer("TerrainElement")); // Testing if we hit any terrain elements foreach (RaycastHit2D rh in rayHits) { TerrainElement te = rh.transform.GetComponent <TerrainElement>(); //if (te.height > 0) seePlayer = false; } } anim.SetBool("SeePlayer", seePlayer); //Attacks will be done in future, for now monster just rams into you //bool inAttackRange = distance < monsterAttachRange; //If in idle or wander state too long, it becomes bored and stops chasing if ((anim.GetCurrentAnimatorStateInfo(0).IsName("Idle") || anim.GetCurrentAnimatorStateInfo(0).IsName("Wander")) && timeInCurrentState > aiInfo.attentionSpan) { anim.SetTrigger("BoredOfState"); timeInCurrentState = 0; } //Check if dead if (monster.bodyInfo.hp <= 0) { anim.SetTrigger("HasDied"); } }
// Use this for initialization void Start() { blocks = new byte[SizeX, SizeY]; mesh = GetComponent <MeshFilter> ().mesh; col = GetComponent <MeshCollider> (); Minerals.Add(TerrainElement.CreateInstance(3, "gold", 0.65f, 400, 70)); Minerals.Add(TerrainElement.CreateInstance(4, "silver", 0.55f, 250, 70)); Minerals.Add(TerrainElement.CreateInstance(5, "bronze", 0.0f, 150, 200)); Minerals.Add(TerrainElement.CreateInstance(6, "diamond", 0.80f, 200, 70)); Minerals.Add(TerrainElement.CreateInstance(7, "iron", 0.25f, 600, 200)); GenTerrain(blocks, SizeX, SizeY); BuildMesh(); UpdateMesh(); }
private void Awake() { elementNames = new List <string>(); elementNames.Add("empty"); terrainElements = new Dictionary <string, TerrainElement>(); TerrainElement tree = new TerrainElement(Resources.Load <GameObject>("Prefabs/Tree"), 3, 3, 0); //width, height, layer TerrainElement bush = new TerrainElement(Resources.Load <GameObject>("Prefabs/Bush"), 1, 1, 0); TerrainElement grass = new TerrainElement(Resources.Load <GameObject>("Prefabs/Grass"), 1, 1, 0); elementNames.Add("tree"); terrainElements.Add("tree", tree); // seed[3] elementNames.Add("bush"); terrainElements.Add("bush", bush); // seed[2] elementNames.Add("grass"); terrainElements.Add("grass", grass); //seed[1] }
public static bool IsVisibleAABB(TerrainElement element) { Bounds bounds = element.Bounds; bool visible = IsVisibleAABB(bounds); /* if (visible) * { * RaycastHit hitInfo; * bool hit = Physics.Raycast(new Ray(camera.transform.position, bounds.center - camera.transform.position), out hitInfo, 1000); * if (hit) * { * visible = hitInfo.collider.transform.parent.gameObject == group.b; * } * }*/ return(visible); }
public void FromMapInternal(Map gameMap) { if (renderer != null) { renderer.Dispose(); } renderer = new ColoursRendererVbo(); int width = (int)gameMap.Width; int length = (int)gameMap.Length; SetMapSizes(width, length); for (int y = 0; y < length; y++) { for (int x = 0; x < width; x++) { TerrainElement tile = gameMap[x, y]; Tile mapTile = new Tile(x, y, tile.Elevation, tile.TerrainId); this[x, y] = mapTile; } } }
public Terrain2D(DwarfGame game) { Bloom = new BloomComponent(game) { Settings = BloomSettings.PresetSettings[0] }; CaveScale = 0.08f; HeightScale = 0.01f; CaveThreshold = 0.5f; LavaHeight = 0.6f; TileSize = 64; Noise = new Perlin(1928); Texture2D tiles = TextureManager.GetTexture(ContentPaths.Terrain.terrain_tiles); Substrate = new TerrainElement { Image = new ImageFrame(tiles, 32, 4, 2), Name = "Rock" }; Soil = new TerrainElement { Image = new ImageFrame(tiles, 32, 2, 0), Name = "Dirt" }; Grass = new TerrainElement { Image = new ImageFrame(tiles, 32, 3, 0), Name = "Grass" }; Lava = new TerrainElement { Image = new ImageFrame(tiles, 32, 0, 7), Name = "Lava" }; Cave = new TerrainElement { Image = new ImageFrame(tiles, 32, 1, 0), Name = "Rock2" }; Ores = new List <TerrainElement> { new TerrainElement { Image = new ImageFrame(tiles, 32, 3, 1), Name = "Gold", SpawnScale = 0.05f, SpawnThreshold = 0.9f }, new TerrainElement { Image = new ImageFrame(tiles, 32, 7, 1), Name = "Mana", SpawnScale = 0.04f, SpawnThreshold = 0.9f } }; Bloom.Initialize(); }