private Vector3 getSpritePosition(PositionComponent position, DesignationComponent designation) { Vector3 spritePosition = ViewUtil.fromModelToScene(position.position); spritePosition.z -= 0.1f; if (GameModel.localMap.blockType.getEnumValue(position.position) == BlockTypeEnum.WALL) // TODO elevate sprite on tall tiles { spritePosition.y += 0.5f; } return(spritePosition); }
private bool validateEntity(EcsEntity entity) { if (!entity.Has <PositionComponent>()) { Debug.LogWarning("designation " + entity.Get <DesignationComponent>().type.NAME + " has no PositionComponent"); return(false); } DesignationComponent designation = entity.Get <DesignationComponent>(); if (designation.type.SPRITE_NAME == null) { Debug.LogWarning("designation " + entity.Get <DesignationComponent>().type.NAME + " has null spriteName"); return(false); } return(true); }
private EcsEntity?createTaskForDesignation(DesignationComponent designation, PositionComponent position) { // TODO create job component if (designation.type.JOB.Equals(JobsEnum.MINER.name)) { Debug.Log("mining task created."); EcsEntity taskEntity = GameModel.get().taskContainer.createTask(new DigAction(position.position, designation.type)); taskEntity.Replace(new TaskJobComponent { job = JobsEnum.MINER.name }); return(taskEntity); } // switch (designation.type.NAME) { // case "cutting stairs": { // return null; // } // case "cutting downstairs": { // return null; // } // case "cutting ramp": { // return null; // } // case "digging channel": { // return null; // } // case "chopping trees": { // return null; // } // case "cutting plants": { // return null; // } // case "harvesting plants": { // return null; // } // case "building": { // return null; // } // case "hoeing": { // return null; // } // case "planting": { // return null; // } // } return(null); }
private void createSprite(EcsEntity entity) { DesignationComponent designation = entity.Get <DesignationComponent>(); PositionComponent position = entity.Get <PositionComponent>(); // create sprite on scene GameObject go = PrefabLoader.create("designation", GameView.get().mapHolder); SpriteRenderer spriteRenderer = go.GetComponent <SpriteRenderer>(); Sprite sprite = IconLoader.get("designation/" + designation.type.SPRITE_NAME); spriteRenderer.sprite = sprite; float width = go.GetComponent <RectTransform>().rect.width; float scale = width / sprite.rect.width * sprite.pixelsPerUnit; spriteRenderer.transform.localScale = new Vector3(scale, scale, 1); go.transform.localPosition = getSpritePosition(position, designation); // add visual component entity.Replace(new DesignationVisualComponent { spriteRenderer = spriteRenderer }); }