public override void Draw(UISpriteBatch batch) { if (!Visible || Opacity == 0) { return; } DrawLocalTexture(batch, ShadowImg, null, Vector2.Zero, Vector2.One, Color.Black * 0.5f); if (Target != null) { var effect = LotView.WorldContent.SpriteEffect; batch.SetEffect(effect); effect.CurrentTechnique = effect.Techniques["StickyEffect"]; var off = ((Position + Size * Scale / 2) - ContainerSize / 2).X * -0.001f * (Size.Y / 240f); effect.Parameters["stickyOffset"].SetValue(off * OffsetMultiplier); effect.Parameters["stickyPersp"].SetValue((Size.Y / 240f) * -0.2f); DrawLocalTexture(batch, Target, new Rectangle((int)(-100 * ScaleX), 0, (int)(Target.Width + 200 * ScaleX), Target.Height), -(BackOffset.ToVector2() + new Vector2(100, 0)), new Vector2(1 / (Scale.X), 1 / (Scale.Y))); batch.SetEffect(); } DynamicOverlay.GetChildren().ForEach(x => { if (x.Opacity != Opacity) { x.Opacity = Opacity; } }); DynamicOverlay.Draw(batch); }
public void Write(BinaryWriter writer) { writer.Write(NotUsed1); writer.Write(NotUsed2); writer.Write(HairR); writer.Write(HairG); writer.Write(HairB); writer.Write((byte)0); writer.Write(MovementFlags); writer.Write(EntityFlags); writer.Write(Scale); writer.Write(BoundingRadius); writer.Write(BoundingHeight); writer.Write(HeadModel); writer.Write(HairModel); writer.Write(HandModel); writer.Write(FootModel); writer.Write(BodyModel); writer.Write(BackModel); writer.Write(ShoulderModel); writer.Write(WingModel); writer.Write(HeadScale); writer.Write(BodyScale); writer.Write(HandScale); writer.Write(FootScale); writer.Write(ShoulderScale); writer.Write(WeaponScale); writer.Write(BackScale); writer.Write(Unknown); writer.Write(WingScale); writer.Write(BodyPitch); writer.Write(ArmPitch); writer.Write(ArmRoll); writer.Write(ArmYaw); writer.Write(FeetPitch); writer.Write(WingPitch); writer.Write(BackPitch); BodyOffset.Write(writer); HeadOffset.Write(writer); HandOffset.Write(writer); FootOffset.Write(writer); BackOffset.Write(writer); WingOffset.Write(writer); }