本文整理汇总了C#中LightSetting类的典型用法代码示例。如果您正苦于以下问题:C# LightSetting类的具体用法?C# LightSetting怎么用?C# LightSetting使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LightSetting类属于命名空间,在下文中一共展示了LightSetting类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MapInfo
public MapInfo(BinaryReader reader)
{
Index = reader.ReadInt32();
FileName = reader.ReadString();
Title = reader.ReadString();
MiniMap = reader.ReadUInt16();
Light = (LightSetting) reader.ReadByte();
if (Envir.LoadVersion >= 3) BigMap = reader.ReadUInt16();
if (Envir.LoadVersion >= 10) reader.ReadByte();
int count = reader.ReadInt32();
for (int i = 0; i < count; i++)
SafeZones.Add(new SafeZoneInfo(reader) { Info = this });
count = reader.ReadInt32();
for (int i = 0; i < count; i++)
Respawns.Add(new RespawnInfo(reader));
count = reader.ReadInt32();
for (int i = 0; i < count; i++)
NPCs.Add(new NPCInfo(reader));
count = reader.ReadInt32();
for (int i = 0; i < count; i++)
Movements.Add(new MovementInfo(reader));
}
示例2: MapInfo
public MapInfo(BinaryReader reader)
{
Index = reader.ReadInt32();
FileName = reader.ReadString();
Title = reader.ReadString();
MiniMap = reader.ReadUInt16();
Light = (LightSetting) reader.ReadByte();
if (Envir.LoadVersion >= 3) BigMap = reader.ReadUInt16();
int count = reader.ReadInt32();
for (int i = 0; i < count; i++)
SafeZones.Add(new SafeZoneInfo(reader) { Info = this });
count = reader.ReadInt32();
for (int i = 0; i < count; i++)
Respawns.Add(new RespawnInfo(reader));
count = reader.ReadInt32();
for (int i = 0; i < count; i++)
NPCs.Add(new NPCInfo(reader));
count = reader.ReadInt32();
for (int i = 0; i < count; i++)
Movements.Add(new MovementInfo(reader));
if (Envir.LoadVersion < 14) return;
NoTeleport = reader.ReadBoolean();
NoReconnect = reader.ReadBoolean();
NoReconnectMap = reader.ReadString();
NoRandom = reader.ReadBoolean();
NoEscape = reader.ReadBoolean();
NoRecall = reader.ReadBoolean();
NoDrug = reader.ReadBoolean();
NoPosition = reader.ReadBoolean();
NoThrowItem = reader.ReadBoolean();
NoDropPlayer = reader.ReadBoolean();
NoDropMonster = reader.ReadBoolean();
NoNames = reader.ReadBoolean();
Fight = reader.ReadBoolean();
if (Envir.LoadVersion == 14) NeedHole = reader.ReadBoolean();
Fire = reader.ReadBoolean();
FireDamage = reader.ReadInt32();
Lightning = reader.ReadBoolean();
LightningDamage = reader.ReadInt32();
if (Envir.LoadVersion < 23) return;
MapDarkLight = reader.ReadByte();
if (Envir.LoadVersion < 26) return;
count = reader.ReadInt32();
for (int i = 0; i < count; i++)
MineZones.Add(new MineZone(reader));
if (Envir.LoadVersion < 27) return;
MineIndex = reader.ReadByte();
}
示例3: DrawLights
private void DrawLights(LightSetting setting)
{
if (DXManager.Lights == null || DXManager.Lights.Count == 0) return;
if (_lightTexture == null || _lightTexture.Disposed)
{
_lightTexture = new Texture(DXManager.Device, Settings.ScreenWidth, Settings.ScreenHeight, 1, Usage.RenderTarget, Format.A8R8G8B8, Pool.Default);
_lightTexture.Disposing += FloorTexture_Disposing;
_lightSurface = _lightTexture.GetSurfaceLevel(0);
}
Surface oldSurface = DXManager.CurrentSurface;
DXManager.SetSurface(_lightSurface);
Color Darkness = Color.Black;
switch (MapDarkLight)//todo fill these with more usefull values :p
{
case 1:
Darkness = Color.FromArgb(255, 20, 20, 20);
break;
case 2:
Darkness = Color.LightSlateGray;
break;
case 3:
Darkness = Color.SkyBlue;
break;
case 4:
Darkness = Color.Goldenrod;
break;
default:
Darkness = Color.Black;
break;
}
DXManager.Device.Clear(ClearFlags.Target, setting == LightSetting.Night ? Darkness : Color.FromArgb(255, 50, 50, 50), 0, 0);
int light;
Point p;
DXManager.SetBlend(true);
DXManager.Device.RenderState.SourceBlend = Blend.SourceAlpha;
for (int i = 0; i < Objects.Count; i++)
{
MapObject ob = Objects[i];
if (ob.Light > 0 && (!ob.Dead || ob == MapObject.User || ob.Race == ObjectType.Spell))
{
light = ob.Light;
int LightRange = light % 15;
if (LightRange >= DXManager.Lights.Count)
LightRange = DXManager.Lights.Count - 1;
p = ob.DrawLocation;
Color lightIntensity;
switch (light / 15)
{
case 0://no light source
lightIntensity = Color.FromArgb(255, 60, 60, 60);
break;
case 1:
lightIntensity = Color.FromArgb(255, 120, 120, 120);
break;
case 2://Candle
lightIntensity = Color.FromArgb(255, 180, 180, 180);
break;
case 3://Torch
lightIntensity = Color.FromArgb(255, 240, 240, 240);
break;
default://Peddler Torch
lightIntensity = Color.FromArgb(255, 255, 255, 255);
break;
}
//NPCs use wider light width, but low source
if (ob.Race == ObjectType.Merchant)
lightIntensity = Color.FromArgb(255, 120, 120, 120);
if (DXManager.Lights[LightRange] != null && !DXManager.Lights[LightRange].Disposed)
{
p.Offset(-(DXManager.LightSizes[LightRange].X / 2) - (CellWidth / 2) + 10, -(DXManager.LightSizes[LightRange].Y / 2) - (CellHeight / 2) - 5);
DXManager.Sprite.Draw2D(DXManager.Lights[LightRange], PointF.Empty, 0, p, lightIntensity); // ob is MonsterObject && ob.AI != 6 ? Color.PaleVioletRed :
}
}
if (!Settings.Effect) continue;
for (int e = 0; e < ob.Effects.Count; e++)
{
Effect effect = ob.Effects[e];
if (!effect.Blend || CMain.Time < effect.Start || (!(effect is Missile) && effect.Light < ob.Light)) continue;
light = effect.Light;
p = effect.DrawLocation;
if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed)
{
p.Offset(-(DXManager.LightSizes[light].X / 2) - (CellWidth / 2) + 10, -(DXManager.LightSizes[light].Y / 2) - (CellHeight / 2) - 5);
DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, effect.LightColour);
//.........这里部分代码省略.........
示例4: TimeOfDay
private void TimeOfDay(S.TimeOfDay p)
{
Lights = p.Lights;
switch (Lights)
{
case LightSetting.Day:
case LightSetting.Normal:
MiniMapDialog.LightSetting.Index = 2093;
break;
case LightSetting.Dawn:
MiniMapDialog.LightSetting.Index = 2095;
break;
case LightSetting.Evening:
MiniMapDialog.LightSetting.Index = 2094;
break;
case LightSetting.Night:
MiniMapDialog.LightSetting.Index = 2092;
break;
}
}
示例5: AdjustLights
private void AdjustLights()
{
LightSetting oldLights = Lights;
int hours = (Now.Hour * 2) % 24;
if (hours == 6 || hours == 7)
Lights = LightSetting.Dawn;
else if (hours >= 8 && hours <= 15)
Lights = LightSetting.Day;
else if (hours == 16 || hours == 17)
Lights = LightSetting.Evening;
else
Lights = LightSetting.Night;
if (oldLights == Lights) return;
Broadcast(new S.TimeOfDay { Lights = Lights });
}
示例6: ReadPacket
protected override void ReadPacket(BinaryReader reader)
{
FileName = reader.ReadString();
Title = reader.ReadString();
MiniMap = reader.ReadUInt16();
BigMap = reader.ReadUInt16();
Lights = (LightSetting)reader.ReadByte();
byte bools = reader.ReadByte();
if ((bools & 0x01) == 0x01) Lightning = true;
if ((bools & 0x02) == 0x02) Fire = true;
MapDarkLight = reader.ReadByte();
Music = reader.ReadUInt16();
}
示例7: DrawLights
private void DrawLights(LightSetting setting)
{
if (DXManager.Lights == null || DXManager.Lights.Count == 0) return;
if (_lightTexture == null || _lightTexture.Disposed)
{
_lightTexture = new Texture(DXManager.Device, Settings.ScreenWidth, Settings.ScreenHeight, 1, Usage.RenderTarget, Format.A8R8G8B8, Pool.Default);
_lightTexture.Disposing += FloorTexture_Disposing;
_lightSurface = _lightTexture.GetSurfaceLevel(0);
}
Surface oldSurface = DXManager.CurrentSurface;
DXManager.SetSurface(_lightSurface);
DXManager.Device.Clear(ClearFlags.Target, setting == LightSetting.Night ? Color.Black : Color.FromArgb(255, 50, 50, 50), 0, 0);
int light;
Point p;
DXManager.SetBlend(true);
DXManager.Device.RenderState.SourceBlend = Blend.SourceAlpha;
for (int i = 0; i < Objects.Count; i++)
{
MapObject ob = Objects[i];
if (ob.Light > 0 && (!ob.Dead || ob == MapObject.User || ob.Race == ObjectType.Spell))
{
light = ob.Light;
if (light >= DXManager.Lights.Count)
light = DXManager.Lights.Count - 1;
p = ob.DrawLocation;
p.Offset(((light + 1)*-65 + CellWidth)/2, ((light + 1)*-50 + CellHeight)/2);
if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed)
DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, ob is MonsterObject && ob.AI != 6 ? Color.PaleVioletRed : Color.White);
}
if (!Settings.Effect) continue;
for (int e = 0; e < ob.Effects.Count; e++)
{
Effect effect = ob.Effects[e];
if (!effect.Blend || CMain.Time < effect.Start || (!(effect is Missile) && effect.Light < ob.Light)) continue;
light = effect.Light;
p = effect.DrawLocation;
p.Offset(((light + 1)*-65 + CellWidth)/2, ((light + 1)*-50 + CellHeight)/2);
if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed)
DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, Color.White);
}
}
if (Settings.Effect)
for (int e = 0; e < Effects.Count; e++)
{
Effect effect = Effects[e];
if (!effect.Blend || CMain.Time < effect.Start) continue;
light = effect.Light;
p = effect.DrawLocation;
p.Offset(((light + 1)*-65 + CellWidth)/2, ((light + 1)*-50 + CellHeight)/2);
if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed)
DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, Color.White);
}
for (int y = MapObject.User.Movement.Y - ViewRangeY - 10; y <= MapObject.User.Movement.Y + ViewRangeY + 10; y++)
{
if (y < 0) continue;
if (y >= Height) break;
for (int x = MapObject.User.Movement.X - ViewRangeX - 10; x < MapObject.User.Movement.X + ViewRangeX + 10; x++)
{
if (x < 0) continue;
if (x >= Width) break;
int imageIndex = (M2CellInfo[x, y].FrontImage & 0x7FFF) - 1;
if (M2CellInfo[x, y].Light <= 0 || M2CellInfo[x, y].Light >= 10) continue;
light = M2CellInfo[x, y].Light*3;
int fileIndex = M2CellInfo[x, y].FileIndex;
p = new Point(
(x + OffSetX - MapObject.User.Movement.X) * CellWidth + MapObject.User.OffSetMove.X,
(y + OffSetY - MapObject.User.Movement.Y) * CellHeight + MapObject.User.OffSetMove.Y + 32);
p.Offset(((light + 1)*-65 + CellWidth)/2, ((light + 1)*-50 + CellHeight)/2);
if (M2CellInfo[x, y].AnimationFrame > 0)
p.Offset(Libraries.Objects[fileIndex].GetOffSet(imageIndex));
if (light > DXManager.Lights.Count)
light = DXManager.Lights.Count - 1;
if (DXManager.Lights[light] != null && !DXManager.Lights[light].Disposed)
DXManager.Sprite.Draw2D(DXManager.Lights[light], PointF.Empty, 0, p, Color.White);
}
}
DXManager.SetBlend(false);
//.........这里部分代码省略.........
示例8: ReadPacket
protected override void ReadPacket(BinaryReader reader)
{
FileName = reader.ReadString();
Title = reader.ReadString();
MiniMap = reader.ReadUInt16();
BigMap = reader.ReadUInt16();
Lights = (LightSetting) reader.ReadByte();
}
示例9: DrawLights
private void DrawLights(LightSetting setting)
{
if (DXManager.Lights == null || DXManager.Lights.Count == 0) return;
if (_lightTexture == null || _lightTexture.Disposed)
{
_lightTexture = new Texture(DXManager.Device, Settings.ScreenWidth, Settings.ScreenHeight, 1, Usage.RenderTarget, Format.A8R8G8B8, Pool.Default);
_lightTexture.Disposing += FloorTexture_Disposing;
_lightSurface = _lightTexture.GetSurfaceLevel(0);
}
Surface oldSurface = DXManager.CurrentSurface;
DXManager.SetSurface(_lightSurface);
#region Night Lights
Color Darkness = Color.Black;
switch (MapDarkLight)
{
case 1:
Darkness = Color.FromArgb(255, 20, 20, 20);
break;
case 2:
Darkness = Color.LightSlateGray;
break;
case 3:
Darkness = Color.SkyBlue;
break;
case 4:
Darkness = Color.Goldenrod;
break;
default:
Darkness = Color.Black;
break;
}
DXManager.Device.Clear(ClearFlags.Target, setting == LightSetting.Night ? Darkness : Color.FromArgb(255, 50, 50, 50), 0, 0);
#endregion
int light;
Point p;
DXManager.SetBlend(true);
DXManager.Device.RenderState.SourceBlend = Blend.SourceAlpha;
#region Object Lights (Player/Mob/NPC)
for (int i = 0; i < Objects.Count; i++)
{
MapObject ob = Objects[i];
if (ob.Light > 0 && (!ob.Dead || ob == MapObject.User || ob.Race == ObjectType.Spell))
{
light = ob.Light;
int LightRange = light % 15;
if (LightRange >= DXManager.Lights.Count)
LightRange = DXManager.Lights.Count - 1;
p = ob.DrawLocation;
Color lightColour = ob.LightColour;
if (ob.Race == ObjectType.Player)
{
switch (light / 15)
{
case 0://no light source
lightColour = Color.FromArgb(255, 60, 60, 60);
break;
case 1:
lightColour = Color.FromArgb(255, 120, 120, 120);
break;
case 2://Candle
lightColour = Color.FromArgb(255, 180, 180, 180);
break;
case 3://Torch
lightColour = Color.FromArgb(255, 240, 240, 240);
break;
default://Peddler Torch
lightColour = Color.FromArgb(255, 255, 255, 255);
break;
}
}
else if (ob.Race == ObjectType.Merchant)
{
lightColour = Color.FromArgb(255, 120, 120, 120);
}
if (DXManager.Lights[LightRange] != null && !DXManager.Lights[LightRange].Disposed)
{
p.Offset(-(DXManager.LightSizes[LightRange].X / 2) - (CellWidth / 2), -(DXManager.LightSizes[LightRange].Y / 2) - (CellHeight / 2) -5);
DXManager.Sprite.Draw2D(DXManager.Lights[LightRange], PointF.Empty, 0, p, lightColour);
}
}
#region Object Effect Lights
if (!Settings.Effect) continue;
for (int e = 0; e < ob.Effects.Count; e++)
{
Effect effect = ob.Effects[e];
if (!effect.Blend || CMain.Time < effect.Start || (!(effect is Missile) && effect.Light < ob.Light)) continue;
//.........这里部分代码省略.........
示例10: Dispose
protected override void Dispose(bool disposing)
{
if (disposing)
{
Objects.Clear();
MapButtons = 0;
MouseLocation = Point.Empty;
InputDelay = 0;
NextAction = 0;
M2CellInfo = null;
Width = 0;
Height = 0;
FileName = String.Empty;
Title = String.Empty;
MiniMap = 0;
BigMap = 0;
Lights = 0;
FloorValid = false;
LightsValid = false;
MapDarkLight = 0;
Music = 0;
if (_floorSurface != null && !_floorSurface.Disposed)
_floorSurface.Dispose();
if (_lightSurface != null && !_lightSurface.Disposed)
_lightSurface.Dispose();
AnimationCount = 0;
Effects.Clear();
}
base.Dispose(disposing);
}