Exemplo n.º 1
0
        internal static void setUpEventHandlers()
        {
            ceh = Helper.ModRegistry.IsLoaded("Platonymous.CustomElementHandler");

            if (ceh)
            {
                cehType = Type.GetType("CustomElementHandler.ISaveElement, CustomElementHandler");
            }

            SaveEvents.BeforeSave += (s, e) => Replace();
            SaveEvents.AfterSave  += (s, e) => Rebuild();
            SaveEvents.AfterLoad  += (s, e) => Rebuild();
            Events.PyTimeEvents.BeforeSleepEvents += (s, e) => { if (Game1.IsClient)
                                                                 {
                                                                     Replace();
                                                                 }
            };
            TimeEvents.AfterDayStarted += (s, e) => {
                Game1.objectSpriteSheet.Tag       = "cod_objects";
                Game1.bigCraftableSpriteSheet.Tag = "cod_bigobject";
            };
            TypeChecker = new PyResponder <bool, string>(typeCheckerName, (s) =>
            {
                return(Type.GetType(s) != null);
            }, 16);
            TypeChecker.start();
        }
Exemplo n.º 2
0
        internal static void setUpEventHandlers()
        {
            fieldInfoChache = new Dictionary <Type, FieldInfo[]>();
            propInfoChache  = new Dictionary <Type, PropertyInfo[]>();

            SaveEvents.BeforeSave += (s, e) => Replace();
            SaveEvents.AfterSave  += (s, e) => Rebuild(false);
            SaveEvents.AfterLoad  += (s, e) => Rebuild(false);
            Events.PyTimeEvents.BeforeSleepEvents += (s, e) => { if (Game1.IsClient)
                                                                 {
                                                                     Replace();
                                                                 }
            };

            TimeEvents.AfterDayStarted += (s, e) => {
                Game1.objectSpriteSheet.Tag       = "cod_objects";
                Game1.bigCraftableSpriteSheet.Tag = "cod_bigobject";
            };

            TypeChecker = new PyResponder <bool, string>(typeCheckerName, (s) =>
            {
                return(Type.GetType(s) != null);
            }, 16);
            TypeChecker.start();
        }
Exemplo n.º 3
0
 internal static void initialize()
 {
     content          = new Dictionary <string, object>();
     contentResponder = new PyResponder <ContentResponse, ContentRequest>(responderName, getSerializedContent, 8, SerializationType.JSON, SerializationType.JSON);
     contentReceiver  = new PyResponder <bool, ContentResponse>(receiverName, receiveInstruction, 16, SerializationType.JSON, SerializationType.JSON);
     contentResponder.start();
     contentReceiver.start();
 }
        public override void Entry(IModHelper helper)
        {
            _helper       = helper;
            vanillaShirts = Helper.Content.Load <Texture2D>(@"Characters/Farmer/shirts", ContentSource.GameContent);
            vanillaHats   = Helper.Content.Load <Texture2D>(@"Characters/Farmer/hats", ContentSource.GameContent);
            ShirtSyncer   = new PyResponder <bool, ShirtSync>(ShirtSyncerName, (s) =>
            {
                try
                {
                    if (playerShirts.ContainsKey(s.FarmerId))
                    {
                        playerShirts.Remove(s.FarmerId);
                    }

                    if (playerBaseShirts.ContainsKey(s.FarmerId))
                    {
                        playerBaseShirts.Remove(s.FarmerId);
                    }

                    if (playerBaseColors.ContainsKey(s.FarmerId))
                    {
                        playerBaseColors.Remove(s.FarmerId);
                    }

                    try
                    {
                        playerShirts.Add(s.FarmerId, (ScaledTexture2D)s.Texture.getTexture());
                        playerBaseShirts.Add(s.FarmerId, s.BaseShirt);

                        if (s.BaseColors is int[][] colors && colors.Length == 3)
                        {
                            Color[] baseColors = new Color[3] {
                                new Color(colors[0][0], colors[0][1], colors[0][2]), new Color(colors[1][0], colors[1][1], colors[1][2]), new Color(colors[2][0], colors[2][1], colors[2][2])
                            };
                            playerBaseColors.Add(s.FarmerId, baseColors);
                        }
                    }
                    catch (Exception e)
                    {
                        Monitor.Log(e.Message + ":" + e.StackTrace);
                    }
                }