// レシピのそれぞれの画像出力 func makeImg(recipe recipeReader.Recipe, cfg *cfgReader.Config, layer image.Image) { layerImg := edit.Copy(&layer) place := cfg.Place for i, item := range recipe.Shape { if item != "" { //アイテムのロード imgPath := "assets/" + recipe.Img[item] + ".png" img := load.Load(imgPath) if isBlock(imgPath) { img = edit.Cube(&img) img = edit.Resize(&img, 16, 16) } //アイテムを貼り付け edit.PasteArrOffset(&layerImg, place[i], cfg.Trim[0], &img) } } //出力個数を出力 shape := recipe.Shape if recipe.Number != 0 && recipe.Number != 1 { edit.PasteNumberArrOffset(&layerImg, recipe.Number, place[len(shape)-1], cfg.Trim[0]) } //作成されるものの名前.pngで出力 output.Output("output/"+recipe.Img[shape[len(shape)-1]]+".png", &layerImg) fmt.Println("Outputed:", recipe.Img[shape[len(shape)-1]]) defer waitGroup.Done() //完了をwaitGroupに知らせる return }
// クラフト別処理 func readTypes(recipeType *recipeReader.RecipeType) { // 対応config読み込み(読み込み済みでない場合ファイルロード) config, ok := configs[recipeType.Type] if !ok { config = cfgReader.Read(recipeType.Type) configs[recipeType.Type] = config } // 対応画像読み込み(読み込み済みでない場合ファイルロード) layer, ok := layerImgs[recipeType.Type] if !ok { layer = load.Load("cfg/" + config.Gui) if config.Override != nil { for _, override := range config.Override { edit.OverrideCfg(&layer, &override) } } layer = edit.TrimArr(&layer, config.Trim) layerImgs[recipeType.Type] = layer } for _, recipe := range recipeType.Recipes { waitGroup.Add(1) //処理をカウント go makeImg(recipe, &config, layer) } return }
func loadImg() { numberImg = load.Load("assets/number/ascii.png") }