diff options
author | Kevin Chabowski <kevin@kch42.de> | 2013-11-04 20:59:28 +0100 |
---|---|---|
committer | Kevin Chabowski <kevin@kch42.de> | 2013-11-04 20:59:28 +0100 |
commit | 3acbc6d81592560dc95b1ce9ee548627042acfc5 (patch) | |
tree | 1fc9801fd8850e5fef6c2c395b685fe7aa218bf4 /mapwidget.go | |
parent | e2730e8e796bf05cfb0681068e40d0c8fb6228b2 (diff) | |
parent | 9b006397c30d49e4843b4e5479670a645f435dd9 (diff) | |
download | biomed-3acbc6d81592560dc95b1ce9ee548627042acfc5.tar.gz biomed-3acbc6d81592560dc95b1ce9ee548627042acfc5.tar.bz2 biomed-3acbc6d81592560dc95b1ce9ee548627042acfc5.zip |
Merge branch 'editable-biomes'
Diffstat (limited to 'mapwidget.go')
-rw-r--r-- | mapwidget.go | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/mapwidget.go b/mapwidget.go index cb8c874..e04b5eb 100644 --- a/mapwidget.go +++ b/mapwidget.go @@ -16,7 +16,7 @@ const ( type GUICallbacks struct { reportFail func(msg string) - updateInfo func(x, z int, bio mcmap.Biome) + updateInfo func(x, z int, bio mcmap.Biome, name string) setBusy func(bool) } @@ -41,6 +41,8 @@ type MapWidget struct { bg *gdk.Pixmap regWrap *RegionWrapper + + bioLookup BiomeLookup } func (mw *MapWidget) calcChunkRect() { @@ -89,7 +91,7 @@ func (mw *MapWidget) movement(ctx *glib.CallbackContext) { if _bio, ok := mw.regWrap.GetBiomeAt(x, z); ok { bio = _bio } - mw.guicbs.updateInfo(x, z, bio) + mw.guicbs.updateInfo(x, z, bio, mw.bioLookup.Name(bio)) if mw.panning { if (mw.mx1 != -1) && (mw.my1 != -1) { @@ -231,7 +233,17 @@ func (mw *MapWidget) updateGUI() { mw.dArea.GetWindow().Invalidate(nil, false) } -func NewMapWidget(guicbs GUICallbacks) *MapWidget { +func (mw *MapWidget) updateBioLookup(lookup BiomeLookup) { + mw.bioLookup = lookup + mw.regWrap.bioLookup = lookup + + if mw.regWrap.RegionLoaded() { + mw.regWrap.FlushTiles() + mw.regWrap.UpdateTiles() + } +} + +func NewMapWidget(guicbs GUICallbacks, bioLookup BiomeLookup) *MapWidget { dArea := gtk.NewDrawingArea() mw := &MapWidget{ @@ -240,9 +252,11 @@ func NewMapWidget(guicbs GUICallbacks) *MapWidget { showBiomes: true, mx1: -1, my1: -1, + bioLookup: bioLookup, } mw.regWrap = NewRegionWrapper(mw.updateGUI, guicbs) + mw.regWrap.bioLookup = bioLookup dArea.Connect("configure-event", mw.configure) dArea.Connect("expose-event", mw.expose) |