Welcome to IOPWiki, Commander.
We are searching for new editors to keep track of Girls' Frontline 2 content, as well as veteran players to complete the data of Girls' Frontline and Project Neural Cloud characters.
You can contribute without an account. Learn how to contribute and join our Discord server.

Widget:Live2DSwitcher: Difference between revisions

Welcome to IOP Wiki. This website is maintained by the Girls' Frontline community and is free to edit by anyone.
Jump to navigation Jump to search
No edit summary
Added document-ready wait functionality as the MediaWiki does not wait for DOM
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly><div><script>
<includeonly><div><script>
RLQ.push(function () {
RLQ.push(['jquery', function () {
   $(document).ready(function() {
   $(document).ready(function() {
     var containers = $('.dollLive2d');
     var containers = $('.dollLive2d');
Line 8: Line 8:
       var container = $(val);
       var container = $(val);
       var doll = container.data('t-doll');
       var doll = container.data('t-doll');
       mw.loader.using('ext.gadget.live2d').then(function() {
        
         var ul = container.find('ul');
      container.on("live2dloaded", function(event) {
         var settings = gfUtils.live2dUtils.convertSettingsFromUl(ul);
        container.find('.live2dswitcher option').remove();
         console.log("Filling the select...", container, ul, settings);
         var settingsContainer = container.find('.live2dsettings').first();
        for (costume in settings) {
         var settings = gfUtils.live2dUtils.convertSettingsFromUl(settingsContainer);
          for (variant in costume) {
         for (var idx=0; idx<settings.length; idx++) {
             var id = doll + "|" + costume.costumeId + "|" + variant.variantId;
          var currentSettings = settings[idx];
             var name = variant.name;
          for (variant in currentSettings) {
            if (variant == "costumeId") {
              continue;
            }
           
             var id = doll + "|" + currentSettings.costumeId + "|" + variant;
             var name = currentSettings[variant].name;
             if (!name) {
             if (!name) {
               name = costume.costumeId + " - " + variant.variantId;
               name = currentSettings.costumeId + " - " + variant;
             }
             }
             container.find('.live2dswitcher').append($('<option>', {
             container.find('.live2dswitcher').append($('<option>', {
Line 25: Line 31:
           }
           }
         }
         }
        console.log(settings);
       });
       });
     });
     });
   });
   });
});
}]);


function swap_module(element) {
function swap_model(element) {
   var selectBox = $(element);
   var selectBox = $(element);
   var containerDiv = selectBox.parent();
   var containerDiv = selectBox.closest('.dollLive2d');
          
          
   var selectedValue = selectBox.val();
   var selectedValue = selectBox.val();
Line 49: Line 54:


</script>
</script>
<select class="gf-droplist live2dswitcher" style="flex-grow: 1;" autocomplete="off" onchange="swap_model(this)" >
<label>Costume:</label><select class="gf-droplist live2dswitcher" style="flex-grow: 1;" autocomplete="off" onchange="swap_model(this)" >
<!--<option value="<!--{$defaultpaths|escape:'html'}-->" selected="selected"></option>-->
<option value="" selected="selected">Loading...</option>
</select></div></includeonly><noinclude>
</select></div></includeonly><noinclude>
<div class="dollLive2d" data-t-doll="Thompson" style="height: 800px; width: 700px;">
<div class="dollLive2d" data-live2d-needed="true" data-t-doll="Thompson" data-costume="costume1" style="height: 800px; width: 700px;">
{{#widget:Live2DSwitcher}}
{{#widget:Live2DSwitcher}}
<div class="live2dsettings" style="display:none">{{:Thompson/Live2DSettings}}</div>
<div class="live2dsettings" style="display:none">{{:Thompson/Live2DSettings}}</div>
</div>
</div>
</noinclude>
</noinclude>

Latest revision as of 15:12, 14 October 2019