implemented clear button and reset warning
This commit is contained in:
@@ -23,6 +23,7 @@ class ControlPanel {
|
|||||||
this.headless_opacity = 1;
|
this.headless_opacity = 1;
|
||||||
this.opacity_change_rate = -0.8;
|
this.opacity_change_rate = -0.8;
|
||||||
this.paused=false;
|
this.paused=false;
|
||||||
|
this.setHyperparamDefaults();
|
||||||
}
|
}
|
||||||
|
|
||||||
defineMinMaxControls(){
|
defineMinMaxControls(){
|
||||||
@@ -249,32 +250,36 @@ class ControlPanel {
|
|||||||
Hyperparams.foodBlocksReproduction = this.checked;
|
Hyperparams.foodBlocksReproduction = this.checked;
|
||||||
});
|
});
|
||||||
$('#reset-rules').click( function() {
|
$('#reset-rules').click( function() {
|
||||||
Hyperparams.setDefaults();
|
this.setHyperparamDefaults;
|
||||||
$('#food-prod-prob').val(Hyperparams.foodProdProb);
|
|
||||||
$('#lifespan-multiplier').val(Hyperparams.lifespanMultiplier);
|
|
||||||
$('#mover-rot').prop('checked', Hyperparams.moversCanRotate);
|
|
||||||
$('#offspring-rot').prop('checked', Hyperparams.offspringRotate);
|
|
||||||
$('#insta-kill').prop('checked', Hyperparams.instaKill);
|
|
||||||
$('#evolved-mutation').prop('checked', !Hyperparams.useGlobalMutability);
|
|
||||||
$('#add-prob').val(Hyperparams.addProb);
|
|
||||||
$('#change-prob').val(Hyperparams.changeProb);
|
|
||||||
$('#remove-prob').val(Hyperparams.removeProb);
|
|
||||||
$('#movers-produce').prop('checked', Hyperparams.moversCanProduce);
|
|
||||||
$('#food-blocks').prop('checked', Hyperparams.foodBlocksReproduction);
|
|
||||||
$('#food-drop-rate').val(Hyperparams.foodDropProb);
|
|
||||||
$('#look-range').val(Hyperparams.lookRange);
|
|
||||||
|
|
||||||
if (!Hyperparams.useGlobalMutability) {
|
|
||||||
$('.global-mutation-in').css('display', 'none');
|
|
||||||
$('#avg-mut').css('display', 'block');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('.global-mutation-in').css('display', 'block');
|
|
||||||
$('#avg-mut').css('display', 'none');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setHyperparamDefaults() {
|
||||||
|
Hyperparams.setDefaults();
|
||||||
|
$('#food-prod-prob').val(Hyperparams.foodProdProb);
|
||||||
|
$('#lifespan-multiplier').val(Hyperparams.lifespanMultiplier);
|
||||||
|
$('#mover-rot').prop('checked', Hyperparams.moversCanRotate);
|
||||||
|
$('#offspring-rot').prop('checked', Hyperparams.offspringRotate);
|
||||||
|
$('#insta-kill').prop('checked', Hyperparams.instaKill);
|
||||||
|
$('#evolved-mutation').prop('checked', !Hyperparams.useGlobalMutability);
|
||||||
|
$('#add-prob').val(Hyperparams.addProb);
|
||||||
|
$('#change-prob').val(Hyperparams.changeProb);
|
||||||
|
$('#remove-prob').val(Hyperparams.removeProb);
|
||||||
|
$('#movers-produce').prop('checked', Hyperparams.moversCanProduce);
|
||||||
|
$('#food-blocks').prop('checked', Hyperparams.foodBlocksReproduction);
|
||||||
|
$('#food-drop-rate').val(Hyperparams.foodDropProb);
|
||||||
|
$('#look-range').val(Hyperparams.lookRange);
|
||||||
|
|
||||||
|
if (!Hyperparams.useGlobalMutability) {
|
||||||
|
$('.global-mutation-in').css('display', 'none');
|
||||||
|
$('#avg-mut').css('display', 'block');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('.global-mutation-in').css('display', 'block');
|
||||||
|
$('#avg-mut').css('display', 'none');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
defineModeControls() {
|
defineModeControls() {
|
||||||
var self = this;
|
var self = this;
|
||||||
$('.edit-mode-btn').click( function() {
|
$('.edit-mode-btn').click( function() {
|
||||||
@@ -313,16 +318,20 @@ class ControlPanel {
|
|||||||
|
|
||||||
var env = this.engine.env;
|
var env = this.engine.env;
|
||||||
$('#reset-env').click( function() {
|
$('#reset-env').click( function() {
|
||||||
this.engine.env.reset();
|
env.reset();
|
||||||
this.stats_panel.reset();
|
this.stats_panel.reset();
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
|
$('#clear-env').click( () => {
|
||||||
|
env.reset(true, false);
|
||||||
|
this.stats_panel.reset();
|
||||||
|
env.auto_reset = false;
|
||||||
|
$('#auto-reset').prop('checked', false);;
|
||||||
|
});
|
||||||
$('#auto-reset').change(function() {
|
$('#auto-reset').change(function() {
|
||||||
env.auto_reset = this.checked;
|
env.auto_reset = this.checked;
|
||||||
});
|
});
|
||||||
$('#clear-walls').click( function() {
|
$('#clear-walls').click( function() {
|
||||||
if (confirm("Are you sure you want to clear all the walls?")) {
|
this.engine.env.clearWalls();
|
||||||
this.engine.env.clearWalls();
|
|
||||||
}
|
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
$('#clear-editor').click( function() {
|
$('#clear-editor').click( function() {
|
||||||
this.engine.organism_editor.clear();
|
this.engine.organism_editor.clear();
|
||||||
@@ -367,9 +376,10 @@ class ControlPanel {
|
|||||||
updateHeadlessIcon(delta_time) {
|
updateHeadlessIcon(delta_time) {
|
||||||
if (this.paused)
|
if (this.paused)
|
||||||
return;
|
return;
|
||||||
|
const min_opacity = 0.4;
|
||||||
var op = this.headless_opacity + (this.opacity_change_rate*delta_time/1000);
|
var op = this.headless_opacity + (this.opacity_change_rate*delta_time/1000);
|
||||||
if (op <= 0.4){
|
if (op <= min_opacity){
|
||||||
op=0.4;
|
op=min_opacity;
|
||||||
this.opacity_change_rate = -this.opacity_change_rate;
|
this.opacity_change_rate = -this.opacity_change_rate;
|
||||||
}
|
}
|
||||||
else if (op >= 1){
|
else if (op >= 1){
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class WorldEnvironment extends Environment{
|
|||||||
}
|
}
|
||||||
if (this.organisms.length == 0 && this.auto_reset){
|
if (this.organisms.length == 0 && this.auto_reset){
|
||||||
this.reset_count++;
|
this.reset_count++;
|
||||||
this.reset();
|
this.reset(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,14 +130,19 @@ class WorldEnvironment extends Environment{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reset() {
|
reset(confirm_reset=true, reset_life=true) {
|
||||||
|
if (confirm_reset && !confirm('The current environment will be lost. Proceed?'))
|
||||||
|
return;
|
||||||
|
|
||||||
this.organisms = [];
|
this.organisms = [];
|
||||||
this.grid_map.fillGrid(CellStates.empty);
|
this.grid_map.fillGrid(CellStates.empty);
|
||||||
this.renderer.renderFullGrid(this.grid_map.grid);
|
this.renderer.renderFullGrid(this.grid_map.grid);
|
||||||
this.total_mutability = 0;
|
this.total_mutability = 0;
|
||||||
this.total_ticks = 0;
|
this.total_ticks = 0;
|
||||||
FossilRecord.clear_record();
|
FossilRecord.clear_record();
|
||||||
this.OriginOfLife();
|
if (reset_life)
|
||||||
|
this.OriginOfLife();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
resizeGridColRow(cell_size, cols, rows) {
|
resizeGridColRow(cell_size, cols, rows) {
|
||||||
|
|||||||
Reference in New Issue
Block a user