Skip to content

Commit 8fe3578

Browse files
committed
did a lot for the new feature costum field and more
1 parent be47136 commit 8fe3578

File tree

6 files changed

+625
-122
lines changed

6 files changed

+625
-122
lines changed

src/script/public/App/MaxTextLength.js

Lines changed: 80 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -717,8 +717,22 @@ UserQuote.addEventListener('keydown', (event) => {
717717
});
718718

719719
[createCostumField_xInput, createCostumField_yInput].forEach(input => {
720-
// prevention of unallowed keys
720+
721721
input.addEventListener('keydown', function(event) {
722+
723+
// navigation with keys
724+
if (input == createCostumField_xInput) {
725+
if (event.key == "Enter" || event.key == "ArrowRight") {
726+
createCostumField_yInput.focus();
727+
};
728+
729+
} else if (input == createCostumField_yInput) {
730+
if (event.key == "Enter" || event.key == "ArrowLeft") {
731+
createCostumField_xInput.focus();
732+
};
733+
};
734+
735+
// prevention of unallowed keys
722736
if (!isNumericKey(event.key) && !isAllowedKey(event.key)) {
723737
event.preventDefault();
724738

@@ -774,27 +788,77 @@ UserQuote.addEventListener('keydown', (event) => {
774788
});
775789

776790
createCostumPattern_title.addEventListener("keydown", (event) => {
777-
const allowedCharacters = /^[a-zA-Z0-9]*$/; // Nur Buchstaben erlaubeni
778-
const maxLength = 10; // Maximale Anzahl von Zeichen
779-
const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', "Backspace"]; // Erlaubte Tasten
791+
let len = event.target.textContent.length;
792+
let hasSelection = false;
793+
let selection = window.getSelection();
794+
let isSpecial = utils.isSpecial(event);
795+
let isNavigational = utils.isNavigational(event);
780796

781-
// Überprüfen, ob die gedrückte Taste ein Buchstabe ist
782-
if (!event.key.match(allowedCharacters) && !event.which == 32) {
783-
// Verhindern, dass nicht-erlaubte Zeichen eingegeben werden
797+
if (selection) {
798+
hasSelection = !!selection.toString();
799+
};
800+
801+
if (isSpecial || isNavigational) {
802+
return true;
803+
};
804+
805+
if (len >= 15 && !hasSelection && event.key != "Enter") {
784806
event.preventDefault();
785-
}
807+
return false;
808+
};
786809

787-
// Überprüfen, ob die gedrückte Taste eine manipulierende Taste ist
788-
if (event.key === "Enter") {
789-
// Verhindern, dass manipulierende Tasten verwendet werden
810+
// if (event.code === "Space") {
811+
// event.preventDefault();
812+
// };
813+
});
814+
815+
createCostumPattern_title.addEventListener("keyup", (event) => {
816+
let inputValue = createCostumField_title.textContent;
817+
const validInput = inputValue.replace(/[^0-9a-zA-Z\s]/g, "");
818+
819+
if (inputValue !== validInput) {
820+
event.target.textContent = validInput;
821+
};
822+
});
823+
824+
825+
createCostumField_title.addEventListener("keydown", (event) => {
826+
let len = event.target.textContent.length;
827+
let hasSelection = false;
828+
let selection = window.getSelection();
829+
let isSpecial = utils.isSpecial(event);
830+
let isNavigational = utils.isNavigational(event);
831+
832+
if (selection) {
833+
hasSelection = !!selection.toString();
834+
};
835+
836+
if (isSpecial || isNavigational) {
837+
return true;
838+
};
839+
840+
if (len >= 15 && !hasSelection && event.key != "Enter") {
790841
event.preventDefault();
791-
}
842+
return false;
843+
};
792844

793-
// Überprüfen, ob die maximale Anzahl von Zeichen erreicht ist
794-
if (createCostumPattern_title.textContent.length >= maxLength && event.key !== "Backspace" && !allowedKeys.includes(event.key)) {
795-
// Verhindern, dass weitere Zeichen hinzugefügt werden
845+
if (event.key === "Enter") {
796846
event.preventDefault();
797-
}
847+
createCostumField_xInput.focus();
848+
};
849+
850+
// if (event.code === "Space") {
851+
// event.preventDefault();
852+
// };
853+
});
854+
855+
createCostumField_title.addEventListener("keyup", (event) => {
856+
let inputValue = createCostumField_title.textContent;
857+
const validInput = inputValue.replace(/[^0-9a-zA-Z\s]/g, "");
858+
859+
if (inputValue !== validInput) {
860+
event.target.textContent = validInput;
861+
};
798862
});
799863

800864
function isNumericKey(key) {

src/script/public/App/script.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,8 @@ let leaderboard_player1_score = document.querySelector(".leaderboard_player1_sco
517517
let leaderboard_player2_score = document.querySelector(".leaderboard_player2_score");
518518
let endGame_statusText = document.querySelector(".endGame_statusText");
519519
let endGameStats_playTime = document.querySelector(".endGameStats_playTime");
520+
let costumFieldCurrentLevelGrid = document.querySelector(".costumFieldCurrentLevelGrid");
521+
let SelectedCostumFieldText = document.querySelector(".SelectedCostumFieldText");
520522
// boss display in general
521523
let boss_attckingBeam = document.querySelector(".boss_attckingBeam");
522524
let bossLifeCounter = document.querySelector(".bossLifeCounter");

0 commit comments

Comments
 (0)