本文整理汇总了C#中Icon.Blend方法的典型用法代码示例。如果您正苦于以下问题:C# Icon.Blend方法的具体用法?C# Icon.Blend怎么用?C# Icon.Blend使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Icon
的用法示例。
在下文中一共展示了Icon.Blend方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: getFlatIcon
//.........这里部分代码省略.........
curblend = defblend;
} else {
curblend = Lang13.IntNullable( A.blend_mode );
}
layers = new ByTable();
if ( !noIcon ) {
copy = new Image( curicon, null, curstate, A.layer, curdir );
copy.color = A.color;
copy.alpha = A.alpha;
copy.blend_mode = curblend;
layers[copy] = A.layer;
}
process = A.underlays;
pSet = false;
curIndex = 1;
while (GlobalVars.TRUE) {
if ( curIndex <= Lang13.Double( process.len ) ) {
current = process[curIndex];
if ( !Lang13.Bool( current ) ) {
curIndex++;
continue;
}
currentLayer = current.layer;
if ( Lang13.Double( currentLayer ) < 0 ) {
if ( Lang13.Double( currentLayer ) <= -1000 ) {
return flat;
}
if ( !pSet ) {
currentLayer = A.layer + currentLayer / 1000;
} else {
currentLayer = A.layer + ( currentLayer + 1000 ) / 1000;
}
}
cmpIndex = 1;
while (cmpIndex <= layers.len) {
compare = layers[cmpIndex];
if ( Lang13.Double( currentLayer ) < Lang13.Double( layers[compare] ) ) {
layers.Insert( cmpIndex, current );
layers[current] = currentLayer;
break;
}
cmpIndex++;
}
if ( cmpIndex > layers.len ) {
layers[current] = currentLayer;
}
curIndex++;
}
if ( curIndex > Lang13.Double( process.len ) ) {
if ( !pSet ) {
curIndex = 1;
pSet = true;
process = A.overlays;
} else {
break;
}
}
}
add = null;
flatX1 = 1;
flatX2 = flat.Width();
flatY1 = 1;
flatY2 = flat.Height();
addX1 = null;
addX2 = null;
addY1 = null;
addY2 = null;
I = null;
foreach (dynamic _a in layers ) {
I = _a;
if ( Lang13.Bool( I.alpha ) == false ) {
continue;
}
if ( I == copy ) {
curblend = GlobalVars.BLEND_OVERLAY ?1:0;
add = new Icon( I.icon, I.icon_state, Lang13.IntNullable( I.dir ) );
} else {
add = GlobalFuncs.getFlatIcon( new Image( I ), curdir, curicon, curstate, curblend );
}
addX1 = Num13.minInt( flatX1 ??0, Lang13.Int( I.pixel_x + 1 ) );
addX2 = Num13.maxInt( flatX2 ??0, Lang13.Int( I.pixel_x + add.Width() ) );
addY1 = Num13.minInt( flatY1 ??0, Lang13.Int( I.pixel_y + 1 ) );
addY2 = Num13.maxInt( flatY2 ??0, Lang13.Int( I.pixel_y + add.Height() ) );
if ( addX1 != flatX1 || addX2 != flatX2 || addY1 != flatY1 || addY2 != flatY2 ) {
flat.Crop( ( addX1 ??0) - ( flatX1 ??0) + 1, ( addY1 ??0) - ( flatY1 ??0) + 1, ( addX2 ??0) - ( flatX1 ??0) + 1, ( addY2 ??0) - ( flatY1 ??0) + 1 );
flatX1 = addX1;
flatX2 = addX2;
flatY1 = addY1;
flatY2 = addY2;
}
flat.Blend( add, GlobalFuncs.blendMode2iconMode( curblend ), Lang13.IntNullable( I.pixel_x + 2 - flatX1 ), Lang13.IntNullable( I.pixel_y + 2 - flatY1 ) );
};
if ( Lang13.Bool( A.color ) ) {
flat.Blend( A.color, 2 );
}
if ( Lang13.Double( A.alpha ) < 255 ) {
flat.Blend( String13.color_code( 255, 255, 255, Lang13.Int( A.alpha ) ), 2 );
}
return new Icon( flat, "", GlobalVars.SOUTH );
}
示例2: getIconMask
// Range: -1 Access: 0 Flags: ( 0, 4, 255 )
public static Icon getIconMask( Mob A = null ) {
Icon alpha_mask = null;
dynamic I = null;
Icon image_overlay = null;
alpha_mask = new Icon( ((dynamic)A).icon, ((dynamic)A).icon_state );
I = null;
foreach (dynamic _a in ((dynamic)A).overlays ) {
I = _a;
if ( Lang13.Double( I.layer ) > Lang13.Double( ((dynamic)A).layer ) ) {
continue;
}
image_overlay = new Icon( I.icon, I.icon_state );
alpha_mask.Blend( image_overlay, 5 );
};
return alpha_mask;
}
示例3: generate_female_clothing
// Range: -1 Access: 0 Flags: ( 0, 4, 255 )
public static void generate_female_clothing( string index = null, string t_color = null, string icon = null, bool? type = null ) {
Icon female_clothing_icon = null;
Icon female_s = null;
female_clothing_icon = new Icon( icon, t_color );
female_s = new Icon( "icons/mob/uniform.dmi", "" + ( type == true ? "female_full" : "female_top" ) );
female_clothing_icon.Blend( female_s, 2 );
female_clothing_icon = File13.cache( female_clothing_icon );
GlobalVars.female_clothing_icons[index] = female_clothing_icon;
return;
}