Skip to content

Commit

Permalink
Move from private host to GitHub
Browse files Browse the repository at this point in the history
  • Loading branch information
thechnet committed Jun 5, 2024
0 parents commit b953e0e
Show file tree
Hide file tree
Showing 245 changed files with 13,155 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Auto detect text files and perform LF normalization
* text=auto
*.png binary
*.pdf binary
*.pptx binary
*.mp4 binary
*.jar binary
232 changes: 232 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
desktop.ini
test.ini
highscores.txt

.gradle/
.idea/
.vscode/
build/
bin/

*.class
*.bin
*.log
*.jar


### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# AWS User-specific
.idea/**/aws.xml

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# SonarLint plugin
.idea/sonarlint/

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721

# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr

# Sonarlint plugin
# https://plugins.jetbrains.com/plugin/7973-sonarlint
.idea/**/sonarlint/

# SonarQube Plugin
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
.idea/**/sonarIssues.xml

# Markdown Navigator plugin
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
.idea/**/markdown-navigator.xml
.idea/**/markdown-navigator-enh.xml
.idea/**/markdown-navigator/

# Cache file creation bug
# See https://youtrack.jetbrains.com/issue/JBR-2257
.idea/$CACHE_FILE$

# CodeStream plugin
# https://plugins.jetbrains.com/plugin/12206-codestream
.idea/codestream.xml

# Azure Toolkit for IntelliJ plugin
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
.idea/**/azureSettings.xml


### Gradle ###
.gradle
**/build/
!src/**/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties

# Cache of project
.gradletasknamecache

# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath

### Gradle Patch ###
# Java heap dump
*.hprof


### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk


### Linux ###
*~

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### macOS Patch ###
# iCloud generated files
*.icloud
4 changes: 4 additions & 0 deletions CONTRIBUTORS.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Dario Manser
Elagkian Rajendram
Leandro Lika
Nillan Sivarasa
52 changes: 52 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
![](src/main/resources/misc/logo.png)

# Let Us Cook!

*Let Us Cook!* is an [*Overcooked*](https://ghosttowngames.com/overcooked/)-inspired realtime multiplayer Java game where players work together to prepare and deliver as many restaurant orders as possible during each two-minute round.

![](img/screenshot.png)

The game was created by Dario Manser, Elagkian Rajendram, Leandro Lika, and Nillan Sivarasa between March and May 2024 as part of the second semester of our Bachelor's degree of Computer Science at University of Basel, Switzerland.

## Playing

First, grab the latest pre-built JAR from the [releases](https://github.com/cookkings/letuscook/releases) or [build it yourself](#building). Once you have the JAR, you can print its command line usage by running `java -jar <JAR>`, where `<JAR>` is the path to your JAR file.

To play the game, you'll need to start a server instance and at least one client.

For example, you can spin up a local server on port `9999` like so:

```
java -ea -jar <JAR> server 9999
```

Then, in a different terminal, you can start a client to connect to your local server like so:

```
java -ea -jar <JAR> client localhost:9999
```

If you want to connect to your server from other machines (or even from outside your network), you can configure your network accordingly **or use a solution such as [Tailscale](https://tailscale.com/)**, which is what we used. In that case, remember to replace `localhost` with your host's IP address when starting the clients.

## Building

- Install [Gradle](https://gradle.org/) and a JDK of your choice (**ensure that your JDK includes the JavaFX runtime – we recommend the [Liberica Full JDK 17](https://bell-sw.com/pages/downloads/#jdk-17-lts)**).
- Run `gradle clean jar` in the root directory. You'll find the resulting JAR in `build/libs`.

## Testing

- To run the unit tests, use `gradle test`.
- If you wish to make use of the `test.cmd` or `test` scripts, you'll need to create a `test.ini` file in the root directory with the following contents:
```
testcmd_jar=build/libs/letuscook-0.1.0.jar
```
**Make sure to adjust the version number if it doesn't match.** Also, know that **`test.cmd` requires [Windows Terminal](https://www.microsoft.com/store/productId/9N0DX20HK701)** and that **`test` only works on macOS**, since it uses AppleScript.

## Contact

You can reach us via email:

- Dario Manser · [email protected]
- Elagkian Rajendram · [email protected]
- Leandro Lika · [email protected]
- Nillan Sivarasa · [email protected]
65 changes: 65 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
plugins {
id 'java-library'
id 'application'
id 'org.openjfx.javafxplugin' version '0.1.0'
id "org.sonarqube" version "4.4.1.3373"
id 'jacoco'
}

javafx {
version = "22.0.1"
modules = ['javafx.controls', 'javafx.fxml']
}

group 'ch.unibas.dmi.dbis'
version '0.1.0'
mainClassName = 'ch.unibas.dmi.dbis.cs108.letuscook.Main'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.apache.logging.log4j:log4j-api:2.+'
implementation 'org.apache.logging.log4j:log4j-core:2.+'
implementation 'org.openjfx:javafx-controls:21.0.2'

implementation 'org.openjfx:javafx-media:21.0.2'

testImplementation("org.junit.jupiter:junit-jupiter:5.+")
}

test {
useJUnitPlatform()
//finalizedBy jacocoTestReport

testLogging {
events "passed", "skipped", "failed"
}
}

//jacoco {
// toolVersion = "0.8.5"
//}

jar {
manifest {
attributes(
'Main-Class': mainClassName
)
}
from {
configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
duplicatesStrategy(DuplicatesStrategy.INCLUDE)
}

task "build-cs108"(dependsOn: ['javadoc', 'compileJava', 'jar']) {
}
Binary file added img/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
rootProject.name = 'letuscook'

Loading

0 comments on commit b953e0e

Please sign in to comment.