public static void SetMouseOverTarget(PlayerControlGizmo __instance, EObjectType tarType, int tarId) { if (Instance != null) { if (Instance._cursorTextObj == null) { Instance._cursorTextObj = GameObject.Find("build-cursor-text")?.GetComponentInChildren <Text>(); } if (tarId != 0 && tarType == EObjectType.Entity) { PlanetFactory factory = GameMain.mainPlayer.factory; if (factory != null) { var storageId = factory.entityPool[tarId].storageId; var stationId = factory.entityPool[tarId].stationId; if (storageId > 0) { Instance._cursorText = $"{"存储箱ID".Translate()}: {factory.index}.{storageId}"; } else if (stationId > 0) { Instance._cursorText = $"{"物流站ID".Translate()}: S{factory.index}.{stationId}"; } } } else { Instance._cursorText = null; } } }
public static bool Prefix(PlayerControlGizmo __instance, EObjectType tarType, int tarId) { if (__instance.mouseOverTargetType == tarType && __instance.mouseOverTargetId == tarId) { return(true); } if (tarId == 0 || tarType != EObjectType.Entity) { return(true); } PlanetFactory factory = __instance.player.factory; EntityData entityData = factory.entityPool[tarId]; if (entityData.id == 0) { return(true); } ItemProto itemProto = LDB.items.Select(entityData.protoId); if (itemProto.ModelCount > 1) { __instance.mouseOverTargetType = tarType; __instance.mouseOverTargetId = tarId; if (__instance.mouseOverTargetGizmo != null) { __instance.mouseOverTargetGizmo.Close(); __instance.mouseOverTargetGizmo = null; } if (__instance.mouseOverBuildingGizmo != null) { __instance.mouseOverBuildingGizmo.Close(); __instance.mouseOverBuildingGizmo = null; } if (__instance.mouseOverMinerGizmo != null) { __instance.mouseOverMinerGizmo.Close(); __instance.mouseOverMinerGizmo = null; } ModelProto proto = LDB.models.modelArray[entityData.modelIndex]; __instance.mouseOverBuildingGizmo = BoxGizmo.Create(entityData.pos, entityData.rot, proto.prefabDesc.selectCenter, proto.prefabDesc.selectSize); __instance.mouseOverBuildingGizmo.multiplier = 1f; __instance.mouseOverBuildingGizmo.alphaMultiplier = proto.prefabDesc.selectAlpha; __instance.mouseOverBuildingGizmo.fadeInScale = 1.3f; __instance.mouseOverBuildingGizmo.fadeInTime = 0.05f; __instance.mouseOverBuildingGizmo.fadeInFalloff = 0.5f; __instance.mouseOverBuildingGizmo.fadeOutScale = 1.3f; __instance.mouseOverBuildingGizmo.fadeOutTime = 0.05f; __instance.mouseOverBuildingGizmo.fadeOutFalloff = 0.5f; __instance.mouseOverBuildingGizmo.color = Color.white; __instance.mouseOverBuildingGizmo.Open(); return(false); } return(true); }