本文整理汇总了C#中Decal类的典型用法代码示例。如果您正苦于以下问题:C# Decal类的具体用法?C# Decal怎么用?C# Decal使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Decal类属于命名空间,在下文中一共展示了Decal类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VirindiViewsPresent
static bool VirindiViewsPresent(Decal.Adapter.Wrappers.PluginHost pHost)
{
#if VVS_REFERENCED
System.Reflection.Assembly[] asms = AppDomain.CurrentDomain.GetAssemblies();
foreach (System.Reflection.Assembly a in asms)
{
AssemblyName nmm = a.GetName();
if ((nmm.Name == "VirindiViewService") && (nmm.Version >= new System.Version("1.0.0.37")))
{
try
{
return Curtain_VVS_Running();
}
catch
{
return false;
}
}
}
return false;
#else
return false;
#endif
}
示例2: CharacterFilter_ChangePortalMode
private void CharacterFilter_ChangePortalMode(object sender, Decal.Adapter.Wrappers.ChangePortalModeEventArgs e)
{
if (e.Type == this._expectedPortalEventType)
{
this._event.Set();
}
}
示例3: BuildDecalForObject
public static void BuildDecalForObject(Decal decal, GameObject affectedObject)
{
Mesh affectedMesh = affectedObject.GetComponent<MeshFilter>().sharedMesh;
if(affectedMesh == null) return;
float maxAngle = decal.maxAngle;
Plane right = new Plane( Vector3.right, Vector3.right/2f );
Plane left = new Plane( -Vector3.right, -Vector3.right/2f );
Plane top = new Plane( Vector3.up, Vector3.up/2f );
Plane bottom = new Plane( -Vector3.up, -Vector3.up/2f );
Plane front = new Plane( Vector3.forward, Vector3.forward/2f );
Plane back = new Plane( -Vector3.forward, -Vector3.forward/2f );
Vector3[] vertices = affectedMesh.vertices;
int[] triangles = affectedMesh.triangles;
int startVertexCount = bufVertices.Count;
Matrix4x4 matrix = decal.transform.worldToLocalMatrix * affectedObject.transform.localToWorldMatrix;
for(int i=0; i<triangles.Length; i+=3) {
int i1 = triangles[i];
int i2 = triangles[i+1];
int i3 = triangles[i+2];
Vector3 v1 = matrix.MultiplyPoint( vertices[i1] );
Vector3 v2 = matrix.MultiplyPoint( vertices[i2] );
Vector3 v3 = matrix.MultiplyPoint( vertices[i3] );
Vector3 side1 = v2 - v1;
Vector3 side2 = v3 - v1;
Vector3 normal = Vector3.Cross(side1, side2).normalized;
if( Vector3.Angle(-Vector3.forward, normal) >= maxAngle ) continue;
DecalPolygon poly = new DecalPolygon( v1, v2, v3 );
poly = DecalPolygon.ClipPolygon(poly, right);
if(poly == null) continue;
poly = DecalPolygon.ClipPolygon(poly, left);
if(poly == null) continue;
poly = DecalPolygon.ClipPolygon(poly, top);
if(poly == null) continue;
poly = DecalPolygon.ClipPolygon(poly, bottom);
if(poly == null) continue;
poly = DecalPolygon.ClipPolygon(poly, front);
if(poly == null) continue;
poly = DecalPolygon.ClipPolygon(poly, back);
if(poly == null) continue;
AddPolygon( poly, normal );
}
GenerateTexCoords(startVertexCount, decal.sprite);
}
示例4: InitializeRawXML
public void InitializeRawXML(Decal.Adapter.Wrappers.PluginHost p, string pXML, string pWindowKey)
{
VirindiViewService.XMLParsers.Decal3XMLParser ps = new VirindiViewService.XMLParsers.Decal3XMLParser();
ViewProperties iprop;
ControlGroup igroup;
ps.Parse(pXML, out iprop, out igroup);
myView = new VirindiViewService.HudView(iprop, igroup, pWindowKey);
}
示例5: _decalEvents_SpellCast
void _decalEvents_SpellCast(object sender, Decal.Adapter.Wrappers.SpellCastEventArgs e)
{
switch (e.SpellId)
{
case Data.SpellIds.LifestoneRecall:
this.OnSelfLifestoneRecall();
break;
}
}
示例6: CharacterFilter_Login
void CharacterFilter_Login(object sender, Decal.Adapter.Wrappers.LoginEventArgs e)
{
try
{
if (!Settings.SettingsManager.Misc.RemoveWindowFrame.Value)
return;
RemoveWindowFrame();
}
catch (Exception ex) { Debug.LogException(ex); }
}
示例7: CharacterFilter_Death
void CharacterFilter_Death(object sender, Decal.Adapter.Wrappers.DeathEventArgs e)
{
try
{
if (!Settings.SettingsManager.Misc.LogOutOnDeath.Value)
return;
CoreManager.Current.Actions.Logout();
}
catch (Exception ex) { Debug.LogException(ex); }
}
示例8: CoreManager_ChatBoxMessage
void CoreManager_ChatBoxMessage(object sender, Decal.Adapter.ChatTextInterceptEventArgs e)
{
REPlugin.Instance.InvokeOperationSafely(() =>
{
ChatEvent chatEvent;
if (ChatEvent.TryParse(e.Text, out chatEvent))
{
this.HandleChatEvent(chatEvent);
}
});
}
示例9: GenerateUV
private void GenerateUV(Decal d)
{
if(d.GetComponent<MeshFilter>() == null) return;
Mesh m = d.GetComponent<MeshFilter>().sharedMesh;
Vector2[] uv = Unwrapping.GeneratePerTriangleUV(m);
MeshUtility.SetPerTriangleUV2(m, uv);
Unwrapping.GenerateSecondaryUVSet(m);
}
示例10: IsPresent
///////////////////////////////System presence detection///////////////////////////////
public static bool IsPresent(Decal.Adapter.Wrappers.PluginHost pHost, eViewSystem VSystem)
{
switch (VSystem)
{
case eViewSystem.DecalInject:
return true;
case eViewSystem.VirindiViewService:
return VirindiViewsPresent(pHost);
default:
return false;
}
}
示例11: ChangePortalModeCorpses
private void ChangePortalModeCorpses(object sender, Decal.Adapter.Wrappers.ChangePortalModeEventArgs e)
{
try
{
CorpseTrackingList.Clear();
foreach(WorldObject wo in Core.WorldFilter.GetByObjectClass(ObjectClass.Corpse))
{
if(!CorpseTrackingList.Any(x => x.Id == wo.Id)){CheckCorpse(new LandscapeObject(wo));}
}
UpdateCorpseHud();
}catch(Exception ex){LogError(ex);}
}
示例12: _decalEventsProxy_ChatBoxMessage
void _decalEventsProxy_ChatBoxMessage(object sender, Decal.Adapter.ChatTextInterceptEventArgs e)
{
ICommand command;
if (CommandHelpers.TryParse(e, out command))
{
switch (command.CommandType)
{
case CommandType.Foreign:
// Never eat ...Then I can't see the /f messages i'm causing...while others still can
Handlers.ForeignHandler.HandleCommand(command);
break;
}
}
}
示例13: _decalEventsProxy_CommandLineText
void _decalEventsProxy_CommandLineText(object sender, Decal.Adapter.ChatParserInterceptEventArgs e)
{
ICommand command;
if (CommandHelpers.TryParse(e, out command))
{
switch (command.CommandType)
{
case CommandType.RedoxExtension:
e.Eat = Handlers.RedoxExtensionsHandler.HandleCommand(command);
break;
case CommandType.RedoxFellow:
e.Eat = Handlers.RedoxFellowHandler.HandleCommand(command);
break;
}
}
}
示例14: CharacterFilter_Login
void CharacterFilter_Login(object sender, Decal.Adapter.Wrappers.LoginEventArgs e)
{
try
{
WindowPosition windowPosition;
if (GetWindowPositionForThisClient(out windowPosition))
{
User32.RECT rect = new User32.RECT();
User32.GetWindowRect(CoreManager.Current.Decal.Hwnd, ref rect);
User32.MoveWindow(CoreManager.Current.Decal.Hwnd, windowPosition.X, windowPosition.Y, rect.Right - rect.Left, rect.Bottom - rect.Top, true);
}
}
catch (Exception ex) { Debug.LogException(ex); }
}
示例15: DecalCore_CommandLineText
private void DecalCore_CommandLineText(object sender, Decal.Adapter.ChatParserInterceptEventArgs e)
{
REWrapperPlugin.Instance.InvokeOperationSafely(() =>
{
if (e.Text.StartsWith(CommandPrefix_Legacy))
{
var command = e.Text.Substring(CommandPrefix_Legacy.Length + 1).Trim();
e.Eat = this.HandleNormalCommand(command, true);
}
else if (e.Text.StartsWith(CommandPrefix))
{
var command = e.Text.Substring(CommandPrefix.Length + 1).Trim();
e.Eat = this.HandleNormalCommand(command, false);
}
});
}