Skip to content

Commit

Permalink
Collapsable Stats and Stat ranges
Browse files Browse the repository at this point in the history
  • Loading branch information
ReclipseTheOne committed Dec 24, 2024
1 parent fb15c4e commit 6467ecc
Show file tree
Hide file tree
Showing 17 changed files with 406 additions and 185 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// 1.21.1 2024-12-21T13:29:07.948008452 Registries
731c134d2749f365fc9a6d44d8d6e400e77eec49 data/nautec/nautec/bacteria/cyanobacteria.json
// 1.21.1 2024-12-24T18:15:02.5464049 Registries
f1cbe78b749af58e6ab35cfcf0e117e8ff1201fd data/nautec/nautec/bacteria/cyanobacteria.json
6e0101d77b1f0382041425952ff4b8544733f2e2 data/nautec/nautec/bacteria/empty.json
81c72e6a3cfb78f800e627cdad79edbb044de4a1 data/nautec/nautec/bacteria/halobacteria.json
09d49475a6a9fffaf92674fc3f0e4df1f76ea94d data/nautec/nautec/bacteria/methanogens.json
f8693e008a409782cc34263ff0b2c2c61c99a3cc data/nautec/nautec/bacteria/thermophiles.json
8bfd159438fbc05a4170b1682dbb19f13b40c2ce data/nautec/nautec/bacteria/halobacteria.json
7752dbd2acb008e58069226bdc06b45deddec8d8 data/nautec/nautec/bacteria/methanogens.json
89cc03b8955fa19e495528d6f9a47db32f938641 data/nautec/nautec/bacteria/thermophiles.json
d3949aab832fc1b72c2512c35586c2682dea4d4d data/nautec/worldgen/configured_feature/prismarine_sand_beach.json
e9f0c0ce377bc6f731c3b36673e845152a53327d data/nautec/worldgen/configured_feature/prismarine_sand_ocean.json
685d14b2486e0da05c931e69fe78236dd9523cbf data/nautec/worldgen/placed_feature/prismarine_sand_beach.json
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// 1.21.1 2024-12-22T15:03:48.196904205 Item Models: nautec
// 1.21.1 2024-12-24T18:06:56.5202249 Item Models: nautec
53692692f57914fc54eb6ebf416ce1cb7789e57b assets/nautec/models/item/air_bottle.json
cc6ee3887ec6e0c53216dc681ac7b32b34182253 assets/nautec/models/item/anchor.json
2e336fce57acffa1d0eb621baa30a26f665b4924 assets/nautec/models/item/aquarine_steel_axe.json
Expand Down Expand Up @@ -41,6 +41,7 @@ f265d14b36a179870fb0d210c3677f6235e11ed8 assets/nautec/models/item/cast_iron_blo
204c2b87988bae0f1d52f4bdbf783705a53f0187 assets/nautec/models/item/chiseled_dark_prismarine.json
9c2eb8e87b6da76b41d01bbbe9d6dc72fa5a7479 assets/nautec/models/item/claw_robot_arm.json
480b14b512773eff106e41db280b20b18ff623f8 assets/nautec/models/item/crate.json
37df154a32accd3c4866a4ffd2ea62e39fd84766 assets/nautec/models/item/creative_energy_source.json
412b50bfa2123bb08b78fca03ade3d5c4522984b assets/nautec/models/item/creative_power_source.json
3877f32e28dc1c15c50bf3a2b3b9a1b42d1efc11 assets/nautec/models/item/crowbar.json
93a27b412d5f8766eaadc9a39bbb9a8e7ad49ea5 assets/nautec/models/item/dark_prismarine_pillar.json
Expand All @@ -55,6 +56,7 @@ c085f601646336ad76e9a613649bcffc3a304c9a assets/nautec/models/item/dolphin_fin.j
61a7044af6e7a6c51552eb1abfa03e96aa677420 assets/nautec/models/item/eas_bucket.json
81b061a707ce97739bf742ee8c4832e9612c3f18 assets/nautec/models/item/eas_vial.json
7bdd896a173f2dbd2cf64ff41e82f6c5525dcf49 assets/nautec/models/item/eldritch_heart.json
f756459da05f56a3fc46f479c1737332da8d90ce assets/nautec/models/item/energy_converter.json
3e19378d1e8cd3808548edc4bbb93a4dfe4ade74 assets/nautec/models/item/etching_acid_bucket.json
cb07777d8dcd1c00bea806efc2b7f64c6c13a8c3 assets/nautec/models/item/fishing_station.json
490588573d27c343b055c02b137c221a71866aa8 assets/nautec/models/item/gear.json
Expand All @@ -71,12 +73,12 @@ da47351a6e7410de2b6761d4c90edf257d4620aa assets/nautec/models/item/oil_barrel.js
c30b2391537fbc383c41aebe69a6eab8b2f9bd31 assets/nautec/models/item/petri_dish.json
888fbf8e3629b4cd0df267581ac130f534f80ac5 assets/nautec/models/item/petri_dish_bacteria.json
e8d19ed0a058c92c28efb20a5f8887ff0b78770f assets/nautec/models/item/polished_prismarine.json
113d63fc1bd37fbe0fb477446a06eafa25ce09b1 assets/nautec/models/item/prism_monocle.json
8e22e42d27bc66bc91cc76fd66d0ff5457b585b1 assets/nautec/models/item/prismarine_crystal.json
8b90a03798a28c038b1c16da2f723e90694d182b assets/nautec/models/item/prismarine_crystal_shard.json
09882392c9745a728907f265dd968977ca0f171b assets/nautec/models/item/prismarine_laser_relay.json
b01055cbe0dd02e958fe1063758658a9be6b753a assets/nautec/models/item/prismarine_sand.json
e0209c5f64b38c19f4b8cc62dc90d23fd5f3bad0 assets/nautec/models/item/prismatic_battery.json
113d63fc1bd37fbe0fb477446a06eafa25ce09b1 assets/nautec/models/item/prism_monocle.json
0441fb5aafacad25af44cc70caad7de17d4d7762 assets/nautec/models/item/rusty_crate.json
546756658cb53a34f117de278d075cbdd09c70ba assets/nautec/models/item/rusty_gear.json
98e84d6566a67fb207e7dc979f77a6a88f2f0fcf assets/nautec/models/item/salt.json
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "nautec:block/creative_energy_source"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "nautec:block/energy_converter"
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,21 @@
"stats": {
"type": "nautec:simple",
"color": -13434881,
"growth_rate": 0.0,
"lifespan": 0,
"mutation_resistance": 0.0,
"production_rate": 10.0
"growth_rate": [
0.5,
1.0
],
"lifespan": [
1200,
2400
],
"mutation_resistance": [
0.0,
0.1
],
"production_rate": [
0.1,
0.5
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,21 @@
"stats": {
"type": "nautec:simple",
"color": -6912,
"growth_rate": 0.0,
"lifespan": 0,
"mutation_resistance": 0.0,
"production_rate": 0.0
"growth_rate": [
0.5,
1.0
],
"lifespan": [
1200,
2400
],
"mutation_resistance": [
0.0,
0.1
],
"production_rate": [
0.1,
0.5
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,21 @@
"stats": {
"type": "nautec:simple",
"color": -1328403,
"growth_rate": 0.0,
"lifespan": 0,
"mutation_resistance": 0.0,
"production_rate": 0.0
"growth_rate": [
0.5,
1.0
],
"lifespan": [
1200,
2400
],
"mutation_resistance": [
0.0,
0.1
],
"production_rate": [
0.1,
0.5
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,21 @@
"stats": {
"type": "nautec:simple",
"color": -65536,
"growth_rate": 0.0,
"lifespan": 0,
"mutation_resistance": 0.0,
"production_rate": 0.0
"growth_rate": [
0.5,
1.0
],
"lifespan": [
1200,
2400
],
"mutation_resistance": [
0.0,
0.1
],
"production_rate": [
0.1,
0.5
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import com.portingdeadmods.nautec.content.bacteria.CollapsedStats;
import com.portingdeadmods.nautec.content.bacteria.SimpleBacteriaStats;
import com.portingdeadmods.nautec.registries.NTBacterias;
import com.portingdeadmods.nautec.utils.BacteriaHelper;
Expand All @@ -16,21 +17,21 @@ public final class BacteriaInstance {
public static final Codec<BacteriaInstance> CODEC = RecordCodecBuilder.create(instance -> instance.group(
Bacteria.BACTERIA_TYPE_CODEC.fieldOf("bacteria").forGetter(BacteriaInstance::getBacteria),
Codec.LONG.fieldOf("amount").forGetter(BacteriaInstance::getAmount),
BacteriaStats.CODEC.fieldOf("stats").forGetter(BacteriaInstance::getStats)
CollapsedStats.CODEC.fieldOf("stats").forGetter(BacteriaInstance::getStats)
).apply(instance, BacteriaInstance::new));
public static final StreamCodec<RegistryFriendlyByteBuf, BacteriaInstance> STREAM_CODEC = StreamCodec.composite(
Bacteria.BACTERIA_TYPE_STREAM_CODEC,
BacteriaInstance::getBacteria,
ByteBufCodecs.VAR_LONG,
BacteriaInstance::getAmount,
BacteriaStats.STREAM_CODEC,
CollapsedStats.STREAM_CODEC,
BacteriaInstance::getStats,
BacteriaInstance::new
);

private final ResourceKey<Bacteria> bacteria;
private long amount;
private BacteriaStats stats;
private CollapsedStats stats;

public BacteriaInstance(ResourceKey<Bacteria> bacteria, HolderLookup.Provider lookup) {
this(bacteria, 1, BacteriaHelper.getBacteria(lookup, bacteria).initialStats());
Expand All @@ -41,6 +42,12 @@ public BacteriaInstance(ResourceKey<Bacteria> bacteria, BacteriaStats stats) {
}

public BacteriaInstance(ResourceKey<Bacteria> bacteria, long amount, BacteriaStats stats) {
this.bacteria = bacteria;
this.amount = amount;
this.stats = stats.collapse();
}

public BacteriaInstance(ResourceKey<Bacteria> bacteria, long amount, CollapsedStats stats) {
this.bacteria = bacteria;
this.amount = amount;
this.stats = stats;
Expand All @@ -58,11 +65,11 @@ public ResourceKey<Bacteria> getBacteria() {
return bacteria;
}

public void setStats(BacteriaStats stats) {
public void setStats(CollapsedStats stats) {
this.stats = stats;
}

public BacteriaStats getStats() {
public CollapsedStats getStats() {
return this.stats;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.mojang.serialization.Codec;
import com.portingdeadmods.nautec.NTRegistries;
import com.portingdeadmods.nautec.content.bacteria.CollapsedStats;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.chat.Component;
import net.minecraft.network.codec.ByteBufCodecs;
Expand All @@ -16,31 +17,17 @@ public interface BacteriaStats {
ByteBufCodecs.registry(NTRegistries.BACTERIA_STATS_SERIALIZER_KEY).dispatch(BacteriaStats::getSerializer, BacteriaStatsSerializer::streamCodec);


float growthRate();
List<Float> growthRate();

float mutationResistance();
List<Float> mutationResistance();

float productionRate();
List<Float> productionRate();

int lifespan();
List<Integer> lifespan();

int color();

BacteriaStats copy();
CollapsedStats collapse();

List<Component> statsTooltip();
List<Component> statsTooltipWithMutatorValues();
int color();

BacteriaStatsSerializer<?> getSerializer();

// Mutator
BacteriaStats rollGrowthRate();
BacteriaStats rollMutationResistance();
BacteriaStats rollProductionRate();
BacteriaStats rollLifespan();
BacteriaStats rollStats();

// Incubator
BacteriaStats grow();
BacteriaStats shrink();
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.portingdeadmods.nautec.api.bacteria.BacteriaInstance;
import com.portingdeadmods.nautec.api.bacteria.BacteriaStats;
import com.portingdeadmods.nautec.content.bacteria.CollapsedStats;

import java.util.function.UnaryOperator;

Expand All @@ -12,9 +13,8 @@ public interface IBacteriaStorage {

int getBacteriaSlots();

default void modifyStats(int slot, UnaryOperator<BacteriaStats> statsModifier) {
default void modifyStats(int slot, UnaryOperator<CollapsedStats> statsModifier) {
BacteriaInstance bacteriaInstance = getBacteria(slot);
BacteriaStats newStats = statsModifier.apply(bacteriaInstance.getStats());

CollapsedStats newStats = statsModifier.apply(bacteriaInstance.getStats());
}
}
Loading

0 comments on commit 6467ecc

Please sign in to comment.