parent
068153abb8
commit
7091d25f36
5 changed files with 23 additions and 184 deletions
@ -1,5 +0,0 @@ |
|||||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
|
||||||
<div class="max-container smooth"> |
|
||||||
<p class="con-title" id="sys-name"></p> |
|
||||||
<canvas id="canvas"></canvas> |
|
||||||
</div> |
|
@ -1,5 +1,4 @@ |
|||||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||||
<div class="max-container smooth"> |
<div class="max-container smooth" id="canvas-container"> |
||||||
<p class="con-title">Systems</p> |
|
||||||
<canvas id="canvas"></canvas> |
<canvas id="canvas"></canvas> |
||||||
</div> |
</div> |
@ -1,100 +0,0 @@ |
|||||||
import { SystemBuilder } from "../skama_code/api/system.js"; |
|
||||||
import { Position } from "../skama_code/commun/position.js"; |
|
||||||
import menu_mod from "./menu_mod.js" |
|
||||||
|
|
||||||
let canvas;
|
|
||||||
let last_target; |
|
||||||
|
|
||||||
let offset = { |
|
||||||
x: 2, |
|
||||||
y: 2 |
|
||||||
}; |
|
||||||
let max = 100; |
|
||||||
let w = (window.innerWidth/10)*9; |
|
||||||
let h = (window.innerHeight/4)*3; |
|
||||||
|
|
||||||
function animate() { |
|
||||||
canvas.renderAll(); |
|
||||||
setTimeout(animate, 1000); |
|
||||||
} |
|
||||||
|
|
||||||
function draw_planet(planet) { |
|
||||||
let shadow = new fabric.Shadow({ |
|
||||||
color: "white", |
|
||||||
blur: 5, |
|
||||||
offsetX: 0, |
|
||||||
offsetY: 0, |
|
||||||
}); |
|
||||||
|
|
||||||
fabric.Image.fromURL('/assets/planets/planetproto.png', function(img_planet) { |
|
||||||
//FABRICJS
|
|
||||||
img_planet.set({ |
|
||||||
selectable: false, |
|
||||||
shadow: shadow, |
|
||||||
left: planet.position.x/offset.x + w/2, |
|
||||||
top: planet.position.y/offset.y+ h/2, |
|
||||||
name: planet.name, |
|
||||||
type: planet.type |
|
||||||
}); |
|
||||||
canvas.add(img_planet); |
|
||||||
}); |
|
||||||
} |
|
||||||
|
|
||||||
function offsetOrbit(planet) { |
|
||||||
if (planet.orbits) { |
|
||||||
console.log("Orbits"); |
|
||||||
let x = Math.floor(Math.random() * max - Math.random() * max); |
|
||||||
let y = Math.floor(Math.random() * max - Math.random() * max); |
|
||||||
planet.position.move(new Position(x, y)); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
export default function system(system, temp_engine) { |
|
||||||
temp_engine.after_render((temp_engine) => { |
|
||||||
$("#sys-name").text(system); |
|
||||||
menu_mod(temp_engine); |
|
||||||
canvas = new fabric.Canvas("canvas",{ |
|
||||||
width: w, |
|
||||||
height: h, |
|
||||||
backgroundColor:"rgb(7, 18, 41)", |
|
||||||
renderOnAddRemove: false, |
|
||||||
hoverCursor :'pointer' |
|
||||||
}); |
|
||||||
SystemBuilder.get(system, (system) => { |
|
||||||
system.list_all((planets) => { |
|
||||||
planets.forEach(planet => { |
|
||||||
offsetOrbit(planet); |
|
||||||
draw_planet(planet); |
|
||||||
}); |
|
||||||
animate(); |
|
||||||
}, (err) => { |
|
||||||
console.log(err); |
|
||||||
}); |
|
||||||
}); |
|
||||||
canvas.on('mouse:up', (e) => { |
|
||||||
if(e.target.shadow.color == "red"){ |
|
||||||
e.target.shadow.color = "white" |
|
||||||
} |
|
||||||
else{ |
|
||||||
e.target.shadow.color = "red" |
|
||||||
} |
|
||||||
if (last_target) last_target.shadow.color = "white"; |
|
||||||
last_target = e.target; |
|
||||||
canvas.renderAll(); |
|
||||||
}); |
|
||||||
$(window).on("resize", () => { |
|
||||||
canvas.setWidth((window.innerWidth/10)*9); |
|
||||||
canvas.setHeight((window.innerHeight/4)*3); |
|
||||||
canvas.renderAll(); |
|
||||||
}); |
|
||||||
canvas.on("mouse:wheel", (opt) => { |
|
||||||
let scale = 1.1; |
|
||||||
if (opt.e.deltaY < 0) { |
|
||||||
canvas.zoomToPoint(new fabric.Point(canvas.width / 2, canvas.height / 2), canvas.getZoom() * scale); |
|
||||||
} else if (opt.e.deltaY > 0) { |
|
||||||
canvas.zoomToPoint(new fabric.Point(canvas.width / 2, canvas.height / 2), canvas.getZoom() / scale); |
|
||||||
} |
|
||||||
}); |
|
||||||
}); |
|
||||||
temp_engine.render("templates/systems/system.html"); |
|
||||||
} |
|
@ -1,80 +1,25 @@ |
|||||||
import { SystemBuilder } from "../skama_code/api/system.js"; |
import { CanvasRenderer } from "../skama_code/rendering/canvas_render.js"; |
||||||
import menu_mod from "./menu_mod.js" |
import menu_mod from "./menu_mod.js"; |
||||||
import system from "./system.js" |
|
||||||
|
|
||||||
let canvas;
|
export default (temp_engine) => { |
||||||
let last_target; |
|
||||||
|
|
||||||
let offset = { |
|
||||||
x: 2, |
|
||||||
y: 2 |
|
||||||
}; |
|
||||||
let max = 100; |
|
||||||
let w = (window.innerWidth/10)*9; |
|
||||||
let h = (window.innerHeight/4)*3; |
|
||||||
|
|
||||||
function animate() { |
|
||||||
canvas.renderAll(); |
|
||||||
setTimeout(animate, 1000); |
|
||||||
} |
|
||||||
|
|
||||||
function draw_system(system) { |
|
||||||
let shadow = new fabric.Shadow({ |
|
||||||
color: "white", |
|
||||||
blur: 5, |
|
||||||
offsetX: 0, |
|
||||||
offsetY: 0, |
|
||||||
}); |
|
||||||
|
|
||||||
fabric.Image.fromURL('/assets/systems/bluesystem.png', function(img_planet) { |
|
||||||
|
|
||||||
img_planet.set({ |
|
||||||
selectable: false, |
|
||||||
scaleX: 0.20, |
|
||||||
scaleY: 0.20, |
|
||||||
shadow: shadow, |
|
||||||
left: system.position.x/offset.x + w/2, |
|
||||||
top: system.position.y/offset.y+ h/2, |
|
||||||
name: system.name, |
|
||||||
type: system.type |
|
||||||
}); |
|
||||||
canvas.add(img_planet); |
|
||||||
}); |
|
||||||
} |
|
||||||
|
|
||||||
export function systems(temp_engine) { |
|
||||||
temp_engine.after_render((temp_engine) => { |
temp_engine.after_render((temp_engine) => { |
||||||
menu_mod(temp_engine); |
menu_mod(temp_engine); |
||||||
canvas = new fabric.Canvas("canvas",{ |
const size = getSize(); |
||||||
width: w, |
const canvas = new CanvasRenderer("canvas", size.width, size.height); |
||||||
height: h, |
|
||||||
backgroundColor:"rgb(7, 18, 41)", |
window.addEventListener("resize", () => { |
||||||
renderOnAddRemove: false, |
console.log("tttt"); |
||||||
hoverCursor :'pointer' |
const size = getSize(); |
||||||
}); |
canvas.resize(size.width, size.height); |
||||||
SystemBuilder.list_all((systems) => { |
|
||||||
systems.forEach(system => { |
|
||||||
draw_system(system); |
|
||||||
}); |
|
||||||
animate(); |
|
||||||
}); |
|
||||||
canvas.on('mouse:up', (e) => { |
|
||||||
if (e.target) system(e.target.name, temp_engine); |
|
||||||
}); |
|
||||||
$(window).on("resize", () => { |
|
||||||
canvas.setWidth((window.innerWidth/10)*9); |
|
||||||
canvas.setHeight((window.innerHeight/4)*3); |
|
||||||
canvas.renderAll(); |
|
||||||
}); |
|
||||||
canvas.on("mouse:wheel", (opt) => { |
|
||||||
console.log(opt.e.clientX); |
|
||||||
let scale = 1.1; |
|
||||||
if (opt.e.deltaY < 0) { |
|
||||||
canvas.zoomToPoint(new fabric.Point(opt.e.clientX / canvas.getZoom(), opt.e.clienY / canvas.getZoom()), canvas.getZoom() * scale); |
|
||||||
} else if (opt.e.deltaY > 0) { |
|
||||||
canvas.zoomToPoint(new fabric.Point(canvas.width / 2, canvas.height / 2), canvas.getZoom() / scale); |
|
||||||
} |
|
||||||
}); |
}); |
||||||
}); |
}); |
||||||
|
|
||||||
temp_engine.render("templates/systems/systems.html"); |
temp_engine.render("templates/systems/systems.html"); |
||||||
|
}; |
||||||
|
|
||||||
|
function getSize() { |
||||||
|
return { |
||||||
|
width: $("#canvas-container").width(), |
||||||
|
height: window.innerHeight, |
||||||
|
}; |
||||||
} |
} |
Loading…
Reference in New Issue