func (frm *biomeEditFrame) getBiomeInfo() (BiomeInfo, bool) { id, err := strconv.ParseUint(frm.idInput.GetText(), 10, 8) if err != nil { return BiomeInfo{}, false } snow, err := strconv.ParseInt(frm.snowLineInput.GetText(), 10, 32) if err != nil { return BiomeInfo{}, false } if (snow > mcmap.ChunkSizeY) || (snow < 0) { snow = mcmap.ChunkSizeY } name := frm.nameInput.GetText() if name == "" { return BiomeInfo{}, false } col := frm.colorInput.GetColor() return BiomeInfo{ ID: mcmap.Biome(id), SnowLine: int(snow), Name: name, Color: fmt.Sprintf("#%02x%02x%02x", col.Red()>>8, col.Green()>>8, col.Blue()>>8), }, true }
func ReadBiomeInfos(r io.Reader) ([]BiomeInfo, error) { var biomes []BiomeInfo sc := bufio.NewScanner(r) for i := 1; sc.Scan(); i++ { line := sc.Text() if line == "" { continue } parts := strings.SplitN(line, "\t", 4) if len(parts) != 4 { return nil, fmt.Errorf("Line %d corrupted: Not enough parts", i) } id, err := strconv.ParseUint(parts[0], 10, 8) if err != nil { return nil, fmt.Errorf("Line %d corrupted: %s", i, err) } snow, err := strconv.ParseInt(parts[1], 10, 32) if err != nil { return nil, fmt.Errorf("Line %d corrupted: %s", i, err) } if (snow >= mcmap.ChunkSizeY) || (snow < 0) { snow = mcmap.ChunkSizeY } info := BiomeInfo{ ID: mcmap.Biome(id), SnowLine: int(snow), Color: parts[2], Name: parts[3], } biomes = append(biomes, info) } if err := sc.Err(); err != nil { return nil, err } return biomes, nil }
func (mw *MapWidget) movement(ctx *glib.CallbackContext) { if mw.gdkwin == nil { mw.gdkwin = mw.dArea.GetWindow() } arg := ctx.Args(0) mev := *(**gdk.EventMotion)(unsafe.Pointer(&arg)) var mt gdk.ModifierType if mev.IsHint != 0 { mw.gdkwin.GetPointer(&(mw.mx2), &(mw.my2), &mt) } else { mw.mx2, mw.my2 = int(mev.X), int(mev.Y) } x := (mw.offX + mw.mx2) / zoom z := (mw.offZ + mw.my2) / zoom bio := mcmap.Biome(mcmap.BioUncalculated) if _bio, ok := mw.regWrap.GetBiomeAt(x, z); ok { bio = _bio } mw.guicbs.updateInfo(x, z, bio, mw.bioLookup.Name(bio)) if mw.panning { if (mw.mx1 != -1) && (mw.my1 != -1) { mw.offX += mw.mx1 - mw.mx2 mw.offZ += mw.my1 - mw.my2 mw.updateGUI() } } if mw.continueTool { mw.regWrap.UseTool(x, z) mw.updateGUI() } mw.mx1, mw.my1 = mw.mx2, mw.my2 }