From b9be995232e8299d504e7898a9d6c5384664b8ee Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Sun, 11 Aug 2013 23:01:55 +0200 Subject: Initial commit. Reading maps is already working :-D --- mcmap/examples/emeraldfinder/main.go | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 mcmap/examples/emeraldfinder/main.go (limited to 'mcmap/examples/emeraldfinder/main.go') diff --git a/mcmap/examples/emeraldfinder/main.go b/mcmap/examples/emeraldfinder/main.go new file mode 100644 index 0000000..c437d41 --- /dev/null +++ b/mcmap/examples/emeraldfinder/main.go @@ -0,0 +1,53 @@ +package main + +import ( + "flag" + "fmt" + "github.com/kch42/gomcmap/mcmap" + "os" +) + +func main() { + path := flag.String("path", "", "Path to region directory") + flag.Parse() + + if *path == "" { + flag.Usage() + os.Exit(1) + } + + region, err := mcmap.OpenRegion(*path) + if err != nil { + fmt.Fprintf(os.Stderr, "Could not open region: %s", err) + os.Exit(1) + } + +chunkLoop: + for chunkPos := range region.AllChunks() { + cx, cz := chunkPos.X, chunkPos.Z + chunk, err := region.Chunk(cx, cz) + switch err { + case nil: + case mcmap.NotAvailable: + continue chunkLoop + default: + fmt.Fprintf(os.Stderr, "Error while getting chunk (%d, %d): %s", cx, cz, err) + os.Exit(1) + } + + for y := 0; y < 256; y++ { + for x := 0; x < 16; x++ { + for z := 0; z < 16; z++ { + blk := chunk.Block(x, y, z) + if blk.ID == mcmap.BlkEmeraldOre { + absx, absz := mcmap.ChunkToBlock(cx, cz, x, z) + fmt.Printf("%d, %d, %d\n", absx, y, absz) + } + } + } + } + + chunk = nil + region.UnloadChunk(cx, cz) + } +} -- cgit v1.2.3-54-g00ecf