public bool TryGetData(MyStringHash state, MyInventoryItemDefinition itemDef, out Data res) { if (_lootTableByItem.TryGetValue(new DefinitionKey(state, itemDef.Id), out res)) { return(true); } foreach (var tag in itemDef.Tags) { if (_lootTableByTag.TryGetValue(new TagKey(state, tag), out res)) { return(true); } } return(false); }
public bool TryHarvest(MyInventoryItemDefinition item, out EquiHarvestableComponentDefinition.Data info) { return(Definition.TryGetData(_stateComponent.CurrentState, item, out info) && (info.DestinationState == MyStringHash.NullOrEmpty || _stateComponent.TransitionTo(info.DestinationState))); }
public bool CanHarvest(MyInventoryItemDefinition item, out EquiHarvestableComponentDefinition.Data info) { return(Definition.TryGetData(_stateComponent.CurrentState, item, out info)); }