Carpet TIS Addition

Carpet TIS Addition

530k Downloads

raid 记录器记录每个 poi 的位置

Closed this issue · 3 comments

commented

Motivation

用于观察/调试袭击塔运行状态

Description

记录每个poi的位置以及到旧的袭击中心的距离

Other information

可能的实现:

RaidLogger.java

	public void onPOIDetected(Raid raid, BlockPos pos, double distance)
	{
		if (!TISAdditionLoggerRegistry.__raid)
		{
			return;
		}
		this.log(() -> {
			return new BaseText[]{Messenger.c(
					tr("poi_detected", raid.getRaidId(), Messenger.coord(pos, DimensionWrapper.of(raid.getWorld())), distance)
			)};
		});
	}

poi_detected 是需要添加的translation

RaidMixin.java

	@Inject(
			method = "method_20510", at = @At(value = "RETURN")
	)
	private void onPOIDetected(BlockPos blockPos, CallbackInfoReturnable<Double> cir)
	{
		RaidLogger.getInstance().onPOIDetected((Raid)(Object)this, blockPos, cir.getReturnValueD());
	}
commented

#213 中实现

commented

你完全没描述什么这个 feature request 的诉求。poi 指的是什么 poi,要在什么时候记录 poi,用途是 debug 袭击塔的什么地方

因此只能逆向你的 mixin 代码从你的 mixin 实现样例里猜你要表达什么,这是一种很不好的低效沟通行为。

请在这个 issue 里完整描述清楚你的问题、诉求、痛点,以及修改 raid logger 的目的性、必要性、影响范围。不要让我猜

若希望 PR 实现,也请描述实现的思路、必要性、准确性。在此之前,相关 PR 也不会被 review / 合并

commented

啊,抱歉
我本意是想让每次更新袭击中心的时候都记录影响袭击中心的occupied point of interest的位置,以方便调试村民工作方块的位置
修改 raid logger 使得其在更新袭击中心前会在控制台输出有效 poi 的位置,不影响已有功能

但现在发现这个功能似乎比较难以实现,因为poi以小区块为单位存储
而且似乎直接F3+G看小区块就可以了

我会关掉这个issue的