示例#1
0
        protected override void ClientInitialize(ClientInitializeData data)
        {
            base.ClientInitialize(data);

            var gameObject  = data.GameObject;
            var clientState = data.ClientState;
            var publicState = data.PublicState;

            clientState.LastGrowthStage = publicState.GrowthStage;

            var spriteRenderer = clientState.Renderer;

            spriteRenderer.TextureResource = SystemVegetation.ClientGetTexture(
                this,
                gameObject,
                publicState);

            clientState.Renderer = spriteRenderer;

            // flip renderer with some deterministic randomization
            if (this.CanFlipSprite &&
                PositionalRandom.Get(gameObject.TilePosition, 0, 3, seed: 721886451) == 0)
            {
                spriteRenderer.DrawMode = DrawMode.FlipHorizontally;
            }

            if (this.IsAutoAddShadow)
            {
                this.ClientAddShadowRenderer(data);
            }
        }
示例#2
0
        protected override void ClientUpdate(ClientUpdateData data)
        {
            base.ClientUpdate(data);

            var clientState = data.ClientState;
            var publicState = data.PublicState;

            if (clientState.LastGrowthStage != publicState.GrowthStage)
            {
                SystemVegetation.ClientRefreshVegetationRendering(
                    this,
                    data.GameObject,
                    clientState,
                    publicState);
            }
        }