@@ -247,6 +247,9 @@ function prochaineGeneration(generation, configuration, seed) {
247247}
248248
249249function genererUnivers ( configurationBrute ) {
250+ if ( window . AutomaginariumUniversVivant ?. generer_univers_detaille ) {
251+ return window . AutomaginariumUniversVivant . generer_univers_detaille ( configurationBrute ) ;
252+ }
250253 const configuration = normaliserConfiguration ( configurationBrute ) ;
251254 const lignes = [ creerGenerationInitiale ( configuration ) ] ;
252255 const sorties = [ lignes [ 0 ] . map ( ( value ) => (
@@ -446,6 +449,9 @@ function encodeList(values) {
446449}
447450
448451function formStateToConfig ( formState , currentConfig = { } ) {
452+ if ( window . AutomaginariumUniversVivant ?. etat_formulaire_vers_configuration ) {
453+ return window . AutomaginariumUniversVivant . etat_formulaire_vers_configuration ( formState , currentConfig ) ;
454+ }
449455 const inputAlphabet = parseCommaList ( formState . alphabetInput , [ 0 , 1 ] ) ;
450456 const outputAlphabet = parseCommaList ( formState . alphabetOutput , inputAlphabet ) ;
451457 let neighborhood = Number ( formState . neighborhood || 3 ) ;
@@ -490,6 +496,13 @@ function formStateToConfig(formState, currentConfig = {}) {
490496}
491497
492498function configToFormState ( config ) {
499+ if ( window . AutomaginariumUniversVivant ?. configuration_vers_etat_formulaire ) {
500+ const formState = window . AutomaginariumUniversVivant . configuration_vers_etat_formulaire ( config ) ;
501+ return {
502+ ...formState ,
503+ json : JSON . stringify ( { ...config , numero_regle : String ( config . numero_regle || 0n ) } , null , 2 ) ,
504+ } ;
505+ }
493506 return {
494507 name : config . nom || "" ,
495508 alphabetInput : encodeList ( config . alphabet_entree || [ 0 , 1 ] ) ,
@@ -527,6 +540,9 @@ function individuMutationDepuis(configurationBrute, tauxSur1000, graine) {
527540}
528541
529542function populationInitiale ( configBase , taille , graine ) {
543+ if ( window . AutomaginariumUniversVivant ?. population_initiale ) {
544+ return window . AutomaginariumUniversVivant . population_initiale ( configBase , taille , graine ) ;
545+ }
530546 const gen = mulberry32 ( graine ) ;
531547 const population = [ ] ;
532548 const config = normaliserConfiguration ( configBase ) ;
@@ -550,6 +566,9 @@ function selectionTournoi(scores, tailleTournoi, graine) {
550566}
551567
552568function nouvelleGeneration ( population , scores , tauxMutationSur1000 , graine ) {
569+ if ( window . AutomaginariumUniversVivant ?. nouvelle_generation ) {
570+ return window . AutomaginariumUniversVivant . nouvelle_generation ( population , scores , tauxMutationSur1000 , graine ) ;
571+ }
553572 const gen = mulberry32 ( graine ) ;
554573 const nouvelle = [ ] ;
555574 const meilleurIdx = scores . reduce ( ( best , score , idx ) => ( score > scores [ best ] ? idx : best ) , 0 ) ;
@@ -719,6 +738,9 @@ function evaluerPopulation(population, poidsObj = {}) {
719738}
720739
721740function presetPoidsGenetique ( nom ) {
741+ if ( window . AutomaginariumUniversVivant ?. preset_poids_genetique ) {
742+ return window . AutomaginariumUniversVivant . preset_poids_genetique ( nom ) ;
743+ }
722744 const presets = {
723745 beau : { symetrie : 8 , densite : 5 , stabilite : 3 , oscillation : 2 , complexite : 4 , croissance : 1 } ,
724746 chaotique : { symetrie : 1 , densite : 3 , stabilite : 1 , oscillation : 2 , complexite : 9 , croissance : 2 } ,
@@ -730,6 +752,9 @@ function presetPoidsGenetique(nom) {
730752}
731753
732754function appliquerPerturbation ( univers , evenement ) {
755+ if ( window . AutomaginariumUniversVivant ?. appliquer_perturbation ) {
756+ return window . AutomaginariumUniversVivant . appliquer_perturbation ( univers , evenement ) ;
757+ }
733758 const { cx, cy, rayon, force, type, graine } = evenement ;
734759 const { configuration, lignes, sorties } = univers ;
735760 const nouvelleLignes = lignes . map ( ( ligne ) => [ ...ligne ] ) ;
@@ -830,6 +855,9 @@ function randomRuleNumber(max, seed = Date.now() >>> 0) {
830855}
831856
832857function hudRuleLabel ( ruleState ) {
858+ if ( window . AutomaginariumUniversVivant ?. etiquette_regle_hud ) {
859+ return window . AutomaginariumUniversVivant . etiquette_regle_hud ( ruleState ) ;
860+ }
833861 const neighborhood = Number ( ruleState . neighborhood || 3 ) ;
834862 const channels = Number ( ruleState . channels || 1 ) ;
835863 const ruleMode = ruleState . ruleMode || "table" ;
@@ -1078,6 +1106,9 @@ const construireUniversVivant = buildSemanticCoreV1;
10781106const sourceUniversVivant = semanticCoreSource ;
10791107
10801108function ruleSpaceLabel ( configuration ) {
1109+ if ( window . AutomaginariumUniversVivant ?. etiquette_espace_regles ) {
1110+ return window . AutomaginariumUniversVivant . etiquette_espace_regles ( configuration ) ;
1111+ }
10811112 const { s, k, t, m, maxRule } = ruleConfiguration ( configuration ) ;
10821113 return `${ t } ^(${ m } ·${ s } ^${ k } ) = ${ maxRule } regles possibles` ;
10831114}
@@ -1096,6 +1127,9 @@ function toutesClesVoisinage(alphabet, taille) {
10961127}
10971128
10981129function validerConfiguration ( configurationBrute ) {
1130+ if ( window . AutomaginariumUniversVivant ?. valider_configuration ) {
1131+ return window . AutomaginariumUniversVivant . valider_configuration ( configurationBrute ) ;
1132+ }
10991133 const config = normaliserConfiguration ( configurationBrute ) ;
11001134 const erreurs = [ ] ;
11011135 const avertissements = [ ] ;
0 commit comments