| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- function CompositeTextureEditor::buildComposite(%this, %sourceTex0, %sourceTex1, %sourceTex2, %sourceTex3, %sourceChan0, %sourceChan1, %sourceChan2, %sourceChan3, %callback)
- {
- Canvas.pushDialog(%this);
-
- CompTextureEd_RedChan.setChannelData(%sourceTex0, %sourceChan0);
- CompTextureEd_GreenChan.setChannelData(%sourceTex1, %sourceChan1);
- CompTextureEd_BlueChan.setChannelData(%sourceTex2, %sourceChan2);
- CompTextureEd_AlphaChan.setChannelData(%sourceTex3, %sourceChan3);
-
- %this.callbackFunc = %callback;
- }
- function CompositeTextureSlotContainer::onWake(%this)
- {
- %this-->InputMode.clear();
- %this-->InputMode.add("Raw Value");
- %this-->InputMode.add("Texture");
- %this-->InputMode.setSelected(1);
- %this-->InputMode.active = false;
-
- %this-->sourceChannel.clear();
- %this-->sourceChannel.add("Red");
- %this-->sourceChannel.add("Green");
- %this-->sourceChannel.add("Blue");
- %this-->sourceChannel.add("Alpha");
- }
- function CompositeTextureSlotContainer::setChannelData(%this, %sourceValue, %sourceChannel)
- {
- //for now, hard-force Texture mode
- %this-->InputMode.setSelected(1);
-
- if(AssetDatabase.isDeclaredAsset(%sourceValue))
- {
- %this-->InputMode.setSelected(1);
-
- %this-->bitmap.setBitmap(%sourceValue);
-
- if(%sourceChannel $= "")
- %sourceChannel = "Red";
-
- %this-->sourceChannel.setText(%sourceChannel);
- }
- /*else
- {
- %this-->InputMode.setSelected(0);
-
- %value = 0;
- if(%sourceValue !$= "" && (isFloat(%sourceValue) || isFloat(%sourceValue)))
- {
- %value = %sourceValue;
- }
-
- %this-->RawValueTxtEdit.setText(%value);
- %this-->RawValueSlider.setValue(%value);
- }*/
- }
- function CompositeTextureSlotContainer::getChannelData(%this)
- {
- return "";
- }
- function CompositeTextureChannelMode::onSelect(%this, %id, %text)
- {
- %isRawValueMode = %text $= "Raw Value";
- %this.getParent()-->RawValueContainer.setVisible(%isRawValueMode);
- %this.getParent()-->TextureContainer.setVisible(!%isRawValueMode);
- }
- function CompositeTextureEditor::setSourceTex(%this, %assetId)
- {
- if($CompTexSourceChannel $= "")
- $CompTexSourceChannel = 0;
-
- %channelContainer = CompositeTextureEditorWindow.getObject($CompTexSourceChannel);
- %channelContainer-->bitmap.setBitmap(%assetId);
- }
- function CompositeTextureEditor::saveComposite(%this)
- {
- %cubemap = CubemapEditor.currentCubemap;
-
- %aoMap = CompTextureEd_RedChan-->Bitmap.getBitmap();
- %roughMap = CompTextureEd_GreenChan-->Bitmap.getBitmap();
- %metalMap = CompTextureEd_BlueChan-->Bitmap.getBitmap();
- if(%aoMap $= "ToolsModule:unknownImage_image")
- %aoMap = "";
- if(%roughMap $= "ToolsModule:unknownImage_image")
- %roughMap = "";
- if(%metalMap $= "ToolsModule:unknownImage_image")
- %metalMap = "";
-
- if(%aoMap $= "" && %roughMap $= "" && %metalMap $= "")
- {
- toolsMessageBoxOK("Error", "Saving a composite map requires at least one channel slot to have source data!");
- return;
- }
-
- AssetBrowser.setupCreateNewAsset("ImageAsset", AssetBrowser.selectedModule, "CompositeEditorDoSaveComposite");
- }
- function CompositeEditorDoSaveComposite(%assetId)
- {
- %assetDef = AssetDatabase.acquireAsset(%assetId);
- if(!isObject(%assetDef))
- {
- toolsMessageBoxOK("Error", "We somehow failed to successfully create a new ImageAsset!");
- return;
- }
-
- %targetFilePath = %assetDef.getImagePath();
-
- %aoMapAsset = CompTextureEd_RedChan-->Bitmap.getBitmap();
- %roughMapAsset = CompTextureEd_GreenChan-->Bitmap.getBitmap();
- %metalMapAsset = CompTextureEd_BlueChan-->Bitmap.getBitmap();
-
-
- if(%aoMapAsset $= "ToolsModule:unknownImage_image")
- {
- %aoMap = "";
- }
- else
- {
- %aoAssetDef = AssetDatabase.acquireAsset(%aoMapAsset);
- %aoMap = %aoAssetDef.getImagePath();
- }
- if(%roughMapAsset $= "ToolsModule:unknownImage_image")
- {
- %roughMap = "";
- }
- else
- {
- %roughAssetDef = AssetDatabase.acquireAsset(%roughMapAsset);
- %roughMap = %roughAssetDef.getImagePath();
- }
- if(%metalMapAsset $= "ToolsModule:unknownImage_image")
- {
- %metalMap = "";
- }
- else
- {
- %metalAssetDef = AssetDatabase.acquireAsset(%metalMapAsset);
- %metalMap = %roughAssetDef.getImagePath();
- }
-
- if(%aoMap $= "" && %roughMap $= "" && %metalMap $= "")
- {
- toolsMessageBoxOK("Error", "Attempted to create a composite texture but all three source textures are blank or invalid!");
- return;
- }
-
- %redChanSource = CompTextureEd_RedChan-->sourceChannel;
- %greenChanSource = CompTextureEd_GreenChan-->sourceChannel;
- %blueChanSource = CompTextureEd_BlueChan-->sourceChannel;
-
- %aoChan = %redChanSource.findText(%redChanSource.getText());
- %aoChan = %aoChan == -1 ? 0 : %aoChan;
-
- %roughChan = %greenChanSource.findText(%greenChanSource.getText());
- %roughChan = %roughChan == -1 ? 1 : %roughChan;
-
- %metalChan = %blueChanSource.findText(%blueChanSource.getText());
- %metalChan = %metalChan == -1 ? 2 : %metalChan;
-
- %channelKey = %aoChan SPC %roughChan SPC %metalChan SPC 3;
- error("Storing: \"" @ %aoMap @"\" \""@ %roughMap @"\" \""@ %metalMap @"\" \""@ %channelKey @"\" \""@ %targetFilePath @"\"");
- saveCompositeTexture(%aoMap, %roughMap, %metalMap, "", %channelKey, %targetFilePath);
-
- %assetDef.refreshAsset();
-
- %command = CompositeTextureEditor.callbackFunc @ "(\"" @ %assetId @ "\");";
- if(CompositeTextureEditor.callbackFunc !$= "")
- {
- eval(%command);
- CompositeTextureEditor.callbackFunc = "";
- }
-
- Canvas.popDialog(CompositeTextureEditor);
- }
- function CompositeTextureRawValueEdit::onReturn(%this)
- {
- %this.getParent()-->RawValueSlider.setValue(%this.getText());
- }
- function CompositeTextureRawValueSlider::onDragComplete(%this)
- {
- %value = %this.getValue();
- %this.getParent()-->RawValueTxtEdit.setText(%value);
- }
|