diff --git a/docs/SETUP.md b/docs/SETUP.md index c785dbc..f22d2c6 100644 --- a/docs/SETUP.md +++ b/docs/SETUP.md @@ -3,6 +3,7 @@ ## Prerequisites - Git - Bun +- If on Windows, it's recommended to use WSL (Windows Subsystem for Linux) and do the following steps there. ## Installation @@ -48,6 +49,6 @@ git push origin ``` - Create a pull request: - ```bash - git pull-request + Go to Github, + open up this project's repository and make a new pull request. ``` diff --git a/public/images/cs2_tournament.png b/public/images/cs2_tournament.png new file mode 100644 index 0000000..b3e4042 Binary files /dev/null and b/public/images/cs2_tournament.png differ diff --git a/public/images/cs2_tournament_logo.png b/public/images/cs2_tournament_logo.png new file mode 100644 index 0000000..e8820e0 Binary files /dev/null and b/public/images/cs2_tournament_logo.png differ diff --git a/public/images/lol_tournament.png b/public/images/lol_tournament.png new file mode 100644 index 0000000..0262eef Binary files /dev/null and b/public/images/lol_tournament.png differ diff --git a/public/images/lol_tournament_logo.png b/public/images/lol_tournament_logo.png new file mode 100644 index 0000000..d0b4b80 Binary files /dev/null and b/public/images/lol_tournament_logo.png differ diff --git a/public/images/minitournament.png b/public/images/minitournament.png new file mode 100644 index 0000000..e800aa6 Binary files /dev/null and b/public/images/minitournament.png differ diff --git a/public/images/minitournament_logo.png b/public/images/minitournament_logo.png new file mode 100644 index 0000000..cb3db48 Binary files /dev/null and b/public/images/minitournament_logo.png differ diff --git a/public/images/tournament_1.JPG b/public/images/tournament_1.JPG deleted file mode 100644 index 4e16211..0000000 Binary files a/public/images/tournament_1.JPG and /dev/null differ diff --git a/public/images/tournament_2.JPG b/public/images/tournament_2.JPG deleted file mode 100644 index d0b170c..0000000 Binary files a/public/images/tournament_2.JPG and /dev/null differ diff --git a/public/images/tournament_3.JPG b/public/images/tournament_3.JPG deleted file mode 100644 index 58f8ece..0000000 Binary files a/public/images/tournament_3.JPG and /dev/null differ diff --git a/src/app/ajakava/page.tsx b/src/app/ajakava/page.tsx index bc847ff..ce78a6c 100644 --- a/src/app/ajakava/page.tsx +++ b/src/app/ajakava/page.tsx @@ -11,9 +11,9 @@ export default function Timetable() { const schedule = scheduleData[activeTab]; return ( -
+

Ajakava

diff --git a/src/app/kodukord/page.tsx b/src/app/kodukord/page.tsx index 6173c05..f5e597e 100644 --- a/src/app/kodukord/page.tsx +++ b/src/app/kodukord/page.tsx @@ -4,11 +4,11 @@ export default function Rulebook() { return (

Kodukord

-
    +
    1. Keelatud on:
        @@ -54,7 +54,7 @@ export default function Rulebook() { vanusepiirangutest
      -

      +

      NB! Reeglite rikkumise puhul on korraldajatel õigus mängija (koos tema meeskonnaga) eemaldada ja rakendada edasist keeldu TipiLAN-i üritustelt.

      diff --git a/src/app/messiala/page.tsx b/src/app/messiala/page.tsx index 35b7d8b..f95322d 100644 --- a/src/app/messiala/page.tsx +++ b/src/app/messiala/page.tsx @@ -3,15 +3,26 @@ import { vipnagorgialla } from "@/components/Vipnagorgialla"; import * as THREE from "three"; import { useEffect, useRef, useState } from "react"; +import { EyeClosed, Eye } from "lucide-react"; + +// Define interface for the ref with toggle function +interface MountRefCurrent extends HTMLDivElement { + toggleDividers?: (show: boolean) => void; +} export default function Expo() { - const mountRef = useRef(null); + const mountRef = useRef(null); const [hoveredRoom, setHoveredRoom] = useState(null); const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 }); + const [showDividers, setShowDividers] = useState(true); useEffect(() => { if (!mountRef.current) return; + // Copy ref to variable to avoid stale closure in cleanup + const mountElement = mountRef.current; + let dividersRef: THREE.Mesh[] = []; + // Scene setup const scene = new THREE.Scene(); scene.background = new THREE.Color(0x0e0f19); @@ -53,7 +64,7 @@ export default function Expo() { renderer.setSize(width, height); renderer.shadowMap.enabled = true; renderer.shadowMap.type = THREE.PCFSoftShadowMap; - mountRef.current.appendChild(renderer.domElement); + mountElement.appendChild(renderer.domElement); // Raycaster for mouse interactions const raycaster = new THREE.Raycaster(); @@ -99,6 +110,7 @@ export default function Expo() { originalColor: number; originalScale: THREE.Vector3; }> = []; + const dividers: THREE.Mesh[] = []; // Define rooms with custom positions, sizes and colors const roomDefinitions = [ @@ -130,11 +142,11 @@ export default function Expo() { name: roomNames[2], }, // EVAL { - width: 2, + width: 2.2, height: 0.7, - depth: 4, + depth: 4.5, x: 5, - z: -1.7, + z: -2, color: roomColors[3], name: roomNames[3], }, // Redbull @@ -193,6 +205,35 @@ export default function Expo() { }); }); + // Create toggleable room dividers + const createTogglableDivider = ( + width: number, + height: number, + depth: number, + x: number, + z: number, + ) => { + const wallGeometry = new THREE.BoxGeometry(width, height, depth); + const wallMaterial = new THREE.MeshLambertMaterial({ + color: 0x555555, + transparent: true, + opacity: 0, + }); + + const wall = new THREE.Mesh(wallGeometry, wallMaterial); + wall.position.set(x, height / 2, z); + wall.visible = false; + scene.add(wall); + dividers.push(wall); + }; + + // Add strategic dividers between major areas + createTogglableDivider(10, 2, 2, -2.5, 1.5); // Wall between main entrance + createTogglableDivider(2, 2, 2, 5.5, 1.5); // Wall right next to Mänguklubi & Redbull + + // Store dividers reference for later access + dividersRef = [...dividers]; + // Ground plane const groundGeometry = new THREE.PlaneGeometry(14, 10.5); const groundMaterial = new THREE.MeshLambertMaterial({ color: 0xcccccc }); @@ -205,7 +246,9 @@ export default function Expo() { // Second ground plane const groundGeometry2 = new THREE.PlaneGeometry(2, 7); - const groundMaterial2 = new THREE.MeshLambertMaterial({ color: 0xcccccc }); + const groundMaterial2 = new THREE.MeshLambertMaterial({ + color: 0xcccccc, + }); const ground2 = new THREE.Mesh(groundGeometry2, groundMaterial2); ground2.rotation.x = -Math.PI / 2; ground2.position.x = -12.2; @@ -294,21 +337,41 @@ export default function Expo() { animate(); + // Function to toggle dividers + const toggleDividers = (show: boolean) => { + dividersRef.forEach((divider) => { + divider.visible = show; + (divider.material as THREE.MeshLambertMaterial).opacity = show + ? 0.4 + : 0; + }); + }; + + // Expose toggle function to parent scope + mountElement.toggleDividers = toggleDividers; + // Cleanup return () => { window.removeEventListener("resize", handleResize); renderer.domElement.removeEventListener("mousemove", onMouseMove); - if (mountRef.current && renderer.domElement) { - mountRef.current.removeChild(renderer.domElement); + if (mountElement && renderer.domElement) { + mountElement.removeChild(renderer.domElement); } renderer.dispose(); }; }, []); + // Update dividers when showDividers state changes + useEffect(() => { + if (mountRef.current?.toggleDividers) { + mountRef.current.toggleDividers(showDividers); + } + }, [showDividers]); + return (

      Messiala

      @@ -316,7 +379,7 @@ export default function Expo() {

      Tudengimaja

      -
      +
      -
      -
      -
      -
      +
      +
      +
      + +
      {/* Tooltip */} diff --git a/src/app/turniirid/page.tsx b/src/app/turniirid/page.tsx index 0d96340..886edd9 100644 --- a/src/app/turniirid/page.tsx +++ b/src/app/turniirid/page.tsx @@ -1,45 +1,47 @@ import { vipnagorgialla } from "@/components/Vipnagorgialla"; import Link from "next/link"; +import Image from "next/image"; export default function Tourney() { - const headingStyle = `text-5xl sm:text-6xl ${vipnagorgialla.className} font-bold italic uppercase text-[#2A2C3F] dark:text-[#EEE5E5]`; + const headingStyle = `text-3xl md:text-5xl lg:text-5xl ${vipnagorgialla.className} font-bold italic uppercase text-[#2A2C3F] dark:text-[#EEE5E5] -skew-x-2 md:-skew-x-5`; - const SectionDivider = () =>
      ; + const SectionDivider = () =>
      ; return (
      -
      -

      - Turniirid -

      +

      + Turniirid +

      - {/*

      */} - {/* Kui tahate oma oskusi proovile panna, siis vaadake siia tagasi! Rohkem*/} - {/* infot lähiajal.*/} - {/*

      */} - -
      -
      -

      + {/*

      */} + {/* Kui tahate oma oskusi proovile panna, siis vaadake siia tagasi! Rohkem*/} + {/* infot lähiajal.*/} + {/*

      */} +
      + {/* CS2 turniir */} +
      +
      +

      CS2 turniir

      -

      +

      Toimumisaeg veel selgumisel

      -

      +

      TipiLANil toimub Eesti ühe suurima auhinnafondiga CS2 turniire juba sel sügisel. Haara kaasa sõbrad ja saa osa adrenaliinirohkest kogemusest!


      -

      +

      Auhinnafond on suuruses 5250€, mis jaotatakse TOP3 meeskonna vahel ära. Iga tiimiliige saab vastavalt saavutatud kohale auhinnaks kas 600€, 300€ või 150€.


      + +
      +
      +
      + {/* Image needs to be the div that has the skew. Outside div needs to remain so that overflow wont occur*/} + CS2 tournament
      -
      - + + -
      -
      - {/* Image placeholder */} -
      -

      - LoL turniir -

      -

      - Toimumisaeg veel selgumisel -

      -

      - TipiLANil toimub Eesti ühe suurima auhinnafondiga LoL turniire juba sel sügisel. - Haara kaasa sõbrad ja saa osa adrenaliinirohkest kogemusest! -

      -
      -

      - Auhinnafond on suuruses 3500€, mis jaotatakse TOP3 meeskonna vahel ära. Iga tiimiliige saab - vastavalt saavutatud kohale auhinnaks kas 400€, 200€ või 100€. -

      -
      -
      - - - - - - + {/* LoL turniir */} +
      +
      +
      + {/* Image needs to be the div that has the skew. Outside div needs to remain so that overflow wont occur*/} + LoL tournament +
      +
      +
      +

      + LoL turniir +

      +

      + Toimumisaeg veel selgumisel +

      +

      + TipiLANil toimub Eesti ühe suurima auhinnafondiga LoL turniire juba sel sügisel. + Haara kaasa sõbrad ja saa osa adrenaliinirohkest kogemusest! +

      +
      +

      + Auhinnafond on suuruses 3500€, mis jaotatakse TOP3 meeskonna vahel ära. Iga tiimiliige saab + vastavalt saavutatud kohale auhinnaks kas 400€, 200€ või 100€. +

      +
      +
      + + + + + + +
      + +
      -
      - + -
      -

      - Miniturniirid -

      -

      - Toimumisaeg veel selgumisel -

      -

      - TipiLANil toimub mitmeid erinevaid lõbusaid ja võistlushimu tekitavaid miniturniire. - Miniturniirid toimuvad järgnevates mängudes: Tetris, SimRacing, Tekken. FIFA, Minecraft Bedwards, - Buckshot Roulette, LostGamer. -

      -
      -

      - Auhinnafond on kõigi turniiride peale 1250€ ja reeglina saab rahalise auhinna miniturniiri võitja. -

      -
      -
      - - - - - - + {/* Mini-turniirid */} +
      +
      +

      + Mini­turniirid +

      +

      + Toimumisaeg veel selgumisel +

      +

      + TipiLANil toimub mitmeid erinevaid lõbusaid ja võistlushimu tekitavaid miniturniire. + Miniturniirid toimuvad järgnevates mängudes: SimRacing, Tekken, FIFA, Minecraft Bedwars, + Buckshot Roulette, LostGamer ja palju muud. +

      +
      +

      + Auhinnafond on kõigi turniiride peale 1250€ ja reeglina saab rahalise auhinna miniturniiri võitja. +

      +
      +
      + + + + + + +
      +
      +
      +
      + {/* Image needs to be the div that has the skew. Outside div needs to remain so that overflow wont occur*/} + mini tournaments +
      +
      -
      - - + +
      ); -} +} \ No newline at end of file diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index f565053..1b3602f 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -5,22 +5,22 @@ import Image from "next/image"; import { vipnagorgialla } from "@/components/Vipnagorgialla"; const Footer = () => ( -
      -
      -
      +
      +
      +
      TipiLAN Logo TipiLAN Logo
      {/* Social media */} @@ -28,7 +28,7 @@ const Footer = () => ( (
      -
      +