Skip to content

Commit

Permalink
i think its... working?
Browse files Browse the repository at this point in the history
  • Loading branch information
Spu7Nix committed Dec 22, 2020
1 parent e9f77b2 commit 10c499d
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 46 deletions.
24 changes: 12 additions & 12 deletions spwn-lang/libraries/std/control_flow.spwn
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,18 @@ return {
){
//if checker is 0, a signal can come through
//if checker is 1, it will be supressed
// checker = @counter::new(0)
// -> (){
// wait(delay)
// checker.item.if_is(EQUAL_TO, 1, {
// checker.item.add(-1)
// })
// }()
// checker.item.if_is(EQUAL_TO, 0, {
// checker.item.add(1)
// return
// })
return null
checker = @counter::new(0)
-> (){
wait(delay)
checker.item.if_is(EQUAL_TO, 1, {
checker.item.add(-1)
})
}()
checker.item.if_is(EQUAL_TO, 0, {
checker.item.add(1)
return
})


},

Expand Down
5 changes: 3 additions & 2 deletions spwn-lang/libraries/std/counter.spwn
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ impl @counter {
#[desc("Speed of operation (higher number increases group usage)")] speed: @number = DEFAULT_SPEED,
#[desc("Multiplyer for the value added")] factor: @number = 1
) {
wait()

add = {

Expand Down Expand Up @@ -140,7 +141,7 @@ impl @counter {
wait()
return mult.start_group
})
wait()


self.item.if_is(LARGER_THAN, num - 1, {
self.item.add(-num)
Expand Down Expand Up @@ -328,7 +329,7 @@ impl @counter {
#[desc("Speed of operation (higher number increases group usage)")] speed: @number = DEFAULT_SPEED,
#[desc("Factor of to multiply the copy by")] factor: @number = 1
) {

wait()
temp_storage = ?i

add = {
Expand Down
61 changes: 31 additions & 30 deletions spwn-lang/src/optimize.rs
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ pub fn optimize(mut obj_in: Vec<FunctionID>, mut closed_group: u16) -> Vec<Funct
// not an optimization, more like a consistancy fix
// also, like nothing works without this, so i should probably move
// this somewhere else if i want to add an option to not have optimization
//network = fix_read_write_order(&mut objects, &network, &mut closed_group);
network = fix_read_write_order(&mut objects, &network, &mut closed_group);

//println!("{:?}", network);

Expand Down Expand Up @@ -435,41 +435,42 @@ fn optimize_from<'a>(
let targets = get_targets(network, objects, start, 0, false, closed_group);
let trigger = network[&start.0].triggers[start.1];

{
let object = &objects[trigger.obj];
println!("\nsource");
println!("Deleted: {}", trigger.deleted);
println!("Optimized: {}", trigger.optimized);
let mut paramlist = object.0.params.iter().collect::<Vec<(&u16, &ObjParam)>>();
paramlist.sort_by(|a, b| (a.0).cmp(b.0));
for (k, v) in &paramlist {
println!("{}: {:?}", k, v);
}
}
// {
// let object = &objects[trigger.obj];
// println!("\nsource");
// println!("Deleted: {}", trigger.deleted);
// println!("Optimized: {}", trigger.optimized);
// let mut paramlist = object.0.params.iter().collect::<Vec<(&u16, &ObjParam)>>();
// paramlist.sort_by(|a, b| (a.0).cmp(b.0));
// for (k, v) in &paramlist {
// println!("{}: {:?}", k, v);
// }
// }

if let Some(targets) = targets {
if targets.is_empty() {
println!("NO TARGET (deleted)");
return false;
} else {
for (g, _) in &targets {
{
println!("\nTarget group: {:?}", g);
for t in &network[&g].triggers {
let object = &objects[t.obj];
println!("\ntarget");
println!("Deleted: {}", t.deleted);
println!("Optimized: {}", t.optimized);
let mut paramlist =
object.0.params.iter().collect::<Vec<(&u16, &ObjParam)>>();
paramlist.sort_by(|a, b| (a.0).cmp(b.0));
for (k, v) in &paramlist {
println!("{}: {:?}", k, v);
}
}
}
}
}
// else {
// for (g, _) in &targets {
// {
// println!("\nTarget group: {:?}", g);
// for t in &network[&g].triggers {
// let object = &objects[t.obj];
// println!("\ntarget");
// println!("Deleted: {}", t.deleted);
// println!("Optimized: {}", t.optimized);
// let mut paramlist =
// object.0.params.iter().collect::<Vec<(&u16, &ObjParam)>>();
// paramlist.sort_by(|a, b| (a.0).cmp(b.0));
// for (k, v) in &paramlist {
// println!("{}: {:?}", k, v);
// }
// }
// }
// }
// }

if trigger.role == TriggerRole::Func && targets.len() == 1 && targets[0].1 == 0
//&& network[&start.0].connections_in > 1
Expand Down
38 changes: 38 additions & 0 deletions spwn-lang/test/calc3.spwn
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
buttons = [1g, 2g, 3g, 4g, 5g, 6g, 7g, 8g, 9g, 10g, 11g, 13g, 14g, 15g, 16g, 17g]
selected = counter(0)
selector = 12g

gamescene = import gamescene

main = counter(1i)
sec = counter(2i)


on(gamescene.button_b(), {
selected += 1
if selected == buttons.length {
selected -= buttons.length
wait()
}
selector.move_to(buttons[selected.to_const(..buttons.length)])
})

current_op = counter()

on(gamescene.button_a(), {
if selected <= 9 {
//number

main.multiply(10, speed = 10)
main.add(selected.to_const(0..10))
} else if selected == 10 {
main.reset(speed = 10)
} else if selected == 11 {
//solve
?g!
} else {
//operator
current_op = selected.to_const(12..17) - 12
main.add_to([sec], speed = 10)
}
})
7 changes: 5 additions & 2 deletions spwn-lang/test/test.spwn
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
a = 10i

a = counter(1i)
a += 444
b = counter(2i)
b += 11
a /= b

0 comments on commit 10c499d

Please sign in to comment.