From 64fbbd514733e42dd047bf65c511563a84ebd629 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Tue, 21 Jul 2020 23:17:07 +0300 Subject: Fully reworked website design. Remade pages in markdown. Configured files to work with ssg5. --- .gitignore | 1 + TODO.md | 33 ----- src/_footer.html | 30 ++++ src/_header.html | 24 ++++ src/about.md | 10 ++ src/blog.md | 1 + src/contact.md | 8 ++ src/credit.md | 8 ++ src/img/favicon.png | Bin 0 -> 4339 bytes src/img/logos/github.png | Bin 0 -> 636 bytes src/img/logos/linkedin.png | Bin 0 -> 532 bytes src/img/logos/stackoverflow.png | Bin 0 -> 647 bytes src/index.md | 8 ++ src/projects.md | 7 + src/projects/mundus/basic-concepts.md | 82 +++++++++++ src/projects/mundus/history.md | 24 ++++ src/projects/mundus/img/crafting-window.png | Bin 0 -> 11154 bytes src/projects/mundus/img/create-new-game.png | Bin 0 -> 22621 bytes src/projects/mundus/img/inventory-menu.png | Bin 0 -> 2005727 bytes src/projects/mundus/img/main-screen.png | Bin 0 -> 11826 bytes src/projects/mundus/img/map-menu.png | Bin 0 -> 2008267 bytes src/projects/mundus/img/small-game-window.png | Bin 0 -> 1181600 bytes src/projects/mundus/introduction.md | 35 +++++ src/projects/mundus/user-interface.md | 104 ++++++++++++++ src/resume.md | 15 ++ src/robots.txt | 6 + src/styles.css | 83 +++++++++++ src/tutorials.md | 7 + .../connect-to-mysql-in-csharp-ef/connecting.md | 53 +++++++ .../img/connections.png | Bin 0 -> 10067 bytes .../connect-to-mysql-in-csharp-ef/introduction.md | 19 +++ .../connect-to-mysql-in-csharp-ef/preparation.md | 20 +++ syndamiadotcom | 24 ---- website/about.html | 45 ------ website/blog.html | 31 ----- website/contact.html | 57 -------- website/credit.html | 38 ------ website/css/styles-multiple-page-articles.css | 38 ------ website/css/styles.css | 152 --------------------- website/img/favicon.png | Bin 4339 -> 0 bytes website/img/logos/github.png | Bin 636 -> 0 bytes website/img/logos/linkedin.png | Bin 532 -> 0 bytes website/img/logos/stackoverflow.png | Bin 647 -> 0 bytes website/img/logos/twitter.png | Bin 747 -> 0 bytes website/img/ui/close.png | Bin 4339 -> 0 bytes website/img/ui/close.xcf | Bin 4859 -> 0 bytes website/index.html | 50 ------- website/js/footer.js | 32 ----- website/js/header.js | 75 ---------- website/projects.html | 58 -------- website/projects/mundus/basic-concepts.html | 95 ------------- website/projects/mundus/history.html | 56 -------- website/projects/mundus/img/crafting-window.png | Bin 11154 -> 0 bytes website/projects/mundus/img/create-new-game.png | Bin 22621 -> 0 bytes website/projects/mundus/img/inventory-menu.png | Bin 2005727 -> 0 bytes website/projects/mundus/img/main-screen.png | Bin 11826 -> 0 bytes website/projects/mundus/img/map-menu.png | Bin 2008267 -> 0 bytes website/projects/mundus/img/small-game-window.png | Bin 1181600 -> 0 bytes website/projects/mundus/introduction.html | 51 ------- website/projects/mundus/user-interface.html | 98 ------------- website/resume.html | 106 -------------- website/robots.txt | 6 - website/sitemap.xml | 92 ------------- website/tutorials.html | 51 ------- .../connect-to-mysql-in-csharp-ef/connecting.html | 81 ----------- .../img/connections.png | Bin 10067 -> 0 bytes .../introduction.html | 41 ------ .../connect-to-mysql-in-csharp-ef/preparation.html | 43 ------ 68 files changed, 545 insertions(+), 1353 deletions(-) create mode 100644 .gitignore delete mode 100644 TODO.md create mode 100644 src/_footer.html create mode 100644 src/_header.html create mode 100644 src/about.md create mode 100644 src/blog.md create mode 100644 src/contact.md create mode 100644 src/credit.md create mode 100644 src/img/favicon.png create mode 100644 src/img/logos/github.png create mode 100644 src/img/logos/linkedin.png create mode 100644 src/img/logos/stackoverflow.png create mode 100644 src/index.md create mode 100644 src/projects.md create mode 100644 src/projects/mundus/basic-concepts.md create mode 100644 src/projects/mundus/history.md create mode 100644 src/projects/mundus/img/crafting-window.png create mode 100644 src/projects/mundus/img/create-new-game.png create mode 100644 src/projects/mundus/img/inventory-menu.png create mode 100644 src/projects/mundus/img/main-screen.png create mode 100644 src/projects/mundus/img/map-menu.png create mode 100644 src/projects/mundus/img/small-game-window.png create mode 100644 src/projects/mundus/introduction.md create mode 100644 src/projects/mundus/user-interface.md create mode 100644 src/resume.md create mode 100644 src/robots.txt create mode 100644 src/styles.css create mode 100644 src/tutorials.md create mode 100644 src/tutorials/connect-to-mysql-in-csharp-ef/connecting.md create mode 100644 src/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png create mode 100644 src/tutorials/connect-to-mysql-in-csharp-ef/introduction.md create mode 100644 src/tutorials/connect-to-mysql-in-csharp-ef/preparation.md delete mode 100644 syndamiadotcom delete mode 100644 website/about.html delete mode 100644 website/blog.html delete mode 100644 website/contact.html delete mode 100644 website/credit.html delete mode 100644 website/css/styles-multiple-page-articles.css delete mode 100644 website/css/styles.css delete mode 100644 website/img/favicon.png delete mode 100644 website/img/logos/github.png delete mode 100644 website/img/logos/linkedin.png delete mode 100644 website/img/logos/stackoverflow.png delete mode 100644 website/img/logos/twitter.png delete mode 100644 website/img/ui/close.png delete mode 100644 website/img/ui/close.xcf delete mode 100644 website/index.html delete mode 100644 website/js/footer.js delete mode 100644 website/js/header.js delete mode 100644 website/projects.html delete mode 100644 website/projects/mundus/basic-concepts.html delete mode 100644 website/projects/mundus/history.html delete mode 100644 website/projects/mundus/img/crafting-window.png delete mode 100644 website/projects/mundus/img/create-new-game.png delete mode 100644 website/projects/mundus/img/inventory-menu.png delete mode 100644 website/projects/mundus/img/main-screen.png delete mode 100644 website/projects/mundus/img/map-menu.png delete mode 100644 website/projects/mundus/img/small-game-window.png delete mode 100644 website/projects/mundus/introduction.html delete mode 100644 website/projects/mundus/user-interface.html delete mode 100644 website/resume.html delete mode 100644 website/robots.txt delete mode 100644 website/sitemap.xml delete mode 100644 website/tutorials.html delete mode 100644 website/tutorials/connect-to-mysql-in-csharp-ef/connecting.html delete mode 100644 website/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png delete mode 100644 website/tutorials/connect-to-mysql-in-csharp-ef/introduction.html delete mode 100644 website/tutorials/connect-to-mysql-in-csharp-ef/preparation.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a41be3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +dst/ diff --git a/TODO.md b/TODO.md deleted file mode 100644 index e718f3d..0000000 --- a/TODO.md +++ /dev/null @@ -1,33 +0,0 @@ -~~Title attributes~~ - -~~Class names in quotation marks~~ - -~~Add sizes of images~~ - -~~Meta tags~~ - -~~Links of project in projects folder~~ - -~~Fix history of Mundus project~~ - -Back to top? - -~~Change titles on pages~~ - -~~Linkedin account~~ - -~~Twitter~~ - -~~HTTPS~~ - -syndamiadotcom project articles - -Rework Mundus project articles - -Bitspace articles - -Chopsticks articles - -Who wants to become a millionare - Africa (BG) articles - -School Projects project articles (certain projects for school get an article)? diff --git a/src/_footer.html b/src/_footer.html new file mode 100644 index 0000000..5bdc5d5 --- /dev/null +++ b/src/_footer.html @@ -0,0 +1,30 @@ + + + + + + diff --git a/src/_header.html b/src/_header.html new file mode 100644 index 0000000..d613740 --- /dev/null +++ b/src/_header.html @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + +
diff --git a/src/about.md b/src/about.md new file mode 100644 index 0000000..077fd10 --- /dev/null +++ b/src/about.md @@ -0,0 +1,10 @@ +## Hello! + +My name is Kamen. I am 18 years old and I was raised in and live in Bulgaria. + +Ever since I was a kid, computers were my interest. I tinkered with any program I can find on my grandmother's old laptop, I even fully disassembled and assembled different old laptops (and they worked). + +It took me quite some time, until a course in 2018, when I started seriously learning programming. In the beginning I wasn't that good, but I took it upon myself to work as hard as I could. I did most exercises that the teachers gave us and got excellent scores in all exams. + +Ever since then, programming has been my passion and obsession. Everything from back-end to front-end to operating systems is really interesting to me and I am trying to learn it as much as I can. + diff --git a/src/blog.md b/src/blog.md new file mode 100644 index 0000000..c44fcf0 --- /dev/null +++ b/src/blog.md @@ -0,0 +1 @@ +[COMING SOON] diff --git a/src/contact.md b/src/contact.md new file mode 100644 index 0000000..032aa07 --- /dev/null +++ b/src/contact.md @@ -0,0 +1,8 @@ +## Social media + +[![LinkedIn](/img/logos/linkedin.png)](https://bg.linkedin.com/in/kamen-mladenov-18563b1a3?trk=people-guest_people_search-card) + +## Email + +Official email: [kamen.d.mladenov@protonmail.com](mailto:kamen.d.mladenov@protonmail.com) + diff --git a/src/credit.md b/src/credit.md new file mode 100644 index 0000000..4a299f1 --- /dev/null +++ b/src/credit.md @@ -0,0 +1,8 @@ +## This page is for crediting creators, whose stuff I use in this website + +[GitHub Logo Icon](https://iconscout.com/icons/github) by [Roundicons.com](https://iconscout.com/contributors/roundicons-com)ass="hyper + +[StackOverflow Logo Icon](https://iconscout.com/icons/stackoverflow) by [Alex Doreau](https://iconscout.com/contributors/alexis-doreau) + +[LinkedIn Icon](https://iconscout.com/icons/linkedin) on [Iconscout](https://iconscout.com) + diff --git a/src/img/favicon.png b/src/img/favicon.png new file mode 100644 index 0000000..5104a43 Binary files /dev/null and b/src/img/favicon.png differ diff --git a/src/img/logos/github.png b/src/img/logos/github.png new file mode 100644 index 0000000..bc7497a Binary files /dev/null and b/src/img/logos/github.png differ diff --git a/src/img/logos/linkedin.png b/src/img/logos/linkedin.png new file mode 100644 index 0000000..171af03 Binary files /dev/null and b/src/img/logos/linkedin.png differ diff --git a/src/img/logos/stackoverflow.png b/src/img/logos/stackoverflow.png new file mode 100644 index 0000000..9bbfb89 Binary files /dev/null and b/src/img/logos/stackoverflow.png differ diff --git a/src/index.md b/src/index.md new file mode 100644 index 0000000..be0c571 --- /dev/null +++ b/src/index.md @@ -0,0 +1,8 @@ +# Welcome +--- + +My name is Kamen Mladenov and I am a programming student. + +As of now, I am most comfortable with backend development and desktop applications. + +Here I will share programming knowledge as well as information about myself and my coding adventures. diff --git a/src/projects.md b/src/projects.md new file mode 100644 index 0000000..7485e26 --- /dev/null +++ b/src/projects.md @@ -0,0 +1,7 @@ + +|Name|Link| +|---|---| +|[Mundus](/projects/mundus/introduction.html)|[![GitHub](/img/logos/github.png)](https://github.com/Syndamia/Mundus)| +|syndamiadotcom [COMING SOON]|[![GitHub](/img/logos/github.png)](https://github.com/Syndamia/syndamiadotcom)| +|Bitspace [COMING SOON]|[![GitHub](/img/logos/github.png)](https://github.com/Syndamia/Shower)| + diff --git a/src/projects/mundus/basic-concepts.md b/src/projects/mundus/basic-concepts.md new file mode 100644 index 0000000..23b5dfd --- /dev/null +++ b/src/projects/mundus/basic-concepts.md @@ -0,0 +1,82 @@ +# Mundus - Basic Concepts + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[\< User Interface](./user-interface.html) + +--- + +Despite the fact that I tried my best to make the game as intuitive as possible, there are things you need to understand about how it works. + +## Tiles + +The ingame world (map) is composed of squares, called **tiles**, everything is a type of tile. The main purpose of tiles is to hold textures (amongst other important information). There are two main categories of tiles: items and mobs. Mobs (mobile object for short) are the creatures in the game. On the contrary, items are everything else, from the tools, to the trees. + +There is only one type of **mob tile** and that is **MobTiles**. + +All mobs have a couple of properties: + +- **health** (if it drops to or below 0, they die) + +- **defence** (reduces or completely negates certain amounts of damage) + +- **inventory** + +- **random movement qualifier** (used for random movement around the world) + +- **item that is dropped upon death** (health <= 0) + +- **the superlayer they are currenly in** + +**Items**, however, are divided into: + +- **Material tiles** are primarly used for crafting. Some tools are "consumable", meaning they can be consumed by the mob, which removes them from the inventory and changes the value of some property. In your inventory they are surrounded in oringe. + +- **Gear tiles** are something you equip (in your accessories and gear inventories) that boost your stats. In your inventory they are surrounded in purple. + +- **Ground tiles** are the tiles on the superlayer ground. For example, grass, water, sand are all ground tiles, because structures and mobs will be walking on top of them. + +- **Structure tiles** are tiles that can be placed in the world. For example, a tree is a type of structure tile. Some of them can be picked up. For example, a ladder is something you can have in your inventory, but something you can also place. They have a health and a dropped item (they drop their dropped item each time they're hurt). In your inventory they are surrounded in red. + +- **Tool tiles** are used for interracting (changing) the environment of the world. There are four types: + + - With a **shovel** you can dig up (remove) ground tiles from ground layer (see Layers and superlayers). + + - **Axes** are used to break (remove) wooden structures (trees, ladders, ...). + + - **Pickaxes** are used for breaking (removing) structures made from hard materials (rocks, boulders, ...). + + - **Swords** are used for damaging mobs. + + Tools aren't interchangeable, you can't use an axe to mine a bouder or an axe to kill a cow. In your inventory they are surrounded in blue. + +## Layers and superlayers + +The ingame world (map) is composed of **superlayers**. Superlayers represent each elevation level in the world. There are in total 5 superlayers (not all are implimented): **Space**, **Sky**, **Land**, **Underground**, **???**. + +Each superlayer is composed of 3 layers: **Structure**, **Mob** and **Ground**. Each one of them contains a specific type of tiles, structure tiles are only stored in "structure" layer, ground tiles only in "ground" layer and mob tiles only in "mob" layer. Even though, they are different layers, there are some rules for the interraction between them: + +- **Mobs can't be on top of structures** (except if the structure is marked as "walkable") + +- **Structures cannot be placed on top of mobs** (except if the strucure is marked as "walkable") + +- **Structures cannot be placed on top of holes** (empty spots in the ground layer), **except if they are "climable"**, in which case they will be placed on the structure layer on the superlayer below. Mobs also cannot be on top of holes (they fall to the superlayer below) + +## Inventory + +Each mob can store certain amount of item tiles. That is done in it's **inventory**. The inventory is comprised of 4 parts: + +- **Hotbar** can have all item tiles (except groundtiles). It should be used for the most important items in the inventory. In the UI you don't need to have the inventory menu open to use items from the hotbar. + +- **Items** is used as a bulk storage. It can hold any type of item tile and is the largest part of the inventory. + +- **Accessories** and **Gear** are used only to store gear tiles. + +## Crafting + +Creating different item tiles is done through **crafting**. Each craftable item requires from one to five different materials in different quantities. The item tiles must be inside the "items" part of your inventory. + +## Event logs + +Certain actions you do in the game are stored in memory as messages (logs). They are also used to give you information that you couldn't get otherwise. For example, there is a log if you can't climb up a superlayer because a mob is blocking the way, or when you damage/kill a structure or mob. + diff --git a/src/projects/mundus/history.md b/src/projects/mundus/history.md new file mode 100644 index 0000000..efa2ab2 --- /dev/null +++ b/src/projects/mundus/history.md @@ -0,0 +1,24 @@ +# Mundus - History + +**Article Created: 20 May 2020** || **Last Edited: 21 July 2020** + +[\< Introduction](./introduction.html) || [User Interface >](./user-interface.html) + +--- + +***08.02.2020*** - This was our first lecture in module 7 of the IT-kariera course and it was announced that for this exam we will be doing a project. We had almost complete freedom. From that point on, for the next couple of days I brainstormed different ideas. + +***12.02.2020*** - For the next two and a half weeks I explored different game engines / user interfaces. I started with Unity, but I dropped it because of time constraints. After that I looked into Gtk, and more precisely it's `C#` implementation: `GtkSharp 2.0`. I settled up on it and started learning it. +After that I started planning. + +***27.02.2020*** - I started slowly to work on the project itself. + +***28.03.2020*** - For the next week and a half I got a notebook and started taking notes and ideas all day long. + +***06.04.2020*** - Then started the spring school break. That was a good time to start coding the program. I worked really really hard, some days I worked for 8 hours without stop. It was almost the end of the break, but it got extended by a week. I continued working. + +But then, the COVID-19 situation happened. I wasn't able to continue working on it for a while, because I was burned out from the spring break and, in the beginning, there was an incredible amount of chaos with online education that I took upon myself to organize as much as I can. + +Until I finished the exam version, this pattern continued. I kept having a week or two where I worked really hard and another week or two where I rested. + +***23.05.2020*** - Finally, after many weeks of working on it, I had finished the exam version. I am saying "exam version" and not "the program" or "the project", because in the end it was more of a tech/code demo, than a finished product. More serious development will continue soon. diff --git a/src/projects/mundus/img/crafting-window.png b/src/projects/mundus/img/crafting-window.png new file mode 100644 index 0000000..61a7127 Binary files /dev/null and b/src/projects/mundus/img/crafting-window.png differ diff --git a/src/projects/mundus/img/create-new-game.png b/src/projects/mundus/img/create-new-game.png new file mode 100644 index 0000000..fe8d672 Binary files /dev/null and b/src/projects/mundus/img/create-new-game.png differ diff --git a/src/projects/mundus/img/inventory-menu.png b/src/projects/mundus/img/inventory-menu.png new file mode 100644 index 0000000..297d408 Binary files /dev/null and b/src/projects/mundus/img/inventory-menu.png differ diff --git a/src/projects/mundus/img/main-screen.png b/src/projects/mundus/img/main-screen.png new file mode 100644 index 0000000..bcf13c5 Binary files /dev/null and b/src/projects/mundus/img/main-screen.png differ diff --git a/src/projects/mundus/img/map-menu.png b/src/projects/mundus/img/map-menu.png new file mode 100644 index 0000000..f640abb Binary files /dev/null and b/src/projects/mundus/img/map-menu.png differ diff --git a/src/projects/mundus/img/small-game-window.png b/src/projects/mundus/img/small-game-window.png new file mode 100644 index 0000000..8af9885 Binary files /dev/null and b/src/projects/mundus/img/small-game-window.png differ diff --git a/src/projects/mundus/introduction.md b/src/projects/mundus/introduction.md new file mode 100644 index 0000000..e389cfa --- /dev/null +++ b/src/projects/mundus/introduction.md @@ -0,0 +1,35 @@ +# Mundus - Introduction + +**Article Created: 20 May 2020** || **Last Edited: 21 July 2020** + +[History >](./history.html) + +--- + +Mundus is an opensource light-weight sandbox desktop game (on how to install it, refer to the [README of repository](https://github.com/Syndamia/Mundus/blob/master/README.md)). + +In it, you can explore, fight with creatures, build things or dig up the whole ground. + +If you choose survival mode, gathering resources and crafting better equipment are essential. If you prefer creating things, creative mode is for you. + + +It all started as my exam project for module 7 of the course IT-kariera. Well, the concept has existed ever since my first lessons in the course. BitSpace and BitSpace 2.0 were short-lived attempts at implimenting this idea but with Mundus I decided it was time to do this once and for all. + +Although it began as an exam project, I will continue working on for the foreseeable future with two goals in mind. First and foremost, to create a fun game and second of all: to make it avalable to be downloaded directly on linux (from AUR, ...). + +I am doing this project by myself, from code to textures. It contains more than 2000 lines of code, which I have written in the past months. + +**Links to project**: [GitHub](https://github.com/Syndamia/Mundus) + +## Contents: + +1. [Introduction](./introduction.html) +2. [History](./history.html) +3. [User Interface](./user-interface.html) +4. [Basic Concepts](./basic-concepts.html) + +## Screenshots +(may vary between operating systems and system themes) + +![](./img/small-game-window.png) ![](./img/map-menu.png) ![](./img/inventory-menu.png) + diff --git a/src/projects/mundus/user-interface.md b/src/projects/mundus/user-interface.md new file mode 100644 index 0000000..445fcf0 --- /dev/null +++ b/src/projects/mundus/user-interface.md @@ -0,0 +1,104 @@ +# Mundus - User Interface + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[\< History](./history.html) || [Basic Concepts >](./basic-concepts.html) + +--- + +**Note: all screenshots are made in Linux with Mint-Y theme.** + +## Main screen + +![](./img/main-screen.png) + +We start off at the **main screen**. + +Here you can **load a save file** (_not implimented_), **create a new game**, **view the tutorial** (_not implimented_), or **change settings** (_not implimented_). + +## Create new game + +![](./img/create-new-game.png) + +Creating a game gives you a couple of options: + +- **Game Mode**: Here you can select survival, in which you will start with almost no items and creative (_not implimented_) where you will have access to all items at all times. + +- **Difficulty**: In higher difficulties, your energy gets depleated much more quickly and trees, boulders and mobs are rarer. + +- **Screen & Inventory size**: The screen is the world area that you can see. Because of the user interface I use, the two are connected. + +- **Map size**: Map size is currently determined by the Screen & Inventory size, the higher the size, the smaller the map. + +**Note: all game window screenshots are made with the Small Game Window.** + +## Game Window + +![](./img/small-game-window.png) + +After the world is generated, the game window opens. + +A the top you have your **(game) screen**. Here you can see the world. To navigate click on a place you want to go to. If you want to alter the envirnment, first click on an item (that can modify the world) and click the place you want to alter. + +Below that is your **energy bar**. Each mob (including the player) has an energy bar, each action you take takes energy. If your energy gets depleated, you start taking damage for each action you take. To replenish energy, kill mobs and consume their meats. + +Then you have your **health**. It represents how much life you have. If it drops to zero, you die (_not fully implimented_). + +Underneath that, there is your **hotbar**. It is a part of your inventory (for more information, consult [Basic Concepts](basic-concepts.html). + +After that, you have the **Event log button** and some of the most recent events. Clicking the Event log button opens a window from which you can browse all event logs. For more information, consult [Basic Concepts](./basic-concepts.html). + +To the sides there are a couple of buttons: + +- **Map** - opens the map menu + +- **Inv** - opens the inventory menu + +- **Music** - opens the music window (not fully implimented) + +- **Pause** - opens the pause window + +## Map menu + +![](./img/map-menu.png) + +**The Map menu** is an extension (to the left) to the normal game window. It is toggled with the inventory menu (either one of them or neither can be opened at the same time). For more information on the map, refer to [Basic Concepts](./basic-concepts.html). + +It contains a couple of things: + +- **Ground layer** - shows only the ground layer tiles of the map name of the superlayer you are currenly in and your coordinates in it + +- **Structure layer** - shows only the structure layer tiles of the map + +- **There is hole above player** - used to determine if you can climb up a superlayer + +## Inventory menu + +![](./img/inventory-menu.png) + +**The Inventory menu** is an extension (to the right) to the normal game window. It is toggled with the map menu (either one of them or neither can be opened at the same time). For more information on the inventory, refer to [Basic Concepts](./basic-concepts.html). + +It contains a couple of things: + +- **Items inventory** + +- **Crafing button** - opens the crafting menu + +- **Accessories inventory** + +- **Gear inventory** + +- **Information about the selected item** (icon and values) + +## Crafting window + +![](./img/crafting-window.png) + +Every time you open **the crafting menu**, it automatically gets all items that you can craft, using the items in your Items inventory. + +At the top it shows you **all required items** (icons) and how much you need of each one. + +Below that it shows the **item that you can craft**. There are also two buttons, Prev and Next, for navigating multiple items you can craft. + +Finally, there is **the Craft button**, with which you can craft that item (removes required item from inventory and adds the crafted item). + diff --git a/src/resume.md b/src/resume.md new file mode 100644 index 0000000..9fdd632 --- /dev/null +++ b/src/resume.md @@ -0,0 +1,15 @@ + +||| +|---|---| +|Technologies| That I know well| +||C# GtkSharp 2.0| +||That I somewhat know| +||HTML CSS MySQL Visual Basic| +|Work Experience|-| +|Internships|-| +|Education|| +||**Application programmer** **[ONGOING]** 2019-2021, Course [IT-kariera](https://it-kariera.mon.bg/e-learning/)| +|Visits|| +||[Lidl Digital](https://careers-digital.bg) 24.02.2020| +||[HeleCloud](https://helecloud.com/) 20.02.2020| + diff --git a/src/robots.txt b/src/robots.txt new file mode 100644 index 0000000..e18756e --- /dev/null +++ b/src/robots.txt @@ -0,0 +1,6 @@ +User-agent: * +Allow: / +Disallow: /css/ +Disallow: /img/ +Disallow: /js/ +Sitemap: https://www.syndamia.com/sitemap.xml diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..30c21c1 --- /dev/null +++ b/src/styles.css @@ -0,0 +1,83 @@ +:root { + --link-tab-bg-color: #303030; + --link-tab-bg-hover-color: #004080; +} + +* { + font-family: 'Open Sans', sans-serif; +} + +.centered { + margin-left: auto; + margin-right: auto; +} + +.header { + margin-top: 17px; + text-align: center; + font: 21px Arial; + border-bottom: 5px solid var(--link-tab-bg-color); + padding-bottom: 10px; +} + +.link-tab { + font-weight: normal; + padding: 10px; + color: white; + background-color: var(--link-tab-bg-color); + text-decoration: none; +} + +.link-tab:hover { + background-color: var(--link-tab-bg-hover-color); +} + +.footer { + text-align: center; + line-height: 39px; + border-top: 5px solid var(--link-tab-bg-color); +} + +a { + text-decoration: none; + font-weight: bold; + color: #004080; +} + +article { + margin-left: 25%; + margin-right: 25%; +} + +code { + font: 12px Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace; + color: #52595d; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + background-color: #f9f9f9; + padding: 0px 3px; + display: inline-block; + margin: 0px; +} + +pre > code { + border: 1px solid #cacaca; + line-height: 1.2em; + font: 12px Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace; + padding: 10px; + overflow:auto; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + background-color: #FAFAFB; + color: #393939; + margin: 0px; +} diff --git a/src/tutorials.md b/src/tutorials.md new file mode 100644 index 0000000..f301224 --- /dev/null +++ b/src/tutorials.md @@ -0,0 +1,7 @@ +|| +|---| +|GtkSharp 2.0 [COMING SOON]| +|[Connect to Mysql in C# and Entity Framework](./tutorials/connect-to-mysql-in-csharp-ef/introduction.html)| + +I have some tutorial-style notes in my [references repo](https://github.com/Syndamia/References). Warning: some stuff might be wrong. + diff --git a/src/tutorials/connect-to-mysql-in-csharp-ef/connecting.md b/src/tutorials/connect-to-mysql-in-csharp-ef/connecting.md new file mode 100644 index 0000000..a91163c --- /dev/null +++ b/src/tutorials/connect-to-mysql-in-csharp-ef/connecting.md @@ -0,0 +1,53 @@ +# Connect to MySql in C# and Entity Framework - Connecting + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[\< Preparations](./preparation.html) + +--- + +## Connection string + +You can find many ways to impliment your connection string from [here](https://www.connectionstrings.com/mysql/). +From experience, this one works the best: + +``` +"server=localhost; port=YOUR-PORT; user id=YOUR-USER-ID; password=YOUR-PASSWORD; database=NAME-OF-DATABASE; SslMode=none" +``` + +If you don't know your port or user id, just look at the connection you use to connect to the database. + +![MyServer root 127.0.0.1:3306](./img/connections.png) In this example, the user id is _root_ and the port is _3306_. + +## ASP.NET Startup + +If you are making an ASP.NET application, you will need to alter your Startup.cs file. +Your ConfigureServices method should currenly look something like this: + +``` +// This method gets called by the runtime. Use this method to add services to the container. +public void ConfigureServices(IServiceCollection services) +{ + services.AddControllersWithViews(); + services.AddTransient(); + services.AddDbContext(opt => + { + opt.UseSQL(CONNECTION_STRING); + }); +} +``` + +You need to change `.UseSQL` to `.UseMySQL` (refer to [preparations](./preparation.html) if you haven't already). + +## DBContext child class + +If you want to connect a DBContext child class to a MySQL databse, the best way is to override the `OnConfiguring` method. In the override, in `optionsBuilder`, call the `.UseMySQL` method (refer to [preparations](./preparation.html) if you haven't already). +Example: + +``` +protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) +{ + optionsBuilder.UseMySQL(DataBaseContexts.ConnectionStringMySQL); +} +``` + diff --git a/src/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png b/src/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png new file mode 100644 index 0000000..aa7b408 Binary files /dev/null and b/src/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png differ diff --git a/src/tutorials/connect-to-mysql-in-csharp-ef/introduction.md b/src/tutorials/connect-to-mysql-in-csharp-ef/introduction.md new file mode 100644 index 0000000..2a2bd62 --- /dev/null +++ b/src/tutorials/connect-to-mysql-in-csharp-ef/introduction.md @@ -0,0 +1,19 @@ +# Connect to MySql in C# and Entity Framework - Introduction + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[Preparation >](./preparation.html) + +--- + +Connecting to `MySql` through `C#` can be quite tricky. I and many others have wasted too much time trying to figure this out. For that reason, I am making this tutorial. + +First are preparations in which I will talk about what you need to have for this to work. + +Second is the actual connecting. This covers changes in code and the all mighty connection string. + +## Contents + +1. [Introduction](./introduction.html) +2. [Preparation](./preparation.html) +3. [Connecting](./connecting.html) diff --git a/src/tutorials/connect-to-mysql-in-csharp-ef/preparation.md b/src/tutorials/connect-to-mysql-in-csharp-ef/preparation.md new file mode 100644 index 0000000..d7eed0d --- /dev/null +++ b/src/tutorials/connect-to-mysql-in-csharp-ef/preparation.md @@ -0,0 +1,20 @@ +# Connect to MySql in C# and Entity Framework - Preparation + +**Article Created: 21 May 2020** || **Last Edited: 21 July 2020** + +[\< Introduction](./introduction.html) || [Connecting >](./connecting.html) + +--- + +## MySql + +First of all, you need to insall MySql. You can do that from [here](https://dev.mysql.com/downloads/installer/). This is the installer. Skip this step, if you have already done it. + +## NuGet packages + +For an Entity Framework, [Microsoft.EntitiyFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) is the goto packet in this tutorial. + +Although [Microsoft.EntitiyFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) does offer connectivity with MS SQL server, **it doesn't offer the specific things for MySql**. + +That's why we need to also install another package: [MySql.Data.EntitiyFrameworkCore](https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/). + diff --git a/syndamiadotcom b/syndamiadotcom deleted file mode 100644 index 10a20ca..0000000 --- a/syndamiadotcom +++ /dev/null @@ -1,24 +0,0 @@ -# NGINX configuration file for the website -server { - listen 443 ssl; - root /var/www/syndamiadotcom/website; - index index.html; - server_name www.syndamia.com; - - ssl_certificate /etc/letsencrypt/live/www.syndamia.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/www.syndamia.com/privkey.pem; - - # This removes .html extension from url (https://stackoverflow.com/a/38238001/12036073) - location / { - if ($request_uri ~ ^/(.*)\.html$) { - return 302 /$1; - } - try_files $uri $uri.html $uri/ =404; - } -} - -server { - listen 80; - server_name www.syndamia.com; - return 301 https://$server_name$request_uri; -} diff --git a/website/about.html b/website/about.html deleted file mode 100644 index 0044c5d..0000000 --- a/website/about.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - Syndamia - About Me - - - - -
- -
- -
-

Hello!

-

- My name is Kamen. I am 18 years old and I was raised in and live in Bulgaria. -

-

- Ever since I was a kid, computers were my interest. I tinkered with any program I can find on my grandmother's old laptop, I even fully disassembled and assembled different old laptops (and they worked). -

-

- It took me quite some time, until a course in 2018, when I started seriously learning programming. In the beginning I wasn't that good, but I took it upon myself to work as hard as I could. I did most exercises that the teachers gave us and got excellent scores in all exams. -

-

- Ever since then, programming has been my passion and obsession. Everything from back-end to front-end to operating systems is really interesting to me and I am trying to learn it as much as I can. -

-

-
- -
- -
- -
- - diff --git a/website/blog.html b/website/blog.html deleted file mode 100644 index 1311cbf..0000000 --- a/website/blog.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - Syndamia - Blog - - - - -
- -
- -
- [COMING SOON] -
-
- -
- -
- - diff --git a/website/contact.html b/website/contact.html deleted file mode 100644 index a1852ad..0000000 --- a/website/contact.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - Syndamia - Contact - - - - - - -
- -
- -
- - - - - - - - - - - - - - - - - - -

Social media - Linkedin -

Emailkamen.d.mladenov@protonmail.com

-
-
- -
- -
- - diff --git a/website/credit.html b/website/credit.html deleted file mode 100644 index f26d279..0000000 --- a/website/credit.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - Syndamia - Programmer and Computer enthusiast - - - - -
- -
- -
-

This page is for crediting creators, whose stuff I use in this website

- - Github Logo Icon by Roundicons.com -
- Stackoverflow Logo Icon by Alexis Doreau -
- LinkedIn Icon on Iconscout -
- -
- -
- -
- - diff --git a/website/css/styles-multiple-page-articles.css b/website/css/styles-multiple-page-articles.css deleted file mode 100644 index 799fa8b..0000000 --- a/website/css/styles-multiple-page-articles.css +++ /dev/null @@ -1,38 +0,0 @@ -.article-title { - margin-left: 5px; - font: 21px Arial; - color: white; - float: left; -} - -.close { - width: 32px; - height: 32px; - float: right; - margin-top: -5px; - margin-right: 5px; -} - -.close :hover { - background-color: #ed383b; -} - -.tutorial-img { - padding-right: 15px; - vertical-align: middle; -} - -.tutorial-text { - align-self: center; - vertical-align: middle; -} - -.tutorial-p { - display: flex; -} - -.code { - color: #abb2bf; - background-color: #282c34; - padding: 3px; -} diff --git a/website/css/styles.css b/website/css/styles.css deleted file mode 100644 index 9dc6dc4..0000000 --- a/website/css/styles.css +++ /dev/null @@ -1,152 +0,0 @@ -:root { - --page-bg-color: #707070; - --tab-bg-hover: #636363; - --tab-other-bg: #5c5c5c; - --tab-border: #686868; - --tab-color: white; - --page-color: white; -} - -body { - background-color: #474747; -} - -.header { - font: 21px Arial; - text-align: center; - border-collapse: collapse; - margin-top: 17px; - min-width: 450px; - min-height: 27px; -} - -.header:after { - content: ""; - display: table; - clear:both; -} - -.footer { - margin-left: auto; - margin-right: auto; - - width: 400px; - font: 19 Arial; - text-align: center; - border-top: 15px solid var(--page-bg-color); - border-bottom: 15px solid var(--page-bg-color); - - background-color: var(--page-bg-color); -} - -.selected-tab, .other-tab { - padding: 10px; - color: var(--tab-color); - text-decoration: none; -} - -.selected-tab { - border-top: 3px solid var(--page-bg-color); - border-bottom: 3px solid var(--page-bg-color); - border-left: 3px solid var(--page-bg-color); - border-right: 3px solid var(--page-bg-color); - background-color: var(--page-bg-color); - cursor: default; -} - -.other-tab { - border-bottom: 3px solid var(--tab-other-bg); - border-left: 0.5px solid var(--tab-border); - border-right: 0.5px solid var(--tab-border); - background-color: var(--tab-other-bg); - cursor: pointer; -} - -.other-tab:hover { - background-color: var(--tab-bg-hover); -} - -.page, .page-centered { - font: 20px Arial; - margin-left: auto; - margin-right: auto; - margin-top: 8px; - margin-bottom: 19px; - color: var(--page-color); - min-width: 450px; - width: calc(100% - 30px); - background-color: var(--page-bg-color); - - display:inline-block; - border: 15px solid var(--page-bg-color); -} - -.page { - text-align: left; -} - -.page-centered { - text-align: center; -} - -.hyperlink { - text-decoration: none; - vertical-align: middle; - color: #d6d6d6; -} - -.hyperlink-footer { - color: var(--page-color); - text-decoration: none; - font-size: 15px; - color: #d6d6d6; - margin: 10px; -} - -hr { - border-color: black; -} - -.separator { - border: 1px solid #ddd; -} - -.separator-cell { - padding-left: 0px; - padding-right: 0px; -} - -.hidden-text { - color: black; - background-color: black; -} - -.hidden-text:hover { - color: white; -} - -.items-table { - display: inline; -} - -.items-table-th { - text-align: left; -} - -th, td { - padding-top: 5px; - padding-bottom: 5px; - - padding-left: 20px; - padding-right: 20px; -} - -.warning { - color: #ff9999; - font-weight: bold; -} - -.caution { - color: #ffff99; - font-weight: bold; -} diff --git a/website/img/favicon.png b/website/img/favicon.png deleted file mode 100644 index 5104a43..0000000 Binary files a/website/img/favicon.png and /dev/null differ diff --git a/website/img/logos/github.png b/website/img/logos/github.png deleted file mode 100644 index bc7497a..0000000 Binary files a/website/img/logos/github.png and /dev/null differ diff --git a/website/img/logos/linkedin.png b/website/img/logos/linkedin.png deleted file mode 100644 index 171af03..0000000 Binary files a/website/img/logos/linkedin.png and /dev/null differ diff --git a/website/img/logos/stackoverflow.png b/website/img/logos/stackoverflow.png deleted file mode 100644 index 9bbfb89..0000000 Binary files a/website/img/logos/stackoverflow.png and /dev/null differ diff --git a/website/img/logos/twitter.png b/website/img/logos/twitter.png deleted file mode 100644 index f70f430..0000000 Binary files a/website/img/logos/twitter.png and /dev/null differ diff --git a/website/img/ui/close.png b/website/img/ui/close.png deleted file mode 100644 index f6bb2a6..0000000 Binary files a/website/img/ui/close.png and /dev/null differ diff --git a/website/img/ui/close.xcf b/website/img/ui/close.xcf deleted file mode 100644 index eee0472..0000000 Binary files a/website/img/ui/close.xcf and /dev/null differ diff --git a/website/index.html b/website/index.html deleted file mode 100644 index ff82423..0000000 --- a/website/index.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - Syndamia - Programmer and Computer enthusiast - - - - - - -
- -
- -
-

Welcome

-
-

- My name is Kamen Mladenov and I am a programming student. -

-

- As of now, I am most comfortable with backend development and desktop applications. -

-

- Here I will share hard to find knowledge and information about myself and my programming life. -

-
-
- -
- -
- - diff --git a/website/js/footer.js b/website/js/footer.js deleted file mode 100644 index 7f1853e..0000000 --- a/website/js/footer.js +++ /dev/null @@ -1,32 +0,0 @@ -const pageFooter = document.getElementsByTagName('footer')[0]; - -function getFolderLevel () { - switch (pageFooter.id) { - case 'parent-dir': return './'; - case 'child-dir': return '../'; - case 'child-child-dir': return '../../'; - } -} - -const folderLevel = getFolderLevel(); - -const htmlFooter = -` -GitHub -StackOverflow -Linkedin - -
- -Blog | -About | -Contact | -Resume - -
- -Website License | -Credit -`; - -pageFooter.innerHTML = htmlFooter; diff --git a/website/js/header.js b/website/js/header.js deleted file mode 100644 index 21986b4..0000000 --- a/website/js/header.js +++ /dev/null @@ -1,75 +0,0 @@ -const pageGroups = { - main: { - Tutorials: 'tutorials.html', - Projects: 'projects.html', - Blog: 'blog.html', - Home: 'index.html', - About: 'about.html', - Contact: 'contact.html', - Resume: 'resume.html' - }, - mundus: { - Title: 'Mundus', - Introduction: 'introduction.html', - History: 'history.html', - 'User Interface': 'user-interface.html', - 'Basic Concepts': 'basic-concepts.html' - }, - mySqlConnectEntityFrameworkCSharp: { - Title: 'Connect to MySql in C# and Entity Framework', - Introduction: 'introduction.html', - Preparation: 'preparation.html', - Connecting: 'connecting.html' - } -}; - -const pageInfo = { - getPageGroup: function () { - switch (document.getElementsByTagName('head')[0].id) { - case 'main': return pageGroups.main; - case 'mundus': return pageGroups.mundus; - case 'mySqlConnectEntityFrameworkCSharp': return pageGroups.mySqlConnectEntityFrameworkCSharp; - } - }, - getPageToReturnTo: function (pageGroup) { - switch (pageGroup) { - case pageGroups.mundus: return pageGroups.main.Projects; - case pageGroups.mySqlConnectEntityFrameworkCSharp: return pageGroups.main.Tutorials; - } - } -}; - -const current = { - pageGroup: pageInfo.getPageGroup(), - tab: document.getElementsByTagName('body')[0].id -}; - -const generator = { - generateTabs: function (tabTitles) { - let toReturn = ''; - tabTitles.forEach(item => { toReturn += `${item}`; }); - return toReturn; - }, - generateFull: function () { - const columnStyle = 'float: left; min-width: 33.33%;'; - - document.getElementsByClassName('header')[0].innerHTML = - ` -
- ${current.pageGroup.Title} -
-
- ${this.generateTabs(Object.keys(current.pageGroup).splice(1, Object.keys(current.pageGroup).length - 1))} -
-
- Back -
- `; - } -}; - -if (current.pageGroup !== pageGroups.main) { - generator.generateFull(); -} else { - document.getElementsByClassName('header')[0].innerHTML = generator.generateTabs(Object.keys(current.pageGroup)); -} diff --git a/website/projects.html b/website/projects.html deleted file mode 100644 index 00bb993..0000000 --- a/website/projects.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - Syndamia - Projects - - - - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - -

MundusGitHub

syndamiadotcom [COMING SOON]GitHub

Bitspace [COMING SOON]GitHub

-
- -
- -
- -
- - diff --git a/website/projects/mundus/basic-concepts.html b/website/projects/mundus/basic-concepts.html deleted file mode 100644 index 95724df..0000000 --- a/website/projects/mundus/basic-concepts.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - Mundus - Basic concepts - - - - - -
- -
- -
-

- Despite the fact that I tried my best to make the game as intuitive as possible, there are things you need to understand about how it works. -

- -

Tiles

-

- The ingame world (map) is composed of squares, called tiles, everything is a type of tile. The main purpose of tiles is to hold textures (amongst other important information). There are two main categories of tiles: items and mobs. Mobs (mobile object for short) are the creatures in the game. On the contrary, items are everything else, from the tools, to the trees. -

-

- There is only one type of mob tiles and that is MobTiles. -
All mobs have a couple of properties: their health (if it drops to or below 0, they die), defence (reduces or completely negates certain amounts of damage), inventory, random movement qualifier (used for random movement around the world), item that is dropped upon death (health <= 0) and the superlayer they are currenly in. -

-

- Items, however, are divided into: Structure, Ground, Material, Tool and Gear: -

    -
  • Material tiles are primarly used for crafting. Some tools are "consumable", meaning they can be consumed by the mob, which removes them from the inventory and changes the value of some property. In your inventory they are surrounded in oringe .
  • -
  • Gear tiles are something you equip (in your accessories and gear inventories) that boost your stats. In your inventory they are surrounded in purple.
  • -
  • Ground tiles are the tiles on the superlayer ground. For example, grass, water, sand are all ground tiles, because structures and mobs will be walking on top of them.
  • -
  • Structure tiles are tiles that can be placed in the world. For example, a tree is a type of structure tile. Some of them can be picked up. For example, a ladder is something you can have in your inventory, but something you can also place. They have a health and a dropped item (they drop their dropped item each time they're hurt). In your inventory they are surrounded in red.
  • -
  • - Tool tiles are used for interracting (changing) the environment of the world. There are four types: Shovel, Axe, Pickaxe and Sword. -
      -
    • With a shovel you can dig up (remove) ground tiles from ground layer (see Layers and superlayers).
    • -
    • Axes are used to break (remove) wooden structures (trees, ladders, ...).
    • -
    • Pickaxes are used for breaking (removing) structures made from hard materials (rocks, boulders, ...).
    • -
    • Finally, swords are used for damaging mobs.
    • -
    - Tools aren't interchangeable, you can't use an axe to mine a bouder or an axe to kill a cow. In your inventory they are surrounded in blue. -
  • -
-

-
-

Layers and superlayers

-

- The ingame world (map) is composed of superlayers. Superlayers represent each elevation level in the world. There are in total 5 superlayers (not all are implimented): Space Sky Land Underground ???. -

-

- Each superlayer is composed of 3 layers: Structure, Mob, Ground. Each one of them contains a specific type of tiles, structure tiles are only stored in "strucutre" layer, ground tiles only in "ground" layer and mob tiles only in "mob" layer. Even though, they are different layers, there are some rules for the interraction between them: -

    -
  1. Mobs can't be on top of structures (except if the structure is marked as "walkable")
  2. -
  3. Structures cannot be placed on top of mobs (except if the strucure is marked as "walkable")
  4. -
  5. Structures cannot be placed on top of holes (empty spots in the ground layer), except if they are "climable", in which case they will be placed on the structure layer on the superlayer below. Mobs also cannot be on top of holes (they fall to the superlayer below)
  6. -
-

-
-

Inventory

-

- Each mob can store certain amount of item tiles. That is done in it's inventory. The inventory is comprised of 4 parts: hotbar, items, accessories and gear. -

    -
  • Hotbar can have all item tiles (except groundtiles). It should be used for the most important items in the inventory. In the UI you don't need to have the inventory menu open to use items from the hotbar.
  • -
  • Items is used as a bulk storage. It can hold any type of item tile and is the largest part of the inventory.
  • -
  • Accessories and gear are used only to store gear tiles.
  • -
-

-
-

Crafting

-

- Creating different item tiles is done through crafting. Each craftable item requires from one to five different materials in different quantities. The item tiles must be inside the "items" part of your inventory. -

-
-

Event logs

-

- Certain actions you do in the game are stored in memory as messages (logs). They are also used to give you information that you couldn't get otherwise. For example, there is a log if you can't climb up a superlayer because a mob is blocking the way, or when you damage/kill a structure or mob. -

-
- -
- -
- - - diff --git a/website/projects/mundus/history.html b/website/projects/mundus/history.html deleted file mode 100644 index 7b67316..0000000 --- a/website/projects/mundus/history.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - Mundus - History - - - - - -
- -
- -
-

- 08.02.2020 - This was our first lecture in module 7 of the IT-kariera course and it was announced that for this exam we will be doing a project. We had almost complete freedom. From that point on, for the next couple of days I brainstormed different ideas. -

-

- 12.02.2020 - For the next two and a half weeks I explored different game engines / user interfaces. I started with Unity, but I dropped it because of time constraints. After that I looked into Gtk, and more precisely it's C# implementation: GtkSharp 2.0. I settled up on it and started learning it.
- After that I started planning. -

-

- 27.02.2020 - I started slowly to work on the project itself. -

-

- 28.03.2020 - For the next week and a half I got a notebook and started taking notes and ideas all day long. -

-

- 06.04.2020 - Then started the spring school break. That was a good time to start coding the program. I worked really really hard, some days I worked for 8 hours without stop. It was almost the end of the break, but it got extended by a week. I continued working.
-

-

- But then, the COVID-19 situation happened. I wasn't able to continue working on it for a while, because I was burned out from the spring break and, in the beginning, there was an incredible amount of chaos with online education that I took upon myself to organize as much as I can. -

-

- Until I finished the exam version, this pattern continued. I kept having a week or two where I worked really hard and another week or two where I rested. -

-

- 23.05.2020 - Finally, after many weeks of working on it, I had finished the exam version. I am saying "exam version" and not "the program" or "the project", becasue in the end it was more of a tech/code demo, than a finished product. More serious development will continue soon. -

-
- -
- -
- - - diff --git a/website/projects/mundus/img/crafting-window.png b/website/projects/mundus/img/crafting-window.png deleted file mode 100644 index 61a7127..0000000 Binary files a/website/projects/mundus/img/crafting-window.png and /dev/null differ diff --git a/website/projects/mundus/img/create-new-game.png b/website/projects/mundus/img/create-new-game.png deleted file mode 100644 index fe8d672..0000000 Binary files a/website/projects/mundus/img/create-new-game.png and /dev/null differ diff --git a/website/projects/mundus/img/inventory-menu.png b/website/projects/mundus/img/inventory-menu.png deleted file mode 100644 index 297d408..0000000 Binary files a/website/projects/mundus/img/inventory-menu.png and /dev/null differ diff --git a/website/projects/mundus/img/main-screen.png b/website/projects/mundus/img/main-screen.png deleted file mode 100644 index bcf13c5..0000000 Binary files a/website/projects/mundus/img/main-screen.png and /dev/null differ diff --git a/website/projects/mundus/img/map-menu.png b/website/projects/mundus/img/map-menu.png deleted file mode 100644 index f640abb..0000000 Binary files a/website/projects/mundus/img/map-menu.png and /dev/null differ diff --git a/website/projects/mundus/img/small-game-window.png b/website/projects/mundus/img/small-game-window.png deleted file mode 100644 index 8af9885..0000000 Binary files a/website/projects/mundus/img/small-game-window.png and /dev/null differ diff --git a/website/projects/mundus/introduction.html b/website/projects/mundus/introduction.html deleted file mode 100644 index 3eb2be4..0000000 --- a/website/projects/mundus/introduction.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - Mundus - Introduction - - - - - -
- -
- -
-

- Mundus is an opensource light-weight sandbox desktop game (on how to install it, refer to the README of the repository).
- In it, you can explore, fight with creatures, build things or dig up the whole ground.
- If you choose survival mode, gathering resources and crafting better equipment are essential. If you prefer creating things, creative mode is for you.
-

- Links to project: GitHub -

-
- (Note: may vary between operating systems and system themes) -

-

- It all started as my exam project for module 7 of the course IT-kariera. Well, the concept has existed ever since my first lessons in the course. BitSpace and BitSpace 2.0 were short-lived attempts at implimenting this idea but with Mundus I decided it was time to do this once and for all. -

-

- Although it began as an exam project, I will continue working on for the foreseeable future with two goals in mind. First and foremost, to create a fun game and second of all: to make it avalable to be downloaded directly on linux (from AUR, ...). -

-

- I am doing this project by myself, from code to textures. It contains more than 2000 lines of code, which I have written in the past months. -

-
- -
- -
- -
- - diff --git a/website/projects/mundus/user-interface.html b/website/projects/mundus/user-interface.html deleted file mode 100644 index 49fe184..0000000 --- a/website/projects/mundus/user-interface.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - Mundus - User interface - - - - - -
- -
- -
- Note: all screenshots are made in Linux with Mint-Y theme. -

- - - We start off at the main screen.
- Here you can load a save file (not implimented as of 21.05.2020), create a new game, view the tutorial (not implimented as of 21.05.2020), or change settings (not implimented as of 21.05.2020). -
-

-

- - - Creating a game gives you a couple of options.

- First one is Game Mode. Here you can select survival, in which you will start with almost no items and creative (not implimented as of 21.05.2020) where you will have access to all items at all times.

- Then you have difficulty. In higher difficulties, your energy gets depleated much more quickly and trees, boulders and mobs are rarer.

- After that you have Screen & Inventory size. The screen is the world area that you can see. Because of the user interface I use, the two are connected.

- Finally, there is Map size. Map size is currently determined by the Screen & Inventory size, the higher the size, the smaller the map. -
-

- Note: all game window screenshots are made with the Small Game Window. -

- - - After the world is generated, the game window opens.

- A the top you have your (game) screen. Here you can see the world. To navigate click on a place you want to go to. If you want to alter the envirnment, first click on an item (that can modify the world) and click the place you want to alter.

- Below that is your energy bar. Each mob (including the player) has an energy bar, each action you take takes energy. If your energy gets depleated, you start taking damage for each action you take. To replenish energy, kill mobs and consume their meats.

- Then you have your health. It represents how much life you have. If it drops to zero, you die (not fully implimented as of 21.05.2020).

- Underneath that, there is your hotbar. It is a part of your inventory (for more information, consult Basic Concepts).

- After that, you have the Event log button and some of the most recent events. Clicking the Event log button opens a window from which you can browse all event logs. For more information, consult Basic Concepts.

- To the sides there are a couple of buttons:

- Map - opens the map menu
- Inv - opens the inventory menu
- Music - opens the music window (not fully implimented as of 21.05.2020)
- Pause - opens the pause window
-
-

-

- - - The Map menu is an extension (to the left) to the normal game window. It is toggled with the inventory menu (either one of them or neither can be opened at the same time). For more information on the map, refer to Basic Concepts.

- It contains a couple of things:

- Ground layer - shows only the ground layer tiles of the map
- name of the superlayer you are currenly in and your coordinates in it
- Structure layer - shows only the structure layer tiles of the map
- There is hole above player - used to determine if you can climb up a superlayer -
-

-

- - - The Inventory menu is an extension (to the right) to the normal game window. It is toggled with the map menu (either one of them or neither can be opened at the same time). For more information on the inventory, refer to Basic Concepts.

- It contains a couple of things:

- Items inventory
- Crafing button - opens the crafting menu
- Accessories inventory
- Gear inventory
- Information about the selected item (icon and values) -
-

-

- - - Every time you open the crafting menu, it automatically gets all items that you can craft, using the items in your Items inventory.

- At the top it shows you all required items (icons) and how much you need of each one.

- Below that it shows the item that you can craft. There are also two buttons, Prev and Next, for navigating multiple items you can craft.

- Finally, there is the Craft button, with which you can craft that item (removes required item from inventory and adds the crafted item). -
-

-
- -
- -
- - - diff --git a/website/resume.html b/website/resume.html deleted file mode 100644 index d72776b..0000000 --- a/website/resume.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - Syndamia - Resume - - - - - - -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

TechnologiesThat I know well:That I somewhat know:
-
    -
  • C#
  • -
  • GtkSharp 2.0
  • -
-
-
    -
  • HTML / CSS
  • -
  • MySQL
  • -
  • Visual Basic
  • -
-

Work Experience-

Internships-

Education - Applied programmer
- C# MySQL
- [ONGOING] 2019-2021, Course IT-kariera -

Visits - Lidl Digital 24.02.2020 -

- Helecloud 20.02.2020 -

-
- -
- -
- -
- - diff --git a/website/robots.txt b/website/robots.txt deleted file mode 100644 index e18756e..0000000 --- a/website/robots.txt +++ /dev/null @@ -1,6 +0,0 @@ -User-agent: * -Allow: / -Disallow: /css/ -Disallow: /img/ -Disallow: /js/ -Sitemap: https://www.syndamia.com/sitemap.xml diff --git a/website/sitemap.xml b/website/sitemap.xml deleted file mode 100644 index bb3a965..0000000 --- a/website/sitemap.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - https://www.syndamia.com/ - 2020-05-26T10:24:06+00:00 - 1.00 - - - https://www.syndamia.com/contact - 2020-05-26T10:24:06+00:00 - 0.90 - - - https://www.syndamia.com/tutorials - 2020-05-27T12:21:01+00:00 - 0.80 - - - https://www.syndamia.com/projects - 2020-05-27T12:21:01+00:00 - 0.80 - - - https://www.syndamia.com/index - 2020-05-26T10:24:06+00:00 - 0.80 - - - https://www.syndamia.com/about - 2020-05-27T12:21:01+00:00 - 0.80 - - - https://www.syndamia.com/resume - 2020-05-27T12:21:01+00:00 - 0.80 - - - https://www.syndamia.com/credit - 2020-05-27T12:21:01+00:00 - 0.80 - - - https://www.syndamia.com/blog - 2020-05-26T10:24:06+00:00 - 0.80 - - - https://www.syndamia.com/tutorials/connect-to-mysql-in-csharp-ef/introduction - 2020-05-27T12:21:01+00:00 - 0.64 - - - https://www.syndamia.com/projects/mundus/introduction - 2020-05-27T12:21:01+00:00 - 0.64 - - - https://www.syndamia.com/tutorials/connect-to-mysql-in-csharp-ef/preparation - 2020-05-27T12:21:01+00:00 - 0.51 - - - https://www.syndamia.com/tutorials/connect-to-mysql-in-csharp-ef/connecting - 2020-05-27T12:21:01+00:00 - 0.51 - - - https://www.syndamia.com/projects/mundus/history - 2020-05-27T12:21:01+00:00 - 0.51 - - - https://www.syndamia.com/projects/mundus/user-interface - 2020-05-27T12:21:01+00:00 - 0.51 - - - https://www.syndamia.com/projects/mundus/basic-concepts - 2020-05-27T12:21:01+00:00 - 0.51 - - - - diff --git a/website/tutorials.html b/website/tutorials.html deleted file mode 100644 index 000b3ad..0000000 --- a/website/tutorials.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - Syndamia - Tutorials - - - - -
- -
- -
- - - - - - - - - - - - - - - - -

GtkSharp 2.0 [COMING SOON]

Connect to MySql in C# and Entity Framework

-

- I have some tutorial-style notes in my references repo. Warning: some stuff might be wrong. -

-
- -
- -
- -
- - diff --git a/website/tutorials/connect-to-mysql-in-csharp-ef/connecting.html b/website/tutorials/connect-to-mysql-in-csharp-ef/connecting.html deleted file mode 100644 index c3fcdff..0000000 --- a/website/tutorials/connect-to-mysql-in-csharp-ef/connecting.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - Connect to MySql in C# and Entitiy Framework - Connecting - - - - - -
- -
- -
-

Connection string

-

- You can find many ways to impliment your connection string from here. - From experience, this one works the best:
-

- "server=localhost; port=YOUR-PORT; user id=YOUR-USER-ID; password=YOUR-PASSWORD; database=NAME-OF-DATABASE; SslMode=none" -

- If you don't know your port or user id, just look at the connection you use to connect to the database. -

-

- MyServer root 127.0.0.1:3306 - - In this example, the user id is root and the port is 3306. - -

-
-

ASP.NET Startup

-

- If you are making an ASP.NET application, you will need to alter your Startup.cs file. -

-

- Your ConfigureServices method should currenly look something like this: -

-  // This method gets called by the runtime. Use this method to add services to the container.
-  public void ConfigureServices(IServiceCollection services)
-  {
-   services.AddControllersWithViews();
-   services.AddTransient();
-   services.AddDbContext(opt =>
-   {
-    opt.UseSQL(CONNECTION_STRING);
-   });
-  } -

- You need to change .UseSQL to .UseMySQL (refer to preparations if you haven't already). -

-
-

DBContext child class

-

- If you want to connect a DBContext child class to a MySQL databse, the best way is to override the OnConfiguring method. In the override, in optionsBuilder, call the .UseMySQL method (refer to preparations if you haven't already). -

-

- Example: -

-  protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
-  {
-   optionsBuilder.UseMySQL(DataBaseContexts.ConnectionStringMySQL);
-  }
-

-

-
- -
- -
- - - diff --git a/website/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png b/website/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png deleted file mode 100644 index aa7b408..0000000 Binary files a/website/tutorials/connect-to-mysql-in-csharp-ef/img/connections.png and /dev/null differ diff --git a/website/tutorials/connect-to-mysql-in-csharp-ef/introduction.html b/website/tutorials/connect-to-mysql-in-csharp-ef/introduction.html deleted file mode 100644 index d25999e..0000000 --- a/website/tutorials/connect-to-mysql-in-csharp-ef/introduction.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - Connect to MySql in C# and Entitiy Framework - Introduction - - - - - -
- -
- -
-

- Connecting to MySql through C# can be quite tricky. I and many others have wasted too much time trying to figure this out. For that reason, I am making this tutorial. -

-

- First are preparations in which I will talk about what you need to have for this to work. -

-

- Second is the actual connecting. This covers changes in code and the all mighty connection string. -

-
- -
- -
- -
- - diff --git a/website/tutorials/connect-to-mysql-in-csharp-ef/preparation.html b/website/tutorials/connect-to-mysql-in-csharp-ef/preparation.html deleted file mode 100644 index cd1930b..0000000 --- a/website/tutorials/connect-to-mysql-in-csharp-ef/preparation.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - Connect to MySql in C# and Entitiy Framework - Preparation - - - - - -
- -
- -
-

MySql

-

- First of all, you need to insall MySql. You can do that from here. This is the installer. Skip this step, if you have already done it. -

-

NuGet packages

-

- For an Entity Framework, Microsoft.EntitiyFrameworkCore is the goto packet in this tutorial. -

-

- Although Microsoft.EntitiyFrameworkCore does offer connectivity with MS SQL server, it doesn't offer anything for MySql.
- That's why we also need to install another package: MySql.Data.EntitiyFrameworkCore. -

-
- -
- -
- - - -- cgit v1.3.1-23-gd82d