@@ -13,9 +13,7 @@ import { Application, Graphics, EventSystem, Assets } from "pixi.js";
1313import * as pixi_viewport from "pixi-viewport" ;
1414import { ViewGraph } from "./types/graphs/viewgraph" ;
1515import {
16- AddPc ,
17- AddRouter ,
18- AddServer ,
16+ AddDevice ,
1917 loadFromFile ,
2018 loadFromLocalStorage ,
2119 saveToFile ,
@@ -24,6 +22,7 @@ import {
2422} from "./types/viewportManager" ;
2523import { DataGraph } from "./types/graphs/datagraph" ;
2624import { Packet } from "./types/packet" ;
25+ import { DeviceType , Layer } from "./types/devices/device" ;
2726
2827const WORLD_WIDTH = 10000 ;
2928const WORLD_HEIGHT = 10000 ;
@@ -41,10 +40,14 @@ export class GlobalContext {
4140 loadFromLocalStorage ( this ) ;
4241 }
4342
44- load ( datagraph : DataGraph ) {
43+ private setNetWork ( datagraph : DataGraph , layer : Layer ) {
4544 this . datagraph = datagraph ;
4645 this . viewport . clear ( ) ;
47- this . viewgraph = new ViewGraph ( this . datagraph , this . viewport ) ;
46+ this . viewgraph = new ViewGraph ( this . datagraph , this . viewport , layer ) ;
47+ }
48+
49+ load ( datagraph : DataGraph , layer : Layer = Layer . Link ) {
50+ this . setNetWork ( datagraph , layer ) ;
4851 this . setupAutoSave ( ) ;
4952 saveToLocalStorage ( this ) ;
5053 }
@@ -82,6 +85,11 @@ export class GlobalContext {
8285 this . saveIntervalId = null ;
8386 }
8487 }
88+
89+ // (!) For layer abstraction functionality
90+ // changeViewGraph(layer: string) {
91+ // this.setNetWork(this.datagraph, layerFromName(layer));
92+ // }
8593}
8694
8795// > graphics.ts
@@ -336,13 +344,21 @@ export class RightBar {
336344 RightBar . getInstance ( ) ;
337345
338346 // Add router button
339- leftBar . addButton ( RouterSvg , ( ) => AddRouter ( ctx ) , "Add Router" ) ;
347+ leftBar . addButton (
348+ RouterSvg ,
349+ ( ) => AddDevice ( ctx , DeviceType . Router ) ,
350+ "Add Router" ,
351+ ) ;
340352
341353 // Add server button
342- leftBar . addButton ( ServerSvg , ( ) => AddServer ( ctx ) , "Add Server" ) ;
354+ leftBar . addButton (
355+ ServerSvg ,
356+ ( ) => AddDevice ( ctx , DeviceType . Server ) ,
357+ "Add Server" ,
358+ ) ;
343359
344360 // Add PC button
345- leftBar . addButton ( ComputerSvg , ( ) => AddPc ( ctx ) , "Add PC" ) ;
361+ leftBar . addButton ( ComputerSvg , ( ) => AddDevice ( ctx , DeviceType . Pc ) , "Add PC" ) ;
346362
347363 ctx . initialize ( viewport ) ;
348364
@@ -401,6 +417,22 @@ export class RightBar {
401417
402418 pauseButton . onclick = triggerPause ;
403419
420+ // (!) For layer abstraction functionality
421+ // const layerSelect = document.getElementById(
422+ // "layer-select",
423+ // ) as HTMLSelectElement;
424+
425+ // const selectNewLayer = (event: Event) => {
426+ // const selectedLayer = (event.target as HTMLSelectElement).value;
427+ // console.log(`Layer selected: ${selectedLayer}`);
428+
429+ // if (selectElement) {
430+ // ctx.changeViewGraph(selectedLayer);
431+ // }
432+ // };
433+
434+ // layerSelect.onchange = selectNewLayer;
435+
404436 document . body . onkeyup = function ( e ) {
405437 if ( e . key === " " || e . code === "Space" ) {
406438 triggerPause ( ) ;
0 commit comments