polygon-collider.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const { template, $, update, close } = require('./base');
  2. const { getMessageProtocolScene } = require('../utils/prop');
  3. exports.template = template;
  4. exports.$ = $;
  5. exports.update = update;
  6. exports.close = close;
  7. exports.ready = function() {
  8. this.elements = {
  9. threshold: {
  10. ready(element) {
  11. const $input = element.querySelector('ui-num-input[slot="content"]');
  12. $input.setAttribute('style', 'display: inline-block;margin-right: 10px;');
  13. const $button = document.createElement('ui-button');
  14. $button.setAttribute('style', 'white-space: nowrap;');
  15. $button.setAttribute('slot', 'content');
  16. $button.setAttribute('class', 'blue');
  17. $button.innerText = 'Regenerate Points';
  18. $input.after($button);
  19. $button.addEventListener('change', (event) => {
  20. event.stopPropagation();
  21. });
  22. $button.addEventListener('confirm', async (event) => {
  23. event.stopPropagation();
  24. const uuids = this.dump.value.uuid.values || [this.dump.value.uuid.value];
  25. const undoID = await Editor.Message.request(getMessageProtocolScene(this.$this), 'begin-recording', uuids);
  26. for (const uuid of uuids) {
  27. await Editor.Message.request(getMessageProtocolScene(this.$this), 'regenerate-polygon-2d-points', uuid);
  28. }
  29. await Editor.Message.request(getMessageProtocolScene(this.$this), 'end-recording', undoID);
  30. });
  31. },
  32. },
  33. };
  34. };