update stuff

This commit is contained in:
pietru 2024-03-30 21:54:58 +01:00
parent a978cd8e06
commit 78d6bfc064
6 changed files with 39 additions and 36 deletions

View file

@ -65,9 +65,9 @@ dependencies {
quiltMod "org.codeberg.CRModders:cosmic-quilt:${cosmic_quilt_version}" quiltMod "org.codeberg.CRModders:cosmic-quilt:${cosmic_quilt_version}"
//quiltMod "quilt-mod:resource-loader:1.0.2" //quiltMod "quilt-mod:resource-loader:1.0.2"
quiltMod "com.github.CRModders:FluxAPI:0.4.0" quiltMod "com.github.CRModders:FluxAPI:0.5.3"
quiltMod "com.github.ForwarD-NerN:BlockEntityPrototype:master-SNAPSHOT" quiltMod "com.github.ForwarD-NerN:BlockEntityPrototype:fe52c5a"
} }
processResources { processResources {

View file

@ -4,10 +4,10 @@
org.gradle.caching=false org.gradle.caching=false
# Project Info # Project Info
version=1.2.0 version=1.3.0
group=net.pietru group=net.pietru
id=omni_power id=omni_power
# Dependency Versions # Dependency Versions
cosmic_reach_version=0.1.15 cosmic_reach_version=0.1.17
cosmic_quilt_version=1.1.5 cosmic_quilt_version=1.2.4

View file

@ -3,7 +3,9 @@ Mod for game Cosmic Reach.\
Based on the example mod for the [Cosmic Quilt](https://codeberg.org/CRModders/cosmic-quilt) Loader Based on the example mod for the [Cosmic Quilt](https://codeberg.org/CRModders/cosmic-quilt) Loader
## Mod requires ## Mod requires
- Flux API (0.4.0+) - Cosmic Reach (0.1.17+)
- Cosmic Quilt (1.2.4+)
- Flux API (0.5.2+)
<br> <br>
<br> <br>

View file

@ -2,7 +2,7 @@ package net.pietru.omni_power;
import dev.crmodders.flux.tags.Identifier; import dev.crmodders.flux.tags.Identifier;
import dev.crmodders.flux.util.BlockBuilderUtils; import dev.crmodders.flux.util.BlockBuilderUtils;
import finalforeach.cosmicreach.world.blockevents.BlockEvents; import finalforeach.cosmicreach.blockevents.BlockEvents;
import net.pietru.omni_power.blockevents.Power; import net.pietru.omni_power.blockevents.Power;
import org.coolcosmos.cosmicquilt.api.entrypoint.ModInitializer; import org.coolcosmos.cosmicquilt.api.entrypoint.ModInitializer;
import org.quiltmc.loader.api.ModContainer; import org.quiltmc.loader.api.ModContainer;

View file

@ -2,15 +2,16 @@ package net.pietru.omni_power.blockevents;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.OrderedMap; import com.badlogic.gdx.utils.OrderedMap;
import finalforeach.cosmicreach.world.BlockPosition; import finalforeach.cosmicreach.blocks.BlockPosition;
import finalforeach.cosmicreach.world.World; import finalforeach.cosmicreach.world.World;
import finalforeach.cosmicreach.world.blockevents.BlockEventTrigger; import finalforeach.cosmicreach.blockevents.BlockEventTrigger;
import finalforeach.cosmicreach.world.blockevents.IBlockEventAction; import finalforeach.cosmicreach.blockevents.IBlockEventAction;
import finalforeach.cosmicreach.world.blocks.BlockState; import finalforeach.cosmicreach.blocks.BlockState;
import finalforeach.cosmicreach.world.Zone;
import net.pietru.omni_power.OmniPower; import net.pietru.omni_power.OmniPower;
import net.pietru.omni_power.api.IPowerClient; import net.pietru.omni_power.api.IPowerClient;
import net.pietru.omni_power.api.IPowerProducer; import net.pietru.omni_power.api.IPowerProducer;
import ru.nern.becraft.bed.BEUtils; import ru.nern.becraft.bed.utils.BEUtils;
import ru.nern.becraft.bed.api.BlockEntity; import ru.nern.becraft.bed.api.BlockEntity;
import java.util.HashMap; import java.util.HashMap;
@ -29,11 +30,11 @@ public class Power implements IBlockEventAction {
} }
@Override @Override
public void act(BlockState blockState, BlockEventTrigger blockEventTrigger, World world, Map<String, Object> args) { public void act(BlockState blockState, BlockEventTrigger blockEventTrigger, Zone zone, Map<String, Object> args) {
this.act(blockState, blockEventTrigger, world, (BlockPosition)args.get("blockPos")); this.act(blockState, blockEventTrigger, zone, (BlockPosition)args.get("blockPos"));
} }
public void act(BlockState srcBlockState, BlockEventTrigger blockEventTrigger, World world, BlockPosition sourcePos) { public void act(BlockState srcBlockState, BlockEventTrigger blockEventTrigger, Zone zone, BlockPosition sourcePos) {
OrderedMap<String, Object> p = blockEventTrigger.getParams(); OrderedMap<String, Object> p = blockEventTrigger.getParams();
String triggerId = (String)p.get("triggerId"); String triggerId = (String)p.get("triggerId");
String cable_group = (String)p.get("cable_group"); String cable_group = (String)p.get("cable_group");
@ -63,7 +64,7 @@ public class Power implements IBlockEventAction {
continue; continue;
} }
if (to_check!=sourcePos || self_run){ if (to_check!=sourcePos || self_run){
runTrigger(triggerId,to_check,world); runTrigger(triggerId,to_check,zone);
} }
if (block_entities && source_be){ if (block_entities && source_be){
BlockEntity target_entity = BEUtils.getBlockEntity(sourcePos); BlockEntity target_entity = BEUtils.getBlockEntity(sourcePos);
@ -72,12 +73,12 @@ public class Power implements IBlockEventAction {
} }
if (targetBlockState.stringId.contains(cable_group)){ if (targetBlockState.stringId.contains(cable_group)){
power_transmitters.add(to_check); power_transmitters.add(to_check);
unchecked_blocks.addAll(get_touching_positions(world,to_check,targetBlockState)); unchecked_blocks.addAll(get_touching_positions(zone,to_check,targetBlockState));
} }
} }
} }
private void runTrigger(String triggerId, BlockPosition triggerPos, World world) { private void runTrigger(String triggerId, BlockPosition triggerPos, Zone zone) {
if (triggerPos != null) { if (triggerPos != null) {
BlockState targetBlockState = triggerPos.getBlockState(); BlockState targetBlockState = triggerPos.getBlockState();
if (targetBlockState == null) { if (targetBlockState == null) {
@ -96,44 +97,44 @@ public class Power implements IBlockEventAction {
for(int var10 = 0; var10 < var9; ++var10) { for(int var10 = 0; var10 < var9; ++var10) {
BlockEventTrigger t = var8[var10]; BlockEventTrigger t = var8[var10];
t.act(targetBlockState, world, args); t.act(targetBlockState, zone, args);
} }
} }
} }
public Array<BlockPosition> get_touching_positions(World world,BlockPosition pos,BlockState state){ public Array<BlockPosition> get_touching_positions(Zone zone,BlockPosition pos,BlockState state){
Array<BlockPosition> arr = new Array<>(); Array<BlockPosition> arr = new Array<>();
BlockPosition side_pos; BlockPosition side_pos;
side_pos = pos.getOffsetBlockPos(world, 1, 0, 0); side_pos = pos.getOffsetBlockPos(zone, 1, 0, 0);
if (state.stringId.contains("xp_power") && block_has_dir_or_all(side_pos,"xm_power")) if (state.stringId.contains("xp_power") && block_has_dir_or_all(side_pos,"xm_power"))
arr.add(side_pos); arr.add(side_pos);
side_pos = pos.getOffsetBlockPos(world, -1, 0, 0); side_pos = pos.getOffsetBlockPos(zone, -1, 0, 0);
if (state.stringId.contains("xm_power") && block_has_dir_or_all(side_pos,"xp_power")) if (state.stringId.contains("xm_power") && block_has_dir_or_all(side_pos,"xp_power"))
arr.add(side_pos); arr.add(side_pos);
side_pos = pos.getOffsetBlockPos(world, 0, 1, 0); side_pos = pos.getOffsetBlockPos(zone, 0, 1, 0);
if (state.stringId.contains("yp_power") && block_has_dir_or_all(side_pos,"ym_power")) if (state.stringId.contains("yp_power") && block_has_dir_or_all(side_pos,"ym_power"))
arr.add(side_pos); arr.add(side_pos);
side_pos = pos.getOffsetBlockPos(world, 0, -1, 0); side_pos = pos.getOffsetBlockPos(zone, 0, -1, 0);
if (state.stringId.contains("ym_power") && block_has_dir_or_all(side_pos,"yp_power")) if (state.stringId.contains("ym_power") && block_has_dir_or_all(side_pos,"yp_power"))
arr.add(side_pos); arr.add(side_pos);
side_pos = pos.getOffsetBlockPos(world, 0, 0, 1); side_pos = pos.getOffsetBlockPos(zone, 0, 0, 1);
if (state.stringId.contains("zp_power") && block_has_dir_or_all(side_pos,"zm_power")) if (state.stringId.contains("zp_power") && block_has_dir_or_all(side_pos,"zm_power"))
arr.add(side_pos); arr.add(side_pos);
side_pos = pos.getOffsetBlockPos(world, 0, 0, -1); side_pos = pos.getOffsetBlockPos(zone, 0, 0, -1);
if (state.stringId.contains("zm_power") && block_has_dir_or_all(side_pos,"zp_power")) if (state.stringId.contains("zm_power") && block_has_dir_or_all(side_pos,"zp_power"))
arr.add(side_pos); arr.add(side_pos);
if (arr.size<=0) { if (arr.size<=0) {
arr.add(pos.getOffsetBlockPos(world, 1, 0, 0)); arr.add(pos.getOffsetBlockPos(zone, 1, 0, 0));
arr.add(pos.getOffsetBlockPos(world, -1, 0, 0)); arr.add(pos.getOffsetBlockPos(zone, -1, 0, 0));
arr.add(pos.getOffsetBlockPos(world, 0, 1, 0)); arr.add(pos.getOffsetBlockPos(zone, 0, 1, 0));
arr.add(pos.getOffsetBlockPos(world, 0, -1, 0)); arr.add(pos.getOffsetBlockPos(zone, 0, -1, 0));
arr.add(pos.getOffsetBlockPos(world, 0, 0, 1)); arr.add(pos.getOffsetBlockPos(zone, 0, 0, 1));
arr.add(pos.getOffsetBlockPos(world, 0, 0, -1)); arr.add(pos.getOffsetBlockPos(zone, 0, 0, -1));
} }
return arr; return arr;
} }

View file

@ -31,22 +31,22 @@
"depends": [ "depends": [
{ {
"id": "cosmic_quilt", "id": "cosmic_quilt",
"versions": "*" "versions": ">=1.2.4"
}, },
{ {
"id": "cosmic_reach", "id": "cosmic_reach",
"versions": "*" "versions": ">=0.1.17"
}, },
{ {
"id": "fluxapi", "id": "fluxapi",
"versions": ">=0.4.0" "versions": ">=0.5.2"
} }
], ],
"suggests": [ "suggests": [
{ {
"id": "becraft", "id": "becraft",
"versions": ">=1.0.7" "versions": ">=1.2.0"
} }
] ]
}, },