Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
087cbc9
Init Port of the Old PR
Ghostipedia Sep 20, 2025
99a8ce0
Wrench, Doesn't have mode swap, SOS.
Ghostipedia Sep 20, 2025
a34c2a7
wrench tag
Spicierspace153 Sep 20, 2025
3659232
Wirecutter Texture, Table Recipe, Lang
Ghostipedia Sep 20, 2025
4cde461
Im stupid i can use datagen for lang.
Ghostipedia Sep 20, 2025
86d294e
Merge remote-tracking branch 'origin/gp/the-great-retinkering' into g…
Ghostipedia Sep 20, 2025
8d1fba5
Merge branch 'main-1.20.1-forge' into gp/the-great-retinkering
Ghostipedia Sep 20, 2025
8897ee9
YEAAAH SPOTLESS WOOO YEAH SPOTLESS
Ghostipedia Sep 20, 2025
dd5d1fd
Wrench head but it doesn't show in EMI as variants
Ghostipedia Sep 20, 2025
6a1916c
Wrenches - They have a Custom Toolhead.
Ghostipedia Sep 20, 2025
cd2cbd9
Ah fucking spotless
Ghostipedia Sep 20, 2025
8884023
Yo/ticon modifiers (#141)
Ghostipedia Sep 21, 2025
ea664dc
screwdriver
Ghostipedia Sep 21, 2025
92540b5
whoops forgot a file
Ghostipedia Sep 21, 2025
d8faed5
Datagen Attempt 1 (Failure)
Ghostipedia Sep 21, 2025
ad7caf5
Merge branch 'main-1.20.1-forge' into gp/the-great-retinkering
Ghostipedia Sep 21, 2025
2e31252
fix crash (#143)
YoungOnionMC Sep 23, 2025
68e484e
Merge remote-tracking branch 'origin/gp/the-great-retinkering' into g…
Ghostipedia Sep 23, 2025
d5bd644
Dawnforge on the tinkers branch
Ghostipedia Sep 23, 2025
af84c7c
modifiers (#144)
Spicierspace153 Sep 24, 2025
57a22ef
mixin to increase toughness of netherrack (#153)
Spicierspace153 Oct 15, 2025
23fd651
tinkers materials but cool and based and builder pilled :pepechill: (…
Spicierspace153 Jan 23, 2026
878e547
Pull Dawnforge to Master Branch
Ghostipedia Sep 23, 2025
656fc42
Cleaning out random parts of master that got modified from the tinker…
Ghostipedia Sep 23, 2025
a580225
Create module hatch + parallel modifier function (#138)
jurrejelle Sep 28, 2025
f2051fe
Port stuff from CCore to ae2cl (#148)
ko-lja Sep 29, 2025
c91501e
update ae2 for uhhh, compat thing (#149)
ko-lja Sep 29, 2025
e5a2e62
Like a Fuckload of Bees, Yo (#150)
Ghostipedia Sep 29, 2025
0966751
Spotless Main so it will shut up about spotless dying on branches!
Ghostipedia Sep 29, 2025
e5baa82
Remove ae2 mixin (#151)
ko-lja Sep 29, 2025
f67a1e6
EMI Gene Capsule Compat
Ghostipedia Oct 8, 2025
2d83493
????? Why does this work.
Ghostipedia Oct 8, 2025
bb02ccd
Stuff and Lantern.
Ghostipedia Oct 10, 2025
58b04a2
More datagen nonsense
Ghostipedia Oct 10, 2025
dc1cd5c
Arcane Crucible
Ghostipedia Oct 11, 2025
c3baf64
gp/ember-stuff (#155)
Ghostipedia Oct 19, 2025
ec219ca
Quad Hatches and Datagen
Ghostipedia Oct 24, 2025
ea79974
OOPS ITS ALL DATAGEN!
Ghostipedia Oct 30, 2025
b7dae13
Refactor WeakSteamParallelMultiBlockMachine to extend SteamParallelMu…
DilithiumThoride Oct 27, 2025
0b5b949
Alve-Foil Insulator and Shape Memory Foil (#122)
WithersChat Nov 6, 2025
36d79d8
Once again! (#157)
Flare32 Nov 6, 2025
f53eca5
Add Steam Input Buses to Dawn Forge (#159)
TomPlop Nov 6, 2025
be1bc42
OOPS ITS ALL DATAGEN!
Ghostipedia Nov 6, 2025
aa4ec1f
Spotless Whoops
Ghostipedia Nov 6, 2025
44e9bce
The fuckin bugs
Ghostipedia Nov 6, 2025
5489bf8
Update toma repo (#161)
jurrejelle Nov 7, 2025
113b8af
Update Royal Ichorium and Trinavine
Ghostipedia Nov 7, 2025
0a84c30
Remove slim jar (#162)
mrquentin Nov 9, 2025
00593e8
Project Star Eater (#163)
Ghostipedia Nov 13, 2025
17f21c7
Enthelic Circuits
Ghostipedia Nov 14, 2025
3dad5e0
Version Bump
Ghostipedia Nov 14, 2025
54afe94
Fix modular shelling heavy assembling recipe (#164)
JuiceyBeans Nov 14, 2025
1121a29
Add Flare texture for Omni circuits (#166)
TomPlop Nov 14, 2025
71b9e5a
All the Nonsense Pre-Spottless
Ghostipedia Nov 15, 2025
ea3f90a
The Datagen now that it doesn't suck or nuke my structure pattern
Ghostipedia Nov 15, 2025
57b2862
Ah God Damn it.
Ghostipedia Nov 15, 2025
0c7b8c4
Update textures for Omnia Circuits (#167)
Flare32 Nov 15, 2025
2786b1b
Fixed Recipe Maps and Empty Fuel Cell
Ghostipedia Nov 16, 2025
510d533
Star Ladder Structure
Ghostipedia Nov 20, 2025
bd9250e
Loot tables for ember emitters/receivers (#170)
JuiceyBeans Nov 18, 2025
a6196ba
One must imagine Spotless Happy
Ghostipedia Nov 20, 2025
1a98708
Bwah
Ghostipedia Dec 11, 2025
33b0a97
Cubic Ore texture updates (#172)
Flare32 Dec 12, 2025
619c695
Magic/Crystal Material Set Blocks, Crystal Material Set Dust (#173)
Flare32 Dec 12, 2025
1aa36af
Material Set time! (Assets only, code not included) (#175)
Flare32 Dec 12, 2025
92767d9
Fix Drygmy overflow issue (#176)
CatiPlasma Dec 12, 2025
aa70a83
More fluid tooltips (#177)
CatiPlasma Dec 12, 2025
124a0f9
Drone station localization improvement (#178)
CatiPlasma Dec 12, 2025
ccdca42
Fix combustion intakes on Y axis (#179)
CatiPlasma Dec 12, 2025
ed71ca4
Add batch mode for more machines. (#180)
CatiPlasma Dec 12, 2025
e76cb96
Fix steam assembler controller texture (#181)
JuiceyBeans Dec 12, 2025
67f9c34
Fix ChemVat recipelogic (#182)
CatiPlasma Dec 12, 2025
8053d19
Large Steam Turbine keeps running if Dynamo full (#183)
TomPlop Dec 12, 2025
08ac81e
Refactor direct consumption in machine logic to use recipes instead (…
jonasGajdosikas Dec 12, 2025
d4622e2
Spotless and fixing a few random things
Ghostipedia Dec 12, 2025
d49a809
Add proper swapIO() for SteamFluidHatchPartMachine (#187)
jurrejelle Dec 24, 2025
54eda4f
spotless + datagen + replace RecipeModifier of DAWN_FORGE to be steam…
jurrejelle Dec 24, 2025
6e21cff
Disable Tooltip Behavior
Ghostipedia Jan 8, 2026
f5f1e29
Material updates (#190)
Ghostipedia Jan 13, 2026
d667de6
update git ignore and Emi
Ghostipedia Jan 14, 2026
71b342b
Stupid Chungus Module Hates its Stupid Chungus Life
Ghostipedia Jan 15, 2026
0e6f573
Spotless
Ghostipedia Jan 15, 2026
396dacd
SpotlessApply :speaking_head:
Ghostipedia Jan 15, 2026
7403cfc
Boots and Spotless
Ghostipedia Jan 16, 2026
d7f8049
Nuke the Debugger HUD
Ghostipedia Jan 16, 2026
e6a04de
Update Create Mod and Fix Mixins
Ghostipedia Jan 16, 2026
f98ec15
Add Safeguards for EMI
Ghostipedia Jan 17, 2026
d1e02bd
Add Safeguards for EMI
Ghostipedia Jan 17, 2026
a4b0445
Update MachineBuilder Type Arguments to support the 7.5.0 changes (#191)
jurrejelle Jan 17, 2026
282ba8e
Version Bumps for GTM to load again
Ghostipedia Jan 17, 2026
82a4df3
Spotless
Ghostipedia Jan 17, 2026
a77ecf6
Clean up the broken shit
Ghostipedia Jan 17, 2026
a151700
EMI Arbitrary Stack Pinning
Ghostipedia Jan 17, 2026
6c66f63
Update EMI (Seems to stop issues?)
Ghostipedia Jan 17, 2026
eb220bf
Update EMI (Seems to stop issues?)
Ghostipedia Jan 18, 2026
15d6149
Unscarring
Ghostipedia Jan 18, 2026
ea28581
Diving bell implementation (#171)
SenecaIO Jan 20, 2026
e58eb38
Update en_us.json (#193)
theMegaTech Jan 20, 2026
368716f
Update ChromaticFlotationPlant.java (#169)
CatiPlasma Jan 20, 2026
09853b9
Add WeakSteam.recipeModifierCanRunAtMost(tier) (#189)
jurrejelle Jan 20, 2026
14c3ee5
Use correct EUt multiplier for weak steam parallel machines (#192)
jurrejelle Jan 20, 2026
6347a19
Fix ember capability paralelling (#194)
jurrejelle Jan 20, 2026
fe766b8
Spotless After the massive merging spree
Ghostipedia Jan 20, 2026
a400ca9
Apply changes to previous PR (#195)
jurrejelle Jan 20, 2026
3d393a4
rebase hell
Ghostipedia Sep 20, 2025
4b6ee9f
Im stupid i can use datagen for lang.
Ghostipedia Sep 20, 2025
d59bc11
YEAAAH SPOTLESS WOOO YEAH SPOTLESS
Ghostipedia Sep 20, 2025
52c4754
Wrenches - They have a Custom Toolhead.
Ghostipedia Sep 20, 2025
ab62de8
Yo/ticon modifiers (#141)
Ghostipedia Sep 21, 2025
0d68c95
screwdriver
Ghostipedia Sep 21, 2025
c90335b
Datagen Attempt 1 (Failure)
Ghostipedia Sep 21, 2025
2282580
Dawnforge on the tinkers branch
Ghostipedia Sep 23, 2025
de8484a
mixin to increase toughness of netherrack (#153)
Spicierspace153 Oct 15, 2025
b04242e
tinkers materials but cool and based and builder pilled :pepechill: (…
Spicierspace153 Jan 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
github-generate-changelog: true
github-tag: "${{ steps.toml_properties.outputs.value }}-${{ steps.gradle_properties.outputs.mod_version }}"

files: ./build/libs/!(*-@(dev|sources|dev-slim)).jar
files: ./build/libs/!(*-@(dev|sources|dev-slim|slim)).jar
name: "Cosmic Core ${{ steps.gradle_properties.outputs.mod_version }}"
version: ${{ steps.gradle_properties.outputs.mod_version }}
version-type: ${{ inputs.version_type }}
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,7 @@ runs/

# forge generated resources cache
/src/generated/resources/.cache/
# Agenic Support Tools - Debug Only
/.claude/
# Personal Notes I Keep in my Local
/docs/
6 changes: 3 additions & 3 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Cosmic Core 0.8.9
# DO NOT MANUALLY UPDATE COSMIC CORE FOR FRONTIERS **I WILL NOT WORK**

Sterilizier Hatch Now Accepts any FluidStack and Consumes #/recipe or #/tick
Titan Reactor
New Infinity Textures (Basic)
Bees, oh so many bees
module hatch updates
uhhhh, yeah.
27 changes: 21 additions & 6 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,24 @@ dependencies {
compileOnly(libs.jetbrains.annotations)

modRuntimeOnly("curse.maven:worldedit-225608:4586218") //Worldedit bc i'm lazy ty
modRuntimeOnly("curse.maven:effortless-building-302113:4979089") //EB bc i'm lazy ty
modRuntimeOnly("curse.maven:effortless-building-302113:6330928") //EB bc i'm lazy ty
modRuntimeOnly("curse.maven:tmrv-1194921:6856065") //EB bc i'm lazy ty

//IDK if we need this fully yet...
modImplementation('com.github.thedarkcolour:ModKit:0302f9aa42')
modImplementation('curse.maven:tmrv-1194921:7259315')
modImplementation("curse.maven:travel-anchors-413234:4683662")
modImplementation("curse.maven:libx-412525:4947474")

//Botania
// implementation(forge.botania)


//Tinkers
modImplementation(forge.tconstruct)
modImplementation(forge.mantle)


// LDLib
modImplementation(forge.ldlib)

Expand Down Expand Up @@ -36,7 +48,7 @@ dependencies {

// Recipe Viewers
modCompileOnly(forge.bundles.jei)
modCompileOnly(forge.emi)
modImplementation(forge.emi)

// WAILA-likes
modImplementation(forge.jade)
Expand Down Expand Up @@ -72,8 +84,8 @@ dependencies {
modImplementation(forge.bloodMagic)

// Create
modCompileOnly(forge.create)
modCompileOnly(forge.flywheel)
modImplementation(forge.create)
modImplementation(forge.flywheel)
modImplementation(forge.geckoLib)

// Thin air
Expand Down Expand Up @@ -108,11 +120,14 @@ dependencies {
modImplementation(forge.smartBrainLib)
// Runtime Recipe Viewers - uncomment whichever one you want to use //
modRuntimeOnly(forge.emi)
// modRuntimeOnly(forge.jei.forge.impl)

//Modern Fix

//Modern FixG
modImplementation(forge.modernFix)

// Embers
modImplementation(forge.embers)
modImplementation(forge.forestry)
modImplementation(forge.gendustry)
api(forge.gendustry)
}
Binary file added dev/emi/emi/runtime/EmiFavorite.class
Binary file not shown.
226 changes: 226 additions & 0 deletions docs/CARGO_MOTHS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
# Cargo Moths System

## Current Status: **IN PROGRESS**

Last updated: Debug output removed, core functionality working.

---

## 1. Overview

The Cargo Moths system provides local (same-dimension) item and fluid transport using a whimsical moth-based logistics network. Unlike the cross-dimensional linking system, Cargo Moths are designed for short-range automation within a single dimension.

### Design Philosophy
- **No power required** - Moths work for free!
- **Scalable capacity** - Add more moth homes to increase throughput
- **Tiered progression** - Different beehive types provide different speeds/capacities
- **Feeding bonuses** - Optional honey/oil feeding for multipliers

---

## 2. What's Implemented

### 2.1 Core Components

| Component | File | Status |
|-----------|------|--------|
| `MothCargoStation` | `common/machine/multiblock/multi/MothCargoStation.java` | ✅ Complete |
| `MothCargoStationMachine` | `common/machine/multiblock/multi/logic/MothCargoStationMachine.java` | ✅ Complete |
| `MothCargoDropOff` | `common/machine/multiblock/multi/MothCargoDropOff.java` | ✅ Complete |
| `MothCargoDropOffMachine` | `common/machine/multiblock/multi/logic/MothCargoDropOffMachine.java` | ✅ Complete |
| `LinkedWorkableMultiblockMachine` | `api/machine/multiblock/LinkedWorkableMultiblockMachine.java` | ✅ Complete |

### 2.2 Feature Checklist

- [x] Multiblock structure definitions
- [x] Datastick-based linking (reuses cross-dimensional linking infrastructure)
- [x] Same-dimension restriction
- [x] Item transfer from Station to Drop Off
- [x] Fluid transfer from Station to Drop Off
- [x] Tiered moth homes (Forestry beehives)
- [x] Cycle time based on moth tier
- [x] Capacity based on moth count × tier multiplier
- [x] Distribution modes (DIRECT, FILL_FIRST, ROUND_ROBIN)
- [x] GUI display (moth homes, cycle time, capacity, linked drop-offs)
- [x] Screwdriver to cycle distribution mode
- [ ] Feeding bonuses (honey/oil multipliers)

---

## 3. Multiblock Structures

### 3.1 Moth Cargo Station (Sender)

Tower structure: 3×3 footprint, 6 blocks tall

```
Layer 0 (bottom): Layer 1-4: Layer 5 (top):
C C C C M C C C C
C C C C M C C C C
C Q C C M C C C C
```

Where:
- `C` = Steel Solid Casing (or input/output buses/hatches, maintenance hatch)
- `M` = Moth Home (Forestry beehive) OR Steel Solid Casing
- `Q` = Controller

**Moth homes only go in the center column** (up to 4 can be placed).

Allowed hatches:
- 1 Maintenance Hatch (required)
- Up to 4 Item Input Buses
- Up to 4 Item Output Buses
- Up to 4 Fluid Input Hatches
- Up to 4 Fluid Output Hatches

### 3.2 Moth Cargo Drop Off (Receiver)

Simple 3×3×2 structure:

```
Layer 0 (bottom): Layer 1 (top):
C C C C C C
C Q C C C C
C C C C C C
```

Where:
- `C` = Steel Solid Casing (or output buses/hatches, maintenance hatch)
- `Q` = Controller

Allowed hatches:
- 1 Maintenance Hatch (required)
- Up to 4 Item Output Buses
- Up to 4 Fluid Output Hatches

---

## 4. Moth Home Tiers

Moth homes use Forestry beehive blocks:

| Tier | Block | Cycle Time | Moths per Home |
|------|-------|------------|----------------|
| T1 | `forestry:beehive_forest` | 60s | 1 |
| T2 | `forestry:beehive_lush` | 30s | 2 |
| T3 | `forestry:beehive_desert` | 15s | 4 |
| T4 | `forestry:beehive_end` | 5s | 8 |

**All moth homes must be the same tier.** Mixed tiers will trigger a warning.

### Capacity Calculation

```
Items per cycle = Total Moths × 64 × Feeding Multiplier
Fluids per cycle = Total Moths × 1000mB × Feeding Multiplier
Total Moths = Moth Home Count × Moths per Home (by tier)
```

Example: 4× T3 beehives = 4 × 4 = 16 moths = 1024 items per cycle (every 15s)

---

## 5. Distribution Modes

Cycle through modes with screwdriver on the controller.

| Mode | Behavior |
|------|----------|
| `DIRECT` | Ships to first linked drop-off only (1:1) |
| `FILL_FIRST` | Fills each drop-off in order until full, then moves to next |
| `ROUND_ROBIN` | Distributes evenly across all linked drop-offs |

---

## 6. Feeding Bonuses (TODO)

Planned multipliers for feeding moths:

| Feed Item | Multiplier |
|-----------|------------|
| Regular Honey | 2× |
| Lofty Honey | 4× |
| Pale Oil | 8× |

Feed is consumed per cycle from the Station's input bus.

---

## 7. GUI Information

The Station GUI displays:
- Moth Homes count and tier
- Total Moths
- Cycle Time (seconds)
- Distribution Mode
- Linked Drop-Offs count
- Capacity per cycle (items and fluids)

The Drop Off GUI displays:
- Structure status
- Number of stations linked to it

---

## 8. Linking

Uses the same datastick-based linking as the cross-dimensional system:

1. Shift+right-click the Moth Cargo Station with a datastick to copy link data
2. Right-click a Moth Cargo Drop Off to establish the link

**Restrictions:**
- Same dimension only (moths can't fly between dimensions!)
- Station can link to up to 16 Drop Offs (1:N)
- Drop Off can receive from up to 16 Stations (N:1)

---

## 9. How It Works

1. Every tick, the Station checks if enough time has passed since the last cycle
2. When cycle time is reached:
- Get all linked, formed Drop Offs
- Calculate item/fluid capacity based on moths and feeding multiplier
- Extract items from Station's input buses (using internal methods to bypass IO checks)
- Insert items into Drop Off's output buses (using internal methods to bypass IO checks)
- Same process for fluids
- Consume feeding materials (TODO)

The internal extraction/insertion methods bypass GTCEu's IO direction checks, which is the same pattern used by DroneStationMachine.

---

## 10. File Structure

```
src/main/java/com/ghostipedia/cosmiccore/
├── api/machine/multiblock/
│ └── LinkedWorkableMultiblockMachine.java # Base class (no power requirement)
└── common/machine/multiblock/multi/
├── MothCargoStation.java # Station multiblock definition
├── MothCargoDropOff.java # Drop Off multiblock definition
└── logic/
├── MothCargoStationMachine.java # Station logic (shipping cycles)
└── MothCargoDropOffMachine.java # Drop Off logic (receives items)
```

---

## 11. Known Limitations

1. **Forestry dependency** - Falls back to vanilla beehive if Forestry not loaded
2. **No visual feedback** - No moth entity/particle flying between stations
3. **No feeding implementation** - Multiplier is always 1× currently
4. **No chunk loading** - Both Station and Drop Off must be loaded

---

## 12. Future Work

- [ ] Implement feeding bonuses (honey/oil consumption and multipliers)
- [ ] Add moth particle effects during transfers
- [ ] Consider cross-dimension variant (interdimensional moths?)
- [ ] Add JEI/EMI integration showing capacity calculations
- [ ] Custom textures/models for the multiblocks
Loading