public List<DrawData> GetDrawData(ContentManager content) { Texture2D tex = content.Load<Texture2D>("Graphics/logo"); DrawData d = new DrawData(tex, new Rectangle(x, y, size, size), angle, 0); if(Keyboard.GetState().IsKeyDown(Keys.Right)) { x += 5; } else if (Keyboard.GetState().IsKeyDown(Keys.Left)) { x -= 5; } if(Keyboard.GetState().IsKeyDown(Keys.Up)) { size += 16; if(size > 512) { size = 64; } } else if (Keyboard.GetState().IsKeyDown(Keys.Down)) { angle += 1; if(angle >= 360) { angle = angle - 360; } } List<DrawData> ret = new List<DrawData>(); ret.Add(d); return ret; }
public override void Draw(ref CreditsRollInfo info) { if ((double)info.TimeInAnimation > (double)this._targetTime + (double)this.DedicatedTimeNeeded) { return; } this.ResetSpriteAnimation(ref info); this.ProcessActions(this._sprite, (float)(info.TimeInAnimation - this._targetTime)); DrawData currentDrawData = this._sprite.CurrentDrawData; currentDrawData.position += info.AnchorPositionOnScreen; currentDrawData.color *= this._sprite.CurrentOpacity; currentDrawData.Draw(info.SpriteBatch); }
public override void PostDraw(SpriteBatch spriteBatch, Color drawColor) { Main.spriteBatch.End(); Main.spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, SamplerState.PointWrap, DepthStencilState.Default, RasterizerState.CullNone); DrawData drawData = new DrawData(TextureManager.Load("Images/Misc/Perlin"), npc.Center - new Vector2(130, 90), npc.getRect(), Color.White, npc.rotation, new Vector2(300f, 300f), npc.scale, SpriteEffects.None, 0); GameShaders.Misc["ForceField"].UseColor(Color.White); GameShaders.Misc["ForceField"].Apply(drawData); drawData.Draw(Main.spriteBatch); Main.spriteBatch.End(); Main.spriteBatch.Begin(); return; }
// DRAW COMMANDS static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, MaterialPropertyBlock propertyBlock, float duration = 0) { DrawData drawData = new DrawData(); drawData.meshModel = mesh; drawData.matrix = matrix; drawData.drawMaterial = material; drawData.propertyBlock = propertyBlock; drawData.timeOnScreen = duration; drawData.color = color; meshesToDraw.Add(drawData); numTempCommands++; }
public static void DrawilluminantLayer(PlayerDrawInfo drawInfo, bool front) { Player drawPlayer = drawInfo.drawPlayer; SGAmod mod = SGAmod.Instance; SGAPlayer modply = drawPlayer.GetModPlayer <SGAPlayer>(); int activestacks = modply.activestacks; if (activestacks > 0) { List <Vector4> whichone = new List <Vector4>(); UnifiedRandom rando = new UnifiedRandom(drawPlayer.whoAmI); for (int i = 0; i < activestacks; i += 1) { float percent = rando.NextFloat(1f) * MathHelper.TwoPi; Matrix mxatrix = Matrix.CreateRotationY((Main.GlobalTime * 2f) + percent) * Matrix.CreateRotationZ(((i / (float)activestacks) * MathHelper.TwoPi) + (Main.GlobalTime * (rando.NextFloat(0.4f, 0.6f)))); Vector3 vec3 = Vector3.Transform(Vector3.UnitX, mxatrix); float alpha = 1f; if (modply.CooldownStacks.Count >= i) { alpha = MathHelper.Clamp((modply.CooldownStacks[i].timeleft / (float)modply.CooldownStacks[i].maxtime) * 3f, 0f, 1f); } whichone.Add(new Vector4(vec3, alpha)); } whichone = whichone.OrderBy((x) => x.Z).ToList(); if (whichone.Count > 0) { for (int a = 0; a < whichone.Count; a += 1) { Vector4 theplace = whichone[a]; float scaler = 1 + theplace.Z; if ((scaler >= 1f && front) || (scaler < 1f && !front)) { Texture2D texture = SGAmod.Instance.GetTexture("Extra_57b"); Vector2 drawhere = new Vector2(theplace.X, theplace.Y) * 64f; DrawData data = new DrawData(texture, drawPlayer.MountedCenter + drawhere - Main.screenPosition, null, Color.Magenta * (theplace.W * 0.75f), (float)Math.Sin(theplace.X), texture.Size() / 2f, 0.5f + (scaler - 1f) * 0.25f, (drawPlayer.gravDir > 0 ? SpriteEffects.None : SpriteEffects.FlipVertically), 0); //data.shader = (int)drawPlayer.dye[2].dye; Main.playerDrawData.Add(data); } } } } }
protected override void Draw(ref PlayerDrawSet drawInfo) { Player drawPlayer = drawInfo.drawPlayer; Texture2D hurtbox = ModContent.Request <Texture2D>("FargowiltasSouls/PlayerDrawLayers/PrecisionHurtboxDrawLayer", ReLogic.Content.AssetRequestMode.ImmediateLoad).Value; Rectangle rectangle = hurtbox.Bounds; float opacity = Main.mouseTextColor / 255f; opacity *= opacity; DrawData data = new DrawData(hurtbox, drawPlayer.Center - Main.screenPosition, rectangle, Color.White * opacity, 0f, rectangle.Size() / 2, 1f, SpriteEffects.None, 0); drawInfo.DrawDataCache.Add(data); }
/// <summary> /// Creates an instance of GeometryManager and loads the geometry data from it. /// </summary> /// <param name="scene">Source of geometry data</param> /// <param name="position">Datatype to use for position data</param> /// <param name="normal">Datatype to use for normal data</param> /// <param name="uv">Datatype to use for UV data</param> /// <param name="color">Datatype to use for color data</param> public GeometryManager(Grendgine_Collada scene, DrawData drw1, Matrix4 bindShape, DataTypes position = DataTypes.F32, DataTypes normal = DataTypes.F32, DataTypes uv = DataTypes.F32, ColorDataTypes color = ColorDataTypes.RGBA8) { if (scene.Library_Geometries == null) { throw new FormatException("Mesh has no geometry!"); } foreach (Grendgine_Collada_Geometry geom in scene.Library_Geometries.Geometry) { VertexData = new VertexData(geom.Mesh, bindShape, position, normal, uv, color); BatchData = new BatchData(geom.Mesh, drw1); BatchData.SetBoundingBoxes(VertexData.Positions); } }
internal static DrawData modDraw_BackWeapon(DrawData data, Player p, float length) { data.rotation = (float)((Math.PI * 1.1f + Math.PI * (length * -0.001f)) * p.direction) * p.gravDir; //rotate just over 180 clockwise data.position.X -= 8 * p.direction; //back data.position.Y -= (length * 0.2f - 16) * p.gravDir; //up int playerBodyFrameNum = p.bodyFrame.Y / p.bodyFrame.Height; if (playerBodyFrameNum == 7 || playerBodyFrameNum == 8 || playerBodyFrameNum == 9 || playerBodyFrameNum == 14 || playerBodyFrameNum == 15 || playerBodyFrameNum == 16) { data.position.Y -= 2 * p.gravDir; //up } return(data); }
protected override void Draw(ref PlayerDrawSet drawInfo) { //this is for drawing the tail on the menu if (Main.gameMenu && drawInfo.drawPlayer.TryGetModPlayer <TailPlayer>(out TailPlayer tailPlayer)) { if (tailPlayer.playerMenuTexture != null) { //if (drawInfo.drawPlayer.dead) return;//player is never dead on main menu Texture2D texture = ModContent.Request <Texture2D>(tailPlayer.playerMenuTexture).Value; int frameSize = texture.Height / 20;//what??? was left over from my orignal player layer base, breaks if removed DrawData data = new DrawData(texture, (drawInfo.Center - Main.screenPosition) + (tailPlayer.playerMenuTexOffset * 0.5f), null, Color.White, 0f, new Vector2(texture.Width, frameSize), 1f, SpriteEffects.FlipHorizontally, 0); drawInfo.DrawDataCache.Add(data); } } }
public override bool PreDrawInInventory(SpriteBatch spriteBatch, Vector2 position, Rectangle frame, Color drawColor, Color itemColor, Vector2 origin, float scale) { spriteBatch.Restart(Main.UIScaleMatrix, worldDraw: false); DrawData data = new DrawData { position = position - Main.screenPosition, scale = new Vector2(scale, scale), sourceRect = frame, texture = Main.itemTexture[item.type] }; GameShaders.Armor.ApplySecondary(GameShaders.Armor.GetShaderIdFromItemId(ModContent.ItemType <GrayscaleFilterItem>()), Main.player[item.owner], data); return(true); }
public static PlayerLayer CreateShaderLayer(string name, PlayerLayer parent, Func <PlayerDrawInfo, DrawDataInfo> getDataFunc) { return(new PlayerLayer("ModLoaderMod", name, parent, (drawInfo) => { if (drawInfo.shadow != 0f || drawInfo.drawPlayer.invis) { return; } DrawDataInfo drawDataInfo = getDataFunc.Invoke(drawInfo); Player drawPlayer = drawInfo.drawPlayer; DeveloperPlayer devPlayer = DeveloperPlayer.GetPlayer(drawPlayer); SpriteEffects effects = SpriteEffects.None; if (drawPlayer.direction == -1) { effects |= SpriteEffects.FlipHorizontally; } if (drawPlayer.gravDir == -1) { effects |= SpriteEffects.FlipVertically; } DrawData data = new DrawData( drawDataInfo.Texture, drawDataInfo.Position, drawDataInfo.Frame, Color.White * Main.essScale * devPlayer.AndromedonEffect.LayerStrength * devPlayer.AndromedonEffect.ShaderStrength, drawDataInfo.Rotation, drawDataInfo.Origin, 1f, effects, 0); BeginShaderBatch(Main.spriteBatch); ShaderId = ShaderId ?? GameShaders.Armor.GetShaderIdFromItemId(ItemID.LivingRainbowDye); GameShaders.Armor.Apply(ShaderId.Value, drawPlayer, data); var centerPos = data.position; for (int i = 0; i < ShaderNumSegments; i++) { data.position = centerPos + GetDrawOffset(i); data.Draw(Main.spriteBatch); } data.position = centerPos; })); }
public override void PostDraw(SpriteBatch spriteBatch, Color lightColor) { //SysDraw.Bitmap lightMap = new SysDraw.Bitmap(10, 10); //mod.Logger.Info("setting up variables"); Texture2D lightMap = new Texture2D(spriteBatch.GraphicsDevice, 10, 10); Color[] lightData = new Color[100]; Vector2 pos = projectile.position; Vector3 col; //mod.Logger.Info("set up variables"); for (int x = 0; x < 10; x++) { pos.X += 2; for (int y = 0; y < 10; y++) { pos.Y += 2; col = Lighting.GetSubLight(pos); lightData[(y * 10) + x] = new Color(((col.X + col.Y + col.Z) / 1.5f - 0.66f) * Min(projectile.timeLeft / 85f, 1), 0, 0); //lightMap.SetPixel(x,y,SysDraw.Color.FromArgb(255,(int)((col.X+col.Y+col.Z)/3),0,0)); } pos.Y -= 20; } //mod.Logger.Info("setting data"); lightMap.SetData(lightData); //mod.Logger.Info("set data"); spriteBatch.End(); spriteBatch.Begin(SpriteSortMode.Immediate, blendState, SamplerState.PointWrap, DepthStencilState.Default, RasterizerState.CullNone, null, Main.GameViewMatrix.ZoomMatrix); DrawData data2 = new DrawData(mod.GetTexture("Items/Weapons/Explosives/Crystal_Grenade_Purple"), projectile.Center - Main.screenPosition, new Rectangle(0, 0, 14, 20), new Color(255, 255, 255, 255), projectile.rotation, new Vector2(7, 7), Vector2.One, SpriteEffects.None, 0); //Origins.perlinFade0.Shader.Parameters["uOffset"].SetValue(projectile.position); //Origins.perlinFade0.Shader.Parameters["uRotation"].SetValue(-projectile.rotation); Main.graphics.GraphicsDevice.Textures[1] = lightMap; Origins.perlinFade0.Shader.Parameters["uThreshold0"].SetValue(0f); Origins.perlinFade0.Shader.Parameters["uThreshold1"].SetValue(0.25f); Origins.perlinFade0.Apply(data2); DrawData data = new DrawData(mod.GetTexture("Items/Weapons/Explosives/Crystal_Grenade_Pink"), projectile.Center - Main.screenPosition, new Rectangle(0, 0, 14, 20), new Color(255, 255, 255, 255), projectile.rotation, new Vector2(7, 7), Vector2.One, SpriteEffects.None, 0); //Origins.perlinFade0.Shader.Parameters["uOffset"].SetValue(projectile.position); //Origins.perlinFade0.Shader.Parameters["uRotation"].SetValue(projectile.rotation); //Main.graphics.GraphicsDevice.Textures[1] = lightMap; Origins.perlinFade0.Shader.Parameters["uThreshold0"].SetValue(0.5f); Origins.perlinFade0.Shader.Parameters["uThreshold1"].SetValue(0.75f); Origins.perlinFade0.Apply(data); data.Draw(spriteBatch); spriteBatch.End(); spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Main.DefaultSamplerState, DepthStencilState.None, Main.instance.Rasterizer, null, Main.Transform); }
public virtual void Apply(DrawData?drawData = null) { base.Shader.Parameters["uColor"].SetValue(_uColor); base.Shader.Parameters["uSaturation"].SetValue(_uSaturation); base.Shader.Parameters["uSecondaryColor"].SetValue(_uSecondaryColor); base.Shader.Parameters["uTime"].SetValue(Main.GlobalTimeWrappedHourly); base.Shader.Parameters["uOpacity"].SetValue(_uOpacity); base.Shader.Parameters["uShaderSpecificData"].SetValue(_shaderSpecificData); if (drawData.HasValue) { DrawData value = drawData.Value; Vector4 value2 = Vector4.Zero; if (drawData.Value.sourceRect.HasValue) { value2 = new Vector4(value.sourceRect.Value.X, value.sourceRect.Value.Y, value.sourceRect.Value.Width, value.sourceRect.Value.Height); } base.Shader.Parameters["uSourceRect"].SetValue(value2); base.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position); base.Shader.Parameters["uImageSize0"].SetValue(new Vector2(value.texture.Width, value.texture.Height)); } else { base.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0f, 0f, 4f, 4f)); } if (_uImage0 != null) { Main.graphics.GraphicsDevice.Textures[0] = _uImage0.get_Value(); Main.graphics.GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap; base.Shader.Parameters["uImageSize0"].SetValue(new Vector2(_uImage0.Width(), _uImage0.Height())); } if (_uImage1 != null) { Main.graphics.GraphicsDevice.Textures[1] = _uImage1.get_Value(); Main.graphics.GraphicsDevice.SamplerStates[1] = SamplerState.LinearWrap; base.Shader.Parameters["uImageSize1"].SetValue(new Vector2(_uImage1.Width(), _uImage1.Height())); } if (_uImage2 != null) { Main.graphics.GraphicsDevice.Textures[2] = _uImage2.get_Value(); Main.graphics.GraphicsDevice.SamplerStates[2] = SamplerState.LinearWrap; base.Shader.Parameters["uImageSize2"].SetValue(new Vector2(_uImage2.Width(), _uImage2.Height())); } if (_useProjectionMatrix) { base.Shader.Parameters["uMatrixTransform0"].SetValue(Main.GameViewMatrix.NormalizedTransformationmatrix); } base.Apply(); }
public virtual void Apply(DrawData?drawData = null) { base.Shader.Parameters["uColor"].SetValue(this._uColor); base.Shader.Parameters["uSaturation"].SetValue(this._uSaturation); base.Shader.Parameters["uSecondaryColor"].SetValue(this._uSecondaryColor); base.Shader.Parameters["uTime"].SetValue((float)(Main._drawInterfaceGameTime.TotalGameTime.TotalSeconds % 3600.0)); base.Shader.Parameters["uOpacity"].SetValue(this._uOpacity); base.Shader.Parameters["uShaderSpecificData"].SetValue(this._shaderSpecificData); if (drawData != null) { DrawData value = drawData.Value; Vector4 zero = Vector4.Zero; if (drawData.Value.sourceRect != null) { zero = new Vector4((float)value.sourceRect.Value.X, (float)value.sourceRect.Value.Y, (float)value.sourceRect.Value.Width, (float)value.sourceRect.Value.Height); } base.Shader.Parameters["uSourceRect"].SetValue(zero); base.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position); base.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)value.texture.Width, (float)value.texture.Height)); } else { base.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0f, 0f, 4f, 4f)); } if (this._uImage0 != null) { Main.graphics.GraphicsDevice.Textures[0] = this._uImage0; Main.graphics.GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap; base.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)this._uImage0.Width, (float)this._uImage0.Height)); } if (this._uImage1 != null) { Main.graphics.GraphicsDevice.Textures[1] = this._uImage1; Main.graphics.GraphicsDevice.SamplerStates[1] = SamplerState.LinearWrap; base.Shader.Parameters["uImageSize1"].SetValue(new Vector2((float)this._uImage1.Width, (float)this._uImage1.Height)); } if (this._uImage2 != null) { Main.graphics.GraphicsDevice.Textures[2] = this._uImage2; Main.graphics.GraphicsDevice.SamplerStates[2] = SamplerState.LinearWrap; base.Shader.Parameters["uImageSize2"].SetValue(new Vector2((float)this._uImage2.Width, (float)this._uImage2.Height)); } if (this._useProjectionMatrix) { base.Shader.Parameters["uMatrixTransform0"].SetValue(EMiscShaderData.GetNormalizedTransformationmatrix(Main.GameViewMatrix)); } base.Apply(); }
public static void DrawArmorGlowMask(EquipType type, Texture2D texture, PlayerDrawInfo info) { switch (type) { case EquipType.Head: { //Add if(!drawPlayer.invis) ? DrawData drawData = new DrawData(texture, new Vector2((int)(info.position.X - Main.screenPosition.X) + ((info.drawPlayer.width - info.drawPlayer.bodyFrame.Width) / 2), (int)(info.position.Y - Main.screenPosition.Y) + info.drawPlayer.height - info.drawPlayer.bodyFrame.Height + 4) + info.drawPlayer.headPosition + info.headOrigin, info.drawPlayer.bodyFrame, info.headGlowMaskColor, info.drawPlayer.headRotation, info.headOrigin, 1f, info.spriteEffects, 0); drawData.shader = info.headArmorShader; Main.playerDrawData.Add(drawData); } return; case EquipType.Body: { int num2 = 0; //Add in backAcc stuff later Rectangle bodyFrame = info.drawPlayer.bodyFrame; int num123 = num2; bodyFrame.X += num123; bodyFrame.Width -= num123; if (info.drawPlayer.direction == -1) { num123 = 0; } if (!info.drawPlayer.invis) { DrawData drawData = new DrawData(texture, new Vector2((int)(info.position.X - Main.screenPosition.X - (info.drawPlayer.bodyFrame.Width / 2) + (info.drawPlayer.width / 2) + num123), ((int)(info.position.Y - Main.screenPosition.Y + info.drawPlayer.height - info.drawPlayer.bodyFrame.Height + 4))) + info.drawPlayer.bodyPosition + new Vector2(info.drawPlayer.bodyFrame.Width / 2, info.drawPlayer.bodyFrame.Height / 2), bodyFrame, info.bodyGlowMaskColor, info.drawPlayer.bodyRotation, info.bodyOrigin, 1f, info.spriteEffects, 0); drawData.shader = info.bodyArmorShader; Main.playerDrawData.Add(drawData); } } return; case EquipType.Legs: { if (info.drawPlayer.shoe != 15 || info.drawPlayer.wearsRobe) { if (!info.drawPlayer.invis) { DrawData drawData = new DrawData(texture, new Vector2((int)(info.position.X - Main.screenPosition.X - (info.drawPlayer.legFrame.Width / 2) + (info.drawPlayer.width / 2)), (int)(info.position.Y - Main.screenPosition.Y + info.drawPlayer.height - info.drawPlayer.legFrame.Height + 4)) + info.drawPlayer.legPosition + info.legOrigin, info.drawPlayer.legFrame, info.legGlowMaskColor, info.drawPlayer.legRotation, info.legOrigin, 1f, info.spriteEffects, 0); drawData.shader = info.legArmorShader; Main.playerDrawData.Add(drawData); } } } return; } }
public virtual void Apply(DrawData?drawData = null) { this.Shader.Parameters["uColor"].SetValue(this._uColor); this.Shader.Parameters["uSaturation"].SetValue(this._uSaturation); this.Shader.Parameters["uSecondaryColor"].SetValue(this._uSecondaryColor); this.Shader.Parameters["uTime"].SetValue(Main.GlobalTimeWrappedHourly); this.Shader.Parameters["uOpacity"].SetValue(this._uOpacity); this.Shader.Parameters["uShaderSpecificData"].SetValue(this._shaderSpecificData); if (drawData.HasValue) { DrawData drawData1 = drawData.Value; Vector4 vector4 = Vector4.Zero; if (drawData.Value.sourceRect.HasValue) { vector4 = new Vector4((float)drawData1.sourceRect.Value.X, (float)drawData1.sourceRect.Value.Y, (float)drawData1.sourceRect.Value.Width, (float)drawData1.sourceRect.Value.Height); } this.Shader.Parameters["uSourceRect"].SetValue(vector4); this.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + drawData1.position); this.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)drawData1.texture.Width, (float)drawData1.texture.Height)); } else { this.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0.0f, 0.0f, 4f, 4f)); } if (this._uImage0 != null) { Main.graphics.GraphicsDevice.Textures[0] = (Texture)this._uImage0.Value; Main.graphics.GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap; this.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)this._uImage0.Width(), (float)this._uImage0.Height())); } if (this._uImage1 != null) { Main.graphics.GraphicsDevice.Textures[1] = (Texture)this._uImage1.Value; Main.graphics.GraphicsDevice.SamplerStates[1] = SamplerState.LinearWrap; this.Shader.Parameters["uImageSize1"].SetValue(new Vector2((float)this._uImage1.Width(), (float)this._uImage1.Height())); } if (this._uImage2 != null) { Main.graphics.GraphicsDevice.Textures[2] = (Texture)this._uImage2.Value; Main.graphics.GraphicsDevice.SamplerStates[2] = SamplerState.LinearWrap; this.Shader.Parameters["uImageSize2"].SetValue(new Vector2((float)this._uImage2.Width(), (float)this._uImage2.Height())); } if (this._useProjectionMatrix) { this.Shader.Parameters["uMatrixTransform0"].SetValue(Main.GameViewMatrix.NormalizedTransformationmatrix); } this.Apply(); }
protected override void HandleUseReqest(GraphicsDevice device, SpriteBatch spriteBatch) { Asset <Texture2D> val = TextureAssets.Extra[171]; PrepareARenderTarget_AndListenToEvents(_target, device, val.Width(), val.Height(), RenderTargetUsage.PreserveContents); device.SetRenderTarget(_target); device.Clear(Color.Transparent); DrawData value = new DrawData(val.Value, Vector2.Zero, Color.White); spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); GameShaders.Misc["HallowBoss"].Apply(value); value.Draw(spriteBatch); spriteBatch.End(); device.SetRenderTarget(null); _wasPrepared = true; }
protected override void HandleUseReqest(GraphicsDevice device, SpriteBatch spriteBatch) { Asset <Texture2D> val = TextureAssets.Extra[204]; _target = new RenderTarget2D(device, val.Width(), val.Height(), mipMap: false, device.PresentationParameters.BackBufferFormat, DepthFormat.None, 0, RenderTargetUsage.PreserveContents); device.SetRenderTarget(_target); device.Clear(Color.Transparent); DrawData value = new DrawData(val.get_Value(), Vector2.Zero, Color.White); spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); GameShaders.Misc["QueenSlime"].Apply(value); value.Draw(spriteBatch); spriteBatch.End(); device.SetRenderTarget(null); _wasPrepared = true; }
protected override void HandleUseReqest(GraphicsDevice device, SpriteBatch spriteBatch) { Asset <Texture2D> asset = TextureAssets.Extra[204]; this.PrepareARenderTarget_AndListenToEvents(ref this._target, device, asset.Width(), asset.Height(), RenderTargetUsage.PreserveContents); device.SetRenderTarget(this._target); device.Clear(Color.Transparent); DrawData drawData = new DrawData(asset.Value, Vector2.Zero, Color.White); spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); GameShaders.Misc["QueenSlime"].Apply(new DrawData?(drawData)); drawData.Draw(spriteBatch); spriteBatch.End(); device.SetRenderTarget((RenderTarget2D)null); this._wasPrepared = true; }
protected override void Draw(ref PlayerDrawSet drawInfo) { Player drawPlayer = drawInfo.drawPlayer; Texture2D texture = ModContent.Request <Texture2D>("FargowiltasSouls/PlayerDrawLayers/DizzyStars", ReLogic.Content.AssetRequestMode.ImmediateLoad).Value; int num156 = texture.Height / 6; //ypos of lower right corner of sprite to draw int y3 = num156 * (int)(Main.GlobalTimeWrappedHourly % 0.5 * 12); //ypos of upper left corner of sprite to draw Rectangle rectangle = new Rectangle(0, y3, texture.Width, num156); Vector2 drawPos = (drawPlayer.gravDir > 0 ? drawPlayer.Top : drawPlayer.Bottom) - Main.screenPosition; drawPos.Y -= 16 * drawPlayer.gravDir; DrawData data = new DrawData(texture, drawPos, rectangle, Color.White, drawPlayer.gravDir < 0 ? MathHelper.Pi : 0f, rectangle.Size() / 2, 1f, SpriteEffects.None, 0); drawInfo.DrawDataCache.Add(data); }
public override void PostDraw(SpriteBatch spriteBatch, Color drawColor) { Texture2D star = mod.GetTexture("Effects/LifeStar"); Rectangle rect = new Rectangle(0, 0, star.Width, star.Height); float scale = Main.cursorScale + 0.3f; Vector2 origin = new Vector2((star.Width / 2) + scale, (star.Height / 2) + scale); spriteBatch.Draw(star, npc.Center - Main.screenPosition, new Rectangle?(rect), Color.HotPink, 0, origin, scale, SpriteEffects.None, 0); DrawData starDraw = new DrawData(star, npc.Center - Main.screenPosition, new Rectangle?(rect), Color.White, 0, origin, scale, SpriteEffects.None, 0); GameShaders.Misc["LCWingShader"].UseColor(Color.Goldenrod).UseSecondaryColor(Color.HotPink); GameShaders.Misc["LCWingShader"].Apply(starDraw); starDraw.Draw(spriteBatch); spriteBatch.End(); spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Main.DefaultSamplerState, DepthStencilState.None, RasterizerState.CullCounterClockwise, null, Main.GameViewMatrix.ZoomMatrix); }
public static void Initialize() { if (GlobalContext != null) { throw new FlowException("Flow has already been initialized!"); } GlobalContext = new FlowContext(); GlobalContext.Initialize(); DrawLists = new DrawData[] { new DrawData(), new DrawData(), }; }
protected override void HandleUseReqest(GraphicsDevice device, SpriteBatch spriteBatch) { Asset <Texture2D> asset = TextureAssets.Extra[171]; this._target = new RenderTarget2D(device, asset.Width(), asset.Height(), false, device.PresentationParameters.BackBufferFormat, DepthFormat.None, 0, RenderTargetUsage.PreserveContents); device.SetRenderTarget(this._target); device.Clear(Color.Transparent); DrawData drawData = new DrawData(asset.get_Value(), Vector2.Zero, Color.White); spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); GameShaders.Misc["HallowBoss"].Apply(new DrawData?(drawData)); drawData.Draw(spriteBatch); spriteBatch.End(); device.SetRenderTarget((RenderTarget2D)null); this._wasPrepared = true; }
public override void ModifyDrawHeadLayers(List <PlayerHeadLayer> layers) { layers.Add(new PlayerHeadLayer(mod.Name, "SSC: Pig", (info) => { var drawPlayer = info.drawPlayer; if (drawPlayer.GetModPlayer <MPlayer>().Piggify) { var pigTex = ServerSideCharacter2.ModTexturesTable["Pig"]; var pos = new Vector2(drawPlayer.position.X - Main.screenPosition.X - drawPlayer.bodyFrame.Width / 2 + drawPlayer.width / 2, drawPlayer.position.Y - Main.screenPosition.Y + drawPlayer.height - drawPlayer.bodyFrame.Height + 4f) + drawPlayer.headPosition + info.drawOrigin; var dd = new DrawData(pigTex, pos, null, Color.White, 0f, info.drawOrigin, info.scale * 0.5f, SpriteEffects.None, 0); dd.Draw(Main.spriteBatch); } })); base.ModifyDrawHeadLayers(layers); }
public static void drawdigistuff(PlayerDrawInfo drawInfo, bool front) { Player drawPlayer = drawInfo.drawPlayer; SGAmod mod = SGAmod.Instance; SGAPlayer modply = drawPlayer.GetModPlayer <SGAPlayer>(); int bonusattacks = (int)(((float)modply.digiStacks / (float)modply.digiStacksMax) * (float)modply.digiStacksCount); if (bonusattacks > 0) { List <Vector2> whichone = new List <Vector2>(); for (int i = 0; i < bonusattacks; i += 1) { float angle = MathHelper.ToRadians(modply.timer + ((((float)i - 1) / (float)bonusattacks) * 360f)); float scaler = 1f + ((float)Math.Sin(angle) * 0.25f); whichone.Add(new Vector2(scaler, angle)); //Vector2 apos = new Vector2((float)Math.Cos(angle) * 64, (float)Math.Sin(angle) * 24); } whichone = whichone.OrderBy((x) => x.X).ToList(); if (whichone.Count > 0) { for (int a = 0; a < whichone.Count; a += 1) { Vector2 theplace = whichone[a]; float scaler = theplace.X; if ((scaler >= 1f && front) || (scaler < 1f && !front)) { float angle = theplace.Y; Vector2 apos = new Vector2((float)Math.Cos(angle) * 64, (float)Math.Sin(angle) * 12); Texture2D texture = Main.itemTexture[ItemID.ManaCrystal]; int drawX = (int)((drawPlayer.Center.X + apos.X) - Main.screenPosition.X); int drawY = (int)((drawPlayer.MountedCenter.Y + apos.Y) - Main.screenPosition.Y); //gravDir DrawData data = new DrawData(texture, new Vector2(drawX, drawY), null, Color.White, (float)0, new Vector2(texture.Width / 2, texture.Height / 2), scaler, (drawPlayer.gravDir > 0 ? SpriteEffects.None : SpriteEffects.FlipVertically), 0); //data.shader = (int)drawPlayer.dye[2].dye; Main.playerDrawData.Add(data); } } } } }
public virtual void Apply(Entity entity, DrawData?drawData = null) { base.Shader.Parameters["uColor"].SetValue(_uColor); base.Shader.Parameters["uSaturation"].SetValue(_uSaturation); base.Shader.Parameters["uSecondaryColor"].SetValue(_uSecondaryColor); base.Shader.Parameters["uTime"].SetValue(Main.GlobalTimeWrappedHourly); base.Shader.Parameters["uOpacity"].SetValue(_uOpacity); base.Shader.Parameters["uTargetPosition"].SetValue(_uTargetPosition); if (drawData.HasValue) { DrawData value = drawData.Value; Vector4 value2 = value.sourceRect.HasValue ? new Vector4(value.sourceRect.Value.X, value.sourceRect.Value.Y, value.sourceRect.Value.Width, value.sourceRect.Value.Height) : new Vector4(0f, 0f, value.texture.Width, value.texture.Height); base.Shader.Parameters["uSourceRect"].SetValue(value2); base.Shader.Parameters["uLegacyArmorSourceRect"].SetValue(value2); base.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position); base.Shader.Parameters["uImageSize0"].SetValue(new Vector2(value.texture.Width, value.texture.Height)); base.Shader.Parameters["uLegacyArmorSheetSize"].SetValue(new Vector2(value.texture.Width, value.texture.Height)); base.Shader.Parameters["uRotation"].SetValue(value.rotation * (value.effect.HasFlag(SpriteEffects.FlipHorizontally) ? (-1f) : 1f)); base.Shader.Parameters["uDirection"].SetValue((!value.effect.HasFlag(SpriteEffects.FlipHorizontally)) ? 1 : (-1)); } else { Vector4 value3 = new Vector4(0f, 0f, 4f, 4f); base.Shader.Parameters["uSourceRect"].SetValue(value3); base.Shader.Parameters["uLegacyArmorSourceRect"].SetValue(value3); base.Shader.Parameters["uRotation"].SetValue(0f); } if (_uImage != null) { Main.graphics.GraphicsDevice.Textures[1] = _uImage.get_Value(); base.Shader.Parameters["uImageSize1"].SetValue(new Vector2(_uImage.Width(), _uImage.Height())); } if (entity != null) { base.Shader.Parameters["uDirection"].SetValue((float)entity.direction); } Player player = entity as Player; if (player != null) { Rectangle bodyFrame = player.bodyFrame; base.Shader.Parameters["uLegacyArmorSourceRect"].SetValue(new Vector4(bodyFrame.X, bodyFrame.Y, bodyFrame.Width, bodyFrame.Height)); base.Shader.Parameters["uLegacyArmorSheetSize"].SetValue(new Vector2(40f, 1120f)); } Apply(); }
public async Task <IActionResult> Index() { DrawData draws = await ApiOpapFetch(); var lastDrawInDatabase = _drawRepository.Draws.LastOrDefault(); var drawDifference = draws.drawNo - lastDrawInDatabase.DrawNumber; if (drawDifference != 0) { for (var i = 1; i <= drawDifference; i++) { DrawData drawToSave = await ApiOpapFetch(lastDrawInDatabase.DrawNumber + i); await AddToDataBase(drawToSave); } } return(View(draws)); }
private void _presenter_AddIslandToCanvas(object sender, Presenters.DisplayAddDrawableDataEventArgs displayAddDrawableDataEventArgs) { Dispatcher.Invoke(new Action(() => { var drawables = displayAddDrawableDataEventArgs.Drawables; // we will use _drawData later when displaying textual information var indexAddingDrawablesTo = mainCanvas.Children.Count; var newDrawData = new DrawData(displayAddDrawableDataEventArgs.Name, drawables.Count, indexAddingDrawablesTo, drawables); _drawDataList.Add(newDrawData); foreach (var polygonUIElement in drawables) { mainCanvas.Children.Add(polygonUIElement); } })); }
internal static DrawData modDraw_WaistWeapon(DrawData data, Player p, float length) { float maxFall = 2f; if (!ModConf.toggleWaistRotation) { maxFall = p.velocity.Y * p.gravDir; if (p.velocity.Y == 0) { maxFall = p.velocity.X * p.direction; } } data.rotation = (float)(Math.PI * 1 + Math.PI * (0.1f + maxFall * 0.01f) * p.direction) * p.gravDir; //rotate just over 180 clockwise data.position.X -= (length * 0.5f - 20) * p.direction; //back data.position.Y += (14 - maxFall / 2) * p.gravDir; //down return(data); }
public void DrawGlowmask(PlayerDrawInfo info) { var player = info.drawPlayer; if (player.itemAnimation == 0) { return; } var tex = GetTexture(Texture + "Glow"); var color = Color.White * (heat / 100f); var origin = player.direction == 1 ? new Vector2(0, tex.Height) : new Vector2(tex.Width, tex.Height); var data = new DrawData(tex, info.itemLocation - Main.screenPosition, null, color, player.itemRotation, origin, item.scale, player.direction == 1 ? SpriteEffects.None : SpriteEffects.FlipHorizontally, 0); Main.playerDrawData.Add(data); }
public override void Draw(ref ParticleRendererSettings settings, SpriteBatch spritebatch) { Color color = new Color(120, 120, 120, 60) * Utils.GetLerpValue(1f, FadeOutNormalizedTime, _timeSinceSpawn / _timeTolive, clamped: true); Vector2 value = settings.AnchorPosition + LocalPosition; ulong seed = Main.TileFrameSeed ^ (((ulong)LocalPosition.X << 32) | (uint)LocalPosition.Y); Player player = Main.player[_indexOfPlayerWhoSpawnedThis]; for (int i = 0; i < 4; i++) { DrawData drawData = new DrawData(position: value + new Vector2(Utils.RandomInt(ref seed, -2, 3), Utils.RandomInt(ref seed, -2, 3)) * Scale, texture: _texture.get_Value(), sourceRect: _frame, color: color, rotation: Rotation, origin: _origin, scale: Scale, effect: SpriteEffects.None, inactiveLayerDepth: 0); drawData.shader = _packedShaderIndex; DrawData cdd = drawData; PlayerDrawHelper.SetShaderForData(player, 0, ref cdd); cdd.Draw(spritebatch); } Main.pixelShader.CurrentTechnique.Passes[0].Apply(); }
private void Draw(DrawData[] drawData, Matrix4 viewMatrix) { for (int i = 0; i < drawData.Length; i++) { DrawData data = drawData[i]; Debug.Assert(data.Model != null); if (!RenderEnabled) { return; } if (_activeShader.GetUniform("UVMatrix") != -1) { Matrix4 UVMatrix = data.Model.TransformUv.GetMatrix(); GL.UniformMatrix4(_activeShader.GetUniform("UVMatrix"), false, ref UVMatrix); } if (data.Model.Texture != null) { GL.Uniform1(_activeShader.GetUniform("isTextured"), 1); GL.BindTexture(TextureTarget.Texture2D, data.Model.Texture.GetId()); } else { GL.Uniform1(_activeShader.GetUniform("isTextured"), 0); GL.BindTexture(TextureTarget.Texture2D, -1); } if (data.Model.Wireframe) { SetEnable(EnableCap.CullFace, false); GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line); } if (data.Model.IsTransparent) { SetEnable(EnableCap.Blend, true); } RenderSetTransformMatrix(data.Offset, data.Model, viewMatrix); GL.DrawElements(PrimitiveType.Triangles, data.Model.GetIndices().Length, DrawElementsType.UnsignedInt, (IntPtr)(data.Index * sizeof(int))); if (data.Model.Wireframe) { SetEnable(EnableCap.CullFace, true); GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill); } if (data.Model.IsTransparent) { SetEnable(EnableCap.Blend, false); } } }
/** * oblicza tekstury, po otrzymaniu wyniku rozmiar jest porównywany z rozmiarem w którym ma się zmieścić wynik, jeśli się nie nieści następuje * przeskalowanie i ponowne obliczanie */ private Size PrepareBitmap(float scale) { float width=0; float height = 0; drawDataList=new List<DrawData>(); for(int i=0;i<this.text.Length;i++){ char c=this.text[i]; Texture bitmap=null; if(bitmapMap!=null){ Texture tempBitmap=bitmapMap[c]; if(tempBitmap!=null){ bitmap=tempBitmap; } } if(bitmapList.Length>0){ Texture tempBitmap=bitmapList[int.Parse(c.ToString())]; if(tempBitmap!=null){ bitmap=tempBitmap; } } if(bitmap!=null){ DrawData data=new DrawData(); data.bitmap=bitmap; if(orientation==Orientation.horizontal){ data.position=new Rect(width,0,bitmap.width*scale,bitmap.height*scale); width+=bitmap.width*scale; if(height<bitmap.height*scale)height=bitmap.height*scale; }else{ data.position=new Rect(0,height,bitmap.width,bitmap.height*scale); height+=bitmap.height*scale; if(width<bitmap.width*scale)width=bitmap.width*scale; } drawDataList.Add(data); } } return new Size (width,height); }