Display offset when moving/stretching keyframes

Allow stretching keyframes from both sides
Fix issue with empty model identifier in modded entities
This commit is contained in:
JannisX11 2020-10-25 00:36:55 +02:00
parent ed254de687
commit 91f0b47ccd
2 changed files with 20 additions and 2 deletions

View File

@ -397,15 +397,32 @@ const Timeline = {
drag: function(event, ui) {
var difference = Math.clamp((ui.position.left - ui.originalPosition.left - 8) / Timeline.vue._data.size, -256, 256);
let [min, max] = Timeline.dragging_range;
let id = event.target?.id;
let target = Timeline.selected.find(kf => kf.uuid == id);
if (event.ctrlKey) {
var time_factor = (target && target.time_before < (min + max) / 2)
? ((max-min-difference) / (max-min))
: ((max-min+difference) / (max-min));
time_factor = Math.roundTo(time_factor, 2);
}
for (var kf of Timeline.selected) {
if (event.ctrlKey) {
var t = min + (kf.time_before - min) * ((max-min+difference) / (max-min));
if (target && target.time_before < (min + max) / 2) {
var t = max - (kf.time_before - max) * -time_factor;
} else {
var t = min + (kf.time_before - min) * time_factor;
}
} else {
var t = kf.time_before + difference;
}
kf.time = Timeline.snapTime(t);
}
if (event.ctrlKey) {
Blockbench.setStatusBarText(Math.round(time_factor * 100) + '%');
} else {
Blockbench.setStatusBarText(trimFloatNumber(difference));
}
BarItems.slider_keyframe_time.update()
Animator.preview()
},
@ -416,6 +433,7 @@ const Timeline = {
kf.replaceOthers(deleted);
}
delete Timeline.dragging_range;
Blockbench.setStatusBarText();
Undo.addKeyframeCasualties(deleted);
Undo.finishEdit('drag keyframes')
setTimeout(() => {

View File

@ -156,7 +156,7 @@ const Templates = {
}
function getIdentifier() {
return Project.geometry_name.replace(/[\s-]+/g, '_') || 'custom_model';
return Project.geometry_name?.replace(/[\s-]+/g, '_') || 'custom_model';
}
var codec = new Codec('modded_entity', {