Elin Decompiled Documentation EA 23.235 Nightly Patch 1
Loading...
Searching...
No Matches
Recipe Class Reference
Inheritance diagram for Recipe:
EClass RecipeBridgePillar RecipeCard RecipeCustom

Classes

class  Ingredient
 

Public Types

enum  State { Valid , Invalid }
 
enum  IngType { Default , CreativeFood }
 

Public Member Functions

bool IsStaticLV ()
 
int GetQualityBonus ()
 
virtual int GetRefVal ()
 
virtual string GetIdThing ()
 
virtual bool ShouldShowHighlight (HitResult r)
 
BaseTileSelector.BoxType GetBoxType ()
 
int GetDefaultColor ()
 
virtual SourceMaterial.Row GetMainMaterial ()
 
virtual SourceMaterial.Row GetColorMaterial ()
 
virtual void BuildIngredientList ()
 
void BuildIngredientList (Thing t)
 
virtual void OnChangeIngredient ()
 
virtual Thing Craft (BlessedState blessed, bool sound=false, List< Thing > ings=null, TraitCrafter crafter=null, bool model=false)
 
bool HasSameTile (Point point, int dir, int altitude, int bridgeHeight)
 
virtual void Build (TaskBuild task)
 
virtual void Build (Chara chara, Card t, Point pos, int mat, int dir, int altitude, int bridgeHeight)
 
virtual void OnRenderMarker (Point point, bool active, HitResult result, bool main, int dir, int bridgeHeight)
 
string GetName ()
 
virtual string GetDetail ()
 
virtual void WriteNote (UINote n)
 
void WriteReqFactory (UINote n, bool hasFactory=true)
 
void WriteReqSkill (UINote n)
 
virtual IRenderer GetRenderer ()
 
virtual void OnSelected ()
 
virtual void OnChangeAltitude (int a)
 
virtual void Rotate ()
 
virtual void SetDir (int d)
 
virtual Recipe Duplicate ()
 
virtual void SetImage (Image icon)
 
bool IsCraftable ()
 
int GetMaxCount ()
 
void SetTextDifficulty (UIText text)
 
int GetSortVal ()
 
bool HasFirstTimeBonus ()
 
void TryGetFirstTimeBonus ()
 
void SaveLastIngredients ()
 
QuestTrackCraft GetQuestTrack ()
 
void ToggleTrack (QuestTrackCraft quest)
 

Static Public Member Functions

static Recipe GetOrCreate (string id)
 
static Recipe Create (RecipeSource _source, int idMat=-1, Thing ing=null)
 
static Recipe Create (Thing t)
 
static void DropIngredients (string id, string idMatMain, int num=1)
 
- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (long a)
 
static int rnd (int a)
 
static int curve (int a, int start, int step, int rate=75)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 

Public Attributes

string id
 
List< Ingredientingredients = new List<Ingredient>()
 
bool UseStock
 
bool IngAsProduct
 
bool VirtualBlock
 
int _dir
 
int sync
 
int idMat = -1
 
int idSkin
 
State state
 
RecipeSource _source
 

Static Public Attributes

static Dictionary< string, ReciperecipeCache = new Dictionary<string, Recipe>()
 
- Static Public Attributes inherited from EClass
static Core core
 

Properties

RecipeSource source [get]
 
SourceMaterial.Row DefaultMaterial [get]
 
virtual TileRow tileRow [get]
 
virtual RenderRow renderRow [get]
 
string Name [get]
 
virtual TileType tileType [get]
 
virtual bool IsFloorOrBridge [get]
 
int MaxAltitude [get]
 
int RecipeLv [get]
 
bool IsFloor [get]
 
bool IsObj [get]
 
virtual bool IsBlock [get]
 
bool IsWallOrFence [get]
 
bool IsBridge [get]
 
virtual bool IsThing [get]
 
virtual Card Mold [get]
 
virtual int W [get]
 
virtual int H [get]
 
virtual bool RequireIngredients [get]
 
bool MultiSize [get]
 
BaseTileSelector tileSelector [get]
 
virtual int CostMoney [get]
 
virtual bool CanRotate [get]
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Detailed Description

Definition at line 6 of file Recipe.cs.

Member Enumeration Documentation

◆ IngType

Enumerator
Default 
CreativeFood 

Definition at line 14 of file Recipe.cs.

◆ State

Enumerator
Valid 
Invalid 

Definition at line 8 of file Recipe.cs.

9 {
10 Valid,
12 }

Member Function Documentation

◆ Build() [1/2]

virtual void Recipe.Build ( Chara  chara,
Card  t,
Point  pos,
int  mat,
int  dir,
int  altitude,
int  bridgeHeight 
)
inlinevirtual

Reimplemented in RecipeBridgePillar, and RecipeCard.

Definition at line 627 of file Recipe.cs.

628 {
629 if (mat == -1)
630 {
631 mat = 2;
632 }
633 EClass.pc.PlaySound(EClass.sources.materials.rows[mat].GetSoundImpact());
634 pos.cell.isModified = true;
635 switch (source.type)
636 {
637 case "Block":
638 {
639 int ramp = tileRow.id;
640 if (ramp == 3)
641 {
642 ramp = EClass.sources.materials.rows[mat].ramp;
643 }
645 {
646 EClass._map.SetRoofBlock(pos.x, pos.z, mat, ramp, dir, altitude);
647 break;
648 }
649 if (pos.HasObj && !pos.sourceObj.tileType.CanBuiltOnBlock)
650 {
652 EClass._map.SetObj(pos.x, pos.z);
653 }
654 EClass._map.SetBlock(pos.x, pos.z, mat, ramp, dir);
655 if (tileType.IsBlockPass && pos.HasChara)
656 {
657 foreach (Chara item in pos.ListCharas())
658 {
659 chara.Kick(item, ignoreSelf: false, karmaLoss: false);
660 }
661 }
663 {
664 pos.cell.objDir = dir;
665 }
666 {
667 foreach (Card item2 in pos.ListCards())
668 {
669 if (item2.isThing && item2.placeState == PlaceState.roaming)
670 {
671 item2._Move(item2.pos.GetNearestPoint());
672 }
673 }
674 break;
675 }
676 }
677 case "Floor":
678 if (pos.HasObj && pos.sourceObj.tileType.RemoveOnFloorChange && (!BuildMenu.Instance || !EClass.debug.ignoreBuildRule))
679 {
680 EClass._map.SetObj(pos.x, pos.z);
681 }
682 EClass._map.SetFloor(pos.x, pos.z, mat, tileRow.id, dir);
683 break;
684 case "Bridge":
685 if (pos.sourceObj.tileType.RemoveOnFloorChange)
686 {
687 EClass._map.SetObj(pos.x, pos.z);
688 }
689 EClass._map.SetBridge(pos.x, pos.z, Mathf.Clamp(bridgeHeight + altitude, 0, 255), mat, tileRow.id, dir);
690 break;
691 case "Obj":
692 EClass._map.SetObj(pos.x, pos.z, mat, tileRow.id, 1, dir, ignoreRandomMat: true);
694 {
695 EClass._map.SetBlockDir(pos.x, pos.z, dir);
696 }
697 if (pos.growth != null)
698 {
700 }
701 break;
702 }
703 }
PlaceState
Definition: PlaceState.cs:2
virtual bool IsRoofEditMode(Card c=null)
Definition: ActionMode.cs:311
static BuildMenu Instance
Definition: BuildMenu.cs:77
Definition: Card.cs:11
virtual MoveResult _Move(Point p, MoveType type=MoveType.Walk)
Definition: Card.cs:5784
virtual bool isThing
Definition: Card.cs:2069
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6113
PlaceState placeState
Definition: Card.cs:83
Point pos
Definition: Card.cs:59
Definition: Chara.cs:10
void Kick(Point p, bool ignoreSelf=false, bool checkWall=true)
Definition: Chara.cs:5708
bool ignoreBuildRule
Definition: CoreDebug.cs:185
Definition: EClass.cs:5
static Scene scene
Definition: EClass.cs:30
static Map _map
Definition: EClass.cs:18
static SourceManager sources
Definition: EClass.cs:42
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
void SetDefaultStage()
Definition: GrowSystem.cs:259
void SetBridge(int x, int z, int height=0, int idMat=0, int idBridge=0, int dir=0)
Definition: Map.cs:972
void SetBlockDir(int x, int z, int dir)
Definition: Map.cs:1165
void MineObjSound(Point point)
Definition: Map.cs:1937
void SetFloor(int x, int z, int idMat=0, int idFloor=0)
Definition: Map.cs:957
void SetBlock(int x, int z, int idMat=0, int idBlock=0)
Definition: Map.cs:996
void SetRoofBlock(int x, int z, int idMat, int idBlock, int dir, int height)
Definition: Map.cs:987
void SetObj(int x, int z, int id=0, int value=1, int dir=0)
Definition: Map.cs:1535
List< Card > ListCards(bool includeMasked=false)
Definition: Point.cs:1051
int x
Definition: Point.cs:36
Point GetNearestPoint(bool allowBlock=false, bool allowChara=true, bool allowInstalled=true, bool ignoreCenter=false, int minRadius=0)
Definition: Point.cs:619
int z
Definition: Point.cs:39
SourceObj.Row sourceObj
Definition: Point.cs:69
List< Chara > ListCharas()
Definition: Point.cs:1171
bool HasObj
Definition: Point.cs:137
GrowSystem growth
Definition: Point.cs:77
bool HasChara
Definition: Point.cs:238
string type
Definition: RecipeSource.cs:7
virtual TileRow tileRow
Definition: Recipe.cs:208
virtual TileType tileType
Definition: Recipe.cs:215
RecipeSource source
Definition: Recipe.cs:204
ActionMode actionMode
Definition: Scene.cs:79
SourceMaterial materials
int id
Definition: TileRow.cs:8
virtual bool AltitudeAsDir
Definition: TileType.cs:219
virtual bool ChangeBlockDir
Definition: TileType.cs:127
virtual bool IsBlockPass
Definition: TileType.cs:153

References EClass._map, Card._Move(), Scene.actionMode, TileType.AltitudeAsDir, TileType.ChangeBlockDir, EClass.debug, Point.GetNearestPoint(), Point.growth, Point.HasChara, Point.HasObj, TileRow.id, CoreDebug.ignoreBuildRule, BuildMenu.Instance, TileType.IsBlockPass, ActionMode.IsRoofEditMode(), Card.isThing, item, Chara.Kick(), Point.ListCards(), Point.ListCharas(), SourceManager.materials, Map.MineObjSound(), EClass.pc, Card.placeState, Card.PlaySound(), Card.pos, EClass.scene, Map.SetBlock(), Map.SetBlockDir(), Map.SetBridge(), GrowSystem.SetDefaultStage(), Map.SetFloor(), Map.SetObj(), Map.SetRoofBlock(), source, Point.sourceObj, EClass.sources, tileRow, tileType, RecipeSource.type, Point.x, and Point.z.

◆ Build() [2/2]

virtual void Recipe.Build ( TaskBuild  task)
inlinevirtual

Reimplemented in RecipeCard, and RecipeCustom.

Definition at line 622 of file Recipe.cs.

623 {
624 Build(task.owner, null, task.pos, (ingredients.Count > 0) ? ingredients[0].mat : task.recipe.idMat, task.dir, task.altitude, task.bridgeHeight);
625 }
new Chara owner
Definition: AIAct.cs:14
int idMat
Definition: Recipe.cs:196
List< Ingredient > ingredients
Definition: Recipe.cs:181
int altitude
Definition: TaskBuild.cs:17
Recipe recipe
Definition: TaskBuild.cs:8
int bridgeHeight
Definition: TaskBuild.cs:14
int dir
Definition: TaskBuild.cs:11
Point pos
Definition: TaskPoint.cs:11

References TaskBuild.altitude, TaskBuild.bridgeHeight, Build, TaskBuild.dir, idMat, ingredients, AIAct.owner, TaskPoint.pos, and TaskBuild.recipe.

Referenced by TaskBuild.OnProgressComplete().

◆ BuildIngredientList() [1/2]

virtual void Recipe.BuildIngredientList ( )
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 526 of file Recipe.cs.

527 {
529 {
531 }
532 }
List< Recipe.Ingredient > GetIngredients()
virtual bool RequireIngredients
Definition: Recipe.cs:280
bool UseStock
Definition: Recipe.cs:184

References RecipeSource.GetIngredients(), ingredients, RequireIngredients, source, and UseStock.

Referenced by Create(), RecipeManager.Create(), DropIngredients(), BuildMenu.RefreshCategory(), and LayerCraft.RefreshCategory().

◆ BuildIngredientList() [2/2]

void Recipe.BuildIngredientList ( Thing  t)
inline

Definition at line 534 of file Recipe.cs.

535 {
536 UseStock = true;
537 Ingredient item = new Ingredient
538 {
539 id = t.id,
540 tag = null,
541 req = 1,
542 uid = t.uid,
543 thing = t,
544 mat = t.material.id
545 };
546 ingredients.Add(item);
547 }
string id
Definition: Card.cs:35
int uid
Definition: Card.cs:122

References Card.id, ingredients, item, Card.uid, and UseStock.

◆ Craft()

virtual Thing Recipe.Craft ( BlessedState  blessed,
bool  sound = false,
List< Thing ings = null,
TraitCrafter  crafter = null,
bool  model = false 
)
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 553 of file Recipe.cs.

554 {
555 Thing thing = null;
556 string type = source.type;
557 thing = ((type == "Block") ? ThingGen.CreateBlock(tileRow.id, GetMainMaterial().id) : ((!(type == "Obj")) ? ThingGen.CreateFloor(tileRow.id, GetMainMaterial().id, source.isBridge) : ThingGen.CreateObj(tileRow.id, GetMainMaterial().id)));
558 if (thing == null)
559 {
560 return null;
561 }
562 thing.trait.OnCrafted(this, ings);
563 thing.SetBlessedState(blessed);
564 if (model)
565 {
566 return thing;
567 }
568 Msg.Say("crafted", thing);
569 thing = EClass.pc.AddCard(thing) as Thing;
570 if (thing.GetRootCard() == EClass.pc)
571 {
572 EClass.pc.HoldCard(thing);
573 }
574 return thing;
575 }
Card AddCard(Card c)
Definition: Card.cs:3075
virtual void SetBlessedState(BlessedState s)
Definition: Card.cs:3880
Trait trait
Definition: Card.cs:53
Card GetRootCard()
Definition: Card.cs:3411
void HoldCard(Card t, int num=-1)
Definition: Chara.cs:4423
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
virtual SourceMaterial.Row GetMainMaterial()
Definition: Recipe.cs:484
static Thing CreateBlock(int id, int idMat)
Definition: ThingGen.cs:101
static Thing CreateObj(int id, int idMat)
Definition: ThingGen.cs:116
static Thing CreateFloor(int id, int idMat, bool platform=false)
Definition: ThingGen.cs:108
Definition: Thing.cs:8
virtual void OnCrafted(Recipe recipe, List< Thing > ings)
Definition: Trait.cs:663

References Card.AddCard(), ThingGen.CreateBlock(), ThingGen.CreateFloor(), ThingGen.CreateObj(), GetMainMaterial(), Card.GetRootCard(), Chara.HoldCard(), TileRow.id, RecipeSource.isBridge, Trait.OnCrafted(), EClass.pc, Msg.Say(), Card.SetBlessedState(), source, tileRow, Card.trait, and RecipeSource.type.

Referenced by TaskCraft.OnProgressComplete(), LayerCraft.RefreshProduct(), and AI_UseCrafter.Run().

◆ Create() [1/2]

static Recipe Recipe.Create ( RecipeSource  _source,
int  idMat = -1,
Thing  ing = null 
)
inlinestatic

Definition at line 325 of file Recipe.cs.

326 {
327 string type = _source.type;
328 Recipe recipe = (_source.isBridgePillar ? new RecipeBridgePillar() : (type.IsEmpty() ? new RecipeCard() : ((type == "Custom") ? new RecipeCustom() : new Recipe())));
329 recipe.id = _source.id;
330 recipe._source = _source;
331 recipe.idMat = idMat;
332 if (ing != null)
333 {
334 recipe.BuildIngredientList(ing);
335 if (ing.trait is TraitTile)
336 {
337 recipe.VirtualBlock = true;
338 }
339 }
340 return recipe;
341 }
Definition: Recipe.cs:7
RecipeSource _source
Definition: Recipe.cs:202
virtual void BuildIngredientList()
Definition: Recipe.cs:526

References _source, BuildIngredientList(), RecipeSource.id, idMat, and RecipeSource.type.

Referenced by BuildMenu._Search(), RecipeManager.Create(), Trait.GetBuildModeRecipe(), TraitTile.GetBuildModeRecipe(), GetOrCreate(), Trait.GetRecipe(), TraitTile.GetRecipe(), BuildMenu.RefreshCategory(), LayerCraft.RefreshCategory(), LayerCraftFloat.RefreshDisassemble(), and WidgetCodex.Search().

◆ Create() [2/2]

static Recipe Recipe.Create ( Thing  t)
inlinestatic

Definition at line 343 of file Recipe.cs.

344 {
345 RecipeSource recipeSource = RecipeManager.dict.TryGetValue(t.id);
346 if (recipeSource == null)
347 {
348 return null;
349 }
350 RecipeCard recipeCard = new RecipeCard
351 {
352 id = recipeSource.id,
353 _source = recipeSource,
354 IngAsProduct = true,
355 idSkin = t.idSkin
356 };
357 recipeCard.BuildIngredientList(t);
358 if (t.uid == 0 || recipeCard.ingredients[0].uid == 0 || recipeCard.ingredients[0].thing == null)
359 {
360 Debug.LogError("expection: invalid ingredient " + t);
361 }
362 return recipeCard;
363 }
override void BuildIngredientList()
Definition: RecipeCard.cs:65
static Dictionary< string, RecipeSource > dict
int idSkin
Definition: Recipe.cs:198
bool IngAsProduct
Definition: Recipe.cs:187

References _source, RecipeCard.BuildIngredientList(), Debug, RecipeManager.dict, Card.id, RecipeSource.id, idSkin, IngAsProduct, ingredients, and Card.uid.

◆ DropIngredients()

static void Recipe.DropIngredients ( string  id,
string  idMatMain,
int  num = 1 
)
inlinestatic

Definition at line 365 of file Recipe.cs.

366 {
368 Recipe orCreate = GetOrCreate(EClass.sources.cards.map[id].RecipeID);
369 orCreate.BuildIngredientList();
370 Msg.Say("dropReward");
371 foreach (Ingredient ingredient in orCreate.ingredients)
372 {
373 Thing thing = ThingGen.Create(ingredient.id).SetNum(ingredient.req);
374 if (ingredient == orCreate.ingredients[0])
375 {
376 thing.ChangeMaterial(idMatMain);
377 thing.SetNum(num);
378 }
379 EClass.player.DropReward(thing, silent: true);
380 }
381 }
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:3026
Thing SetNum(int a)
Definition: Card.cs:3480
static Player player
Definition: EClass.cs:12
Thing DropReward(Thing t, bool silent=false)
Definition: Player.cs:2539
static void BuildList()
static Recipe GetOrCreate(string id)
Definition: Recipe.cs:310
Dictionary< string, CardRow > map
Definition: SourceCard.cs:8
SourceCard cards
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53

References BuildIngredientList(), RecipeManager.BuildList(), SourceManager.cards, Card.ChangeMaterial(), ThingGen.Create(), Player.DropReward(), GetOrCreate(), Recipe.Ingredient.id, SourceCard.map, EClass.player, Recipe.Ingredient.req, Msg.Say(), Card.SetNum(), and EClass.sources.

Referenced by DramaOutcome.QuestShippingChest_Drop1().

◆ Duplicate()

virtual Recipe Recipe.Duplicate ( )
inlinevirtual

Reimplemented in RecipeBridgePillar, and RecipeCard.

Definition at line 894 of file Recipe.cs.

895 {
896 return IO.DeepCopy(this);
897 }
Definition: IO.cs:11

◆ GetBoxType()

BaseTileSelector.BoxType Recipe.GetBoxType ( )
inline

Definition at line 465 of file Recipe.cs.

466 {
468 {
469 return BaseTileSelector.BoxType.Box;
470 }
471 return BaseTileSelector.BoxType.Fence;
472 }
virtual BaseTileSelector.BoxType BoxType
Definition: TileType.cs:273

References TileType.BoxType, and tileType.

◆ GetColorMaterial()

virtual SourceMaterial.Row Recipe.GetColorMaterial ( )
inlinevirtual

Definition at line 498 of file Recipe.cs.

499 {
500 if (idMat != -1)
501 {
502 return EClass.sources.materials.rows[idMat];
503 }
504 if (UseStock)
505 {
506 ingredients[0].RefreshThing();
507 Thing thing = ingredients[0].thing;
508 if (thing != null)
509 {
510 if (!thing.isDyed)
511 {
512 return thing.material;
513 }
514 return thing.DyeMat;
515 }
516 return EClass.sources.materials.rows[3];
517 }
518 int num = ((ingredients.Count > 0) ? ingredients[source.colorIng].mat : 3);
519 if (num == -1)
520 {
521 num = 3;
522 }
523 return EClass.sources.materials.rows[num];
524 }
SourceMaterial.Row DyeMat
Definition: Card.cs:1928
SourceMaterial.Row material
Definition: Card.cs:2039
bool isDyed
Definition: Card.cs:458

References RecipeSource.colorIng, Card.DyeMat, idMat, ingredients, Card.isDyed, Card.material, SourceManager.materials, source, EClass.sources, and UseStock.

Referenced by RecipeCard.Build(), RecipeCard.Craft(), HasSameTile(), DropdownGrid.OnChangeIngredient(), RecipeCard.OnChangeIngredient(), TaskBuild.OnProgressComplete(), TaskCraft.OnProgressComplete(), UIRecipeInfo.RefreshImages(), AI_UseCrafter.Run(), ButtonGrid.SetRecipeVariation(), and UICardInfo.UpdateRecipe().

◆ GetDefaultColor()

int Recipe.GetDefaultColor ( )
inline

Definition at line 474 of file Recipe.cs.

475 {
476 if (UseStock)
477 {
478 Thing thing = ingredients[0].thing;
479 return renderRow.GetColorInt(thing.isDyed ? thing.DyeMat : thing.material);
480 }
482 }
SourceMaterial.Row DefaultMaterial
Definition: Recipe.cs:206
virtual RenderRow renderRow
Definition: Recipe.cs:210
int GetColorInt(SourceMaterial.Row mat)
Definition: RenderRow.cs:429

References DefaultMaterial, Card.DyeMat, RenderRow.GetColorInt(), ingredients, Card.isDyed, Card.material, renderRow, and UseStock.

Referenced by GridItemRecipe.SetButton(), and ButtonGrid.SetRecipe().

◆ GetDetail()

virtual string Recipe.GetDetail ( )
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 799 of file Recipe.cs.

800 {
801 return renderRow.GetText("detail").IsEmpty(source.GetDetail());
802 }
string GetDetail()
string GetText(string id="name", bool returnNull=false)
Definition: SourceData.cs:553

References RecipeSource.GetDetail(), SourceData< T, T2 >.BaseRow.GetText(), renderRow, and source.

Referenced by UIRecipeInfo.Refresh(), GridItemRecipe.SetButton(), and ButtonGrid.SetCraftRecipe().

◆ GetIdThing()

virtual string Recipe.GetIdThing ( )
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 439 of file Recipe.cs.

440 {
441 if (source.row is SourceBlock.Row)
442 {
443 return (source.row as SourceBlock.Row).idThing;
444 }
445 if (source.row is SourceFloor.Row)
446 {
447 if (!IsBridge)
448 {
449 return "floor";
450 }
451 return "platform";
452 }
453 if (source.row is SourceObj.Row)
454 {
455 return "obj";
456 }
457 return null;
458 }
RenderRow row
Definition: RecipeSource.cs:5
bool IsBridge
Definition: Recipe.cs:250

References IsBridge, RecipeSource.row, and source.

Referenced by UIRecipeInfo.Refresh().

◆ GetMainMaterial()

virtual SourceMaterial.Row Recipe.GetMainMaterial ( )
inlinevirtual

Definition at line 484 of file Recipe.cs.

485 {
486 int num = -1;
487 if (ingredients.Count > 0)
488 {
489 num = ((ingredients[0].thing == null) ? ingredients[0].mat : ingredients[0].thing.material.id);
490 }
491 if (num == -1)
492 {
493 num = 3;
494 }
495 return EClass.sources.materials.rows[num];
496 }

References ingredients, SourceManager.materials, and EClass.sources.

Referenced by RecipeCard.Build(), Craft(), RecipeCard.Craft(), RecipeCard.OnChangeIngredient(), and TaskCraft.OnProgress().

◆ GetMaxCount()

int Recipe.GetMaxCount ( )
inline

Definition at line 930 of file Recipe.cs.

931 {
932 int num = 999;
933 for (int i = 0; i < ingredients.Count; i++)
934 {
935 Ingredient ingredient = ingredients[i];
936 Thing thing = ingredient.thing;
937 int num2 = 0;
938 if (!ingredient.optional || thing != null)
939 {
940 if (thing != null && !thing.isDestroyed)
941 {
942 num2 = thing.Num / ingredient.req;
943 }
944 if (num2 < num)
945 {
946 num = num2;
947 }
948 }
949 }
950 return num;
951 }
bool isDestroyed
Definition: Card.cs:75

References ingredients, Card.isDestroyed, Recipe.Ingredient.optional, Recipe.Ingredient.req, and Recipe.Ingredient.thing.

Referenced by LayerCraft.RefreshInputNum().

◆ GetName()

string Recipe.GetName ( )
inline

Definition at line 777 of file Recipe.cs.

778 {
779 if (UseStock && ingredients[0].thing == null)
780 {
781 return "";
782 }
783 string text = (UseStock ? ingredients[0].thing.Name : source.Name);
784 if (text == "")
785 {
786 text = ("card_" + source.id).lang();
787 }
788 if (text == "*r")
789 {
790 text = source.row.GetText("aka");
791 }
792 if (text == "*r")
793 {
794 text = "(" + source.row.GetField<string>("id") + ")";
795 }
796 return text.ToTitleCase();
797 }

References SourceData< T, T2 >.BaseRow.GetText(), RecipeSource.id, ingredients, RecipeSource.Name, RecipeSource.row, source, and UseStock.

Referenced by UIRecipeInfo.Refresh(), and ButtonGrid.SetCraftRecipe().

◆ GetOrCreate()

static Recipe Recipe.GetOrCreate ( string  id)
inlinestatic

Definition at line 310 of file Recipe.cs.

311 {
312 Recipe recipe = recipeCache.TryGetValue(id);
313 if (recipe == null)
314 {
315 RecipeSource recipeSource = RecipeManager.dict.TryGetValue(id);
316 if (recipeSource != null)
317 {
318 recipe = Create(recipeSource);
319 recipeCache.Add(id, recipe);
320 }
321 }
322 return recipe;
323 }
static Dictionary< string, Recipe > recipeCache
Definition: Recipe.cs:175
static Recipe Create(RecipeSource _source, int idMat=-1, Thing ing=null)
Definition: Recipe.cs:325

References Create(), RecipeManager.dict, and recipeCache.

Referenced by PartialMap.Apply(), and DropIngredients().

◆ GetQualityBonus()

int Recipe.GetQualityBonus ( )
inline

Definition at line 397 of file Recipe.cs.

398 {
399 if (IsStaticLV())
400 {
401 return 0;
402 }
403 Element reqSkill = source.GetReqSkill();
404 int num = reqSkill.Value - EClass.pc.Evalue(reqSkill.id);
405 int num2 = 0;
406 if (num > 0)
407 {
408 if (num < 5)
409 {
410 return 0;
411 }
412 return -(num - 4) * 10;
413 }
414 num2 += EClass.curve(-num, 10, 20, 80) / 10 * 10 + 10;
415 if (RecipeLv > 0)
416 {
417 num2 += (int)Mathf.Sqrt(RecipeLv - 1) * 10;
418 }
419 return num2;
420 }
int Evalue(int ele)
Definition: Card.cs:2559
static int curve(int a, int start, int step, int rate=75)
Definition: EClass.cs:68
int id
Definition: ELEMENT.cs:250
Element GetReqSkill()
int RecipeLv
Definition: Recipe.cs:240
bool IsStaticLV()
Definition: Recipe.cs:383

References EClass.curve(), Card.Evalue(), RecipeSource.GetReqSkill(), Element.id, IsStaticLV(), EClass.pc, RecipeLv, and source.

Referenced by RecipeCard.Craft(), RecipeCard.MakeDish(), and RecipeCard.MixIngredients().

◆ GetQuestTrack()

QuestTrackCraft Recipe.GetQuestTrack ( )
inline

Definition at line 1003 of file Recipe.cs.

1004 {
1005 QuestTrackCraft result = null;
1006 foreach (Quest item in EClass.game.quests.list)
1007 {
1008 if (item is QuestTrackCraft)
1009 {
1010 result = item as QuestTrackCraft;
1011 break;
1012 }
1013 }
1014 return result;
1015 }
static Game game
Definition: EClass.cs:8
QuestManager quests
Definition: Game.cs:182
List< Quest > list
Definition: QuestManager.cs:11
Definition: Quest.cs:7

References EClass.game, item, QuestManager.list, and Game.quests.

Referenced by WidgetCodex.RefreshList(), and LayerCraft.RefreshTrackButton().

◆ GetRefVal()

virtual int Recipe.GetRefVal ( )
inlinevirtual

Definition at line 422 of file Recipe.cs.

423 {
424 if (source.row is SourceBlock.Row)
425 {
426 return (source.row as SourceBlock.Row).id;
427 }
428 if (source.row is SourceFloor.Row)
429 {
430 return (source.row as SourceFloor.Row).id;
431 }
432 if (source.row is SourceObj.Row)
433 {
434 return (source.row as SourceObj.Row).id;
435 }
436 return -1;
437 }

References RecipeSource.row, and source.

Referenced by UIRecipeInfo.Refresh().

◆ GetRenderer()

virtual IRenderer Recipe.GetRenderer ( )
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 829 of file Recipe.cs.

830 {
831 return tileRow.renderData;
832 }
RenderData renderData
Definition: RenderRow.cs:71

References RenderRow.renderData, and tileRow.

Referenced by UICardInfo.UpdateRecipe().

◆ GetSortVal()

int Recipe.GetSortVal ( )
inline

Definition at line 961 of file Recipe.cs.

962 {
963 Element reqSkill = source.GetReqSkill();
964 return reqSkill.source.id * 10000 - reqSkill.Value;
965 }
int Value
Definition: ELEMENT.cs:292

References RecipeSource.GetReqSkill(), source, and Element.Value.

Referenced by LayerCraft.RefreshCategory().

◆ HasFirstTimeBonus()

bool Recipe.HasFirstTimeBonus ( )
inline

Definition at line 967 of file Recipe.cs.

968 {
969 if (IsStaticLV())
970 {
971 return false;
972 }
973 if (EClass.player.recipes.craftedRecipes.Contains(id))
974 {
975 return false;
976 }
977 return true;
978 }
RecipeManager recipes
Definition: Player.cs:1097
HashSet< string > craftedRecipes

References RecipeManager.craftedRecipes, IsStaticLV(), EClass.player, and Player.recipes.

Referenced by LayerCraft.RefreshCategory(), and TryGetFirstTimeBonus().

◆ HasSameTile()

bool Recipe.HasSameTile ( Point  point,
int  dir,
int  altitude,
int  bridgeHeight 
)
inline

Definition at line 577 of file Recipe.cs.

578 {
579 if (IsObj)
580 {
581 if (point.growth != null && point.sourceObj == tileRow && point.cell.matObj == GetColorMaterial())
582 {
583 return true;
584 }
585 if (dir == point.cell.objDir && point.cell.matObj == GetColorMaterial() && point.sourceObj == tileRow)
586 {
587 return true;
588 }
589 }
590 else if (IsBridge)
591 {
592 if (dir == point.cell.floorDir && point.matBridge == GetColorMaterial() && point.sourceBridge == tileRow && Mathf.Clamp(bridgeHeight + altitude, 0, 255) == point.cell.bridgeHeight)
593 {
594 return true;
595 }
596 }
597 else if (IsFloorOrBridge)
598 {
599 if (dir == point.cell.floorDir && point.matFloor == GetColorMaterial() && point.sourceFloor == tileRow)
600 {
601 return true;
602 }
603 }
604 else if (IsWallOrFence)
605 {
606 if (point.matBlock == GetColorMaterial() && point.sourceBlock == tileRow && dir == point.cell.blockDir)
607 {
608 return true;
609 }
610 }
611 else if (IsBlock && point.matBlock == GetColorMaterial() && (point.sourceBlock == tileRow || (tileRow != null && tileRow.tileType == point.sourceBlock.tileType && tileRow.tileType == TileType.Slope)))
612 {
613 if (point.sourceBlock.tileType.AltitudeAsDir && dir != point.cell.objDir)
614 {
615 return false;
616 }
617 return true;
618 }
619 return false;
620 }
SourceMaterial.Row matObj
Definition: Cell.cs:1036
int floorDir
Definition: Cell.cs:922
int objDir
Definition: Cell.cs:910
byte bridgeHeight
Definition: Cell.cs:74
int blockDir
Definition: Cell.cs:898
SourceMaterial.Row matBlock
Definition: Point.cs:55
SourceMaterial.Row matFloor
Definition: Point.cs:57
SourceBlock.Row sourceBlock
Definition: Point.cs:63
SourceMaterial.Row matBridge
Definition: Point.cs:59
SourceFloor.Row sourceFloor
Definition: Point.cs:65
Cell cell
Definition: Point.cs:51
SourceFloor.Row sourceBridge
Definition: Point.cs:67
bool IsObj
Definition: Recipe.cs:244
virtual bool IsFloorOrBridge
Definition: Recipe.cs:226
virtual bool IsBlock
Definition: Recipe.cs:246
bool IsWallOrFence
Definition: Recipe.cs:248
virtual SourceMaterial.Row GetColorMaterial()
Definition: Recipe.cs:498
TileType tileType
Definition: RenderRow.cs:77
static TileTypeSlope Slope
Definition: TileType.cs:25

References Cell.blockDir, Cell.bridgeHeight, Point.cell, Cell.floorDir, GetColorMaterial(), Point.growth, IsBlock, IsBridge, IsFloorOrBridge, IsObj, IsWallOrFence, Point.matBlock, Point.matBridge, Point.matFloor, Cell.matObj, Cell.objDir, TileType.Slope, Point.sourceBlock, Point.sourceBridge, Point.sourceFloor, Point.sourceObj, tileRow, and RenderRow.tileType.

Referenced by TaskBuild.GetHitResult().

◆ IsCraftable()

bool Recipe.IsCraftable ( )
inline

Definition at line 904 of file Recipe.cs.

905 {
906 foreach (Ingredient ingredient in ingredients)
907 {
908 if (ingredient.optional)
909 {
910 continue;
911 }
912 ThingStack thingStack = EClass._map.Stocked.ListThingStack(ingredient, StockSearchMode.AroundPC);
913 bool flag = false;
914 foreach (Thing item in thingStack.list)
915 {
916 if (item.Num >= ingredient.req)
917 {
918 flag = true;
919 break;
920 }
921 }
922 if (!flag)
923 {
924 return false;
925 }
926 }
927 return true;
928 }
StockSearchMode
PropsStocked Stocked
Definition: Map.cs:121
ThingStack ListThingStack(Recipe.Ingredient ing, StockSearchMode searchMode)
Definition: Props.cs:204
List< Thing > list
Definition: ThingStack.cs:5

References EClass._map, ingredients, item, Props.ListThingStack(), Recipe.Ingredient.optional, Recipe.Ingredient.req, and Map.Stocked.

◆ IsStaticLV()

bool Recipe.IsStaticLV ( )
inline

Definition at line 383 of file Recipe.cs.

384 {
385 switch (source.idFactory)
386 {
387 case "factory_floor":
388 case "factory_block":
389 case "factory_wall":
390 case "factory_platform":
391 return true;
392 default:
393 return renderRow.Category.IsChildOf("block");
394 }
395 }
string idFactory
Definition: RecipeSource.cs:85
SourceCategory.Row Category
Definition: RenderRow.cs:119

References RenderRow.Category, RecipeSource.idFactory, renderRow, and source.

Referenced by GetQualityBonus(), HasFirstTimeBonus(), and TryGetFirstTimeBonus().

◆ OnChangeAltitude()

virtual void Recipe.OnChangeAltitude ( int  a)
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 838 of file Recipe.cs.

839 {
840 }

Referenced by AM_Build.SetAltitude().

◆ OnChangeIngredient()

virtual void Recipe.OnChangeIngredient ( )
inlinevirtual

◆ OnRenderMarker()

virtual void Recipe.OnRenderMarker ( Point  point,
bool  active,
HitResult  result,
bool  main,
int  dir,
int  bridgeHeight 
)
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 705 of file Recipe.cs.

706 {
707 if (dir != -1)
708 {
709 _dir = dir;
710 }
711 RenderParam renderParam = tileRow.GetRenderParam(DefaultMaterial, _dir, point, bridgeHeight);
712 renderParam.matColor = (active ? EClass.Colors.blockColors.Active : EClass.Colors.blockColors.Inactive);
713 point.ApplyAnime(renderParam);
714 if (tileType.IsWater)
715 {
717 {
718 EClass.screen.guide.passGuideFloor.Add(point, (float)result, 0.3f);
719 }
720 return;
721 }
723 {
724 Vector3 v = point.Position();
726 {
728 }
729 }
731 {
732 if (bridgeHeight > 0 && !point.cell.skipRender && EClass.screen.guide.isActive)
733 {
734 EClass.screen.guide.passGuideFloor.Add(point, (float)result, 0.3f);
735 }
736 if (!tileType.IsWallOrFence && (point.HasChara || (point.HasObj && point.cell.blocked)))
737 {
738 Vector3 v2 = point.Position();
740 {
742 }
743 return;
744 }
746 {
747 EClass.screen.tileMap.SetRoofHeight(renderParam, point.cell, point.x, point.z, 0, bridgeHeight, tileType.IsWallOrFence ? _dir : (-1), ignoreAltitudeY: true);
748 }
749 renderParam.y = renderParam.y - EClass.screen.tileMap.rendererBlockMarker.offset.y + renderRow.renderData.offset.y;
750 renderParam.z += EClass.setting.render.tileMarkerZ;
751 int num = ((tileType.blockRenderMode != BlockRenderMode.Pillar) ? 1 : (_dir + 1 + ((_dir >= 7) ? _dir : 0)));
752 if (num == 1)
753 {
755 }
756 else
757 {
759 }
760 }
762 {
763 if (point.HasObj)
764 {
765 _ = ref point.Position();
766 }
767 renderParam.z += ((point.cell.liquidLv > 0) ? (-0.01f) : EClass.setting.render.tileMarkerZFloor);
769 }
770 else
771 {
772 renderParam.z += EClass.setting.render.tileMarkerZ;
773 renderRow.renderData.Draw(renderParam);
774 }
775 }
BlockRenderMode
ScreenGuide guide
BaseTileMap tileMap
MeshPass passFloor
Definition: BaseTileMap.cs:145
MeshPass passFloorEx
Definition: BaseTileMap.cs:163
MeshPass passFloorWater
Definition: BaseTileMap.cs:165
RenderData rendererFloorMarker
Definition: BaseTileMap.cs:201
RenderData rendererBlockMarker
Definition: BaseTileMap.cs:199
MeshPass passLiquid
Definition: BaseTileMap.cs:135
void SetRoofHeight(MeshPassParam _param, Cell _cell, int _cx, int _cz, int h=0, int altitude=0, int dirWall=-1, bool ignoreAltitudeY=false)
MeshPass passBlockEx
Definition: BaseTileMap.cs:161
MeshPass passBlock
Definition: BaseTileMap.cs:147
bool skipRender
Definition: Cell.cs:270
BlockColors blockColors
static ColorProfile Colors
Definition: EClass.cs:38
static BaseGameScreen screen
Definition: EClass.cs:32
static GameSetting setting
Definition: EClass.cs:34
RenderSetting render
Definition: GameSetting.cs:301
void Add(Point point, float tile=0f, float color=0f)
Definition: MeshPass.cs:122
ref Vector3 Position(int height)
Definition: Point.cs:548
RenderParam ApplyAnime(RenderParam p)
Definition: Point.cs:1325
bool HasNonWallBlock
Definition: Point.cs:194
int _dir
Definition: Recipe.cs:192
void Draw(RenderParam p, int tile)
Definition: RenderData.cs:128
void DrawRepeat(RenderParam p, int count, float size, bool skipFirst=false)
Definition: RenderData.cs:214
Vector3 offset
Definition: RenderData.cs:18
MeshPass pass
Definition: RenderData.cs:16
virtual RenderParam GetRenderParam(SourceMaterial.Row mat, int dir, Point point=null, int bridgeHeight=-1)
Definition: RenderRow.cs:393
bool isActive
Definition: ScreenGuide.cs:15
MeshPass passGuideBlock
Definition: ScreenGuide.cs:5
MeshPass passGuideFloor
Definition: ScreenGuide.cs:7
virtual float RepeatSize
Definition: TileType.cs:241
virtual bool IsWallOrFence
Definition: TileType.cs:143
virtual bool IsWater
Definition: TileType.cs:163

References _dir, Scene.actionMode, MeshPass.Add(), Point.ApplyAnime(), ColorProfile.blockColors, Algorithms.WeightCell.blocked, Point.cell, EClass.Colors, DefaultMaterial, RenderData.Draw(), RenderData.DrawRepeat(), RenderRow.GetRenderParam(), BaseGameScreen.guide, Point.HasChara, Point.HasNonWallBlock, Point.HasObj, ColorProfile.BlockColors.Inactive, ScreenGuide.isActive, ActionMode.IsRoofEditMode(), TileType.IsWallOrFence, TileType.IsWater, RenderData.offset, RenderData.pass, BaseTileMap.passBlock, BaseTileMap.passBlockEx, BaseTileMap.passFloor, BaseTileMap.passFloorEx, BaseTileMap.passFloorWater, ScreenGuide.passGuideBlock, ScreenGuide.passGuideFloor, BaseTileMap.passLiquid, Point.Position(), GameSetting.render, RenderRow.renderData, BaseTileMap.rendererBlockMarker, BaseTileMap.rendererFloorMarker, renderRow, TileType.RepeatSize, EClass.scene, EClass.screen, BaseTileMap.SetRoofHeight(), EClass.setting, Cell.skipRender, BaseGameScreen.tileMap, GameSetting.RenderSetting.tileMarkerZ, GameSetting.RenderSetting.tileMarkerZFloor, tileRow, tileType, Point.x, and Point.z.

Referenced by PartialMap.Apply(), TaskBuild.DrawMarker(), and AM_Build.OnRenderTile().

◆ OnSelected()

virtual void Recipe.OnSelected ( )
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 834 of file Recipe.cs.

835 {
836 }

Referenced by UIRecipeInfo.Refresh().

◆ Rotate()

virtual void Recipe.Rotate ( )
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 842 of file Recipe.cs.

843 {
844 if (EInput.isShiftDown || Input.GetMouseButton(1))
845 {
846 _dir--;
847 }
848 else
849 {
850 _dir++;
851 }
853 {
855 {
856 _dir = 0;
857 }
858 if (_dir < 0)
859 {
860 _dir = tileType.MaxAltitude - 1;
861 }
862 }
863 else
864 {
865 int num = tileRow._tiles.Length;
867 {
868 num = 2;
869 }
870 if (_dir < 0)
871 {
872 _dir = num - 1;
873 }
874 if (_dir >= num)
875 {
876 _dir = 0;
877 }
878 }
879 if ((bool)BuildMenu.Instance)
880 {
882 }
883 }
UIRecipeInfo info1
Definition: BuildMenu.cs:27
Definition: EInput.cs:8
static bool isShiftDown
Definition: EInput.cs:261
int[] _tiles
Definition: RenderRow.cs:12
virtual int MaxAltitude
Definition: TileType.cs:208
static TileTypeDoor Door
Definition: TileType.cs:95
void OnRotate()

References _dir, RenderRow._tiles, TileType.AltitudeAsDir, TileType.Door, BuildMenu.info1, BuildMenu.Instance, EInput.isShiftDown, TileType.MaxAltitude, UIRecipeInfo.OnRotate(), tileRow, tileType, and RenderRow.tileType.

Referenced by AM_Adv._OnUpdateInput(), and AM_Build.RotateUnderMouse().

◆ SaveLastIngredients()

void Recipe.SaveLastIngredients ( )
inline

Definition at line 992 of file Recipe.cs.

993 {
994 List<int> list = new List<int>();
995 foreach (Ingredient ingredient in ingredients)
996 {
997 int item = ((ingredient.thing != null) ? ingredient.thing.uid : 0);
998 list.Add(item);
999 }
1001 }
Dictionary< string, List< int > > lastIngredients
string id
Definition: Recipe.cs:178

References id, ingredients, item, RecipeManager.lastIngredients, EClass.player, Player.recipes, Recipe.Ingredient.thing, and Card.uid.

Referenced by DropdownGrid.Activate(), LayerCraft.OnClickCraft(), LayerCraft.RefreshCategory(), and ButtonGrid.SetIngredient().

◆ SetDir()

virtual void Recipe.SetDir ( int  d)
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 885 of file Recipe.cs.

886 {
887 _dir = d;
888 if ((bool)BuildMenu.Instance)
889 {
891 }
892 }

References _dir, BuildMenu.info1, BuildMenu.Instance, and UIRecipeInfo.OnRotate().

Referenced by TaskBuild.GetHitResult(), and UIRecipeInfo.Refresh().

◆ SetImage()

virtual void Recipe.SetImage ( Image  icon)
inlinevirtual

Definition at line 899 of file Recipe.cs.

900 {
901 renderRow.SetImage(icon, null, renderRow.GetColorInt((ingredients != null && ingredients.Count > 0 && ingredients[0].thing != null) ? ingredients[0].thing.material : DefaultMaterial), setNativeSize: true, 0, idSkin);
902 }
void SetImage(Image image, Sprite sprite=null, int matCol=0, bool setNativeSize=true, int dir=0, int idSkin=0, Card card=null)
Definition: RenderRow.cs:351

References DefaultMaterial, RenderRow.GetColorInt(), idSkin, ingredients, renderRow, and RenderRow.SetImage().

Referenced by ButtonGrid.SetCraftRecipe().

◆ SetTextDifficulty()

void Recipe.SetTextDifficulty ( UIText  text)
inline

Definition at line 953 of file Recipe.cs.

954 {
955 Element reqSkill = source.GetReqSkill();
957 string text2 = reqSkill.Name + " " + reqSkill.Value;
958 text.SetText(text2);
959 }
ElementContainerCard elements
Definition: Card.cs:41
Element GetOrCreateElement(Element ele)
void SetText(string s)
Definition: UIText.cs:159

References Card.elements, ElementContainer.GetOrCreateElement(), RecipeSource.GetReqSkill(), EClass.pc, UIText.SetText(), source, and Element.Value.

Referenced by UIRecipeInfo.RefreshQuality().

◆ ShouldShowHighlight()

virtual bool Recipe.ShouldShowHighlight ( HitResult  r)
inlinevirtual

Definition at line 460 of file Recipe.cs.

461 {
462 return r != HitResult.Valid;
463 }
HitResult
Definition: HitResult.cs:2

◆ ToggleTrack()

void Recipe.ToggleTrack ( QuestTrackCraft  quest)
inline

Definition at line 1017 of file Recipe.cs.

1018 {
1019 if (quest != null && quest.idRecipe == id)
1020 {
1021 EClass.game.quests.Remove(quest);
1022 }
1023 else
1024 {
1025 if (quest != null)
1026 {
1027 EClass.game.quests.Remove(quest);
1028 }
1029 QuestTrackCraft questTrackCraft = Quest.Create("track_craft") as QuestTrackCraft;
1030 questTrackCraft.SetRecipe(this);
1031 EClass.game.quests.Start(questTrackCraft);
1032 }
1034 {
1035 EClass.player.questTracker = true;
1036 EClass.ui.widgets.ActivateWidget("QuestTracker");
1038 }
1040 }
static UI ui
Definition: EClass.cs:16
void Remove(Quest q)
Definition: QuestManager.cs:67
Quest Start(string id, string idGlobalChara)
Definition: QuestManager.cs:41
void SetRecipe(Recipe r)
static Quest Create(string _id, string _idPerson=null, Chara c=null)
Definition: Quest.cs:241
static void RefreshButtons()
static WidgetQuestTracker Instance

References Quest.Create(), EClass.game, QuestTrackCraft.idRecipe, WidgetQuestTracker.Instance, Game.quests, WidgetQuestTracker.Refresh(), WidgetHotbar.RefreshButtons(), QuestManager.Remove(), QuestTrackCraft.SetRecipe(), QuestManager.Start(), and EClass.ui.

Referenced by WidgetCodex.RefreshList(), and LayerCraft.RefreshTrackButton().

◆ TryGetFirstTimeBonus()

void Recipe.TryGetFirstTimeBonus ( )
inline

Definition at line 980 of file Recipe.cs.

981 {
982 if (HasFirstTimeBonus())
983 {
985 Element reqSkill = source.GetReqSkill();
986 int num = 1 + ((!IsStaticLV()) ? (reqSkill.Value / 20) : 0);
987 Msg.Say("firstTimeCraft", Name);
988 EClass.pc.Pick(ThingGen.Create("ticket_fortune").SetNum(num));
989 }
990 }
Thing Pick(Thing t, bool msg=true, bool tryStack=true)
Definition: Chara.cs:4259
string Name
Definition: Recipe.cs:212
bool HasFirstTimeBonus()
Definition: Recipe.cs:967

References RecipeManager.craftedRecipes, ThingGen.Create(), RecipeSource.GetReqSkill(), HasFirstTimeBonus(), IsStaticLV(), Name, EClass.pc, Chara.Pick(), EClass.player, Player.recipes, Msg.Say(), Card.SetNum(), source, and Element.Value.

Referenced by AI_UseCrafter.Run().

◆ WriteNote()

virtual void Recipe.WriteNote ( UINote  n)
inlinevirtual

Reimplemented in RecipeCard.

Definition at line 804 of file Recipe.cs.

805 {
806 n.Clear();
807 n.Build();
808 }
void Clear()
Definition: UINote.cs:35
void Build()
Definition: UINote.cs:49

References UINote.Build(), and UINote.Clear().

Referenced by UIRecipeInfo.Refresh().

◆ WriteReqFactory()

void Recipe.WriteReqFactory ( UINote  n,
bool  hasFactory = true 
)
inline

Definition at line 810 of file Recipe.cs.

811 {
813 {
814 n.AddHeaderTopic("reqFactory".lang(source.NameFactory.TagColor(hasFactory ? FontColor.Default : FontColor.Bad)));
815 n.Space(8);
816 }
817 }
FontColor
Definition: FontColor.cs:2
string NameFactory
Definition: RecipeSource.cs:73
bool NeedFactory
Definition: RecipeSource.cs:61
UIItem AddHeaderTopic(string text, Sprite sprite=null)
Definition: UINote.cs:89
void Space(int sizeY=0, int sizeX=1)
Definition: UINote.cs:62

References UINote.AddHeaderTopic(), RecipeSource.NameFactory, RecipeSource.NeedFactory, source, and UINote.Space().

Referenced by ButtonGrid.WriteReqMat().

◆ WriteReqSkill()

void Recipe.WriteReqSkill ( UINote  n)
inline

Definition at line 819 of file Recipe.cs.

820 {
821 n.AddHeaderTopic("reqSkill");
822 Element reqSkill = source.GetReqSkill();
823 int value = EClass.pc.elements.GetOrCreateElement(reqSkill).Value;
824 Color textColor = EClass.Colors.Skin.GetTextColor((value >= reqSkill.Value) ? FontColor.Good : FontColor.Warning);
825 n.AddText(null, reqSkill.Name + " " + reqSkill.Value + " (" + value + ")", textColor).text1.SetSize(-1);
826 n.Space(8);
827 }
SkinColorProfile Skin
virtual string Name
Definition: ELEMENT.cs:304
Color GetTextColor(FontColor fontColor)
UIText text1
Definition: UIItem.cs:6
UIItem AddText(string text, FontColor color=FontColor.DontChange)
Definition: UINote.cs:113
UIText SetSize(int a)
Definition: UIText.cs:227

References UINote.AddHeaderTopic(), UINote.AddText(), Color, EClass.Colors, Card.elements, ElementContainer.GetOrCreateElement(), RecipeSource.GetReqSkill(), SkinColorProfile.GetTextColor(), Element.Name, EClass.pc, UIText.SetSize(), ColorProfile.Skin, source, UINote.Space(), UIItem.text1, and Element.Value.

Referenced by ButtonGrid.WriteReqMat().

Member Data Documentation

◆ _dir

◆ _source

RecipeSource Recipe._source

Definition at line 202 of file Recipe.cs.

Referenced by Create().

◆ id

◆ idMat

int Recipe.idMat = -1

Definition at line 196 of file Recipe.cs.

Referenced by Build(), Create(), and GetColorMaterial().

◆ idSkin

◆ IngAsProduct

bool Recipe.IngAsProduct

◆ ingredients

◆ recipeCache

Dictionary<string, Recipe> Recipe.recipeCache = new Dictionary<string, Recipe>()
static

Definition at line 175 of file Recipe.cs.

Referenced by GetOrCreate().

◆ state

State Recipe.state

Definition at line 200 of file Recipe.cs.

◆ sync

int Recipe.sync

Definition at line 194 of file Recipe.cs.

◆ UseStock

◆ VirtualBlock

Property Documentation

◆ CanRotate

virtual bool Recipe.CanRotate
get

Definition at line 298 of file Recipe.cs.

299 {
300 get
301 {
302 if (tileType.CanRotate(buildMode: true))
303 {
304 return tileRow._tiles.Length > 1;
305 }
306 return false;
307 }
308 }
virtual bool CanRotate(bool buildMode)
Definition: TileType.cs:294

Referenced by ActionMode.GetHintText(), and AM_Build.RotateUnderMouse().

◆ CostMoney

virtual int Recipe.CostMoney
get

Definition at line 296 of file Recipe.cs.

Referenced by UIRecipeInfo.Refresh(), and UIRecipeInfo.RefreshList().

◆ DefaultMaterial

SourceMaterial.Row Recipe.DefaultMaterial
get

◆ H

virtual int Recipe.H
get

Definition at line 268 of file Recipe.cs.

269 {
270 get
271 {
272 if (_dir % 2 != 0)
273 {
274 return renderRow.W;
275 }
276 return renderRow.H;
277 }
278 }

Referenced by UIInspector.DrawHighlight(), TaskBuild.OnProgressComplete(), HotItemHeld.OnRenderTile(), and AI_HaulResource.Run().

◆ IsBlock

virtual bool Recipe.IsBlock
get

◆ IsBridge

◆ IsFloor

bool Recipe.IsFloor
get

Definition at line 242 of file Recipe.cs.

Referenced by AM_Build.HitTest(), and TaskBuild.OnProgressComplete().

◆ IsFloorOrBridge

virtual bool Recipe.IsFloorOrBridge
get

Definition at line 226 of file Recipe.cs.

Referenced by HasSameTile(), and AM_Build.OnRenderTile().

◆ IsObj

bool Recipe.IsObj
get

Definition at line 244 of file Recipe.cs.

Referenced by HasSameTile().

◆ IsThing

virtual bool Recipe.IsThing
get

Definition at line 252 of file Recipe.cs.

Referenced by TaskBuild.GetHitResult(), and AM_Build.IsFillMode().

◆ IsWallOrFence

bool Recipe.IsWallOrFence
get

◆ MaxAltitude

int Recipe.MaxAltitude
get

Definition at line 228 of file Recipe.cs.

229 {
230 get
231 {
233 {
234 return tileType.MaxAltitude;
235 }
236 return 0;
237 }
238 }
virtual bool IsThing
Definition: Recipe.cs:252
virtual BlockRenderMode blockRenderMode
Definition: TileType.cs:277

Referenced by HotItemHeld.CanChangeHeightByWheel(), AM_Build.InputWheel(), and UIPlaceHelper.Refresh().

◆ Mold

virtual Card Recipe.Mold
get

Definition at line 254 of file Recipe.cs.

Referenced by TaskBuild._GetHitResult().

◆ MultiSize

bool Recipe.MultiSize
get

Definition at line 282 of file Recipe.cs.

283 {
284 get
285 {
286 if (W == 1)
287 {
288 return H != 1;
289 }
290 return true;
291 }
292 }
virtual int H
Definition: Recipe.cs:269
virtual int W
Definition: Recipe.cs:257

Referenced by UIInspector.DrawHighlight(), TaskBuild.GetHitResult(), and HotItemHeld.OnRenderTile().

◆ Name

string Recipe.Name
get

Definition at line 212 of file Recipe.cs.

Referenced by GridItemRecipe.SetButton(), UICardInfo.SetRecipe(), and TryGetFirstTimeBonus().

◆ RecipeLv

int Recipe.RecipeLv
get

Definition at line 240 of file Recipe.cs.

Referenced by GetQualityBonus().

◆ renderRow

◆ RequireIngredients

virtual bool Recipe.RequireIngredients
get

Definition at line 280 of file Recipe.cs.

Referenced by BuildIngredientList(), and HitSummary.Execute().

◆ source

◆ tileRow

virtual TileRow Recipe.tileRow
get

◆ tileSelector

BaseTileSelector Recipe.tileSelector
get

Definition at line 294 of file Recipe.cs.

◆ tileType

◆ W

virtual int Recipe.W
get

Definition at line 256 of file Recipe.cs.

257 {
258 get
259 {
260 if (_dir % 2 != 0)
261 {
262 return renderRow.H;
263 }
264 return renderRow.W;
265 }
266 }

Referenced by UIInspector.DrawHighlight(), TaskBuild.OnProgressComplete(), HotItemHeld.OnRenderTile(), and AI_HaulResource.Run().


The documentation for this class was generated from the following file: