Mindustry java mod that adds a redstone-like wire-based logic system, tailored for making circuits.

Overview

Discord GitHub Workflow Status

See Esoterum-Solutions for builds 0.0-1.2

A small Mindustry Java mod that adds a wire-based logic system tailored for building circuits.

New content suggestions will be ignored.

Thanks Glenn for setting me off on my journey into eternal pain and suffering through Java modding!

Building

  1. Install JDK 16
  2. Run gradlew jar (or ./gradlew on Linux/Mac)
  3. Mod jar will be in build/libs, not compatible with Android
Comments
  • Binary Node Completion

    Binary Node Completion

    Hopefully no bugs suddenly show up and aaaaaAAAAAAAAAAAAAAAAAA me.

    https://user-images.githubusercontent.com/54301439/133943833-bffd4eda-d769-457e-8f87-9391ed405ce8.mp4

    https://user-images.githubusercontent.com/54301439/133943840-4669b304-e89c-47c2-a76f-82cd02780bc1.mp4

    opened by MEEPofFaith 10
  • Gates are behaving weird from schems

    Gates are behaving weird from schems

    Sometimes, gates apparently have a weird orientation with no inputs, however the visual ones are sometimes present. This means that some schems need to be "repaired" by rotating each gate 360 degrees. I am not entirely sure on how to reproduce this bug, but I know it happens with my ALU.

    Cursed singular input AND gate and AND gate with both input original inputs true. image

    XOR gate ignoring input. image

    XOR gate accepting input properly after rotating 360 degrees, however visual connections stay on all sides. image

    ALU Schematic (side multiplexer not included): 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

    opened by FarmerThanos 3
  • Color config

    Color config

    Added instrument and volume config in color. R is for the instrument and B is for volume. Limits are enforced to prevent crashes. Thanks to sk for the idea

    opened by MrDuck557 2
  • Added Junction page

    Added Junction page

    Added junction page. Please inform me if you prefer each page being added individually or all in one thicc pr. Also, IntelliJ got angry at didnt really wanna keep the indenting where pages are added to the manual consistent, so I did it like IntelliJ wants.

    opened by FarmerThanos 2
  • Pasting a Signal Node using schematics copies the node, then crashes the game.

    Pasting a Signal Node using schematics copies the node, then crashes the game.

    Platform: Manjaro Linux x86_64

    Mindustry Version: pre-alpha build 135

    Mod Version: v2.11-119

    Issue: Mindustry crashes with a NullPointerException after copying a Signal Node added by the Esoterum mod.

    Steps to reproduce: Copy a Signal Node. Then paste it either directly or save it first and paste it afterwards. The Node may or may not be connect to another Signal Node.

    Save files: Tested on multiple saves, thus deemed irrelevant.

    last_log.txt and/or crash logs:

        ~  java -jar ~/Desktop/mindustry/Mindustry.jar                                                                                                         ✔ 
    [I] [Core] Initialized SDL v2.0.10
    [I] [Audio] Initialized SoLoud 202111 using MiniAudio at 44100hz / 1323 samples / 2 channels
    [I] [GL] Version: OpenGL 4.6.0 / Intel / Mesa Intel(R) Xe Graphics (TGL GT2)
    [I] [GL] Max texture size: 16384
    [I] [GL] Using OpenGL 2 context.
    [I] [JAVA] Version: 17.0.3
    [I] [RAM] Available: 3.8 GB
    [I] Loaded mod 'esoterum' in 55.50673ms
    [I] Loaded mod 'exogenesis' in 90.37856ms
    [I] Total time to load: 5895ms
    [I] Fetching community servers at https://raw.githubusercontent.com/Anuken/Mindustry/master/servers_v7.json
    [I] Fetched 23 community servers.
    [I] Saved on exit.
    [E] java.lang.NullPointerException: Cannot invoke "esoterum.world.blocks.binary.transmission.BinaryNode$BinaryNodeBuild.updateNeighbours()" because the return value of "esoterum.world.blocks.binary.transmission.BinaryNode$BinaryNodeBuild.linkedNode()" is null
            at esoterum.world.blocks.binary.transmission.BinaryNode.lambda$new$0(BinaryNode.java:36)
            at mindustry.gen.Building.configured(Building.java:1324)
            at mindustry.world.blocks.ConstructBlock.constructFinish(ConstructBlock.java:77)
            at mindustry.gen.Call.constructFinish(Call.java:228)
            at mindustry.world.blocks.ConstructBlock.constructed(ConstructBlock.java:130)
            at mindustry.world.blocks.ConstructBlock$ConstructBuild.construct(ConstructBlock.java:270)
            at mindustry.gen.UnitEntity.update(UnitEntity.java:1560)
            at mindustry.entities.EntityGroup.update(EntityGroup.java:59)
            at mindustry.gen.Groups.update(Groups.java:75)
            at mindustry.core.Logic.update(Logic.java:413)
            at arc.ApplicationCore.update(ApplicationCore.java:37)
            at mindustry.ClientLauncher.update(ClientLauncher.java:177)
            at arc.backend.sdl.SdlApplication.listen(SdlApplication.java:166)
            at arc.backend.sdl.SdlApplication.loop(SdlApplication.java:154)
            at arc.backend.sdl.SdlApplication.<init>(SdlApplication.java:45)
            at mindustry.desktop.DesktopLauncher.main(DesktopLauncher.java:39)
    
        ~                                                                                                                                            1 ✘  22s  
    
    opened by Yusuto 1
  • Laser Emitters (Suggestion)

    Laser Emitters (Suggestion)

    Laser Emitters have full 360 controllable rotation and have two modes, preferably with adjustable range too. In their primary mode, they just make a laser when they are turned on. The secondary modes makes them into proximity detectors, so they emit a signal, just like how sentries shoot when they detect something.

    opened by FarmerThanos 1
Releases(v2.2)
  • v2.2(Oct 27, 2021)

    • Rewritten Signalling system yet again
    • some small QoL changes
    • Beams and stuff

    Disclaimer: The mod is now extremely resource intensive. Exercise discretion when playing. Your RAM and CPU usage will die.

    What's Changed

    • Music logic by @MrDuck557 in https://github.com/Goobrr/Esoterum/pull/70
    • much needed update by @AzhurniyBaklan in https://github.com/Goobrr/Esoterum/pull/71
    • hideDeezNuts by @AzhurniyBaklan in https://github.com/Goobrr/Esoterum/pull/73
    • bundle_zh_CN.properties by @Lin-cat in https://github.com/Goobrr/Esoterum/pull/74
    • Update fix by @MrDuck557 in https://github.com/Goobrr/Esoterum/pull/76
    • Note drawing by @MEEPofFaith in https://github.com/Goobrr/Esoterum/pull/78
    • Yet another rewrite by @Eldoofus in https://github.com/Goobrr/Esoterum/pull/79

    Full Changelog: https://github.com/Goobrr/Esoterum/compare/v2.1...v2.2

    Source code(tar.gz)
    Source code(zip)
    Esoterum.jar(2.94 MB)
  • v2.1(Oct 14, 2021)

    lmao

    Changes

    • Instant signaling by @Eldoofus
    • Several new instrument samples
    • Improved readability for directional binary logic blocks
    • New noteblock effects
    • New sentry turrets
    • New laser beams!
    • many more

    Full Changelog: https://github.com/Goobrr/Esoterum/compare/v2.02...v2.1

    Source code(tar.gz)
    Source code(zip)
    Esoterum.jar(2.89 MB)
  • v2.02(Oct 10, 2021)

    Noteblock rework

    • Octave range increased to C1~C7 Note: For backwards compatibility, logic integration will still use index 0 for C2 resulting in C1 being at index -1. This will be removed in the next release

    • New BIG SHOT instrument

    • New noteblock UI

    Source code(tar.gz)
    Source code(zip)
    Esoterum.jar(2.60 MB)
  • v2.01(Oct 8, 2021)

    smaller pre-update to stop the bug complaints

    Additions

    • More Manual Pages
    • Logic Integration
    • UI Fixes
    • Chinese Bundle
    • Drums
    • Compatibility with Betamindy noteblocks
    • more stuff

    Full Changelog: https://github.com/Goobrr/Esoterum/compare/v2.0...v2.1

    Source code(tar.gz)
    Source code(zip)
    Esoterum.jar(2.25 MB)
  • v2.0(Sep 29, 2021)

    Esoterum v2.0

    New Features

    • A Majority of features from v0-1.2
    • New Configurable Signal Controller block
    • New Configurable Buffer
    • New Environmental blocks
    • New Manual block and dialog
    • New Node Signaling Behavior
    • New Note block UI
    • (Maybe) Multiplayer Sync
    • maybe more

    Changes

    • Made Logic Gates configurable
    • Made signals save
    • Reworked signaling
    • maybe more

    Bugfixes

    • a lot

    Thanks to all the contributors who helped!

    Source code(tar.gz)
    Source code(zip)
    Esoterum.jar(1.85 MB)
Owner
rotate
null
Adds value to towns, by giving each one a unique set of automatically-generated resources.

TownyResources TownyResources adds value to towns, by giving each one a unique set of automatically-produced resources which can be collected by playe

Towny Advanced 22 Dec 30, 2022
Generate Heroku-like random names to use in your Java applications

HaikunatorJAVA Generate Heroku-like random names to use in your java applications. Installation To install Haikunator add the following to your maven

Atrox 29 Aug 28, 2022
something like a loader

lualoader lualoader is a loader for your pastes yes it is better than falcon (for a little time it isn't) if you found a dumper go fuck yourself creat

PlutoSolutions 14 Feb 4, 2022
Java rate limiting library based on token/leaky-bucket algorithm.

Java rate-limiting library based on token-bucket algorithm. Advantages of Bucket4j Implemented on top of ideas of well known algorithm, which are by d

Vladimir Bukhtoyarov 1.7k Jan 8, 2023
"Pathfinder" - a small demo app made in Java, using Swing which shows an example implementation of a pathfinding algorithm based on BFS

"Pathfinder" is a small demo app made in Java, using Swing which shows an example implementation of a pathfinding algorithm based on BFS.

Dan Sirbu 2 Mar 9, 2022
Pass variables into methods based off name, not position.

Named Arguments are a feature that many languages lack. Some call it Feature Envy. The Problem You have a menu() method that prints out a 5 option men

Xavier D 3 Jul 1, 2022
A utility for guessing the CCSID of files (based on file contents)

CcsidGuesser A utility for guessing the CCSID of files (based on file contents). It can also fix CCSID tags and/or convert files to UTF-8! Usage Usage

Jesse Gorzinski 4 Feb 21, 2022
Java lib for monitoring directories or individual files via java.nio.file.WatchService

ch.vorburger.fswatch Java lib for monitoring directories or individual files based on the java.nio.file.WatchService. Usage Get it from Maven Central

Michael Vorburger ⛑️ 21 Jan 7, 2022
Tencent Kona JDK11 is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-Term Support(LTS) with quarterly updates. Tencent Kona JDK11 is certified as compatible with the Java SE standard.

Tencent Kona JDK11 Tencent Kona JDK11 is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-Term Support(LTS) w

Tencent 268 Dec 16, 2022
This repository contains Java programs to become zero to hero in Java.

This repository contains Java programs to become zero to hero in Java. Data Structure programs topic wise are also present to learn data structure problem solving in Java. Programs related to each and every concep are present from easy to intermidiate level

Sahil Batra 15 Oct 9, 2022
An open-source Java library for Constraint Programming

Documentation, Support and Issues Contributing Download and installation Choco-solver is an open-source Java library for Constraint Programming. Curre

null 607 Jan 3, 2023
Java Constraint Programming solver

https://maven-badges.herokuapp.com/maven-central/org.jacop/jacop/badge.svg [] (https://maven-badges.herokuapp.com/maven-central/org.jacop/jacop/) JaCo

null 202 Dec 30, 2022
Java Constraint Solver to solve vehicle routing, employee rostering, task assignment, conference scheduling and other planning problems.

OptaPlanner www.optaplanner.org Looking for Quickstarts? OptaPlanner’s quickstarts have moved to optaplanner-quickstarts repository. Quick development

KIE (Drools, OptaPlanner and jBPM) 2.8k Jan 2, 2023
Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas

Arthas Arthas is a Java Diagnostic tool open sourced by Alibaba. Arthas allows developers to troubleshoot production issues for Java applications with

Alibaba 31.5k Jan 4, 2023
Object-Oriented Java primitives, as an alternative to Google Guava and Apache Commons

Project architect: @victornoel ATTENTION: We're still in a very early alpha version, the API may and will change frequently. Please, use it at your ow

Yegor Bugayenko 691 Dec 27, 2022
Dex : The Data Explorer -- A data visualization tool written in Java/Groovy/JavaFX capable of powerful ETL and publishing web visualizations.

Dex Dex : The data explorer is a powerful tool for data science. It is written in Groovy and Java on top of JavaFX and offers the ability to: Read in

Patrick Martin 1.3k Jan 8, 2023
Google core libraries for Java

Guava: Google Core Libraries for Java Guava is a set of core Java libraries from Google that includes new collection types (such as multimap and multi

Google 46.5k Jan 1, 2023
Java regular expressions made easy.

JavaVerbalExpressions VerbalExpressions is a Java library that helps to construct difficult regular expressions. Getting Started Maven Dependency: <de

null 2.6k Dec 30, 2022
MinIO Client SDK for Java

MinIO Java SDK for Amazon S3 Compatible Cloud Storage MinIO Java SDK is Simple Storage Service (aka S3) client to perform bucket and object operations

High Performance, Kubernetes Native Object Storage 787 Jan 3, 2023