Script:Files:script/misc/maskeditor.script
From Mod Wiki
/*********************************************************************** maskeditor.script ***********************************************************************/ object maskeditor : weapon_base { void destroy(); void init(); void Lower(); void Raise(); void Idle(); object session; float hudModuleHandle; float showHudValue; cvar g_editMask; cvar g_editMaskSize; cvar g_editMaskAutoSave; }; void maskeditor::destroy() { if ( hudModuleHandle != -1 ) { sys.freeHudModule( hudModuleHandle ); hudModuleHandle = -1; } session.remove(); g_editMask.remove(); g_editMaskSize.remove(); g_editMaskAutoSave.remove(); } void maskeditor::init() { hudModuleHandle = sys.allocHudModule( getKey( "gui_overlay" ), getFloatKeyWithDefault( "hud_sort", 0 ), false ); session = sys.createMaskEditSession(); session.setDecalMaterial( getKey( "mtr_decal" ) ); g_editMask = sys.getCVar( "g_editMask", "dm_default" ); g_editMaskSize = sys.getCVar( "g_editMaskSize", "1" ); g_editMaskAutoSave = sys.getCVar( "g_editMaskAutoSave", "1" ); session.openMask( g_editMask.getStringValue() ); weaponState( "Raise", 0 ); } void maskeditor::Raise() { weaponRising(); weaponState( "Idle", 4 ); } void maskeditor::Lower() { weaponHolstered(); waitUntil( WEAPON_RAISEWEAPON ); weaponState( "Raise", 0 ); } void maskeditor::Idle() { weaponReady(); float changed = 0.f; float autosave; while ( 1 ) { sys.waitFrame(); session.setStampSize( g_editMaskSize.getFloatValue() ); autosave = g_editMaskAutoSave.getBoolValue(); sys.setGUIFloat( hudModuleHandle, "changed", changed ); if ( melee( MASK_SOLID | MASK_OPAQUE, 4096.f * 20, 1, false ) ) { vector position = getMeleeEndPos(); session.updateProjection( position ); if ( WEAPON_ATTACK ) { if ( session.stamp( position, autosave, 1.f ) ) { if ( !autosave ) { changed = 1.f; } } } if ( WEAPON_ALTFIRE ) { if ( session.stamp( position, autosave, 0.f ) ) { if ( !autosave ) { changed = 1.f; } } } if ( myPlayer.getButton( PK_ACTIVATE ) ) { if ( changed ) { session.saveAll(); changed = 0.f; } } if ( WEAPON_LOWERWEAPON ) { weaponState( "Lower", 0 ); } if ( myPlayer.getButton( PK_SPRINT ) ) { sys.print("Position: X: " + position_x + " Y:" + position_y + " Z:" + position_z + "\n" ); } } } }