export class itemSelector {
constructor(containerSelector, entities){
this.containerSelector = containerSelector;
this.container = document.querySelector(containerSelector);
if(!this.container) throw new Error("Could not find container "+container);
this.entities = entities;
this.direction = 0;
// populate container
let cont = this.container;
let HTML = "";
HTML += "
";
HTML += "";
HTML += "Name: ";
HTML += "";
HTML += "
";
// direction selector
HTML += "";
HTML += "
Direction:
";
HTML += "
"+this.directionToCardinal(0)+"
"
HTML += "
Press R to rotate
";
HTML += "
";
// write styles
let styles = {
".header > h2":{
color:"white",
},
".blackText":{
color:"black",
},
".blackText > option":{
color:"black",
}
}
// turn style object into style tag
HTML += "";
// handle direction keyboard event
Mousetrap.bind('r', ()=>this.rotate());
}
directionToCardinal(dir){
if(dir == 0){
return "north";
} else if(dir == 1){
return "north-east";
} else if(dir == 2){
return "east";
} else if(dir == 3){
return "south-east";
} else if(dir == 4){
return "south";
} else if(dir == 5){
return "south-west";
} else if(dir == 6){
return "west";
} else if(dir == 7){
return "north-west";
}
}
rotate(){
this.direction = (this.direction + 2) % 8;
// update display
document.querySelector("#directionDisplay").innerHTML = this.directionToCardinal(this.direction);
}
getItem(){
let name = document.querySelector(this.containerSelector+" > .itemSelector > select").value;
let direction = this.direction;
return {name, direction};
}
}