コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
        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);
        }