|
- import GlobalEvents from "/app/js/common/EventCaller.js";
- import EmitterElements from "/app/js/ui/Emitters.js";
- import Input from "/app/js/ui/Input.js";
- import Modal from "/app/js/ui/Modal.js";
- import CTRLPalettes from "/app/js/ctrls/CTRLPalettes.js";
- import CTRLPainter from "/app/js/ctrls/CTRLPainter.js";
- import NESPalette from "/app/js/models/NESPalette.js";
- import NESTile from "/app/js/models/NESTile.js";
- import NESBank from "/app/js/models/NESBank.js";
-
- /*function on_palette_changed(e){
- if (e.type == "ALL"){
- console.log("ALL");
- } else if (e.type == "TILE"){
- console.log("TILE Palette:", e.pindex, " | Color:", e.cindex);
- } else if (e.type == "SPRITE"){
- console.log("SPRITE Palette:", e.pindex, " | Color:", e.cindex);
- }
- }
-
- function handle_emitted(){
- console.log("EMITTED EVENT!");
- }
-
- function handle_keyevent(e){
- console.log(e);
- }
-
- function handle_mouseevent(e){
- console.log(e);
- }
-
- function handle_mouseclickevent(e){
- console.log("MOUSE CLICK ON BUTTON: ", e.button);
- }*/
-
- function TitlePainter(pal){
- var elist = document.querySelectorAll(".color-NES-random");
- if (elist){
- elist.forEach(function(el){
- var ca = Math.floor(Math.random() * 11) + 1;
- var cb = Math.floor(Math.random() * 3);
- var index = (cb*16)+ca;
- el.style.color = pal[index];
- el.style["background-color"] = "#000";
- });
- }
- }
-
- function initialize(DOC){
- TitlePainter(NESPalette.SystemColor);
- EmitterElements.initialize();
- //GlobalEvents.listen("emitted-event", handle_emitted);
-
- //var nespainter = new NESPainter(DOC.getElementById("painter"));
-
- CTRLPainter.initialize();
-
- var palette = new NESPalette();
- // TODO: This is just test code. I should remove this.
- //palette.listen("palettes_changed", on_palette_changed);
- // TODO: At least define a more useful set of palettes. As it is, these are just random.
- palette.set_palette([
- 44,
- 11,12,13,
- 54,23,43,
- 23,18,11,
- 4,8,60,
- 63,0,11,
- 0,15,14,
- 9,0,32,
- 5,10,20
- ]);
- console.log(palette.to_asm());
- GlobalEvents.emit("set_app_palette", palette);
-
- /*var input = new Input();
- input.preventDefaults = true;
- input.mouseTargetElement = document.getElementById("painter");
- input.listen("keydown", handle_keyevent);
- input.listen("keyup", handle_keyevent);
- input.listen("keypress", handle_keyevent);
-
- input.listen("mousemove", handle_mouseevent);
- input.listen("mousedown", handle_mouseevent);
- input.listen("mouseup", handle_mouseevent);
- input.listen("mouseclick", handle_mouseclickevent);*/
-
- // TODO: Drop all of this below test code... or put it in a dedicated test app.
- var TileA = new NESTile();
- var TileB = new NESTile();
- TileB.setPixelIndex(0,0,2);
- var TileC = TileB.clone().flip(1);
- var TileD = TileB.clone().flip(3);
- //var TileC = TileB.clone();
- //TileC.flip(1);
-
- for (var i=0; i < 64; i++){
- console.log(TileC.pixels[i]);
- }
-
- console.log("TileA does NOT match TileB: ", TileA.isEq(TileB) == -1);
- console.log("TileA does NOT match TileC: ", TileA.isEq(TileC) == -1);
- console.log("TileB DOES match TileC with Flag 1: ", TileB.isEq(TileC) == 1);
- console.log("TileB DOES match TileD with Flag 3: ", TileB.isEq(TileD) == 3);
-
- console.log(TileC);
- console.log(TileC.dataArray);
- console.log(TileC.pixels[7]);
-
- var bnk = new NESBank();
- bnk.lp[1] = TileB;
- bnk.lp[0] = TileC;
- bnk.rp[16] = TileD;
- console.log(bnk.chr);
- console.log("Bank color at coordinates (8,0): ", bnk.getColor(8,0));
- console.log("Bank color at coordinates (7,0): ", bnk.getColor(7,0));
- console.log("Bank color at coordinates (135, 15): ", bnk.getColor(135,15));
-
- bnk.access_mode = 0;
- GlobalEvents.emit("change_surface", bnk);
- }
-
-
- //console.log(document.getElementByID("painter"));
- initialize(document);
|