Ejemplo n.º 1
0
// newMinimap initializes the minimap. It still needs to be populated.
func newMinimap(root vu.Pov, numTroops int) *minimap {
	mm := &minimap{}
	mm.radius = 120
	mm.scale = 5.0
	mm.cores = []vu.Pov{}
	mm.view = root.NewView()
	mm.view.SetUI()
	mm.view.SetCull(vu.NewRadiusCull(float64(mm.radius)))
	mm.cam = mm.view.Cam()
	mm.cam.SetTransform(vu.XZ_XY)

	// create the parent for all the visible minimap pieces.
	mm.part = root.NewPov().SetLocation(float64(mm.x), 0, float64(-mm.y))

	// add the white background.
	mm.bg = mm.part.NewPov().SetScale(110, 1, 110)
	mm.bg.NewModel("uv").LoadMesh("icon_xz").AddTex("hudbg")

	// create the sentinel position markers
	mm.spms = []vu.Pov{}
	for cnt := 0; cnt < numTroops; cnt++ {
		tpm := mm.part.NewPov().SetScale(mm.scale, mm.scale, mm.scale)
		tpm.NewModel("alpha").LoadMesh("square_xz").LoadMat("tred")
		mm.spms = append(mm.spms, tpm)
	}

	// create the player marker and center map marker.
	mm.cpm = mm.part.NewPov().SetScale(mm.scale, mm.scale, mm.scale)
	mm.cpm.NewModel("alpha").LoadMesh("square_xz").LoadMat("blue")
	mm.ppm = mm.part.NewPov().SetScale(mm.scale, mm.scale, mm.scale)
	mm.ppm.NewModel("alpha").LoadMesh("tri_xz").LoadMat("tblack")
	return mm
}