// Function from file: crayons.dm public override bool update_icon(dynamic new_state = null, dynamic new_icon = null, int?new_px = null, int?new_py = null) { Obj_Item_Toy_Crayon crayon = null; this.overlays.Cut(); foreach (dynamic _a in Lang13.Enumerate(this.contents, typeof(Obj_Item_Toy_Crayon))) { crayon = _a; this.overlays.Add(new Image("icons/obj/crayons.dmi", crayon.colourName)); } return(false); }
// Function from file: reagentgrinder.dm public void grind( ) { int offset = 0; Obj_Item_Weapon_ReagentContainers_Food_Snacks O = null; dynamic allowed = null; dynamic r_id = null; dynamic space = null; double amount = 0; Obj_Item_Stack_Sheet O2 = null; dynamic allowed2 = null; double? i = null; dynamic r_id2 = null; dynamic space2 = null; double amount2 = 0; Obj_Item_Weapon_Grown O3 = null; dynamic allowed3 = null; dynamic r_id3 = null; dynamic space3 = null; bool amount3 = false; Obj_Item_Toy_Crayon O4 = null; dynamic allowed4 = null; dynamic r_id4 = null; dynamic space4 = null; double amount4 = 0; Obj_Item_Weapon_ReagentContainers O5 = null; double? amount5 = null; this.power_change(); if ( ( this.stat & 3 ) != 0 ) { return; } if ( !Lang13.Bool( this.beaker ) || Lang13.Bool( this.beaker ) && ( this.beaker.reagents.total_volume ??0) >= Convert.ToDouble( this.beaker.reagents.maximum_volume ) ) { return; } GlobalFuncs.playsound( this.loc, "sound/machines/blender.ogg", 50, 1 ); offset = ( Rand13.PercentChance( 50 ) ? -2 : 2 ); Icon13.Animate( new ByTable().Set( 1, this ).Set( "pixel_x", this.pixel_x + offset ).Set( "time", 0.2 ).Set( "loop", 250 ) ); this.operating = true; this.updateUsrDialog(); Task13.Schedule( 60, (Task13.Closure)(() => { this.pixel_x = Convert.ToInt32( Lang13.Initial( this, "pixel_x" ) ); this.operating = false; this.updateUsrDialog(); return; })); foreach (dynamic _b in Lang13.Enumerate( this.holdingitems, typeof(Obj_Item_Weapon_ReagentContainers_Food_Snacks) )) { O = _b; if ( ( this.beaker.reagents.total_volume ??0) >= Convert.ToDouble( this.beaker.reagents.maximum_volume ) ) { break; } allowed = this.get_allowed_snack_by_id( O ); if ( allowed == null ) { break; } foreach (dynamic _a in Lang13.Enumerate( allowed )) { r_id = _a; space = this.beaker.reagents.maximum_volume - this.beaker.reagents.total_volume; amount = Convert.ToDouble( allowed[r_id] ); if ( amount <= 0 ) { if ( amount == 0 ) { if ( O.reagents != null && Lang13.Bool( O.reagents.has_reagent( "nutriment" ) ) ) { this.beaker.reagents.add_reagent( r_id, Num13.MinInt( O.reagents.get_reagent_amount( "nutriment" ) ?1:0, Convert.ToInt32( space ) ) ); O.reagents.remove_reagent( "nutriment", Num13.MinInt( O.reagents.get_reagent_amount( "nutriment" ) ?1:0, Convert.ToInt32( space ) ) ); } } else if ( O.reagents != null && Lang13.Bool( O.reagents.has_reagent( "nutriment" ) ) ) { this.beaker.reagents.add_reagent( r_id, Num13.MinInt( Num13.Floor( ( O.reagents.get_reagent_amount( "nutriment" ) ?1:0) * Math.Abs( amount ) ), Convert.ToInt32( space ) ) ); O.reagents.remove_reagent( "nutriment", Num13.MinInt( O.reagents.get_reagent_amount( "nutriment" ) ?1:0, Convert.ToInt32( space ) ) ); } } else { O.reagents.trans_id_to( this.beaker, r_id, Num13.MinInt( ((int)( amount )), Convert.ToInt32( space ) ) ); } if ( ( this.beaker.reagents.total_volume ??0) >= Convert.ToDouble( this.beaker.reagents.maximum_volume ) ) { break; } } if ( O.reagents.reagent_list.len == 0 ) { this.remove_object( O ); } } foreach (dynamic _d in Lang13.Enumerate( this.holdingitems, typeof(Obj_Item_Stack_Sheet) )) { O2 = _d; allowed2 = this.get_allowed_by_id( O2 ); if ( ( this.beaker.reagents.total_volume ??0) >= Convert.ToDouble( this.beaker.reagents.maximum_volume ) ) { break; } i = null; i = 1; while (( i ??0) <= Num13.Round( O2.amount ??0, 1 )) { foreach (dynamic _c in Lang13.Enumerate( allowed2 )) { r_id2 = _c; space2 = this.beaker.reagents.maximum_volume - this.beaker.reagents.total_volume; amount2 = Convert.ToDouble( allowed2[r_id2] ); this.beaker.reagents.add_reagent( r_id2, Num13.MinInt( ((int)( amount2 )), Convert.ToInt32( space2 ) ) ); if ( Convert.ToDouble( space2 ) < amount2 ) { break; } } if ( i == Num13.Round( O2.amount ??0, 1 ) ) { this.remove_object( O2 ); break; } i++; } } foreach (dynamic _f in Lang13.Enumerate( this.holdingitems, typeof(Obj_Item_Weapon_Grown) )) { O3 = _f; if ( ( this.beaker.reagents.total_volume ??0) >= Convert.ToDouble( this.beaker.reagents.maximum_volume ) ) { break; } allowed3 = this.get_allowed_by_id( O3 ); foreach (dynamic _e in Lang13.Enumerate( allowed3 )) { r_id3 = _e; space3 = this.beaker.reagents.maximum_volume - this.beaker.reagents.total_volume; amount3 = Lang13.Bool( allowed3[r_id3] ); if ( !amount3 ) { if ( O3.reagents != null && Lang13.Bool( O3.reagents.has_reagent( r_id3 ) ) ) { this.beaker.reagents.add_reagent( r_id3, Num13.MinInt( O3.reagents.get_reagent_amount( r_id3 ) ?1:0, Convert.ToInt32( space3 ) ) ); } } else { this.beaker.reagents.add_reagent( r_id3, Num13.MinInt( amount3 ?1:0, Convert.ToInt32( space3 ) ) ); } if ( ( this.beaker.reagents.total_volume ??0) >= Convert.ToDouble( this.beaker.reagents.maximum_volume ) ) { break; } } this.remove_object( O3 ); } foreach (dynamic _h in Lang13.Enumerate( this.holdingitems, typeof(Obj_Item_Toy_Crayon) )) { O4 = _h; if ( ( this.beaker.reagents.total_volume ??0) >= Convert.ToDouble( this.beaker.reagents.maximum_volume ) ) { break; } allowed4 = this.get_allowed_by_id( O4 ); foreach (dynamic _g in Lang13.Enumerate( allowed4 )) { r_id4 = _g; space4 = this.beaker.reagents.maximum_volume - this.beaker.reagents.total_volume; amount4 = Convert.ToDouble( allowed4[r_id4] ); this.beaker.reagents.add_reagent( r_id4, Num13.MinInt( ((int)( amount4 )), Convert.ToInt32( space4 ) ) ); if ( Convert.ToDouble( space4 ) < amount4 ) { break; } this.remove_object( O4 ); } } foreach (dynamic _i in Lang13.Enumerate( this.holdingitems, typeof(Obj_Item_Weapon_ReagentContainers) )) { O5 = _i; if ( ( this.beaker.reagents.total_volume ??0) >= Convert.ToDouble( this.beaker.reagents.maximum_volume ) ) { break; } amount5 = O5.reagents.total_volume; O5.reagents.trans_to( this.beaker, amount5 ); if ( !Lang13.Bool( O5.reagents.total_volume ) ) { this.remove_object( O5 ); } } return; }