From 239d2a9140213afc904f0e941d7cd06203af597d Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Mon, 5 Jun 2023 13:48:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BE=90=E5=B0=84=E5=9B=BE=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=BE=85=E5=8A=A9=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/g2d/radiation_pattern.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/utils/g2d/radiation_pattern.go b/utils/g2d/radiation_pattern.go index 24fbf84..a9cba18 100644 --- a/utils/g2d/radiation_pattern.go +++ b/utils/g2d/radiation_pattern.go @@ -43,6 +43,21 @@ func (slf *RadiationPattern[ItemType, Item]) GetLinks(guid int64) []int64 { return hash.KeyToSlice(slf.links.Get(guid)) } +// GetLinkPositions 获取特定成员能够辐射到的所有成员位置 +func (slf *RadiationPattern[ItemType, Item]) GetLinkPositions(guid int64) [][2]int { + links := slf.links.Get(guid) + var result = make([][2]int, 0, len(links)) + for g := range links { + result = append(result, slf.positions[g]) + } + return result +} + +// GetPosition 获取特定成员的位置 +func (slf *RadiationPattern[ItemType, Item]) GetPosition(guid int64) [2]int { + return slf.positions[guid] +} + // Refresh 刷新特定位置成员并且更新其辐射信息 func (slf *RadiationPattern[ItemType, Item]) Refresh(x, y int, item Item) { old := slf.matrix[x][y]