diff options
-rw-r--r-- | main.go | 6 | ||||
-rw-r--r-- | mapwidget.go | 10 | ||||
-rw-r--r-- | region_wrapper.go | 8 |
3 files changed, 17 insertions, 7 deletions
@@ -21,8 +21,8 @@ type GUI struct { statusContext uint lastStatus string - biomes []BiomeInfo - bioVBox *gtk.VBox + biomes []BiomeInfo + bioVBox *gtk.VBox bioVBoxWrap *gtk.VBox mapw *MapWidget @@ -246,7 +246,7 @@ func (g *GUI) updateBiomeInfo() { vbox.ShowAll() g.bioVBox = vbox - // TODO: Update mapwidget + g.mapw.updateBioLookup(MkBiomeLookup(g.biomes)) } func (g *GUI) Init() { diff --git a/mapwidget.go b/mapwidget.go index 116f069..e04b5eb 100644 --- a/mapwidget.go +++ b/mapwidget.go @@ -233,6 +233,16 @@ func (mw *MapWidget) updateGUI() { mw.dArea.GetWindow().Invalidate(nil, false) } +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() diff --git a/region_wrapper.go b/region_wrapper.go index 9a4d958..d27d1ad 100644 --- a/region_wrapper.go +++ b/region_wrapper.go @@ -131,11 +131,11 @@ func (rw *RegionWrapper) tileUpdater() { func (rw *RegionWrapper) SetRegion(region *mcmap.Region) { if rw.RegionLoaded() { - rw.flushTiles() + rw.FlushTiles() } rw.region = NewCachedRegion(region, cacheSize) - rw.tileUpdates <- true + rw.UpdateTiles() } func (rw *RegionWrapper) SetChunkBounds(startX, startZ, endX, endZ int) { @@ -152,7 +152,7 @@ func (rw *RegionWrapper) SetFixSnowIce(b bool) { rw.fixSnowIce = b } func (rw *RegionWrapper) RegionLoaded() bool { return rw.region != nil } func (rw *RegionWrapper) ToolSingleClick() bool { return rw.tool.SingleClick() } -func (rw *RegionWrapper) flushTiles() { +func (rw *RegionWrapper) FlushTiles() { if err := rw.region.Flush(); err != nil { rw.guicbs.reportFail(fmt.Sprintf("Error while flushing cache: %s", err)) return @@ -171,7 +171,7 @@ func (rw *RegionWrapper) flushTiles() { } func (rw *RegionWrapper) Save() { - rw.flushTiles() + rw.FlushTiles() if err := rw.region.Flush(); err != nil { rw.guicbs.reportFail(fmt.Sprintf("Error while flushing cache: %s", err)) |